Hi all,
i get again the blocked threads, but now maybe i found some reason, using:
x_cons DBNAME sh ac 1 i get:
SERVERDB: DBNAME T115 7 -1 User 0* Vwait 0 0 187962245(s) T121 7 -1 User 0* Vwait 0 0 187962245(s) T125 7 -1 User 0* Vwait 0 0 187962245(s) T142 7 -1 User 0* Vwait 0 0 187962245(s) T193 7 -1 User 0* Vwait 0 0 187962245(s) T214 7 -1 User 0* Vwait 0 0 187962245(s) T222 7 -1 User 0* Vwait 0 0 187962245(s) T239 8 -1 User 0* Vwait 0 0 191206909(s) T252 8 -1 User 0* Vwait 0 0 191206909(s) T257 8 -1 User 0* Vwait 0 0 191206909(s) T276 8 -1 User 0* Vwait 0 0 191206909(s) T287 8 -1 User 0* Vwait 0 0 191206909(s) T304 8 -1 User 0* Vwait 0 0 191206909(s) T312 8 -1 User 0* Vwait 0 0 191206909(s) T324 8 -1 User 0* Vwait 0 0 191206909(s) T335 8 -1 User 0* Vwait 0 0 191206909(s) T360 9 -1 User 0* Vwait 0 0 192723529(s) T388 9 -1 User 0* Vwait 0 0 192723529(s) T400 9 -1 User 0* Vwait 0 0 192723529(s) T418 9 -1 User 0* Vwait 0 0 192723529(s) T459 9 -1 User 0* Vwait 0 0 192723529(s) T466 9 -1 User 0* Vwait 0 0 192723529(s) T475 10 -1 User 0* Vwait 0 0 185005529(s) T486 10 -1 User 0* Vwait 0 0 185005529(s) T493 10 -1 User 0* Vwait 0 0 185005529(s) T497 10 -1 User 0* Vwait 0 0 185005529(s) T503 10 -1 User 0* Vwait 0 0 185005529(s) T505 10 -1 User 0* Vwait 0 0 185005529(s) T507 10 -1 User 0* Vwait 0 0 185005529(s) T513 10 -1 User 0* Vwait 0 0 185005529(s) T531 10 -1 User 0* Vwait 0 0 185005529(s) T532 10 -1 User 0* Vwait 0 0 185005529(s) T534 10 -1 User 0* Vwait 0 0 185005529(s) T549 10 -1 User 0* Vwait 0 0 185005529(s) T561 10 -1 User 0* Vwait 0 0 185005529(s) T575 10 -1 User 0* Vwait 0 0 185005529(s) T582 10 -1 User 0* Vwait 0 0 185005529(s) T584 10 -1 User 0* Vwait 0 0 185005529(s)
checking Server side i get the Stack that is waiting on socketRead that blocks the Finalizer:
"http-80-10" daemon prio=10 tid=0x0000002af5750800 nid=0x7b9b runnable [0x000000004b853000..0x000000004b854c30] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at com.sap.dbtech.rte.comm.BasicSocketComm.receiveData(BasicSocketComm.java:577) at com.sap.dbtech.rte.comm.BasicSocketComm.receive(BasicSocketComm.java:666) at com.sap.dbtech.rte.comm.JdbcCommunication.execute(JdbcCommunication.java:41) at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:536) - locked <0x0000002aa7c55c60> (a com.sap.dbtech.jdbc.ConnectionSapDB) at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:461) at com.sap.dbtech.jdbc.CallableStatementSapDB.execute(CallableStatementSapDB.java:441) at com.sap.dbtech.jdbc.CallableStatementSapDB.execute(CallableStatementSapDB.java:313) at com.sap.dbtech.jdbc.CallableStatementSapDB.executeUpdate(CallableStatementSapDB.java:778) at com.sap.dbtech.jdbc.trace.PreparedStatement.executeUpdate(PreparedStatement.java:81) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102) at org.exolab.castor.jdo.engine.SQLEngine.create(SQLEngine.java:616) at org.exolab.castor.jdo.engine.SQLEngine.create(SQLEngine.java:536) at org.exolab.castor.jdo.engine.SQLEngine.create(SQLEngine.java:536) at org.exolab.castor.persist.ClassMolder.create(ClassMolder.java:891) at org.exolab.castor.persist.LockEngine.create(LockEngine.java:458) at org.exolab.castor.persist.TransactionContext.create(TransactionContext.java:803) - locked <0x0000002aa9dfbd38> (a org.exolab.castor.jdo.engine.TransactionContextImpl) at org.exolab.castor.jdo.engine.DatabaseImpl.create(DatabaseImpl.java:338) at com.supridatta.bean.DataPersist.gravar(DataPersist.java:215)
and here is the Finalizer BLOCKED:
"Finalizer" daemon prio=10 tid=0x0000002af1e04800 nid=0x4a5a waiting for monitor entry [0x0000000041531000..0x0000000041531c30] java.lang.Thread.State: BLOCKED (on object monitor) at com.sap.dbtech.jdbc.StatementSapDB.closeResultSet(StatementSapDB.java:189) - waiting to lock <0x0000002aa7c55c60> (a com.sap.dbtech.jdbc.ConnectionSapDB) at com.sap.dbtech.jdbc.StatementSapDB.close(StatementSapDB.java:174) at com.sap.dbtech.jdbc.CallableStatementSapDB.close(CallableStatementSapDB.java:2325) at com.sap.dbtech.jdbc.trace.PreparedStatement.close(PreparedStatement.java:637) at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.close(DelegatingStatement.java:168) at org.exolab.castor.jdo.engine.SQLEngine$SQLQuery.close(SQLEngine.java:1675) at org.exolab.castor.persist.QueryResults.close(QueryResults.java:241) at org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.close(OQLQueryImpl.java:676) at org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.finalize(OQLQueryImpl.java:685) at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method) at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83) at java.lang.ref.Finalizer.access$100(Finalizer.java:14) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160) Locked ownable synchronizers: - None
anyway to check what causes that Vwait, but a way to check just when that occurs, because i cant manage to create or simulate that problem, that just occurs in a random time, maybe occurs one per week, one per month, etc...
any idea are welcome.
best regards
Clóvis