Hi Michael,

I assume you were looking at the %Library.File documentation for FileListFetch. FileListFetch is not meant to be used directly, but is a part of a class query which can be used as documented here:

Defining and Using Class Queries


If you can navigate to the directory then you could use ##class(%Library.File).GetFileSize(), however for a remote FTP server this probably wouldn't work. You would want to use %Net.SSH.SFTP as documented here:

Using SSH


edit: the FileList query is not in %Library.File - I am not sure where that query comes from but the rest of my post remains revelant

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 Kevin,

Thanks for pointing the documentation issue out. The documentation has been modified to specify that the <NETWORK DATA UPDATE FAILED - MAXSTRING> error relates to network activity - "An asynchronous network error occurred and updates sent over the network were lost because InterSystems IRIS/Caché on the server has encountered an attempt to specify or create a data string longer than the implementation allows (32,767 characters)."

What were your instances doing at the time you received this error and where did you find this error? I put a little time into trying to throw this error myself by manipulating some large strings from an ECP app server but wasn't able to reproduce it.

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).

Hi Hansel,

For a mirroring issue usually the full context of all mirror members is usually important to understand a problem, whereas a singular message may not paint the whole picture.

This error in particular (you included an excerpt, but I have seen it before) indicates that this instance is unable to take over the VIP, so you may want to check if the VIP is available or if it may be assigned to a different machine as the rest of the error message would indicate.

Are you using an Archive Path or Work Path?

When you look at the Visual Trace does it give you any more ideas for where issues could be cropping up?

Can you elaborate on this: "It appears like the same file gets picked up by a later session but we have no way of knowing if it is the same doc or not."

Do you mean that the file is sometimes picked up but with a reported filesize of 0kb? What business process is attempting to move the file to a working directory?

What were the errors that you had previously? If Ensemble is having trouble picking up the file it may be a fileshare availability issue.

This is likely not going to be easy to troubleshoot through this forum, I'd recommend reaching out to the WRC to investigate.

Hi Christopher,

I'm not sure where you're seeing Download Caché Evaluation, all links show IRIS instead for me. IRIS is the product of the future for InterSystems so it's what is being presented for evaluation. Is there a particular reason that you need Caché? If you are a supported customer you can still get access to Caché through the WRC but if you are looking to try an InterSystems product then IRIS has Caché's capabilities and then some.


The $job documentation put me on the path to look deeper into %SYS.ProcessQuery. The class documentation recommends using SQL to avoid the overhead of opening the object. It also recommends looking for a property that doesn't require sending a mailbox message to the process.


For example:

SELECT CommandsExecuted FROM %SYS.ProcessQuery where pid=5812

If the pid exists the query will return a row, otherwise it will return nothing. Hope that helps.