Hi Steve,

I don't have a lot of experience with this but I have heard of a Web Gateway container that includes Apache.

"The webgateway image available from InterSystems, which includes both the Web Gateway and an Apache web server, provides a web server component for containerized deployments of InterSystems IRIS-based applications. Automated deployment of the Web Gateway container can be effected by using manual procedures to develop a CSP.ini file containing the desired Web Gateway configuration, as well as apache2.load and apache2.conf files specifying the desired Apache web server modules and configuration, and placing them in their expected locations in the Web Gateway container (/opt/webgateway/bin/ and /etc/apache2/mods-available/, respectively) as part of the deployment process. The durable %SYS feature and the Web Gateway’s entrypoint application /cspEntryPoint.sh provide a simple way to do this, as the script automatically links these files (plus the CSP.log log file) to the corresponding files on the specified durable %SYS volume."

Hello Mikael,

What do you mean by locking resources? I think Call Interval should be appropriate for the behavior you want, but I'm not sure what complication you're referring to.

A common suggestion here might be the Ensemble schedule handler, but I'd not recommend that as per the documentation this isn't intended for specifying specific processing times, but activation windows for the interface. The documentation also discusses creating a more general scheduled task and having it call CreateBusinessService() and ProcessInput() but this would be much more involved than just using Call Interval.

One set of errors that stood out to me is:

09/25/20-15:45:16:790 (9924) 1 SNMP server failed to start: 0,Error (2) signaling Windows SNMP Service; check Service is installed/started.
09/25/20-15:54:17:010 (8972) 1 Error reading from SNMP port, Windows SNMP Service may have terminated connection.

I'd recommend reviewing the documentation I linked for some other suggestions, but I'd start by trying to verify that snmp works at the Windows level, separate from Caché.

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.

Hey Jonathan,

Perhaps you've already seen them, but I'd check out these posts regarding VS Code and Atelier/Studio.

https://community.intersystems.com/post/atelier-and-studio

https://community.intersystems.com/post/intersystems-joins-open-source-o...

VS Code is being worked on/developed but has not yet reached an official InterSystems 1.0 release; my bet is when it has reached a threshold of completeness it will find its way into the documentation. If you want to try out VS Code to get familiar with it and contribute to its development, that seems like a totally viable option.

Re: Atelier/Studio in the meantime, per Andreas' comment you can keep using either as they will be maintained indefinitely, they just won't see enhancements.

Yes, probably WRC would be the next step.

I tested on HealthShare Health Connect so I did not have the MPRL resources, but I tried making a user with R/W database permissions and just the resources you listed and was able to navigate from the SMP home page to the production page. I did get a <PROTECT> error so there's probably something still missing, but I got further than you seem to be able to.

Hey Jeff,

I wrote up a quick sample that doesn't get quite what you wanted, but I think it's close enough that you'll be able to take it from there. If not, feel free to ask further.

My sample reverses the first FT1grps and leaves the last one in the final slot.

First I used * to get the count: Counting Fields

If you wanted to implement some more complex logic you could potentially do it here. Alternatively, you might want to write a custom utility function to perform the chunking and reversal. This keeps your code more compartmentalized and keeps too much from sitting in the DTL itself.

Defining Custom Utility Functions

Hi Oliver,

Is your intent to have multiple productions in containers trying to pull the same types of files from the same directory to split the load? It sounds like you're not able to pull from different file paths, but would setting different FileSpecs be an option?

Perhaps setting different WorkPaths would be helpful, so that the file service(s) will move the file to another directory while processing.

Another possibility would be to have one production with a file service with a pool size >1 that routes to the various other productions.