This Knowledgebase article provides information about how to resolve server clocks that are out of synchronization.
This issue has been seen on three separate occasions; and on each occasion, it was triggered by the Windows Time Service adjusting the clock on the active server backwards.
This appears to be the result of a bug in Java (4239522: Timer seems to stop when the computer sytemdate is turned back). Sun currently has no plans to fix this; therefore, the only option is to ensure that the Windows Time Service
is not running on either the Primary or Secondary server in a Neverfail Heartbeat pair.
If the server time on a Neverfail Heartbeat server is changed backwards (by a few minutes) then that server will stop issuing heartbeats, and the connected server will get heartbeats missed. If this happens to the active server, the passive server will get heartbeats missed and failover, causing a split-brain scenario, as both servers are still connected. At that point, application protection is lost and manual intervention is required to reconfigure the Neverfail Heartbeat server pair and restart replication.
After changing the server time on the active server of a Neverfail server pair backwards by more than a couple of minutes, a false failover occurs resulting in split-brain syndrome.
Server clocks are not synchronized.
The server time-difference should not affect the operation of your server pair if it is less than 2 minutes. Larger time differences may trigger Exchange errors if the passive server is switched to the active role through either a switchover or failover.
Note that shutting down Neverfail Heartbeat and starting it again will trigger auto-checking for all protected files, so this operation is best undertaken when user load on the protected application is likely to be lower.
To synchronize the server clocks, do the following:
- Shut down Neverfail Heartbeat
- On the active server, open a command window and run the following commands, substituting the domain to which the active server is joined:
net time /domain [: DomainName ] /set /y
- On the passive server, open a command window and run the following commands, substituting the necessary user names and IP addresses, and giving any other responses requested:
net use \\<ip_address_channel_Active_server> /user:<locally_stored_domain_admin_credentials>
net time \\<ip_address_used_previously> /set /y
net use \\<ip_address_used_previously> /delete /y- Start Neverfail Heartbeat on the passive server and then on the active server.
All Versions
http://developer.java.sun.com/developer/bugParade/bugs/4239522.html
KBID-53