The other commenters have good suggestions but I would recommend additionally collecting a pButtons to compare. Try and determine if there are any differences other than OS - hardware, memory configuration, global mappings, or anything else. We want to make sure we're comparing apples to apples! If everything seems to be the same, then you could reach out to the WRC who can help investigate this further.

As far as I know I don't think this behavior has changed in 2020. While I was testing the monitor myself recently I noticed the dropdowns getting cleared but when I saw that auto-refresh was disabled in newer versions I didn't  think I needed to follow up on this. If you disable the refresh global you'll find that the tagline of 60s refresh no longer appears as well.

If you really felt this was worth changing I'd recommend that you reach out to your ISC representative (or the WRC) but I would be prepared for the response that the monitor is not intended to be a complete solution. That is not to say that a change to help alleviate the behavior are seeing would not be considered, so if this is really tripping you up it would be worth reporting - maybe others have the same pain and there's enough momentum to get this addressed.

You may find the following article useful in terms of building your own monitoring solution.

Hope that helps.

Hi Julian,

You could do this with a custom Ensemble utility function but from your description I think parenthesis syntax should work just fine.

Defining Custom Utility Functions

Parenthesis () Syntax

HL7.(PIDgrpgrp(1).ORCgrp().OBR:UniversalServiceIdentifier.identifier) should return a concatenated string from looping through the ORCgrps - you could then search that string to find the value you are looking for.

Hope that helps!

Hi Bharath,

I don't really have any sample code for you but I'm not sure I (or other readers) have a good idea of what exactly you are trying to do. Have you already reviewed the class reference? I think the Create(), Get(), and Modify() documentation together describe quite well how you could use Security.Users.

Hi Augusto,

The role that handles backups is %Admin_Operate as documented here:

Assets and Resources

I don't believe there is a resource that specifically governs the external freeze/thaw capability, you would probably need to design something custom for that particular restriction. For example, you might assign your user a startup namespace or routine as documented here:


Startup Namespace    The namespace in which to begin execution following login from a terminal-type service or the Portal. This property overrides any namespace value provided via the command invoking Caché.

Startup Tag^Routine    The routine to execute automatically following login from a terminal-type service. This property overrides any routine value provided via the command invoking Caché.

Hi Laura,

There are some tables covering schemas that might be of use to you as documented here:

Exporting a Production

"Export the underlying Caché global that contains the schema and then import this on the target system. To export a global, select System Explorer > Globals, select the desired globals and then select Export. The X12 schemas are stored in the EnsEDI.Description, EnsEDI.Schema, EnsEDI.X12.Description, and EnsEDI.X12.Schema globals. The XML schemas are stored in the EnsEDI.XML.Schema global. See “Exporting Globals” in the Using Caché Globals guide for details on exporting globals."

Hello Dan,

I am struggling to understand the scenario that you are testing/planning for. Do you have an arbiter? I would read through the mirroring docs which discuss the various options available to you and the various automatic responses that mirroring can take (including some diagrams).

If you want to simulate network isolation, I think you'd need to actually network isolate. If you force the backup to become primary, Caché will try to force down the original primary to prevent split brain.

If you can't identify a permissions issue I would recommend opening a WRC case to investigate as it will probably take some looking around at your system to resolve, and that isn't easily done via a forum.

Worth considering is if this works in other environments and if so what the difference in permissions might be, and if you can try the freeze or journal switch directly in Caché terminal (taking the OS terminal out of the equation).

Your user may have permissions to write a file to the output directory, but that doesn't mean you will have access to all the utilities that pButtons will try to run, including Windows Perfmon. There should definitely be more than 1 log file is a pButtons is running normally.

I wonder if the Buttons report was able to collect its cstats as that also requires elevated permissions. You can check that section within the html report to see if it exists.

I would definitely recommend opening an Administrator Windows command prompt and then navigating to \cacheinstalldir\bin, where you can use "ccontrol console <instancename>" to access the terminal. From there try to run a test pButtons.

Hello Duncan,

Please see the following documentation. Defining and Calling Methods.

Some examples:

 do ##class(Package.Class).Method(Args)
 set myval= ##class(Package.Class).Method(Args)
 write ##class(Package.Class).Method(Args) 

You may find some of the courses on (linked in the top bar of the developer community as well) useful such as the Caché Objects Introduction.

Hi Tamara,

The following developer community article may be of use to you:

For text/SMS alerts though you can see the following sample from the developer community:

There is also an online course Setting Up Alerts to try the text code out.

Hello Roberto,

I see that my colleague in the WRC has already addressed some of your concerns in the case, but to share some information with the developer community, here are some documentation links that may be useful to understand <STORE> errors:

Low Memory and <STORE> Errors



The first thing I notice is that your $zstorage is set to 16384. This is far below our modern default of 262144 (see bbsiz documentation). Is there a particular reason you would want to modify $zstorage on the fly rather than just have your system-wide setting be higher?

Hello Tamara,

It sounds like you are looking for help getting familiar with Ensemble rather than specifically with the EnsLib.HL7.Operation.FTPOperation. Note that the operation is intended to send out a file from Ensemble to an FTP server, not to ingest a file; if you want to pull in a file from an FTP server to Ensemble you want an FTP Service.

You can find some great starter materials on You can search for "productions" or "integrations" for some useful courses, but I would recommend "Building Your First HL7 Production." Specifically, I think the sub-course "HL7 I/O: Using HealthShare for Message Transmission" would be very useful.

Some basic documentation is here also:

Adding HL7 Business Operations

Hope that helps! If you have more specific questions feel free to ask.

Please make sure the version you are on is safe to run compaction. See Pete Greskoff's 3 links in this developer community post:

In InterSystems IRIS as of 2019.1.0, you have the option to monitor and cancel database tasks such as compaction:

Using Character-based Security Management Routines


option 15. Show background database tasks
"Displays a list of background tasks that are running or that have run since startup. You can also use this option to re-enter the monitor screen, where you can cancel a currently running task as well as purge the history of completed tasks. (Note that the tasks listed here are not the same as those listed as scheduled tasks in the Task Manager.)"