Signaling mechanism in a server group
Starting from version 9.0, BMC Remedy AR System servers use Java Messaging Service (JMS) or Remote Method Invocation (RMI) mechanism to communicate with other servers in the group. Servers determine the active status of all other servers in the server group by using the Heartbeat mechanism.
When a server needs to communicate with the other servers in the group to process a request, the following actions occur:
- Sever sends JMS to the coordinator server for the specific request.
- The coordinator server fetches information from the ranking form about the servers that need to be notified.
- The coordinator server sends JMS message to notify the servers to process the request.
This type of communication is used in operations such as Full Text Search (FTS), application pending messages (for example, Approval, Atrium Integrator). JMS messages are also used to notify servers when a user logs out, releasing a fixed or floating license on a server in the server group.
For more information on the AR System Server Group Operation Ranking form, see Setting failover rankings for servers and operations.
Consider a server group with three servers, S1, S2 (coordinator server), and S3.
When performing an FTS operation, suppose a user creates an entry with FTS fields, which is picked by server S1, a non-FTS sever. Sever S1 then sends JMS to the coordinator server S2. Sever S2 checks the ranking form and notifies server S3 to process the operation.
Remote Method Invocation
Java server uses Ehcache to hold metadata object cache in memory. For a server group, only the server designated as an administrator server is allowed to modify the metadata. When metadata is modified in the administrator server, Ehcache is updated. Ehcache is configured to communicate these changes to other servers in a server group by means of RMI calls so that the other servers also update their in-memory metadata cache.
The heartbeat mechanism enables a server to determine the active status of all other servers in a server group. Each server in the group updates the servgrp_board table in the database to notify its availability. Heartbeat mechanism is also used during the startup of the server or when a new server is added to the server group.
For more information on servgrp_board table, see Table support for server group tables.