APAR status
Closed as program error.
Error description
NullPointerException when a connection is released to the
free pool and the pool is queiscing. There will be WTRN0066W
messages logged prior to the NullPointerException.
.
An application closes or releases a connection and it gets
either a NullPointerException or a J2CA0079E error with a
stack like follows:
■1/20/05 13:05:31:795 EST 67b571b0 MCWrapper E J2CA0079E:
Method getConnectionManager has detected an internal illegal
state and is throwing an IllegalStateException. The exception
is: java.lang.IllegalStateException: ConnectionManager is null
at
com.ibm.ejs.j2c.MCWrapper.getConnectionManager(MCWrapper.java(Co
mpiled Code))
at
com.ibm.ejs.j2c.ConnectionEventListener.connectionClosed(Connect
ionEventListener.java(Compiled Code))
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.processConne
ctionClosedEvent(WSRdbManagedConnectionImpl.java(Compiled Code))
at
com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.closeWrapper(WSJdbcCo
nnection.java(Compiled Code))
at
com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java(C
ompiled Code))
OR for an MQ connection
java.lang.NullPointerException
com.ibm.ejs.j2c.LocalTransactionWrapper.afterCompletionCode 711
Exception = java.lang.NullPointerException
Source =
com.ibm.ejs.j2c.LocalTransactionWrapper.afterCompletionCode
probeid = 711
Stack Dump = java.lang.NullPointerException
at null.null(Unknown Source)
at
com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.j
ava(Comp
iled Code))
at
com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java
(Compiled Code))
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager
(MCWrapper.java(Compiled Code))
when the connection is released to the free pool.
Local fix Problem summary
****************************************************************
* USERS AFFECTED: WebSphere Application Server users of JMS *
* Sessions. *
****************************************************************
* PROBLEM DESCRIPTION: A Null Pointer Exception can occur if *
* a JMS Session pool is quiesced while *
* its JMS Session are still reserved *
* for use in the transaction. *
****************************************************************
* RECOMMENDATION: *
****************************************************************
If a JMS specific quiesce method is invoked on a JMS Session
Pool, but the transction(s) that the sessions were used in has
(have) not completed, we would throw a NullPointerException.
This would happen because the Session Pool would have been
removed, but the connections were waiting for the transaction
to complete.
This APAR prevents the pool from quiescing
before the Sessions are returned to the pool.
Problem conclusion
We will now only quiesce after all the connections have been
destroyed. If there are any outstanding connections when the
pool is attempted to be quiesced we spawn a thread that waits
for the connections to be returned to the pool (usually when
the transaction ends), and then removes the pool.
Temporary fix Comments
APAR information |
APAR number |
PQ84398 |
Reported component name |
WAS BASE 5.0 |
Reported component ID |
5630A3600 |
Reported release |
10I |
Status |
CLOSED PER |
PE |
NoPE |
HIPER |
NoHIPER |
Special Attention |
NoSpecatt |
Submitted date |
2004-02-09 |
Closed date |
2004-04-05 |
Last modified date |
2005-01-21 |
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 |
|