2016-04-07 55 views
1

最近、データベースサーバを再起動しなければならず、Tomcatの1人がJNDIリソースに再接続しませんでした。Tomcatがデータベース再起動時にPostgreSQL JDBCプールを再起動する

<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

    は、これが私たちのJNDIリソース定義です。 0_91-b02

  • gcc(Debian 4.9.2-10)によってコンパイルされたx86_64-unknown-linux-gnuのPostgreSQL 9.4.5 4.9.2,64ビット

何が間違っていますか?なぜ自動的に再接続しなかったのですか?

PS:これはおそらくstackoverflowの対クロスフォーラムの質問dbaですが、それは実際には知らない両側面を伴うとしてそれをどこに依頼します。これは、データベース・サーバー上で発生する可能性が

+0

前の質問とは何が違うのですか? http://stackoverflow.com/questions/36139235/tomcat-jdbc-pool-not-reconnecting-after-database-service-restart – Marco

答えて

1

は、ウェブサーバの接続プールが不良またはDBに再接続できなくなることを再起動してください。データベースの再起動(最も簡単な選択)した後、あなたのTomcatインスタンスを再起動できない場合は、テスト削除して、あなたの接続を置き換えるために、あなたの接続プールを構成する必要があります。 Tomcat 8 jdbc-pool guidevalidationQuerytestOnConnecttestWhileIdle属性を参照してください。

+0

私はすでに 'validationQuery'を与えた、ではなく、他の2つの属性 – gvasquez

関連する問題