PK02976; 5.1.1.3: JAVA Message service listener port
deadlock
Downloadable files
Abstract
JAVA Message service listener port deadlock after queue
manager restart.
Download Description
PK02976 resolves the following problem:
ERROR DESCRIPTION:
After the Queue Manager is restarted, the JMS listener port is jammed
resulting in a deadlock situation.
There seems to be a problem with the messagingImpl.jar file in the classes
directory.
LOCAL FIX:
There seems to be a problem in the messagingImpl.jar file in the classes
directory. A new version of messagingImpl.jar was created, which has
resolved this issue for the customer.
PROBLEM SUMMARY:
USERS AFFECTED:
This problem affects customers who use the Java Message Service (JMS)
functionality provided with WebSphere Application Server Version 5.0.2 and
5.1.1.
PROBLEM DESCRIPTION:
After a Queue Manager restart, the following error messages appear in the
WebSphere Application Server system log :
JMSExceptionL E WMSG0018E: Error on JMSConnection for MDB merctopicMDBBean
, JMSDestination
jms/MERC.JMS.TOPIC : javax.jms.JMSException: MQJMS2002: failed to get
message from MQ queue
at com.ibm.mq.jms.services. ConfigEnvironment.newException
(ConfigEnvironment.java(Inlined Compiled Code))
at com.ibm.mq.jms.MQQueueAgentThread. browse
(MQQueueAgentThread.java(Compiled Code)) at
com.ibm.mq.jms.MQQueueAgentThread.run (MQQueueAgentThread.java(Compiled
Code))
at java.lang.Thread.run(Thread.java:568)
RECOMMENDATION:
In this situation, we have two threads involved in a Deadlock situation on
a synchronized set within the code. As part of the Listener shutdown
process, the JMSManagedConnection code locks a synchronized set which has
a list of registered connections event listeners. After obtaining a lock,
the JMSManagedConnection code calls in to our JCA code which in turn tries
to reference the already locked synchronized set. Thus the two threads
wait for each other in a deadlock.
PROBLEM CONCLUSION:
To get around this problem, we create a copy of the synchronised set and
allow one thread to work on the copy of the freeing the threads from a
deadlock situation.
The fix for this APAR is currently targeted for inclusion in Cumulative
Fix 11 for WebSphere Application Server Version 5.0.2, Cumulative Fix 5
for WebSphere Application Server Version 5.1.1. and Cumulative Fix 2 for
WebSphere Application Server Version 6.0.1.