User Answers

My understanding is that while you can easily retrieve environment variables visible to your process using the $system.Util.GetEnviron() interface, you simply do not have access to an equivalent $system.Util.SetEnviron(), as setting of environment variables can be quite tricky, risky and very OS specific.

With the assumption that running a full integrity check on the primary, Live instance is not really an option here, my approach would be something along these lines:

- backup of your primary instance using your preferred third party tool

- automate the restore of the backup into a separate environment

- run the integrity check in this second server

I see a couple of advantages in such a scenario:
you can verify that your backups are indeed valid and can be restored, quite a good felling in case of actual needs at some point in time.

Hi Joyce,

I just tested the documentation steps on my Mac just to confirm that they would work correctly with the current Docker release, and it seems IO got everything going through correctly.

The "permission denied"  error suggests some kind of permission issue, and looking at your "docker run" command I have a strong suspicion that the problem may be coming from the --volume /Users/docker:/external mapping, as anything under "Users" is handled quite strictly by MacOS (and correctly so I would add:-)

Hi Anzelem,

if your question is "how can I allocate more than 2GB of memory for my shared memory segment", Dmitry already answered that pointing out that this is an expected limitation of your 32bit environment, with a switch to 64bit being the required factor to go over 2GB..

Is there any specific reason for not wanting to use the RoutineList() query from the %Library.Routine class?

I know this is not the ready-to-use procedure that you were looking for, but as a starting point for anyone landing here looking for ideas, some starting modules that you can use would be:

- automated restore of a BCK backup file can be accomplished with the EXTALL^DBREST or EXTSELCT^DBREST entry points.

- integrity check of one or multiple databases are available through the SYS.Database class, with the methods IntegrityCheck() or SilentIntegrityCheck()


Good morning Wolf,

I tested the 2017.1.726 Caché kit from our "Developer Download" page and, indeed, it is reporting an error during its un-zipping phase.

Using a copy of the same installation kit taken from an internal repository I could go through a normal installation without problems, so it would seem that the issue is limited to the copy made available through the download page.

We have asked for the archive to be replaced, and hopefully a new copy will go online soon.

Hello Manoj,

I think I can at least explain how you were able to implement the no-username-required login under the old Cache 5.0.x environment:
back in those days there was the option to create a special user account, named "Telnet", that would act as a telnet-logins-catch-all, removing the need of entering a username, and only requiring a password, password that would have been common among all Telnet users..

Hello Sansa,

I feel that I will need more details in your actual needs before I can be of actual assistance:
could you maybe expand a bit more in what you are trying to accomplish?

Back in the Caché 5.0.x days, we already had a system class %System.Process that could be used to retrieve several pieces of information on the running processes, including the UserName associated to those processes.

Very basic example of its use to retrieve the UserName of my Telnet login into a 5.0.21 instance: