APAR status
Closed as program error.
Error description
If an Integration Server is deployed with two or more message flows which require JDBC connection to two different Database servers then a deadlock situation can occur. The deadlock is observed only if both the flows process the first input message at the same time and invoked getJDBCType4Connection() API simultaneously. A javacore during the deadlock situation shows 2 threads with following call stack at the top : Thread 1 : 3XMTHREADBLOCK Waiting on: java/lang/J9VMInternals$ClassInitializationLock@0x00000000E1C6FD F0 Owned by: <unowned> 3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0) 3XMTHREADINFO3 Java callstack: 4XESTACKTRACE at java/lang/J9VMInternals.newInstanceImpl(Native Method) 4XESTACKTRACE at java/lang/Class.newInstance(Class.java:1887(Compiled Code)) 4XESTACKTRACE at java/util/ServiceLoader$LazyIterator.next(ServiceLoader.java:385 ) 4XESTACKTRACE at java/util/ServiceLoader$1.next(ServiceLoader.java:457) 4XESTACKTRACE at java/sql/DriverManager$2.run(DriverManager.java:522) 4XESTACKTRACE at java/sql/DriverManager$2.run(DriverManager.java:502) 4XESTACKTRACE at java/security/AccessController.doPrivileged(AccessController.jav a:396(Compiled Code)) 4XESTACKTRACE at java/sql/DriverManager.loadInitialDrivers(DriverManager.java:502 ) 4XESTACKTRACE at java/sql/DriverManager.<clinit>(DriverManager.java:112) 4XESTACKTRACE at com/ibm/as400/access/AS400JDBCDriver.<clinit>(AS400JDBCDriver.ja va:143) 4XESTACKTRACE at java/lang/J9VMInternals.newInstanceImpl(Native Method) 4XESTACKTRACE at java/lang/Class.newInstance(Class.java:1887(Compiled Code)) 4XESTACKTRACE at com/ibm/broker/jdbctype4/jdbcdbasemgr/JDBCType4Connection.create NonXAConnection(JDBCType4Connection.java:340) Thread 2 : 3XMTHREADBLOCK Waiting on: java/lang/J9VMInternals$ClassInitializationLock@0x00000000E1C6FD C0 Owned by: <unowned> 3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0) 3XMTHREADINFO3 Java callstack: 4XESTACKTRACE at com/microsoft/sqlserver/jdbc/SQLServerDriver.<clinit>(SQLServerD river.java:903) 4XESTACKTRACE at java/lang/J9VMInternals.newInstanceImpl(Native Method) 4XESTACKTRACE at java/lang/Class.newInstance(Class.java:1887(Compiled Code)) 4XESTACKTRACE at com/ibm/broker/jdbctype4/jdbcdbasemgr/JDBCType4Connection.create NonXAConnection(JDBCType4Connection.java:340)
Local fix
Problem summary
**************************************************************** USERS AFFECTED: All users of IBM Integration Bus V10.0 with JDBC connections to multiple JDBC providers. Platforms affected: z/OS, MultiPlatform **************************************************************** PROBLEM DESCRIPTION: If an Integration Server is deployed with two or more message flows which require JDBC connection to two different Database servers then a deadlock situation can occur. The deadlock is observed only if both the flows process the first input message at the same time and invoked getJDBCType4Connection() API simultaneously. A javacore during the deadlock situation shows 2 threads with following call stack at the top : Thread 1 : 3XMTHREADBLOCK Waiting on: java/lang/J9VMInternals$ClassInitializationLock@0x00000000E1C6FD F0 Owned by: <unowned> 3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0) 3XMTHREADINFO3 Java callstack: 4XESTACKTRACE at java/lang/J9VMInternals.newInstanceImpl(Native Method) 4XESTACKTRACE at java/lang/Class.newInstance(Class.java:1887(Compiled Code)) 4XESTACKTRACE at java/util/ServiceLoader$LazyIterator.next(ServiceLoader.java:385 ) 4XESTACKTRACE at java/util/ServiceLoader$1.next(ServiceLoader.java:457) 4XESTACKTRACE at java/sql/DriverManager$2.run(DriverManager.java:522) 4XESTACKTRACE at java/sql/DriverManager$2.run(DriverManager.java:502) 4XESTACKTRACE at java/security/AccessController.doPrivileged(AccessController.jav a:396(Compiled Code)) 4XESTACKTRACE at java/sql/DriverManager.loadInitialDrivers(DriverManager.java:502 ) 4XESTACKTRACE at java/sql/DriverManager.<clinit>(DriverManager.java:112) 4XESTACKTRACE at com/ibm/as400/access/AS400JDBCDriver.<clinit>(AS400JDBCDriver.ja va:143) 4XESTACKTRACE at java/lang/J9VMInternals.newInstanceImpl(Native Method) 4XESTACKTRACE at java/lang/Class.newInstance(Class.java:1887(Compiled Code)) 4XESTACKTRACE at com/ibm/broker/jdbctype4/jdbcdbasemgr/JDBCType4Connection.create NonXAConnection(JDBCType4Connection.java:340) Thread 2 : 3XMTHREADBLOCK Waiting on: java/lang/J9VMInternals$ClassInitializationLock@0x00000000E1C6FD C0 Owned by: <unowned> 3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0) 3XMTHREADINFO3 Java callstack: 4XESTACKTRACE at com/microsoft/sqlserver/jdbc/SQLServerDriver.<clinit>(SQLServerD river.java:903) 4XESTACKTRACE at java/lang/J9VMInternals.newInstanceImpl(Native Method) 4XESTACKTRACE at java/lang/Class.newInstance(Class.java:1887(Compiled Code)) 4XESTACKTRACE at com/ibm/broker/jdbctype4/jdbcdbasemgr/JDBCType4Connection.create NonXAConnection(JDBCType4Connection.java:340)
Problem conclusion
The product no longer results in a deadlock situation when creating JDBC connections to multiple JDBC providers simultaneously. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v10.0 10.0.0.11 The latest available maintenance can be obtained from: http://www-01.ibm.com/support/docview.wss?rs=849&uid=swg27006041 If the maintenance level is not yet available,information on its planned availability can be found on: http://www-1.ibm.com/support/docview.wss?rs=849&uid=swg27006308 ---------------------------------------------------------------
Temporary fix
Comments
APAR Information
APAR number
IT20591
Reported component name
INTEGRATION BUS
Reported component ID
5724J0540
Reported release
A00
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-05-15
Closed date
2017-11-28
Last modified date
2017-11-28
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
INTEGRATION BUS
Fixed component ID
5724J0540
Applicable component levels
RA00 PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSNQK6","label":"IBM Integration Bus"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
23 March 2020