PQ90337: SQLJ application with AUTO_COMMIT=FALSE many time out messages BBOT0003W in controller and SEC3 RSN=04130005 in the servant. | |||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description Transactions time out: Message BBOT0003W appears in the controller region, and eventually the servant region ends with ABEND SEC3 REASON=04130005. Analysis of the SVCDUMP showed the jdbc driver on one thread had called BPX1TAF to run some code on another thread. The target thread was in the WLM Wait For Work routine. Threads in the Wait For Work routine are not interruptible until they get some work and leave the Wait For Work routine. Since there was no new work being injected into the servant the target thread never ran the code requested by BPX1TAF. The BPX1TAF invoker waited forever, until an OTS timeout occurred. The first few entries of the BPX1TAF caller's stack looked like: 1e0a9f40 126f184e @@FECBBPX1TAF 05bfc248 000000c2 @@GETFN 3593c734 000000be SQLJTAFS 35919750 00000458 sqlj_ctxTakeContext 359175f0 00000b76 sqlj_ctxSetContext 3591c520 000001b2 sqlj_DSNHLILocal fix It is possible to disable DB2's use of BPX1TAF by adding the following statement to the db2sqljjdbc.properties file DB2DISABLETAF=1 -- There is a DB2 performance penalty associated with this workaround.Problem summary **************************************************************** * USERS AFFECTED: All users of WebSphere Application Server * * V5.0 for z/OS * **************************************************************** * PROBLEM DESCRIPTION: The application servant region * * receives an ABENDSEC3, ABENDEC3, * * or ABEND=EC3 with a reason code * * of 04130005 due to an unexpected * * OTS timeout when using the DB2 * * for z/OS Legacy JDBC Driver with * * SQLJ. * **************************************************************** * RECOMMENDATION: * **************************************************************** A WebSphere JDBC connection will ignore explicit calls to commit and rollback if it is detected that no work has been done on the connection since the last commit or rollback was issued. However, WebSphere does not intercept calls to DB2 when the DB2 for z/OS Legacy JDBC Driver is used with SQLJ, and therefore is not made aware when work has been done on the connection. If an application uses a connection with an auto commit setting of false to issue SQLJ and the application then tries to issue an explicit commit or rollback, this call is completely ignored. The result of this is that when the connection is returned to the free pool, it has still not been committed or rolled back and is therefore still associated with a WLM worker thread. If this thread gets suspended and a different thread attempts to use the connection, an OTS timeout will occur. This OTS timeout shows up in the joblog of the application control region as a BBOT0003W warning message and as an ABENDSEC3, ABENDEC3, or ABEND=EC3 of the application servant region with a reason code of 04130005. The transaction that the application explicitly tried to commit or rollback will be resolved by the Transaction Manager.Problem conclusion This problem has been fixed by always allowing application driven commits and rollbacks to flow down to the underlying JDBC driver regardless of whether or not WebSphere detects that work has been done on that connection. APAR PQ90337 is associated with SERVICE LEVEL W502013 of WebSphere Application Server V5.0 for z/OS.Temporary fix Comments
APAR is sysrouted FROM one or more of the following: APAR is sysrouted TO one or more of the following: Modules/Macros
Publications Referenced
|
Document Information |
Current web document: swg1PQ90337.html
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server for z/OS
Operating system(s):
Software version: 500
Software edition:
Reference #: PQ90337
IBM Group: Software Group
Modified date: Oct 7, 2004
(C) Copyright IBM Corporation 2000, 2009. All Rights Reserved.