Upgrade to OpenEdge 11.7.3 Service Pack.
Two product improvements have been implemented: the first will alleviate this problem, the second will ensure new request continuity.
1. The ability to stop a MS-agent and specify how long it needs to wait for requests to complete (waitToFinish
in milliseconds) before a STOP message is sent to the agent to shutdown.
Additionally, force it to shut down when it should not wait any longer (waitAfterStop
in milliseconds). If the MS-agent finishes processing its current
request before waitToFinish
expires, the agent will immediately shut down, otherwise a KILL message is sent to the MS-agent once waitAfterStop
This may still end up sending a STOP condition to the running process when the ACTIVE session thread is terminated. The STOP condition still needs to be properly handled on the client side in the application code for a complete solution.
2. The ability to manually start an(other) agent through the REST API (also JMX and JConsole)
When an MS-Agent is stopped, there's a time delay in starting a new one to handle requests. Being able to preemptively start another MS-Agent is useful as this allows it to be available to handle requests before stopping the existing MS-Agent.
curl -X POST -v http://host_name:port/oemanager/applications/App_name/addAgent