Marcel den Ouden · Jan 5, 2016 go to post

Hi Steve,

I have tested with this in the past, when 2011.1 was released and the 10 seconds delay was introduced for anonymous soap calls. With SOAPSESSION=1 the calls utilize the same session on the back-end. Multiple subsequent calls will only use 1 license, and the license will be held until the normal time-out expires. I could easily see this behaviour in the license statistics.

I'm not sure what happens when you do multiple calls in parallel, will they be queued?

Marcel den Ouden · Jan 5, 2016 go to post

Steve,

I just remember someting else since this is Ensemble; it depends on whether or not you are using an Enterprise license or a C-license (Cache with Ensemble add-on). I'm not entirely sure but I think the E-licenses are unlimited with regards to SOAP.

Marcel

Marcel den Ouden · Sep 5, 2017 go to post

I have a customer who uses a cloud based storage for all error/warning messages which happen in Ensemble. I don't remember the name of the service, but it is accessible through a REST service. They have written a simple REST client (Ensemble Business Operation) which uses PUT/POST to send the messages/warnings they capture. The API description should help you connect to such a system. You can use the alerting framework (ens.alert) to capture and forward it to your BO which connects to Tivoli or other system. SNMP might also be an option.

Marcel den Ouden · Nov 2, 2016 go to post

The credentials do not have space to store a Domain field. Maybe add the domain as an extra setting?

Property Domain As %String ;

Parameter SETTINGS = "Domain";

Then you can use ..Domain in your Business Operation. You might also need to subclass the adapter to get it working with the Domain.

Marcel den Ouden · Feb 23, 2017 go to post

With this you can override the global setting. It is useful to have a maximum to protect you from having a "runaway" process to eat all your memory. If you need more in a process (for example I needed to instantiate a very large XML file as an object), you could overide the global setting (in my case 4GByte). But since only one specific process needs it, it is better to set it dynamically in that process. As Eduard said, it is only a maximum, it is not claimed when the process starts but only when needed.

Marcel den Ouden · Jan 5, 2016 go to post

For one customer we use this solution which works fine for them:

DATA database which contains the end customer data and is the default mapping

CODE database which contains the cubes (package mapping) and Pivots and Dashboards (^DeepSee.Folder en ^DeepSee.FolderItem global mapping)

IDX database which contains all the other DS stuff (^DeepSee global mapping)

This works fine so far as we can replace the end-customer data easily and keep it seperate, and we can also update a new batch of cubes and dashboards easily by replacing the CODE database with a new version. IDX can be rebuild by compiling/building the cubes so that’s easy too.

This works fine because currently they create all dashboard for their customers.

We foresee that some end customers need some custom pivot/dashboards, which we then would like to map to a 4th database; we don’t want it in CODE because we want to keep that the same at all end-customers. Maybe we  should we do a subscript type mapping of ^DeepSee.Folder(Item), and is that sustainable among Cache versions? I have not looked into it further as both their DS customers are happy with the current solution and don't create any dashboards or pivots themselves.

Marcel

Marcel den Ouden · Jan 27, 2021 go to post

I love VSCode, but some handy features of IRIS Studio are indeed missing. I keep an instance of the latest InterSystems Studio in a VM to use when things which are missing, but after that I quickly switch back to VSCode and import the code. I really like the integration with Git & Docker.

Marcel den Ouden · Feb 1, 2021 go to post

Have there been any updates on this? I am involved in a project which uses VSCode, and we want all unit test (Start with UnitTest.) classes to end up in another folder so they can be kept out of production easily.

Marcel den Ouden · Feb 3, 2021 go to post

Excellent, thanks @Dmitry Maslennikov

Mine is simpler at this moment

"objectscript.export": {

 "folder": "MyFolder",

"addCategory": false,

"map": {

"(UnitTest\\..*)": "internal/$1",

"(..*)": "src/$1"

}

}

This does the trick for now.

Marcel den Ouden · Jun 15, 2021 go to post

For my customers in Holland, our time-zone is POSIX is "CET-1CEST". Also works for most neighbours. (2016+)

write !, "Current time: "_$ZDT($H)

do $System.Process.TimeZone("CET-1CEST") 

write !, "New Current time: "_$ZDT($H)
Marcel den Ouden · Jun 16, 2021 go to post

I have one prepared but not found the time yet. My plan is to measure the electricity use of my house continuously, do analysis on when I have a surplus of energy of my solar panels, and then switch certain devices based on that. My dishwasher, pool pump and heat pump are all connected. Currently I can do net metering for electricity but that will change in the near future. Better to use it myself if they don't want to pay a decent price for it ;-) The Pi is perfect for that kind of home automation.

Marcel den Ouden · Jun 17, 2021 go to post

@Dmitry Maslennikov  Are there any special characters to watch with static .csp and .js files? I would expect the last map item to catch all, but it does not match with /csp/mynamespace/myfile.js (ends up in /MyFolder/csp/mynamespace/.... and I would expect /MyFolder/src/csp/mynamespace/...

Marcel den Ouden · Jul 5, 2022 go to post

Thanks @Robert Cemper

Since my specific case is for the EU, I think the simplest solution is to use $ZTZ to correct for basic time zone. The rules for summertime are always the same in this area (until they change it, the discussion flares up two times a year). I already found some pseudo-code for that. If summertime, subtract another 60 minutes from $ZTZ. Not as generic as I wanted, but good enough for my case. 

Marcel den Ouden · Oct 24, 2022 go to post

Yes this can be annoying; if you have a generic solution which you deploy at different customers which have different hardware and performance requirements, you cannot keep the production class "generic". This limits automation of the build process/deployment. You can do some scripting...

Marcel den Ouden · Oct 25, 2022 go to post

Processes often do a lot of waiting (<sync>, <delay>), so that is probably why a larger poolsize helps. I am currently integrating with a system which takes up to five seconds to answer... so enough spare time to do a few in parallel. 

Marcel den Ouden · May 25, 2023 go to post

Hi Thomas,

I think this information is insufficient to get help from the community. What is the exact ISC_IRIS_URL for example?

ISC_IAM_IMAGE=containers.intersystems.com/intersystems/iam:3.0.2.0-4

ISC_IRIS_URL=https://IAM:mypassword@test.myserver.nl:443/api/iam/license

My IRIS server is on https so I'm using port 443, but you could be using port 80 or 57772.

Marcel den Ouden · Jul 28, 2023 go to post

Looks a bit like mine :) 

ClassMethod IsValid(sAs%String) As%Boolean
{
    f i=1:1:2E6 {
      ss=$REPLACE($ZSTRIP(s,"*E",,"()"),"()","")
    }
    qs=""
}

Since length was more important than speed I put the $ZSTRIP in the loop, and make it run 2M times (3.6M MAXLEN, that should be enough 😂

Sorry I meant to post this under the solution of @Alex Woodhead 

Marcel den Ouden · Sep 5, 2023 go to post
Class ${2:${TM_DIRECTORY/^.+\\/(.*)$/$1/}.$TM_FILENAME_BASE} Extends Ens.Production

Found this in GIT. It evaluates correctly to Test.MyProd on my Mac but to the full filename in the Windows client next to me. Could this be a "backslash \" vs "forward slash /" issue ? My regex knowledge is insufficient here...

Marcel den Ouden · Apr 4, 2024 go to post

Thanks Pietro,

Your suggestions certainly work.

But I would prefer a more user-friendly solution for the developers. Ideally it would pop up the namespace selection dropdown if the namespace does not exist, or otherwise at least being able to change it from the "Switch namespace" option in the menu. 

Marcel den Ouden · Apr 15, 2024 go to post

FYI

The codeQuality tool now requires a newer java version. I had to change this in the settings.json from

"sonarlint.ls.javaHome": "/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home"

to 

"sonarlint.ls.javaHome": "/Library/Java/JavaVirtualMachines/temurin-21.jre/Contents/Home"

I skipped version 17 as there was already a 21 which seems to work OK.

I used the OpenJDK runtime:

https://adoptium.net/temurin/releases/