Stopping agent processes "gracefully" still breaks

Posted by dbeavon on 27-Apr-2019 16:24

I'm doing some testing with the "graceful" stopping of agents in PASOE.   

This doesn't seem to be working as expected.  I'm doing my current testing on a PASOE developer workstation (PDSOE installation).  OE version is OE 11.7.4.

Here is how I make the request for the agent to be stopped...

I do this while the appserver is under heavy load (lots of concurrent "state-reset"-type requests are being made every second).

Instead of a "graceful" shutdown whereby the agent prevents new clients from connecting, and waits for old clients to finish, I see something totally different happening.  I see that this dialog returns control to me instantly (as soon as I click "stop").

At the same moment, a lot of my openclients on .net will fail with a generic communication exception from Proxy.ProObject.Dispose (which is executed while the proc-object is being disposed at the end of the using statement in c#).  Here is the callstack.

  Message=Communication layer message: General Error: read() error= 4. (7175) 
   at Progress.Open4GL.DynamicAPI.Session.deleteProcedures1(PersistentProc procedure, Boolean noLock, ProcListDataTable pSet, DataTableMetaData pMeta)
   at Progress.Open4GL.DynamicAPI.Session.deleteProcedures(PersistentProc procedure, ProcListDataTable pSet, DataTableMetaData pMeta)
   at Progress.Open4GL.DynamicAPI.PersistentProc.delete()
   at Progress.Open4GL.Proxy.Procedure.Dispose(Boolean disposing)
   at Progress.Open4GL.Proxy.ProObject.Dispose()
   at UFP.LumberTrack.AppServer.KPI.BranchWeekSumsProxy.CalculateiSums(IHaveAppServerInfo p_AppServerInfo, ...

So I don't think the "graceful" stopping of an agent is implemented properly.  At least not for "state-reset"-style appserver connections from the .net openclient.  

The only other explanation I can think of is that this could be a side-effect of the limitation in the development license of PASOE, whereby there is a restriction on the number of agent processes that can run in an ABL application.  The development license only allows one agent process. Perhaps this restriction is also causing misbehavior in "graceful" stop operations.  (Ie. in the same scenario a production PASOE server would be able to spawn a "secondary" agent during the graceful stop operation of another agent.  But the development PASOE must do an instant-kill-all instead???).

Has anyone else had better luck withe the "graceful" stopping of an agent process in PASOE (via the OEE administration console)?

Thanks, David

All Replies

This thread is closed