PQ60433: CONNECTION MANAGER PROBLEM INTRODUCED BY PQ52986 | |||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||
APAR status Closed as program error. Error description Connection Manager problem introduced by PQ52986. . Per Harmon Pierce: . What is happening is this :- . ConnectionProxy.prepareStatement() is called . This calls Proxy.__preInvoke() which marks the proxy as busy (proxyInUse = Boolean.TRUE) . The ConnectO.prepareStatement() is executed and driven down to DB2. . A SQLException is returned from DB2 to say the TCP/IP connection has gone. . translateException() is called. This identifies the stale connection and attempts to purge the connection pool. . JTAConnectO.JTADestroy() is called. This calls JTSXA.delist() which calls TransactionImpl.delistResource, which calls XARminst.endAssociation(). . JTS attempts to end the XA connection, but receives an XA Exception (XA_RBROLLBACK), which is an acceptable exception to receive. . JTS calls rollback_only() on the coordinator. This action drives a number of call backs one of which is ConnectO.afterCompletion(). . afterCompletion() calls ConnectionProxy.connectionTXComplete(), which calls ConnectionProxy.RBClose(), which calls Proxy.close(). . Proxy.close() checks if proxyInUse == Boolean.TRUE. It is because __postInvoke has not yet been driven and the Thread proceeds to wait() for it to complete. . It will wait forever because its this Thread that would have eventually driven __postComplete when the connection was reset.Local fix Problem summary **************************************************************** * USERS AFFECTED: WebSphere Application Server users of DB2 * * and XAConnection. * **************************************************************** * PROBLEM DESCRIPTION: Connection hangs were seen after a * * StaleConnectionException occurred. * **************************************************************** * RECOMMENDATION: * **************************************************************** Applications using DB2 XAConnection (with JTA enabled) will hang if stale connection exception occurs during use of connection.Problem conclusion During the destroy processing, the connection was being marked destroyed after the delist was called on the transaction component. The code was changed to mark the connection destroyed before delist is called.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: PQ59983 APAR is sysrouted TO one or more of the following: Modules/Macros
|
Document Information |
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server > General
Operating system(s):
Software version: 400
Software edition:
Reference #: PQ60433
IBM Group: Software Group
Modified date: Apr 23, 2002
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.