This page tells you how to set up a PostgreSQL datasource connection for Confluence.

Step 1. Shut down Tomcat

  1. Run bin/shutdown.sh or bin/shutdown.bat to bring Tomcat down while you are making these changes.
  2. Make a backup of your <CONFLUENCE_HOME>/confluence.cfg.xml file and your <CONFLUENCE_INSTALLATION>/conf/server.xml file, so that you can easily revert if you have a problem.

Step 2. Install the PostgreSQL Server database driver

  1. Download the PostgreSQL Server JDBC driver JAR file.
    • Links are available on this page: Database JDBC Drivers.
    • Alternatively, you can get the driver from your Confluence installation: /confluence/WEB-INF/lib/postgresql-x.x-x.jdbcx.jar, where 'x' represents a version number.
  2. Copy the JAR file into the lib folder of your Tomcat installation: <TOMCAT-INSTALLATION>/lib.

On this page:

Related pages:

Step 3. Configure Tomcat

  1. Edit the conf/server.xml file in your Tomcat installation.
  2. 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 -->
    
  3. Insert the DataSource Resource element inside the Context element, directly after the opening <Context.../> line,  before Manager:

    <Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"
              username="postgres"
              password="postgres"
              driverClassName="org.postgresql.Driver"
              url="jdbc:postgresql://localhost:5432/yourDatabaseName"
              maxActive="20"
              maxIdle="10"
              validationQuery="select 1" /> 
    

Notes:

Step 4. Configure the Confluence web application

  1. Edit this file in your Confluence installation: <CONFLUENCE_INSTALLATION>/confluence/WEB-INF/web.xml.
  2. Insert the following element just before </web-app> near the end of the file:

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

If you are changing an existing Confluence installation over to using a Tomcat datasource:

  1. Edit the <CONFLUENCE_HOME>/confluence.cfg.xml file.
  2. Delete any line that contains a property that begins with hibernate.
  3. Insert the following at the start of the <properties> section:

    <property name="hibernate.setup"><![CDATA[true]]></property>
    <property name="hibernate.dialect"><![CDATA[net.sf.hibernate.dialect.PostgreSQLDialect]]></property>
    <property name="hibernate.connection.datasource"><![CDATA[java:comp/env/jdbc/confluence]]></property>

Step 5. Restart Tomcat

Run bin/startup.sh or bin/startup.bat to start Tomcat with the new settings.