Java-level Deadlock [message #325901] |
Mon, 09 June 2008 07:57 |
fryder
Messages: 1 Registered: June 2008 Location: MA
|
Junior Member |
|
|
Hi,
We have an eCommerce Java application (running WebSphere .0.2.25) which uses JDBC to communicate with an Oracle database. We are seeing cases where the JVM memory starts to increase significantly and eventually has to be restarted. When we perform a threaddump we get the following java-level deadlock
Thread 1
"JDBCNonBlockingConnectionHelper":
at oracle.jdbc.ttc7.TTC7Protocol.close(TTC7Protocol.java:667)
- waiting to lock <0x8554cd40> (a oracle.jdbc.ttc7.TTC7Protocol)
at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:700)
- locked <0x86c182b8> (a oracle.jdbc.driver.OraclePreparedStatement)
- locked <0x85527620> (a oracle.jdbc.driver.OracleConnection)
at oracle.jdbc.driver.OraclePreparedStatement.privateClose(OraclePreparedStatement.java:489)
at oracle.jdbc.driver.OraclePreparedStatement.close(OraclePreparedStatement.java:396)
- locked <0x86c182b8> (a oracle.jdbc.driver.OraclePreparedStatement)
- locked <0x85527620> (a oracle.jdbc.driver.OracleConnection)
at oracle.jdbc.driver.OracleConnection.close_statements(OracleConnection.java:2369)
- locked <0x85527620> (a oracle.jdbc.driver.OracleConnection)
at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1448)
- locked <0x85527620> (a oracle.jdbc.driver.OracleConnection)
at com.sita.ats.dbbroker.jdbc.JDBCNonBlockingConnectionHelper.run(JDBCNonBlockingConnectionHelper.java:167)
Thread 2
"WebContainer : 6":
at oracle.jdbc.driver.OracleConnection.needLine(OracleConnection.java:2389)
- waiting to lock <0x85527620> (a oracle.jdbc.driver.OracleConnection)
at oracle.jdbc.ttc7.TTC7Protocol.lobRead(TTC7Protocol.java:2547)
- locked <0x8554cd40> (a oracle.jdbc.ttc7.TTC7Protocol)
at oracle.sql.LobDBAccessImpl.getChars(LobDBAccessImpl.java:607)
- locked <0x86348d80> (a oracle.sql.LobDBAccessImpl)
at oracle.sql.CLOB.getChars(CLOB.java:456)
at oracle.jdbc.driver.OracleClobReader.needChars(OracleClobReader.java:208)
at oracle.jdbc.driver.OracleClobReader.read(OracleClobReader.java:163)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
- locked <0x9b841200> (a oracle.jdbc.driver.OracleClobReader)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at com.sita.ats.dbbroker.jdbc.JDBCDatabaseRecordHelper.getDatabaseElement(JDBCDatabaseRecordHelper.java:94)
at com.sita.ats.dbbroker.jdbc.oracle.OracleJDBCDatabaseRecordHelper.getDatabaseElement(OracleJDBCDatabaseRecordHelper.java:72)
at com.sita.ats.amtrak.utils.dbbroker.jdbc.oracle.AmtrakOracleJDBCDatabaseRecordHelper.getDatabaseElement(AmtrakOracleJDBCDatabaseRecord Helper.java:113)
I believe the deadlock itself is being caused by a bug in our database libraries, my question is can a deadlock like this cause these kind of memory issues?
Thanks
Fergus
|
|
|
|