Hi,

My application uses the Tomcat JDBC pool. While using netstat and tcpdump
to diagnose connection problems I noticed that the client side occasionally
closes a DB connection and opens a new one. That is unexpected based on my
configuration.

        poolProperties.setInitialSize(10);
        poolProperties.setMinIdle(10);
        poolProperties.setMaxActive(100);
        poolProperties.setMaxIdle(100);
        poolProperties.setMaxWait(10000);
        poolProperties.setTimeBetweenEvictionRunsMillis(30000);
        poolProperties.setMinEvictableIdleTimeMillis(30000);
        poolProperties.setTestWhileIdle(false);
        poolProperties.setTestOnBorrow(true);
        poolProperties.setValidationQuery("SELECT 1 AS data");
        poolProperties.setValidationInterval(3);
        poolProperties.setLogValidationErrors(true);
        poolProperties.setTestOnReturn(false);
        poolProperties. maxAge(0);

I would expect the pool size to never shrink based on this configuration.
Well maybe if borrow test fails but no validation errors are being logged.

How can I figure out where close() is being called on the physical DB
connection? I tried writing a JdbcInterceptor but it's disconnected()
method gets called on the PooledConnection, not the physical connection.

Does Tomcat JDBC Pool implement javax.sql.ConnectionEventListener interface?

Thanks you for any help,

-Todd

Reply via email to