Salesforce

STATE-RESET and STATE-AWARE AppServer agent becomes orphan with errors 8121 and 8077

« Go Back

Information

 
TitleSTATE-RESET and STATE-AWARE AppServer agent becomes orphan with errors 8121 and 8077
URL Name000026169
Article Number000142112
EnvironmentProduct: OpenEdge
Version: 10.2x
OS: All supported platforms
Question/Problem Description
STATE-RESET and STATE-AWARE AppServer Agent becomes orphan with errors 8121 and 8077 shown in the Broker log

STATE-RESET and STATE-AWARE AppServer connectingTimeout does not work as expected

AppServer Agent becomes orphaned when connectingTimeout value is less that time taken by srvrConnectProc to execute

STATE-RESET AppServer Agent becomes orphan when connectingTimeout value is less that time taken by srvrConnectProc to execute
STATE-RESET/STATE-AWARE modes when the connectingTimeout value is less than time taken by srvrConnectProc to execute, the Agent connected to client gets unmanaged.
Steps to Reproduce[UBroker.AS.asbroker1]
connectingTimeout =10 
srvrConnectProc=connect.p 

connect.p has a pause of 60 secs
connect takes 60 seconds as connect.p has a pause, the client timeout is 10 seconds
Clarifying Information
AppServer Broker query does not show the Agent as it becomes an orphan process
asbman -q, does not list the agent anymore
The AppServer Agent (_proapsv.exe /_proapsv) process remains in the system memory
connectingTimeout is only valid for STATE-RESET and STATE-AWARE modes
Error MessageFSM ERROR: INVALID ACTION state= 1 event = 11 : FSM : action= 20 nextstate = 11
FATAL ERROR : (2) Protocol Error. (8121)
Ending serverPool thread: S-0001. (8077)
Defect NumberDefect OE00211701 / PSC00236936
Enhancement Number
Cause
When connectingTimeout is lesser than time taken by srvrConnectProc to finish, the Server thread in Broker:
  • Is in CONNECTING mode, 
  • Waits in getServerIPC() event for the 'connectingTimeout' period of time  
  • Then raises an EVENT_TIMEOUT
  • This causes the Server thread to transition to AVAILABLE mode. 
When srvrConnectProc finishes execution:
  • The AVAILABLE Server thread receives a CONNECT message. 
  • AVAILABLE mode transitions to OBLIVION as per design (a CONNECT event is not accepted in AVAILABLE state). 
  • This causes the thread to be removed from serverPool, making it unmanageable.
Resolution
Upgrade to OpenEdge 11.0 or later where the server thread waits in CONNECTING mode ignoring connectingTimeout until the Agent sends some message to the Broker.
Workaround
For STATE-RESET and STATE-AWARE modes, either ensure that connectingTimeout is longer than the srvrConnectProc proceedure time, or don't use connectingTimeout.
Notes
Keyword Phrase
Last Modified Date11/20/2020 7:24 AM

Powered by