
6-2
XMS Configuration Guide
Replication of the XMS Server’s Database
Conditions that trigger a failover
The primary server makes an active TCP connection to the secondary on its main XMS port,
which is typically 14050. When this connection is dropped, there are two perspectives from
which to describe. Firstly, if the secondary server dropped the connection, then the primary
server immediately attempts to reconnect and periodically tries on defined intervals (in
seconds), while it remains running as usual. Secondly, if the primary server dropped the
connection, the secondary server slips into a temporary wait state awaiting the primary
server’s reconnection for a period of time in seconds. If the primary server has not
reconnected within the defined period, the secondary server assumes control and begins
accepting connections from clients.
A failover occurs when one or more of the following conditions are met:
•
The primary Xmedia Server service is stopped.
•
The primary server loses network connectivity.
•
The primary Xmedia Server service involuntarily crashes.
•
The primary server tells the secondary server to takeover for otherwise unknown
purposes, see the primary server’s log file.
•
The primary server loses its connection with the SQL server database.
•
The primary server is powered off.
The secondary server assumes control by accepting connections from clients only when the
primary server is inoperable. While the secondary server is accepting connections it queues
the data changing events to disk, exactly like the primary server does when operating
normally. While the secondary server is live, it periodically checks for primary server
availability by attempting to connect to it.
Once the primary server is back online, the secondary server unloads the queue to the
primary server, and when the queue is empty, the primary server resumes control and the
secondary server resumes its role. The primary server is operable whenever it is running
and the backlog queue from the secondary server is emptied.