APAR status
Closed as program error.
Error description
When the application server is under heavy load, one or more
Message-Driven Beans stop processing messages, and the following
error appears in the SystemOut.log file:
CNTR0020E: Non-application exception occurred while processing
method "onMessage" on bean <MDB Name>. Exception data:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.
nextEntry(HashMap.java(Compiled Code))
at java.util.HashMap$KeyIterator.
next(HashMap.java(Compiled Code))
at com.ibm.ejs.jms.JMSManagedConnection.
toString(JMSManagedConnection.java(Compiled Code))
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: When the Application Server is under *
* heavy load, one or more Message-Driven *
* Beans stop processing messages, and *
* the following error appears in the *
* SystemOut.log file: *
* *
* CNTR0020E: Non-application exception *
* occurred while processing method *
* "onMessage" on bean <MDB name>. *
* Exception data: java.util. *
* ConcurrentModificationException *
* *
****************************************************************
* RECOMMENDATION: *
****************************************************************
The JMSManagedConnection class contains a field
(openConnectionHandles) that is of type synchronizedSet. When
the class attempts to access this field, it needs to do so
within a synchronized code block, to prevent two or more
threads accessing the field at the same time.
The class implements a toString() method that outputs a
string representation of the JMSManagedConnection object.
However, this method did not access the openConnectionHandles
field from within a synchronized code block - when the
Application Server is running under heavy load, it is possible
that two threads are calling the toString() method at the same
time, and are therefore trying to access the SynchronizedSet
object - this is not permitted, resulting in a
java.util.ConcurrentModificationException error being
generated.
Problem conclusion
The JMSManagedConnection's toString() method has been updated
to access the SynchronizedSet object from a synchronized
code block.
Temporary fix Comments
APAR information |
APAR number |
PQ85099 |
Reported component name |
WAS BASE 5.0 |
Reported component ID |
5630A3600 |
Reported release |
10A |
Status |
CLOSED PER |
PE |
NoPE |
HIPER |
NoHIPER |
Special Attention |
NoSpecatt |
Submitted date |
2004-02-24 |
Closed date |
2004-02-25 |
Last modified date |
2004-02-25 |
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 |
|