Hey guys,
I'm running MaxDB 7.7.07.48 (same behaviour than with 7.7.06.xx).My application uses the JDBC-driver to connect. (I also tested with a 7.9.x.y JDBC driver with the same behaviour.)
My application does a quite big ammount of updates per second. Depending on the system few hundreds per second.
From time to time one of these updates blocks and as you can imagine this is quite bad for my applicatoin. I don't know why and what are the circumstances of the block. Maybe you guys have an idea.
Here it#s a WORKING update from the trace file:
---- Thread 43b9fa5e [f@627346b4, Instance=[6]] Timestamp: 2014-10-16 23:20:16.756
com.sap.dbtech.jdbc.ConnectionSapDB@672586a0[T228].createStatement ()
=> com.sap.dbtech.jdbc.StatementSapDB@6b1ea71f[T228]
com.sap.dbtech.jdbc.StatementSapDB@6b1ea71f[T228].close ()
com.sap.dbtech.jdbc.ConnectionSapDB@672586a0[T228].prepareStatement (update s_entity set status=? where (ETYID=?))
=> com.sap.dbtech.jdbc.CallableStatementSapDB@7bb977a5[T228][ParseID 0017e8790000080154000000]
com.sap.dbtech.jdbc.CallableStatementSapDB@7bb977a5[T228][ParseID 0017e8790000080154000000].setInt (1, 0)
com.sap.dbtech.jdbc.CallableStatementSapDB@7bb977a5[T228][ParseID 0017e8790000080154000000].setLong (2, 4611967493409773250)
com.sap.dbtech.jdbc.CallableStatementSapDB@7bb977a5[T228][ParseID 0017e8790000080154000000].executeUpdate ()
=> 1
com.sap.dbtech.jdbc.CallableStatementSapDB@7bb977a5[T228][ParseID 0017e8790000080154000000].close ()
BUT NOW have a look to the blocking one:
---- Thread 43b9fa5e [f@627346b4, Instance=[6]] Timestamp: 2014-10-16 23:20:16.758
com.sap.dbtech.jdbc.ConnectionSapDB@672586a0[T228].createStatement ()
=> com.sap.dbtech.jdbc.StatementSapDB@3f63d7c2[T228]
com.sap.dbtech.jdbc.StatementSapDB@3f63d7c2[T228].close ()
com.sap.dbtech.jdbc.ConnectionSapDB@672586a0[T228].prepareStatement (update s_entity set status=? where (ETYID=?))
=> com.sap.dbtech.jdbc.CallableStatementSapDB@5062a4b7[T228][ParseID 0017e8790000080154000000]
com.sap.dbtech.jdbc.CallableStatementSapDB@5062a4b7[T228][ParseID 0017e8790000080154000000].setInt (1, 0)
com.sap.dbtech.jdbc.CallableStatementSapDB@5062a4b7[T228][ParseID 0017e8790000080154000000].setLong (2, 4611967493409812678)
com.sap.dbtech.jdbc.CallableStatementSapDB@5062a4b7[T228][ParseID 0017e8790000080154000000].executeUpdate ()
It just stops and nothing more happens.
The related code looks like:
pStmt = connection.prepareStatement("update s_entity set status=? where (ETYID=?)");
pStmt.setInt(1, status);
pStmt.setLong(2, ID);
errorCode = (pStmt.executeUpdate() == 0) ? ERR_CORE_DB_INSERT : errorCode;
pStmt.close();
So as you can see the executeUpdate just never returns and is therefore the reason of the block.
So you have ANY IDEA or hint where to search. I really don#t have an idea what to do.
Thanks a lot, guys,
Chris