This page contains instructions on how to set up an PostgreSQL datasource connection for Confluence Standalone or EAR/WAR.

On this page:

1. Install the Driver

  1. Download the PostgreSQL driver from http://jdbc.postgresql.org/download.html.
  2. Copy this file into the common/lib directory of your Tomcat installation. Be aware that this directory may be just lib for Tomcat version 6 and beyond (i.e. <tomcat-install>/lib rather than <tomcat-install>/common/lib).

If you are using Confluence 3.2.0 or later you can get the driver from /confluence/WEB-INF/lib/postgresql-8.4-701.jdbc3.jar and move it into the common/lib directory of your Tomcat installation.

2. Shut down Tomcat

  1. Run bin/shutdown.sh or bin/shutdown.bat to bring Tomcat down while you are making these changes.

Make a backup of your <CONFLUENCE_HOME>/confluence.cfg.xml file and your <CONFLUENCE_INSTALL>/conf/server.xml file so you can easily revert should their be a problem.

3. Tomcat の構成

  1. Firstly, you need to edit <confluence install>/conf/server.xml and find the following lines:
    <Context path="" docBase="../confluence" debug="0" reloadable="true">
          <!-- Logger is deprecated in Tomcat 5.5. Logging configuration for Confluence is specified in confluence/WEB-INF/classes/log4j.properties -->
    
  2. Within the Context tags, directly after the opening <Context.../> line, insert the DataSource Resource tag:
    <Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"
              username="postgres"
              password="postgres"
              driverClassName="org.postgresql.Driver"
              url="jdbc:postgresql://localhost:5432/test"
              maxActive="20"
              maxIdle="10"
              validationQuery="select 1" /> 
    

When a database server reboots, or there is a network failure, all the connections in the connection pool are broken and this normally requires a Application Server reboot.

However, the Commons DBCP (Database Connection Pool) which is used by the Tomcat application server can validate connections before issuing them by running a simple SQL query, and if a broken connection is detected, a new one is created to replace it. To do this, you will need to set the "validationQuery" option on the database connection pool.

If switching from a direct JDBC connection to datasource, you can find the above details in your <CONFLUENCE_HOME>/confluence.cfg.xml file.

The configuration properties for Tomcat's standard data source resource factory (org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory) are as follows:

  • driverClassName — 使用される JDBC ドライバの完全修飾 Java クラス名。
  • maxActive — The maximum number of active instances that can be allocated from this pool at the same time.
  • maxIdle — このプールで同時にアイドル状態可能な接続最大数。
  • maxWait — The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception.
  • password — JDBC ドライバに渡されるデータベースのパスワード。
  • url — JDBC ドライバに渡される接続 URL。(後方互換性のために、プロパティの driverName も認識されます。)
  • user — JDBC ドライバに渡されるデータベースユーザー名
  • validationQuery — 接続がアプリケーションに戻される前に接続を検証するためにプールによって使用される SQL クエリ。指定する場合、クエリは少なくとも1つの行を返す SQL SELECT 文でなければなりません。

4.Confluence Web アプリケーションを設定する

  1. Edit /confluence/WEB-INF/web.xml in your confluence installation
  2. Go to the end of the file and just before </web-app>, insert the following:
    <resource-ref>
        <description>Connection Pool</description>
        <res-ref-name>jdbc/confluence</res-ref-name>
        <res-type>javax.sql.Datasource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
    

5. Configure Confluence

関連トピック

Apache Tomcat で MySQL データソースを設定する