Tomcat连接池,连接超时

时间:2017-08-16 07:00:04

标签: tomcat7 connection-pooling

我在tomcat 7.0.65上运行了一个应用程序,并使用org.apache.tomcat.jdbc.pool.DataSource

我有连接池设置:

PoolProperties p = new PoolProperties();
    p.setUrl("jdbc:oracle:thin:@....");
    p.setDriverClassName("oracle.jdbc.OracleDriver");
    p.setUsername("***");
    p.setPassword("***");
    p.setJmxEnabled(true);
    p.setTestWhileIdle(false);
    p.setTestOnBorrow(true);
    p.setValidationQuery("SELECT 1 from dual");
    p.setTestOnReturn(false);
    p.setValidationInterval(30000);
    p.setTimeBetweenEvictionRunsMillis(30000);
    p.setMaxActive(100);
    p.setInitialSize(10);
    p.setMaxWait(10000);
    p.setRemoveAbandonedTimeout(60);
    p.setMinEvictableIdleTimeMillis(30000);
    p.setMinIdle(10);
    p.setLogAbandoned(true);
    p.setRemoveAbandoned(true);
    p.setName("jdbc/insurancePool");
    DataSource asyncDS = new DataSource(p);

每天当我尝试运行应用程序时,我会在前几次尝试中获得连接超时异常。我不确定为什么会这样。防火墙与此有关吗?

2 个答案:

答案 0 :(得分:0)

问题已解决,发现此链接有用Firewall Issues

我将“minIdle”更改为0,并将sqlnet.ora文件中的sqlnet.expire_time参数设置为0 ..

希望这有助于其他人..

答案 1 :(得分:0)

我每天早上都遇到与MySql相同的问题。然后我发现autoReconnect参数可以与JDBC URL一起使用来解决这个问题。

例如:

MYSQL_URL=jdbc:mysql://10.*.*.0:3306/ABC?autoReconnect=true