APAR status
Closed as program error.
Error description
After the following error messages appear in the WebSphere
Application Server system log :
XATransaction E J2CA0030E: Method enlist caught
javax.transaction.SystemException: Failed to start the
transaction association.
at
com.ibm.ejs.jts.jta.TransactionImpl.enlistResource(TransactionIm
pl.java(Compiled Code))
at com.ibm.ejs.jts.jta.JTSXA.enlist(JTSXA.java(Compiled Code))
...
while trying to enlist resources from datasource < queue
connection factory> with the Transaction Manager for the current
transaction, and threw a ResourceException.
ConnectionEve A J2CA0056I: The Connection Manager received a
fatal connection error from the Resource Adaptor for resource
<nam>. The exception which was received is
javax.jms.JMSException: Enlist failed
ExceptionUtil E CNTR0020E: Non-application exception occurred
while processing method "onMessage" on bean <message driven
bean>. Exception data:
java.lang.reflect.InvocationTargetException:
javax.jms.JMSException: Enlist failed
at
com.ibm.ejs.jms.JMSCMUtils.mapToJMSException(JMSCMUtils.java(Com
piled Code))
at
com.ibm.ejs.jms.JMSManagedSession.enlist(JMSManagedSession.java(
Compiled Code))
the message-driven beans (MDBs) named in the errors stop
receiving messages.
Occassionally, following this error, the application server will
hang when shutting down.
To prevent the hang situation, the order in which various
operations are performed following the Enlist failure has been
changed.
Local fix Problem summary
****************************************************************
* USERS AFFECTED: This problem affects customers who use the *
* Java Message Service (JMS) functionality *
* provided with WebSphere Application Server *
* Version 5.x. *
****************************************************************
* PROBLEM DESCRIPTION: After the following error messages *
* appear in the WebSphere Application *
* Server system log : *
* *
* J2CA0030E: Method enlist caught *
* javax.transaction.SystemException: *
* Failed to start the transaction *
* association. *
* at com.ibm.ejs.jts.jta. *
* TransactionImpl.enlistResource *
* (TransactionIm pl.java(Compiled *
* Code)) *
* at com.ibm.ejs.jts.jta.JTSXA.enlist *
* (JTSXA.java(Compiled Code)) *
* ... *
* *
* while trying to enlist resources from *
* datasource <queue connection factory> *
* with the Transaction Manager for the *
* current transaction, and threw a *
* ResourceException. *
* *
* J2CA0056I: The Connection Manager *
* received a fatal connection error *
* from the Resource Adaptor for *
* resource <name>. The exception *
* which was received is *
* javax.jms.JMSException: *
* Enlist failed *
* *
* *
* the message-driven beans (MDBs) named *
* in the errors stop receiving messages, *
* and the application server hangs when *
* shutting down. *
* *
* This problem only occurs if the MDBs *
* named in the errors are using *
* Listener Ports that have their *
* Maximum sessions property set to the *
* value 1. *
****************************************************************
* RECOMMENDATION: *
****************************************************************
The reason for both the hang and the failure to stop the
listener port is because a deadlock condition has been
reached.
Initially, a queue agent detects a new message has arrived
on a destination, gets a server session from the
application server's Server Session Pool, loads the message
into the server session and then invokes the MDB using
this session. It then carries on monitoring the queue. If it
detects a new message almost immediately, it will try to get
a new Server Session from the Server Session Pool. If there
is a free session in the pool, then the agent gets the
session, loads the message into it, and invokes the MDB.
The problem occurs if all of the server sessions in the pool
are currently being used - in this case, the queue agent will
block until a session is put back in the pool.
In the meantime, the MDB has attempted to process the first
message, but has been unable to enlist the required queue
resource into the global transaction that will be used to
process the message. It will roll back the message, and stop
and close the connection between the application server and
the queue manager. While stopping the connection, the
application server will try to close the queue agent
associated with the listener port. However, the queue agent
is blocked waiting for a server session to be put back in the
server session pool, but all of the active server sessions
have hit the connection problem and are trying to stop
the connection.
Problem conclusion
To get around this problem, the order in which various
operations are performed following the Enlist failure has
been changed. This new sequence allows the Enlist error to be
processed without the deadlock being reached.
The fix for this APAR is currently targeted for inclusion
in Cumulative Fix 11 for WebSphere Application Server Version
5.0.2, Cumulative Fix 4 for WebSphere Application Server
Version 5.1.1 and Cumulative Fix 3 for WebSphere Application
Server Version 6.0.0. Please refer to the Recommended Updates
page for delivery dates:
http://www-1.ibm.com/support/
docview.wss?rs=180&context=SSEQTP&uid=swg27004980
Temporary fix Comments
APAR information |
APAR number |
PK00582 |
Reported component name |
WAS BASE 5.0 |
Reported component ID |
5630A3600 |
Reported release |
00S |
Status |
CLOSED PER |
PE |
NoPE |
HIPER |
NoHIPER |
Special Attention |
NoSpecatt |
Submitted date |
2005-02-03 |
Closed date |
2005-03-09 |
Last modified date |
2005-03-09 |
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
Publications Referenced
Applicable component levels |
R003 PSY |
UP |
R00A PSY |
UP |
R00H PSY |
UP |
R00I PSY |
UP |
R00P PSY |
UP |
R00S PSY |
UP |
R00W PSY |
UP |
R103 PSY |
UP |
R10A PSY |
UP |
R10H PSY |
UP |
R10I PSY |
UP |
R10P PSY |
UP |
R10S PSY |
UP |
R10W PSY |
UP |
|