Kbase P83089: Explanation of Stateless AppServer Agent'states: LOCKED and SENDING
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  06/05/2010 |
|
Status: Verified
GOAL:
What does it mean if a Stateless AppServer agents are in LOCKED mode or SENDING mode
GOAL:
What does it mean if a Appserver shows a very long Request Duration Maximum (Rq Duration)
GOAL:
Explanation of Stateless AppServer Agent'states: LOCKED and SENDING
FACT(s) (Environment):
All Supported Operating Systems
Progress 9.x
OpenEdge 10.x
FIX:
When the stateless Appserver agent is in the SENDING mode, the process sends output to the broker. So, if the Appserver agent being in the state of SENDING for a very long time means that there is a programming issue where lot of data is returned, via the broker, from the AppServer to the client (huge temp-table for example).
When the stateless Appserver agent is in the LOCKED mode, the process is in a bound connection with an AppServer client; this status persists until the connection becomes unbound. SDOs are one example where the 4GL code is used to bound the AppServer for the specific client. So, if the agent being in the state LOCKED for a very long time is a programming issue where the client binds the AppServer.
Consider review and rewrite the program(s) or the query(ies) that makes an AppServer agent to stay too long busy, i.e. in the LOCKED or SENDING mode during too long periods.
Setting the AppServer logging mode as VERBOSE (srvrLoggingLevel=3 in ubroker.properties) allowed to see what procedures were run by the agents identified by their PID.
On Unix or Linux Systems, starting on OpenEdge 10.1C, if you issue a kill -USR1 <agent PID> a file called protrace.<PID> of the agent is going to be generated and contains, besides the regular memory stack, a 4GL stack of the process.
This also can help find what is the offending code was doing at the time that the kill ?USR1 was issued and help find the cause of the hanging.A high value for Client Queue Depth Maximum would show that users were queued on broker due to no AppServer available.