2016-04-07 112 views
1

最近我們不得不重新啓動數據庫服務器(是的,一個生產版本),其中一個Tomcats沒有重新連接到JNDI資源。Tomcat在數據庫重新啓動時不重新連接PostgreSQL JDBC池

這是我們的JNDI資源定義:

<Resource name="jdbc/postgres" auth="Container" 
      type="javax.sql.DataSource" 
      driverClassName="org.postgresql.Driver" 
      url="jdbc:postgresql://10.1.0.104:5432/db" 
      username="******" password="*****" 
      maxTotal="30" maxIdle="5" maxWaitMillis="10000" 
      logAbandoned="true" removeAbandonedOnBorrow="true" 
      removeAbandonedOnMaintenance="true" 
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
      validationQueryTimeout="5" validationQuery="select 1" 
      testOnBorrow="true" /> 

軟件版本:

  • 的Debian GNU/Linux的8.2(傑西)
  • 的Apache Tomcat/8.0.14
  • OpenJDK的1.7。 0_91-b02
  • x86_64-unknown-linux-gnu上的PostgreSQL 9.4.5,由gcc編譯(Debian 4.9.2-10)4.9.2,64位

什麼可能是錯的?爲什麼它沒有自動重新連接?

PS:這可能是一個跨論壇的問題dba vs stackoverflow,但是因爲它涉及到雙方都不知道在哪裏問它。

+0

與以前的問題有什麼不同? http://stackoverflow.com/questions/36139235/tomcat-jdbc-pool-not-reconnecting-after-database-service-restart – Marco

回答

1

在數據庫服務器重新啓動時,可能會發生Web服務器連接池出現故障或無法重新連接到數據庫的情況。如果在數據庫重新啓動(最簡單的選擇)後無法重新啓動Tomcat實例,則應該配置連接池以測試,刪除和替換連接。 請參閱Tomcat 8 jdbc-pool guide中的validationQuerytestOnConnecttestWhileIdle屬性。

+0

我已經給了'validationQuery',但不是其他2個屬性 – gvasquez

相關問題