2017-08-16 181 views
0

我在Tomcat 7.0.65上運行,並使用應用程序org.apache.tomcat.jdbc.pool.DataSourceTomcat的連接池,連接超時

我有連接池設置:

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); 

每天當我嘗試運行應用程序,我得到第一次嘗試的連接超時例外。我不知道爲什麼會發生這種情況。防火牆與此有關嗎?

+0

什麼是數據源?你在使用什麼連接池? – user7294900

+0

org.apache.tomcat.jdbc.pool.DataSource – zDroid

+1

嘗試添加setIgnoreExceptionOnPreLoad(false);並添加堆棧跟蹤到問題 – user7294900

回答

0

我每天早上都對MySql有同樣的問題。然後我發現autoReconnect參數可以用於JDBC URL來解決這個問題。

例如:

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

解決的問題,發現這個鏈接有用Firewall Issues

我改變「minIdle」爲0,並設置sqlnet.expire_time參數sqlnet.ora文件,以0 ..

希望這可以幫助其他人。 。