データベース接続切断の問題を乗り越える方法

When a database server reboots or a network failure has occurred, all connections in the database connection pool are broken. To overcome this issue, Confluence would normally need to be restarted. To avoid this situation Confluence uses a validation query to check a database connection is alive before attempting to use it.  If a broken connection is detected in the pool, a new one is created to replace it.

This validation query is enabled by default on new installations (from Confluence 6.5 and later), but if you've upgraded from an older Confluence version you can enable this manually by following the steps below. 

While there are several different ways to perform this validation query, we recommend letting the database driver choose how to validate if a connection is still alive, rather than overriding the driver configuration with a specific validation query. 


直接 JDBC 接続を使用してバリデーション クエリを有効化する

Confluence がデータベースのコネクションプール内のデータベースコネクションを確実に有効にするには:

  1. Confluence を停止します。 
  2. <home-directory>confluence.cfg.xml ファイルを編集します。
  3. Insert the following property in the <properties> block.

    <property name="hibernate.c3p0.validate">true</property>
  4. confluence.cfg.xml を保存します。

  5. Confluence を再起動します。 

これで、データベースのコネクションプールにおける全ての接続が完全に失われても、Confluence を再起動させる事無く接続を回復できます。

データソース接続を使用してバリデーション クエリを有効化する

Confluence がデータベースのコネクションプール内のデータベースコネクションを確実に有効にするには:

  1. Confluence を停止します。

  2. <installation-directory>/conf/server.xml ファイル (またはデータソースを構成している場所) を編集します。
  3. Find the Resource element for your data source, and add the "testOnBorrow" parameter as in the example for PostgreSQL below.  Remember to give it the appropriate value for your database type. 

    server.xml (抜粋)
    ... 
    <Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"
              username="postgres"
              password="postgres"
              driverClassName="org.postgresql.Driver"
              url="jdbc:postgresql://localhost:5432/yourDatabaseName"
              maxTotal="60"
              maxIdle="20"
              testOnBorrow="true" />
    ...
  4. conf/server.xml を保存します。

  5. Confluence を再起動します。

これで、データベースのコネクションプールにおける全ての接続が完全に失われても、Confluence を再起動させる事無く接続を回復できます。

最終更新日 2021 年 4 月 13 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.