PQ82698: Interruptible WPC transactions using JMS
exhaust connections
Downloadable files
Abstract
Users of WSIF that use Web Services via JMS and
asynchronous send/receive, if WSIFOperation used to send and process the
response is serialized between sending and processing the r
Download Description
IBM Websphere Application Server Enterprise Process Choreographer
processes that are interruptible that use JMS activities extensively
experience a problem in which the Connection pools get short on
connections after a short period of time. The following is a scenario that
demonstrates this problem:
(WPC stands for WebSphere Process Choreographer)
Each invocation of a JMS backend via WSIF is separated by WPC into 2
transactions. In the first transaction, a WSIF service, port and operation
is created and then the executeRequestResponseAsync() method is invoked on
this operation. Then the WSIFOperation is serialized into the database.
The operation has a reference to the port as datamember, therefore the
port is also serialized and stored in the database. Then the port is
closed, and the first transaction ends.
In the second transaction, WPC's MDB receives the reply message from the
backend. It identifies (using the correlation ID of this message) the
associated WSIFOperation in the database and deserializes this
WSIFOperation. Since the operation containes a reference to the port, the
associated port is also deserialized. WPC then calls the
processAsyncResponse() function on this operation, which under the covers
opens a JMS connection through the port, although the message has already
been received. The opening of a new connection not only wastes connection
resources, it is also a very expensive operation in terms of performance
and there is no real need for this.
Suggested solution: WSIF has to refrain from opening a JMS connection in
the WSIFOperation.processAsyncResponse() function.
Summary of end-user symptoms:
WebSphere Process Choreographer processing stops with java
exceptions because there are no more free connections
available. The following messages can appear:
FreePool E J2CA0045E: Connection not available while invoking method
queueRequest for resource JMS$BPECF. ConnectionMan E J2CA0020E: The
Connection Pool Manager could not allocate a Managed Connection:
com.ibm.websphere.ce.j2c.ConnectionWaitTimeoutException: Connection not
available, Timed out waiting.
This problem may also cause WTRN0075W: The transaction log file is full.
It may also cause a
com.ibm.ejs.jts.tranLog.tranLogFullException to be logged in the ffdc
files.
WSIF creates JMS Connections when a WSIF Operation is deserialized and
then used to process an asynchronous JMS response.
Prerequisites
Please download the UpdateInstaller below to install this fix.
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server > Web Services (for example: SOAP or UDDI or WSGW or WSIF)
Operating system(s): Windows
Software version: 5.0.2
Software edition: Reference #: 4006334
IBM Group: Software Group
Modified date: Feb 2, 2004
(C) Copyright IBM Corporation 2000, 2009. All Rights
Reserved.