Oracle database drivers and configurations
In addition to the following recommendations, be sure and follow vendor documentation for driver installation best practices.
Best Practices
For best results, you should configure and maintain your Oracle database according to the vendor's requirements and use the Jive best practices.
-
If you're setting up new systems, the Core and Activity Engine databases can be set up as typical OLTP databases. Set up the Analytics database using the OLAP template.
-
Oracle JDBC Drivers must be installed on the application services before the Jive installation. For more information, see Oracle database drivers and configurations.
-
To ensure good performance, set the following JVM property on each of the web application nodes:
-Doracle.jdbc.maxCachedBufferSize=12
Component | Supported driver version | Notes |
---|---|---|
Web application | 11.2.0.4 (ojdbc6.jar) 12.2.0.1 (ojdbc8.jar) | Type the following from a command line as the jive user:
where path/to/driver is the path to the Oracle JDBC driver and your_JDBC_Driver.jar is the name of the JAR file. |
Activity Engine | 11.2.0.4 (ojdbc6.jar) 12.2.0.1 (ojdbc8.jar) | Type the following from a command line as the jive user:
where path/to/driver is the path to the Oracle JDBC driver and your_JDBC_Driver.jar is the name of the JAR file. |
Additional Configuration for Oracle 11gR2, 12, 19
Customers using Oracle 11gR2, 12, 19 need to add a fetchSizeSupported
entry in the database
element of the jive_startup.xml
file as shown:
<jive>
<setup>true</setup>
<temp/>
<locale>
<characterEncoding>UTF-8</characterEncoding>
</locale>
<database>
<defaultProvider>
<password encrypted="true"/>
<connectionTimeout>60</connectionTimeout>
<maxConnections>50</maxConnections>
<username>username</username>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<minConnections>25</minConnections>
<serverURL>jdbc:oracle:oci:@host:1521/db</serverURL>
</defaultProvider>
<fetchSizeSupported>false</fetchSizeSupported>
</database>
<connectionProvider>
<className>com.jivesoftware.base.database.DefaultConnectionProvider</className>
</connectionProvider>
</jive>
User Creation and Permissions
Ensure that the target database allows the Jive application's Setup wizard access to create tables. After you install the Jive application, you finish the installation (or upgrade) by using Jive's Setup wizard to connect to the target database. The Setup wizard creates or upgrades the tables it needs. So, you need to ensure that permission to create tables is granted, at least until the upgrade or installation is completed and the application has been restarted.
For example, if you are using an Oracle database for a new installation, you'll be creating a user representing a schema. That schema will be empty until the Setup wizard creates tables in it. Here's an example of a script for creating such a user:
CREATE USER coredb IDENTIFIED BY changeme DEFAULT TABLESPACE jivedata;
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE PROCEDURE, CREATE SYNONYM, CREATE TYPE to coredb;
ALTER USER coredb QUOTA UNLIMITED ON jivedata;
The username can be any legal Oracle identifier – coredb
is just an example. The application does not require a dedicated tablespace, but many DBAs have that practice. The tablespace must be created separately. For more information about the CREATE USER
statement, refer to the Oracle documentation.
The database user must not be granted view access to any schema other than the one it owns. During upgrades, the application reads metadata about its tables defined in the database. Since the application does not know what the default schema is, it may inadvertently retrieve information about its tables defined in other schemas. If you have set up application instances by using other schemas in the same database, this can result in erroneous information being passed to the application.
If you absolutely must use a database user with access to other schemas, ensure that there is only one set of application tables defined across all schemas to prevent this object name conflict.
Required Libraries for RHEL7
Note that distributions based on RHEL7 do not always install libaio.so by default. This library is required to use the Oracle driver. On app servers running Red Hat 7 or CentOS 7 that use Oracle as a database, make sure to run the following command:
# apt-get update && apt-get install libaio1