one of two of the hanging applications are doing db connection validation.

The application using DBCP configures it's SharedPoolDataSource using

            setValidationQuery("select 'validationQuery' from dual");
            setTestOnBorrow(true);

Funny enough, thread stacktrace below shows thread hung when doing
validation query sitting on socket read.  Other application not using
DBCP and not using connection validation query hangs on socket read
just the same.  Web server lives in DMZ crosses firewall to get to
database, I'm going to start accusing the network guys of crushing my
connections on firewall.  Not sure why validation query is not saving
me in this instance.

Thread stacktrace showing runnable thread sitting on socket read while
trying to do connection validation query
"catalina-exec-company1-2" daemon prio=10 tid=0x000000004bf5b800
nid=0x41a2 runnable [0x0000000042be1000]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at oracle.net.ns.Packet.receive(Packet.java:293)
        at oracle.net.ns.DataPacket.receive(DataPacket.java:92)
        at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:174)
        at oracle.net.ns.NetInputStream.read(NetInputStream.java:119)
        at oracle.net.ns.NetInputStream.read(NetInputStream.java:94)
        at oracle.net.ns.NetInputStream.read(NetInputStream.java:79)
        at 
oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:112)
        at 
oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:73)
        at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1040)
        at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1016)
        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:588)
        at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
        at 
oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:780)
        at 
oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:855)
        at 
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1187)
        at 
oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1378)
        - locked <0x00002aaad1f64df8> (a oracle.jdbc.driver.T4CConnection)
        at 
oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:387)
        at 
org.apache.commons.dbcp.datasources.KeyedCPDSConnectionFactory.validateObject(KeyedCPDSConnectionFactory.java:163)
        at 
org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:837)
        - locked <0x00002aaace878d18> (a
org.apache.commons.pool.impl.GenericKeyedObjectPool)
        at 
org.apache.commons.dbcp.datasources.SharedPoolDataSource.getPooledConnectionAndInfo(SharedPoolDataSource.java:165)
        - locked <0x00002aaaced306f8> (a
org.apache.commons.dbcp.datasources.SharedPoolDataSource)
        at 
org.apache.commons.dbcp.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:631)
        at 
org.apache.commons.dbcp.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:615)
        at 
com.mycompany.db.ConnectionHandler.getConnection(ConnectionHandler.java:150)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to