As you design your application for distributed processing, you should be aware of certain memory/environment issues with the ACUCOBOL-GT runtime.
Remotely CALLed programs cause the AcuConnect server to start a new runtime on the server machine. Spawned runtimes can start runtimes on other server machines, if desired, or they can call other programs on the same server.
AcuConnect can spawn Acu4GLĀ® or AcuServerĀ® linked runtimes, even if the client runtime is not so linked.
The remote program and remote runtime live in memory on the server machine.
The runtime started by AcuConnect on the server takes on whatever environment that the AcuConnect daemon itself was started in when it was started on the server. For example, if you log on as root and start AcuConnect, AcuConnect will inherit root's environment. If you log on as userX and then start AcuConnect by issuing the superuser account, AcuConnect will inherit userX's environment.
The important thing to note is that the CALLed program does not inherit the client environment of the CALLing program.
The runtime started by AcuConnect on the server in response to a CALL is kept running until a "stop run" is encountered on the client. This has the effect of maintaining any items in memory on the server machine until the client program is shut down.
One exception to this is in the case of asynchronous program execution, when the C$ASYNCPOLL library routine is called. In this case, the runtime on the server is immediately shut down when a status of "1" (CALL completed) is returned by C$ASYNCPOLL.
Another exception is in response to a CANCEL command. See Terminating the Remote Application for more information.
Data items declared as EXTERNAL are not shared between client and remote programs with AcuConnect.
The CHAIN command cannot be used to start a remote program through AcuConnect.