This guide covers deploying Confluence standalone or WAR distribution with an Oracle database.
If you are not a DBA, you should not attempt to set up this database. |
Oracle has a history of being extremely difficult to set up. If you do not have access to an experienced Oracle DBA in your organisation, you are recommended to select any free, scalable and easy-to-install alternative rather than proceeding with Oracle. Users evaluating Confluence are recommended to start with an alternative database and only consider migrating to Oracle after approval from their DBA. Atlassian's technical support for Oracle setup difficulties will also reflect the high minimum skill requirements for attempting an Oracle setup.
This setup guide must be used in conjunction with the list of Known Issues For Oracle. Please review that page before continuing.
Confluence must be deployed to a schema in it's own, separate Oracle instance. This avoids a Hibernate bug triggered by the existence of duplicate tablenames in other schemas, outlined here.
Orcale 9i and later are supported, please upgrade any older versions prior to installing Confluence.
For Oracle 10g and earlier, you must upgrade to the latest 10g drivers. Check the latest compatibility matrix before proceeding to the JDBC download page. We highly recommend to use the thin drivers. For Oracle 11.1, use the 10.2.0.4 or 11.1.0.7.0 driver (Java 6 ojdbc6.jar). |
Please check that your version of Oracle does not have any known issues:
Oracle Version |
Oracle Driver |
課題 |
ソリューション |
|---|---|---|---|
すべて |
Pre 10g |
Driver incompatibilities |
Upgrade to latest 10g drivers if compatible |
Pre 9 |
すべて |
Earlier DBs not compatible |
Upgrade DB to 9.x or later |
9.0.1.0 |
すべて |
DB not compatible |
Upgrade DB to 9.0.2.6 or later |
10g |
10.1.0.3.0 |
Drivers not compatible with Tomcat 5.5 |
Upgrade drivers to 10.1.0.4.0 or later |
You might be also interested in a relevant JIRA documentation to check the compatibility of your Oracle server and driver.
Complete the instructions for installing Confluence standalone, then return to this document instead of proceeding to the Confluence Setup Guide.
Tailor these instructions to your particular database version:
<INSTALL>/conf/server.xml for editing. Host -> Context
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false">
<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 -->
<Manager pathname="" />
</Context>
</Host>
|
Resource section provided, prior to Manager as shown
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false">
<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 -->
<Resource
name="jdbc/confluence"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@hostname:port:sid"
username="<username>"
password="<password>"
connectionProperties="SetBigStringTryClob=true"
maxActive="25"
maxIdle="5"
maxWait="10000"
/>
<Manager pathname="" />
</Context>
</Host>
|
username and password to match the Oracle login. url to match hostname, port and sid of the Oracle server. sid stands for the Schema ID. For example:
jdbc:oracle:thin:@example.atlassian.com:1521:confluencedb |
jdbc:oracle:thin:@(DESCRIPTION=
(SDU=32768)
(enable=broken)
(LOAD_BALANCE=yes)
(FAILOVER=yes)
(ADDRESS=
(PROTOCOL=TCP)
(HOST=dbserver1.example.com)
(PORT=1525))
(ADDRESS=
(PROTOCOL=TCP)
(HOST=dbserver2.example.com)
(PORT=1525))
(CONNECT_DATA=
(SERVICE_NAME=CONFDB)))
|
Confluence must be configured to use this datasource:
<INSTALL>/confluence/WEB-INF/web.xml </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> |
<confluence install>/WEB-INF/lib (for Confluence 2.10 onwards) or <confluence install>/common/lib (for earlier versions). This directory path is potentially <INSTALL>/lib if Confluence is running off Apache Tomcat version 6 or above.Now Confluence is ready to attempt to connect to Oracle:
<INSTALL>/bin/startup.bat or <INSTALL>/bin/startup.sh java:comp/env/jdbc/confluence for the name of the datasource.Confluence should now deploy using the Oracle database specified. Please read this comment on Oracle database optimisation.
We have received a report from a user that when an Oracle 8i database is configured to use 24-hour time as the default format, an exception like this may occur:
005-12-06 13:23:20 Loading root WebApplicationContext 2005-12-06 13:24:34 StandardContext[]: Exception sending context initialized event to listener instance of class com.atlassian.confluence.util.ConfluenceContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userAccessor' defined in class path resource [applicationContext.xml]: Can't resolve reference to bean 'userAccessorTarget' while setting property 'target'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userAccessorTarget' defined in class path resource [applicationContext.xml]: Can't resolve reference to bean 'spacePermissionManager' while setting property 'spacePermissionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spacePermissionManager' defined in class path resource [securityContext.xml]: Can't resolve reference to bean 'spacePermissionManagerTarget' while setting property 'target'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spacePermissionManagerTarget' defined in class path resource [securityContext.xml]: Initialization of bean failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: (Hibernate operation): encountered SQLException [Cannot create PoolableConnectionFactory]; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ... org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory, cause: java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1 ORA-12705: invalid or unknown NLS parameter value specified |
One symptom of this problem is that Confluence may refuse to start after midday.
The workaround is to go to 'General Configuration' and set the default time format to "HH:mm".