Configuring the repository to use an external database
By default, the repository contains an embedded database. You can enable high availability for the repository by configuring the repository to use an external database and leveraging the clustering features of the external database to provide failover.
Use the procedures in this topic to configure the following databases as external databases for the repository:
Before you begin
- You must have installed the repository using the procedure in Installing-the-repository-using-the-wizard. Do not choose to automatically start the web server after the installation.
You must have installed an external database.
To view a list of the supported database platforms, seeon the Remedy and BMC Atrium Product Compatibility Matrices page.
- Do not start the repository server before configuring the repository to use an external server. If you are upgrading to the latest version of the repository, configure the external database first and then start the repository server.
To configure the repository to use a MySQL database
- Create an external database:
- In the external database, set the max_allowed_packet variable to a value between 512 MB and 1 GB.
For information about how to set this variable, see the product documentation for your database. - Set up the database user:
- Create the user and user password.
- Set up read and write permissions for the user.
- In the external database, create a new database (for example, repository), using the credentials created in step 1b.
- In the external database, set the max_allowed_packet variable to a value between 512 MB and 1 GB.
- Extract the contents of the repository .war file into a new baorepo directory:
- Under the repoInstallationDirectory/tomcat/webapps/ directory, create the baorepo subdirectory.
- In the baorepo subdirectory, unzip the repoInstallationDirectory/tomcat/webapps/baorepo.war file.
Place the database's connector/driver jar file in the repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/lib directory.
Example:
You could place the mysql-connector-<compatibleVersion>-bin.jar file in the repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/lib directory.Open the repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/classes/META-INF/repository.xml file in a text editor and replace the existing PersistenceManagersection with the connection information for the external database.
MySQL database connection properties for PersistenceManager
Parameter
Description
MySQL values
class
org.apache.jackrabbit.core.
persistence.pool.MySqlPersistenceManagerdriver
<MySQLDriver>
URL
URL and port number for the external database
You can omit the port number if you use the default port for the database.
jdbc:mysql://host:port/database
user
Database user name that you created in step 1
userName
password
Password that you assigned to the database user
password
schema
The string value that indicates the database type. Use the exact string value.
This is not the name of the database schema.
mysql
schemaObjectPrefix
${wsp.name}
externalBLOBs
false
Persistence Manager for MySQL<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
<param name="driver" value="<MySQLDriver string>"/>
<param name="url" value="jdbc:mysql://<host name>:<port number>/<database name>" />
<param name="user" value="<database user>"/>
<param name="password" value="<database password>"/>
<param name="schema" value="<schema name>"/>
<param name="schemaObjectPrefix" value="${wsp.name}"/>
<param name="externalBLOBs" value="false"/>
</PersistenceManager>Start the repository server.
To configure the repository to use an Oracle database
- Create an external database:
- Set up the database user:
- Create the user and user password.
- Set up read and write permissions for the user. Permissions must include:
- CREATE SESSION
- CREATE TABLE
- CREATE SEQUENCE
- In the external database, create a new database (for example, repository), using the credentials created in Step 1a.
- Set up the database user:
- Extract the contents of the repository .war file into a new baorepo directory:
- Under the repoInstallationDirectory/tomcat/webapps/ directory, create the baorepo subdirectory.
- In the baorepo subdirectory, unzip the repoInstallationDirectory/tomcat/webapps/baorepo.war file.
Place the database's connector/driver jar file in the repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/lib directory.
Example:
You would place the ojdbc<compatibleVersion>.jar file in repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/lib directory.Open the repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/classes/META-INF/repository.xml file in a text editor and replace the existing PersistenceManagersection with the connection information for the external database.
Oracle database connection properties for PersistenceManager
Parameter
Description
Values
class
org.apache.jackrabbit.core.persistence.
pool.OraclePersistenceManagerdriver
JDBC driver class name
<oracle.jdbc.driver.OracleDriver>
URL
URL and port number for the external database
You can omit the port number if you use the default port for the database.jdbc:oracle:thin:@host:port:sid
or
jdbc:oracle:thin:@host:port/service_name
user
Database user name that you created in step 1
userName
password
Password that you assigned to the database user
password
schema
The string value that indicates the database type. Use the exact string value.
This is not the name of the database schema.
oracle
schemaObjectPrefix
${wsp.name}
externalBLOBs
false
Persistence Manager for Oracle<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager">
<param name="url" value="jdbc:oracle:thin:@<hostname>:<port number>/<service_name>"/>
<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<param name="user" value="<database username>"/>
<param name="password" value="<database password>"/>
<param name="schema" value="<schema name>"/>
<param name="schemaObjectPrefix" value="${wsp.name}"/>
<param name="externalBLOBs" value="false"/>
</PersistenceManager>Start the repository server.
To configure the repository to use a DB2 Express-C 10.1 edition database
- Create an external database:
- Set up the database user:
- Create the user and user password.
- Set up read and write permissions for the user. Permissions must include:
- CREATE SESSION
- CREATE TABLE
- CREATE SEQUENCE
- In the external database, create a new database (for example, repository), using the credentials created in Step 1a.
- Set up the database user:
- Extract the contents of the repository .war file into a new baorepo directory:
- Under the repoInstallationDirectory/tomcat/webapps/ directory, create the baorepo subdirectory.
- In the baorepo subdirectory, unzip the repoInstallationDirectory/tomcat/webapps/baorepo.war file.
- Place the database's connector/driver jar file in the directory repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/lib directory.
Example:
You could place the DB2Driver.jar file in the repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/lib directory. Open the repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/classes/META-INF/repository.xml file in a text editor and replace the existing PersistenceManagersection with the connection information for the external database.
DB2 database connection properties for PersistenceManager
Parameter
Description
DB2 values
class
org.apache.jackrabbit.core.state.db
.SimpleDbPersistenceManagerdriver
<DB2Driver>
URL
URL and port number for the external database
You can omit the port number if you use the default port for the database.jdbc:db2://host:port/database
user
Database user name that you created in step 1
userName
password
Password that you assigned to the database user
password
schema
The string value that indicates the database type. Use the exact string value.
This is not the name of the database schema.
db2
schemaObjectPrefix
${wsp.name}
externalBLOBs
false
Persistence Manager for DB2<PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
<param name="driver" value="DB2Driver"/>
<param name="url" value="jdbc:oracle:thin:@bao.bmc.com:1521:repository" />
<param name="user" value="baouser"/>
<param name="password" value="baopass"/>
<param name="schema" value="db2"/>
<param name="schemaObjectPrefix" value="${wsp.name}"/>
<param name="externalBLOBs" value="false"/>
</PersistenceManager>Start the repository server.
To configure the repository to use a Microsoft SQL Server 2012 and SQL Server 2019 database
- Create an external database:
- Set up the database user:
- Create the user and user password.
- Set up read and write permissions for the user. Permissions must include:
- CREATE SESSION
- CREATE TABLE
- CREATE SEQUENCE
- In the external database, create a new database (for example, repository), using the credentials created in Step 1a.
- Set up the database user:
- Extract the contents of the repository .war file into a new baorepo directory:
- Under the repoInstallationDirectory/tomcat/webapps/ directory, create the baorepo subdirectory.
- In the baorepo subdirectory, unzip the repoInstallationDirectory/tomcat/webapps/baorepo.war file.
Place the database's connector/driver jar file in the repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/lib directory.
The compatible connector/driver jar file required based on the database version is listed in the following table:
Database version
Required jar file
SQL Server 2012
ojdbc6-11.2.0.2.0.jar
SQL Server 2019
New in 20.02.01
mssql-jdbc-9.2.1.jre8
Open the repoInstallationDirectory/tomcat/webapps/baorepo/WEB-INF/classes/META-INF/repository.xml file in a text editor and replace the existing PersistenceManager section with the connection information for the external database.
Microsoft SQL Server 2012 and SQL Server 2019 database connection properties for PersistenceManager
Parameter
Description
Values
class
org.apache.jackrabbit.core.
persistence.pool.MSSqlPersistenceManagerdriver
com.microsoft.sqlserver.jdbc.SQLServerDriver
URL
URL and port number for the external database
You can omit the port number if you use the default port for the database.jdbc:sqlserver://host:port;databaseName=
user
Database user name that you created in step 1
userName
password
Password that you assigned to the database user
password
schema
The string value that indicates the database type. Use the exact string value.
This is not the name of the database schema.
mssql
schemaObjectPrefix
${wsp.name}
externalBLOBs
false
Persistence Manager for Microsoft SQL Server 2012 and SQL Server 2019<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MSSqlPersistenceManager">
<param name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<param name="url" value="jdbc:sqlserver://<database hostname>:<port>;databaseName=<database name>"/>
<param name="user" value="<database username>"/>
<param name="password" value="<database password>"/>
<param name="schema" value="<schema name>"/>
<param name="schemaObjectPrefix" value="${wsp.name}"/>
<param name="externalBLOBs" value="false"/>
</PersistenceManager>Start the repository server.