Skip to main content

Configuring Jive for High Availability

This document provides design and configuration recommendations for achieving high availability (HA) in a Jive configuration, addressing web application servers, cache servers, and the Activity Engine service.

Configuring Web Application Servers for High Availability

When setting up web application nodes in a highly available configuration, follow these guidelines:

  • If you're setting up a web application node as a template, copy the home directory (e.g., /usr/local/jive/applications/instance_name/home) to other web application nodes in the cluster. Before starting the server, remove the node.id file and the crypto directory from the home directory; the application will repopulate them correctly.

  • Regularly (at least once a week, preferably daily) replicate the contents of /jiveHome from one of the web application nodes in the active production data center to all web nodes in the warm standby data center. This practice is critical for disaster recovery. See Restoring Web Application server file system for details.

Important Files and Directories in /jiveHome:

  • jive_startup.xml: Contains all configuration information for the platform.
  • /search: This directory contains the Lucene search index, essential for people search functionality. Not replicating this directory regularly may result in a lengthy update process across web application nodes during failover.
  • /themes: Houses theme information for your community.

CAUTION: Ensure that the Jive application is NOT running when copying jiveHome on the production instance to avoid corrupting the Lucene index. A workaround is to use a web application node that participates in the production cluster but does not serve HTTP requests. Shut down the Jive application on that node during the replication process.

Setting Up Connection String

The jive_startup.xml file located on web application nodes at /usr/local/jive/applications/[name of your application]/home/ stores the connection string for core application databases, while connections for other nodes are set via the Admin Console.

  • Using DNS Name: The DNS names must resolve to local database servers in the data center. For example, db01.example.com should resolve to db01-dcA.example.com for requests from wa01-dcA.example.com.

  • Using IP Address: If specifying a location with an IP address, ensure it is a virtual IP that resolves to a local database server.

Configuring Cache Servers for High Availability

In a multiple data center HA configuration, specific requirements apply to cache servers:

  • Deploy at least three cache servers to achieve high availability; using two cache servers is unsupported and may lead to data loss. High availability can be configured via the Admin Console. Refer to Designing single data center HA configuration for more guidance.

CAUTION: Implementing HA with cache servers requires three or more cache servers. Each cache PUT operation must succeed on two different cache servers, which may affect performance due to the need for successful writes across multiple servers.

To set cache machine addresses, use the command:

jive set cache.hostnames *list_of_hostnames*

The list can include a comma-separated list of IP addresses or domain names, but must maintain consistency in the format (use either IP addresses or domain names, but not both) and the order. This list should be identical across all cache servers and in the Admin Console. For more information, see Adding cache server machines.

Setting Up Cache Server Connection String

You must specify a DNS name or IP address for each cache server via the Admin Console under System > Settings > Caches. This information is stored in the Core Application databases. Review Restoring database with persistent properties for persistence requirements during disaster recovery.

DNS Name Setup:

  • Using DNS Name: The names must resolve to a cache server short name in each data center appropriate for the respective web application nodes. For example, if you specify a DNS short name ex:(cache01) in the configuration, it must resolve to cache01-dcA.example.com when requested by wa01-dcA.example.com or wa02-dcA.example.com, and to cache01-dcB.example.com when requested by wa01-dcB.example.com or wa02-dcB.example.com.

  • Using IP Address: Similar to database servers, ensure the virtual IP resolves to a cache server in the respective local data center.

For additional information on multiple data center HA configurations, see Designing multiple data center HA configuration.

Configuring Activity Engine Server for High Availability

The Activity Engine service is configured in the Admin Console. You need to enter either a DNS name (preferred) or an IP address to specify the location of one or more Activity Engine services.

The Jive core platform requires a separate server and database to manage user activity streams and recommendations. The Activity Engine service handles key features in the Jive application, including the All Activity stream, streams for places and people, watch emails, trending content and people, and personalized recommendations through a connection to a Cloud service. For information about the Activity Engine database in an HA configuration, see Designing single data center HA configuration.

You configure the Activity Engine service at System > Settings > Activity Engine in the Admin Console. You must specify either a DNS name (preferred) or an IP address for one or more Activity Engine services.

Example Configuration:

If wa01-dcA.example.com and wa02-dcA.example.com are in data center A while wa01-dcB.example.com and wa02-dcB.example.com are in data center B, and all point to the DNS name activity-service.example.com, this name must resolve to activity-service-dcA.example.com when requested by nodes in data center A and to activity-service-dcB.example.com for requests from data center B.

For more information on single and multiple data center HA configurations, see Designing single data center HA configuration and Designing multiple data center HA configuration.