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 thenode.id
file and thecrypto
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 todb01-dcA.example.com
for requests fromwa01-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 tocache01-dcA.example.com
when requested bywa01-dcA.example.com
orwa02-dcA.example.com
, and tocache01-dcB.example.com
when requested bywa01-dcB.example.com
orwa02-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.