Hello Bukhtiar,

Not sure if you were just looking for the specific documentation that Francisco provided or something more general. If you want some resources on learning to work with InterSystems products (and specifically ObjectScript), I'd recommend reviewing the courses available on learning.intersystems.com. 

https://learning.intersystems.com/course/view.php?id=289

This course is "Learn Caché ObjectScript" and links to documentation, a tutorial, and an online course.

Hey Anna,

Glad you were able to get this resolved. I would be curious, as Nigel mentioned, if you had been importing/exporting in the background from the management portal, as that level of speed seems surprisingly slow. Also, I assume there have been improvements to the newer utilities in even more recent versions of Caché and IRIS, so perhaps you would see better performance if you were able to upgrade.

I didn't see a wildcard for %Library.Global but $SYSTEM.OBJ.Export does appear to support wildcards.

https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?APP=1&CLASSNAME=%25SYSTEM.OBJ

That being said, I would be interested in why the global export/import is failing in the first place.  One pitfall is "Block format ignores mapped globals and mapped global subscripts", but other than that we'd probably need more details on your process and what globals are succeeding or failing. This is probably appropriate to contact the WRC with.

Hello Marcus,

The VSS implementation is quite straightforward for users. When you try to create a VSS shadow copy this will invoke the Caché VSS writer, which automatically calls external freeze/thaw. I'm not familiar with Veeam and its integration with VSS, but you could probably verify this behavior with a quick test.

You can see that Caché is ready by the following cconsole.log message (documented):

"Caché VSS Writer started"

From another level, you can verify the Caché VSS writer using "vssadmin list writers" at the OS command prompt.

I hope that helps. Perhaps others are more familiar with Veeam.

If MLLP had already been in use, what change was made to prevent the "discarding received non-HL7 data" messages? Does that give any clue to what is happening with those particular messages?

Perhaps you could try enabling "Log Trace Events" which might tell you more about what step in the processing is getting stuck.

What is the process for handling these messages manually, and how does it differ from normal processing?

Those are the other kinds of things I would look at, though looking at the specific messages that trigger this issue is definitely a good step. I would definitely be interested in an update once you've figured this out.

Hello Matthieu,

I suspect this is an issue with the framing. You are using MLLP framing meaning each message is expected to be surrounded by ASCII 11 prefix and 28,13 suffix. In hex that's 0B prefix and 1C, 0D suffix. The error you're getting implies that the ASCII 13 is never being received. I would check to make sure the acks have the proper framing, and that the framing you are using for your operation matches what the downstream system expects, and vice versa.

I wouldn't recommend using ZU commands as they are deprecated so they are not guaranteed to always work.

Errors returned can occasionally be COS error codes, or they might boil down to OS error codes. It depends on the function; I don't know if there's a universal method that differentiates. I think you need to look at what you're calling. Often the class reference gives details on what error codes to expect.

In your particular case, referring to the %Library.File.CopyFile class reference:

"This method returns true if it succeeds and false otherwise. Pass return by reference to obtain the low level return value in case of errors which is the negative value of the operating system return code."