Skip to Content
0
Former Member
Apr 29, 2009 at 12:50 PM

communication hangs on Vwait

57 Views

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