Server Redundancy

Server redundancy requires additional licenses.

System Architecture

The system architecture for redundancy is as follows.

Note the following.

1When you load balance with a web server or L4 switch, configure it to always send requests from the same session to the same server.

2For redundant servers, you cannot use the default databases, H2 or Apache Derby. You must use Oracle Database, Microsoft SQL Server, MySQL, or a similar database.

3For redundant servers, you must use NAS (Network Attached Storage) for the data and backup directories.

Setting Up Redundancy

Prerequisites

Prepare the following.

Installing ManualWorks

Install each ManualWorks instance as described in the Installation Guide.

Configuring the server.xml File

Note the following when you configure the 3RABBITZ_HOME/tomcat/conf/server.xml file.

Configuring ManualWorks

Set the following startup options. For how to set startup options, see this guide.

Set the addresses of the other servers, including their HTTP port numbers, with the 3rabbitz.peer_nodes startup option. For example, set the following on ManualWorks 1.

3rabbitz.peer_nodes=192.168.0.2:1975

Set the following on ManualWorks 2.

3rabbitz.peer_nodes=192.168.0.1:1975

Change the IP addresses and port numbers to match your environment.

If there are three or more servers, list the addresses of all other servers separated by commas (,). For example, set the following on ManualWorks 1.

3rabbitz.peer_nodes=192.168.0.2:1975,192.168.0.3:1975

You can add http:// or https:// before each address. Without it, http:// is used.

With the 3rabbitz.main_node startup option, set one of the redundant servers as the main server. Schedulers run only on the main server.

3rabbitz.main_node=true

Restart after you set the startup options.

Configuring the Load Balancer

Each load balancer is configured differently, so follow the guide for your load balancer. When you configure it, set up sticky sessions through session affinity so that all requests in the same session are handled by the same server.

Keeping Users Logged In Across Nodes

In a redundant environment, ManualWorks stores users' login state in the database and shares it across nodes. Even if one node fails and requests go to another node, users do not need to log in again.

Note the following.

Only the login information (user ID) is stored in the database. ManualWorks handles other user state in the database rather than in sessions, so separate session replication is not needed.

Notes

You must connect to each server individually for the following tasks.

Synchronization requests between nodes are signed, and their sending time is also checked. If the clocks of the nodes differ by more than an hour, synchronization is rejected, so keep the clocks in sync with NTP.

Update all nodes to the same version at the same time. Synchronization requests from nodes running a version earlier than ManualWorks 6.0.26 are rejected because they are not signed, so if you update the nodes one at a time, the caches between nodes are not synchronized in the meantime.