PQ83400: ASYNC BEANS AND WORKMANAGER WILL BLOCK WHEN QUEUE SIZE IS EXCEEDED BY MORE THAN10 REQUESTS | |||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description Async beans and workmanager will block when queue size isLocal fix Problem summary **************************************************************** * USERS AFFECTED: All Asynchronous Beans developers using * * WebSphere Application Server 5.0.2.2 * **************************************************************** * PROBLEM DESCRIPTION: WorkManager.startWork() methods always * * block when the underlying thread pool * * and request buffer is full. * **************************************************************** * RECOMMENDATION: If developers would like to receive an * * exception when the thread pool and * * request buffer is full and would like * * to adjust the size of the request buffer, * * then apply fix PQ83400 on WebSphere * * Enterprise 5.0.2.2 and WebSphere * * Application Server cumulative fix 5.0.2.4. * **************************************************************** WorkManager.startWork() methods always block when the underlying thread pool and request buffer is full. This behavior makes it difficult for OLTP applications to be responsive. Application developers would like to have the startWork() methods return immediately and allow handling of insufficient resources in other ways.Problem conclusion The Work Manager configuration object now supports two custom properties that allow configuring the size of the associated thread pool input buffer and the behavior of the thread pool when it is full. The default behavior of the Work Manager thread pool is to block all input requests until a thread has been freed. Work is submitted to the thread pool using one of the com.ibm.websphere.asynchbeans.WorkManager.startWork() methods. The default size of the buffer is undefined. Therefore, if you desire more predictable behavior the following custom properties can be set on the Work Manager configuration resourcein the Administration Console or WSADMIN: Name: WORKREQUEST_QUEUE_SIZE Type: java.lang.Integer Range: 1 to (2½32)-1 Default: Unspecified Description: Specifies the size of the buffer that the Work Manager's thread pool uses to pull requests from. The total number of in-flight requests will be the sum of Max Threads and WORKREQUEST_QUEUE_SIZE. Notes: Use with extreme caution. Specifying a large value can lead to instability and memory resource issues. Name: WORKREQUEST_QUEUE_FULL_ACTION Type: java.lang.Integer Values: 0 = Block, 1=FAIL Default: 0 Description: If 0 is specified and the thread pool is unable to immediately allocate a thread or a free slot in the buffer, the request will block indefinitely until a thread becomes available in the pool. This is the default behavior. If 1 is specified and the thread pool is unable to immediately allocate a thread or a free slot in the buffer, a WorkRejectedException with an error code of WorkRejectedException.WORKREQUEST_QUEUE_FULL will be thrown. The request can be retried until successful. The WorkRejectedException may be thrown any time where a thread cannot be immediately be allocated and may not reflect the size of the thread pool and buffer.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: Modules/Macros Publications Referenced
|
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server > Enterprise Edition (EE)
Operating system(s):
Software version: 00W
Software edition:
Reference #: PQ83400
IBM Group: Software Group
Modified date: Feb 26, 2004
(C) Copyright IBM Corporation 2000, 2008. All Rights Reserved.