This page contains instructions on how to set up an PostgreSQL datasource connection for Confluence or Confluence EAR/WAR.
On this page:
1. Install the Driver
- Download the PostgreSQL driver from http://jdbc.postgresql.org/download.html.
- Copy this file into the
common/lib
directory of your Tomcat installation. Be aware that this directory may be justlib
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 |
2. Shut down Tomcat
- Run
bin/shutdown.sh
orbin/shutdown.bat
to bring Tomcat down while you are making these changes.
![]() | Make a backup of your |
3. Configure Tomcat
Firstly, you need to edit <confluence install>/conf/server.xmland 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 -->
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" />
- Replace the username and password parameters with the correct values for your database
- In the url parameter, replace the word 'yourDatabaseName' with the name of the database your confluence data will be stored in.
![]() | Why is the validationQuery element needed? 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 |
![]() | The configuration properties for Tomcat's standard data source resource factory (org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory) are as follows:
|
4. Configure the Confluence web application
- Edit
/confluence/WEB-INF/web.xml
in your confluence installation 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
- If you have not yet set up Confluence
- Follow the steps in the Confluence Setup Guide
- In the Database Setup section, choose the "Datasource Connection" option.
- Set the JNDI name to
java:comp/env/jdbc/confluence
- Set the Database dialect to Postgres.
- If you are changing an existing Confluence installation over to using a Tomcat datasource
- Edit the
<confluence home>/confluence.cfg.xml
file - Delete any line that contains a property that begins with hibernate.
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>
- Restart Confluence.
- Edit the