Skip to main content

Configuring Activity Engine and Core Application database for high-availability

The Activity Engine and core application databases support several types of databases. For the database connection string, you must use a dynamic link, which can be either an IP address or a domain name.

All of the database information here assumes that you have successfully deployed your database system of choice in a high-availability (HA) configuration, ensuring that the database server itself is not a single point of failure.

The Activity Engine and core application services support the following database types:

  • SQL Server
  • Oracle
  • Postgres
  • MySQL

Locating Database Configuration Information

The Activity Engine nodes maintain their database configuration information in the core application database. The web application database configuration information is stored on the web application nodes in an XML file that lives in Jive home (usually /usr/local/jive/applications/[name of your application]/home/jive_startup.xml).

For more information on what must be persisted in the core application database during disaster recovery, see Restoring database with persistent properties.

Setting Up Connection String

The application requires you to add a DNS name or IP address for the Activity Engine database server deployed with the application. You set this connection string via the Admin Console at System > Settings > Activity Engine. This string is then stored in the core application databases.

In the event of a failover, there are specific ways the application uses the connection string to determine which Activity Engine database server to failover to. Therefore, be especially careful when setting up the connection string as follows:

  • If a DNS name is used in the connection string (this is the preferred method), the name must resolve to an Activity Engine database server that is resolvable and reachable by the web application nodes in each respective data center (A or B).

    Using the web node names, but substituting a DNS name (activityeng-virtual.example.com) in the connection string instead of an IP address, the DNS name must resolve to the Activity Engine database server acteng01-dcA.example.com when requested by either wa01-dcA.example.com or wa02-dcA.example.com and must resolve to acteng01-dcB.example.com when requested by either of the nodes wa01-dcB.example.com or wa02-dcB.example.com.

  • If an IP address is used in the connection string, it must be a virtual IP address that points to the Activity Engine database server that's available from both data centers.

    For example, given web nodes wa01-dcA.example.com and wa02-dcA.example.com, both in data center A, and web nodes wa01-dcB.example.com and wa02-dcB.example.com in data center B, all pointing to the virtual IP address 172.16.100.2 in the Activity Engine database connection string, said IP address must resolve to the Activity Engine database server acteng01-dcA.example.com when requested by either wa01-dcA.example.com or wa02-dcA.example.com and must resolve to acteng01-dcB.example.com when requested by either of the web application nodes wa01-dcB.example.com or wa02-dcB.example.com.

Supported Core Application Databases

  • Microsoft SQL Server: Jive supports the JTDS database driver for communication between the Jive instance and Microsoft SQL Server. While Jive does not specifically perform load or functional tests against Microsoft SQL Server in a cluster or failover configuration, the JTDS driver does appear to support SQL Server clustering. Jive does not currently support the Microsoft JDBC driver.

  • Oracle: Jive supports the OCI database driver for both the core web application and the Activity Engine application, which is supported by Oracle with their Oracle RAC database system deployments. While Jive does not specifically perform load or functional tests against an Oracle in a RAC cluster or failover configuration, the OCI driver does appear to support Oracle RAC.

  • Postgres: Jive supports several versions of Postgres, as listed in Supported database engines. Postgres supports two primary types of high availability: hot standby and streaming replication. Jive is not aware of any customers who have deployed against a Postgres instance configured in this manner.

  • MySQL: Similar to Postgres, there are multiple ways of deploying a highly available MySQL database system. Jive is not aware of any customers who have deployed against a MySQL instance configured in this manner.