Salesforce

QueueLimit set to a finite value on AppServer message queue may cause dead lock scenario.

« Go Back

Information

 
TitleQueueLimit set to a finite value on AppServer message queue may cause dead lock scenario.
URL Name000050552
Article Number000115274
EnvironmentProduct: OpenEdge
Version: 10.2B, 11.x
OS: All supported platforms
Other: Application Server broker running STATE-FREE or STATELESS operating mode
Question/Problem Description
Setting queueLimit to a finite value on AppServer message queue may cause dead lock scenario

 
Steps to Reproduce
Clarifying Information
Error Message
Defect NumberDefect PSC00293776
Enhancement Number
Cause
If the queueLimit property is set to a finite value to limit the maximum number of messages that can be queued, a race condition exist such that the producer and consumer threads (i.e. client and server threads, roles varying based on the direction the data is flowing) of the broker can become deadlocked.  

When this condition occurs, both the producer and consumer threads become blocked on a wait(), from which neither will return.  This will cause a request to be hung, making the agent unavailable for handling future requests.  This could eventually lead to exhaustion of all agents and hanging of the entire application.
 
When a request becomes blocked in this manner (i.e. both client and server threads of a request are waiting for each other), the server thread will be unresponsive to admin operations such as shutdown or certain queries.


 
Resolution
Upgrade to OpenEdge 11.3.3 Service Pack or later where the deadlock has been resolved.
Workaround
Notes
Keyword Phrase
Last Modified Date4/5/2019 12:43 PM

Powered by