Hi,
again, my tomcat freezes today, and i must stop/start tomcat to get new connections:
i checked MaxDB server and a Running thread causes Timer to block.
the output of command show t_cnt of the running maxdb thread is:
-------------------- T270 USER ( pid = 0 ) --------------- remote_node : 192.168.99.1 remote_pid : 0 dispatcher_cnt: 618065 command_cnt : 99418 exclusive_cnt : 1035660104 self_susp_cnt : 4 Resume count 0 total 155 History [ T2 T2 T2 ] dev_read_io : 177 dev_read_pg : 177 state_vwait : 0 state_vsleep : 45 state_vsusp : 144 rcv_rpl_count : 99418 rcv_rpl_long : 0 avg_rcv_rpl_t : 0.0000 dev_que_len_0 : 177 dev_que_len_1 : 0 dev_que_len>1 : 0 prio_total : 2 prio_from_oth : 2 -------------------------------------------------------------------------------
some of the java blocked thread example is:
"http-80-173" daemon prio=10 tid=0x0000000043edd000 nid=0x7ce8 waiting for monitor entry [0x000000005564c000..0x000000005564da90] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:917) - waiting to lock <0x00002aaab91895b0> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at org.exolab.castor.jdo.engine.DatabaseRegistry.createConnection(DatabaseRegistry.java:399) at org.exolab.castor.jdo.engine.TransactionContextImpl.getConnection(TransactionContextImpl.java:203) at org.exolab.castor.persist.TransactionContext.query(TransactionContext.java:644) - locked <0x00002aab12f5a5d8> (a org.exolab.castor.jdo.engine.TransactionContextImpl) at org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:458) at org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:414) at com.supridatta.bean.DataPersist.consulta(DataPersist.java:536) at com.supridatta.servlet.SupridattaServlet.doConsultarControl(SupridattaServlet.java:730) at com.supridatta.servlet.SupridattaServlet$9.resolve(SupridattaServlet.java:294) at com.supridatta.servlet.SupridattaServlet.processaOperacao(SupridattaServlet.java:144) at com.supridatta.servlet.SupridattaServlet.doAppletControl(SupridattaServlet.java:114) at com.supridatta.servlet.SupridattaServlet.service(SupridattaServlet.java:1747) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:183) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
like this exists about 189 java blocked threads all waiting for this one:
"Timer-4" daemon prio=10 tid=0x0000000043ae7000 nid=0x51b3 runnable [0x0000000042128000..0x0000000042128b10] 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 <0x00002aaabce3bc80> (a com.sap.dbtech.jdbc.ConnectionSapDB) at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:461) at com.sap.dbtech.jdbc.ConnectionSapDB.isClosed(ConnectionSapDB.java:746) at com.sap.dbtech.jdbc.trace.Connection.isClosed(Connection.java:400) at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.isClosed(DelegatingConnection.java:346) at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:324) at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.validateObject(PoolableConnectionFactory.java:312) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.evict(GenericObjectPool.java:1217) - locked <0x00002aaab91895b0> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$Evictor.run(GenericObjectPool.java:1341) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Locked ownable synchronizers: - None
then seeing all this appears that com.sap.dbtech.jdbc.ConnectionSapDB.isClosed(ConnectionSapDB.java:746) do something that blocks all connections, but i cant understand if T270 is related to this Timer-4 java thread.
any idea?