| Warning The following describes changes in the low-level Nuxeo configuration files. Starting with Nuxeo 5.3.2, a template system is used to change Nuxeo configuration, and by default the files described below will be overwritten by those from the templates at each startup. See the documentation on [How to configure Nuxeo EP] for more about templates. |
Before starting, make sure your Oracle database is correctly configured by checking the Oracle configuration.
JDBC Driver
Download the appropriate JDBC driver from: http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html.
This JAR must then be placed in $JBOSS/server/default/lib/ or $TOMCAT/lib/.
NB: the driver (ojdbc14.jar) used to test this configuration can be found here http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_10201.html.
JBoss configuration
To use a Oracle DB with Nuxeo and VCS (Visible Content Store) you need to configure Nuxeo:
datasources/default-repository-ds.xml
You should check that the rar-name references the .rar in nuxeo.ear/system (check the version number).
datasources/unified-nuxeo-ds.xml
For a non-transactional configuration:
For a transactional configuration:
Nuxeo and libraries used by Nuxeo (jbpm, jena ...) create tables the first time they are used. To know if they need to create the table, they check if the table exists in the schema. Before NXP-4601 was fixed, it was done accross the DB. So if you are using Oracle DB with multiple Nuxeo instance you need to patch Nuxeo or use a version after 5.3.0.
datasources/nxtags-ds.xml (not needed since Nuxeo 5.3.2)
config/sql.properties
nuxeo.ear/hibernate.properties
You also need to tell hibernate in which schema your table are: add a file nuxeo.ear/hibernate.properties with the content:
Unfortunately, hibernate doesn't take this setting into account for updating table. So the same kind of problem will happens if a schema uses an old jbpm version. To fix it you need to use a patched version of hibernate. For more information see NXP-4604
Oracle doesn't allow DDL statement inside a transaction so all table creations has to be done at server start up when using a transactional datasource. This is not the case at the moment, you can follow NXP-4606 to see when it will be possible. Waiting for this improvement to be implemented, the solution is to use a non-transactional datasource the first time Nuxeo is started and switch to a transactional datasource after all the table are created.
For more information about Oracle Datasource http://community.jboss.org/wiki/SetupAOracleDataSource.
To download an example configuration https://maven.nuxeo.org/nexus/index.html#nexus-search;gav~org.nuxeo.ecm.platform~nuxeo-platform-ear~~~resources-oracle.
If the character set of your Oracle instance is not in this list: UTF8, US7ASCII, WE8DEC, WE8ISO8859P1 or WE8MSWIN1252, please refer to the section on non-standard character sets in the page about Oracle configuration.
Tomcat configuration
To use Oracle with the Tomcat distribution of Nuxeo, you need to change some files:
The resources should looks like:
for each resource.
For the tag service, define the resource like this (not needed since Nuxeo 5.3.2):
And change the repository configuration:
The configuration should looks like:
And finally:
- nxserver/config/commentService-config-bundle.xml
- nxserver/config/nxrelations-default-jena-bundle.xml
- nxserver/config/sql.properties
where you should change "databaseType" property from "Derby" to "Oracle" and "databaseTransactionEnabled" property set to "false"