cancel
Showing results for 
Search instead for 
Did you mean: 

Update via JDBC blocks

thomas_huebner2
Explorer
0 Kudos

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

Accepted Solutions (0)

Answers (1)

Answers (1)

thomas_huebner2
Explorer
0 Kudos

Hey guys,

no hnts where such a behavior can have its origin? Any kind of hint is highly appreciated. What could maybe cause such kind of blockings that this update never comes back?

What else do you need to analyze it?

Chris