Domain Time gives you extensive control over how corrections are applied to the system clock.
These advanced settings are provided to address special clock-correction requirements, poorly-behaving system clocks, and for fine-tuning for extreme clock accuracy. In most cases, you will not need to make changes here.
CAUTION: The default settings on this page are usually correct for most applications. Only make changes if you are sure you need them and you fully understand the effects of the change.
Incorrect settings WILL adversely affect your clock accuracy or even prevent clock corrections entirely.
About Slewing and Stepping
There are two methods of correcting the system clock: Slewing or Stepping. Slewing means adjusting
the system's overall clock rate so that the system either speeds up or slows down until
it matches the wall clock. Stepping means an instantaneous jump to the new time, either forward or backward.
Slewing gives all processes a linear progression of ticks as time passes, and time is guaranteed never to
go backward ("backwards" time corrections are actually made by causing the system clock to go forward at a slower
pace than normal until the actual time catches up).
Slewing is critical to time-sensitive applications like databases, logging facilities, or auditing where a backwards
jump in time would be highly disruptive. Slewing can also yield more precise corrections than stepping,
and can correct variances of less than one millisecond. Slewing is therefore the correction method of choice.
Clock Corrections vs. Alignments
Domain Time can correct the clock either by "stepping" (immediately changing the time) or "slewing" (changing the
time slowly). Stepping and slewing only operate on variances of 1 millisecond or more.
If slewing is enabled, variances of less than 1 millisecond are "aligned," which are very small slewed clock adjustments.
Sub-millisecond alignments are NOT considered corrections, and will not show as corrections in some displays and reports, such as drift records, Audit Server reports, etc.
Variances of less than 1 millisecond will be reported as zero milliseconds, except in the log files, drift graphs, or Manager's displays.
If your machine is stepped, the log file will say "Local clock stepped" (followed by details on which direction, by
how much, and the protocol used to obtain the time.
If your machine is slewed, the log file will say "Local clock slewed" (followed by the same details as for stepping).
If your machine is aligned, the log file will say "Local clock aligned" (followed by the same details as for stepping
Alignments happen automatically as long as slewing is enabled. The only important thing to remember about alignments
is that they are not reported as clock corrections.
The Clock Corrections dialog selects whether corrections are made by slewing, stepping, or a combination of both.
Slew the clock if possible, otherwise step it
When this radio button is selected, Domain Time will step corrections too large to slew (or if slewing in that direction is disabled on the Slewing
Options dialog page, see below), and will also step the very first correction after rebooting. This is the default option and highly recommended.
The button brings up a dialog that lets you specify
the direction of slew and the maximum amount of slewing that is permitted.
By default, Domain Time will slew both forward and backward to correct the clock, provided the correction
being applied is within the set limit for slewing. The default limit is 30,000 milliseconds (30 seconds), but
you may change this to anywhere in the range of 1 through 3,600,000 (1 millisecond through 1 hour). You may
disable forward slewing, backward slewing, or both. Slewing large corrections can take an extended amount
of time, so be careful if you modify this setting. If slews take a long time to complete, the clock can
continue to drift significantly during the slew, making it very difficult to achieve accurate corrections.
Only slew the clock, never step it
In v4.x, you could change the default stepping behavior by modifying the "Never Step Clock" registry option.
However, in v4.x, "Never Step" really meant "Do not step except on first boot or when triggered by an
administrator," which was a bit ambiguous.
In v5.x, this setting is now available on the Control Panel applet. If it is enabled, Domain Time
really will never step the clock. The slew limits and slew direction settings are not overridden by
sync triggers, the control panel applet, or reboot detection. As a result, if you have this option selected,
you will probably have to set the clock manually after every boot to get the time within the slew limit range
to begin correcting the clock.
IMPORTANT: If this setting is enabled and the clock variance is ever outside the slew limit,
the clock will never be corrected; a log entry indicating this condition will be made instead.
Therefore, use care when choosing this option.
Only step the clock, never slew it
To provide greater control of the stepping process, v5.x introduces the dialog page which allows you to select the conditions under which stepping is allowed.
The settings on this dialog correspond to the new "Allow Stepping" registry setting. "Allow Stepping" is a
bitmask of the selected options. If your v4.x machine had "Never Step" specified in the registry, the value will be
translated to an "Allow Stepping" value of zero when upgrading to v5.x. In all cases, stepping will only be
applied if slewing is disabled or if the variance is outside the slewing limit (see above).
Correction Reduction and Advanced Clock Control
In addition to correcting the time during a time check, Domain Time can use highly-sophisticated clock control
methods to ensure the clock on your machine runs more accurately, even between time corrections. This section
shows whether these processes are enabled, as well as some statistics about the current clock management parameters.
This setting determines whether Domain Time will manage the rate of the system clock between time corrections.
In nearly all cases, you will want to leave this checkbox checked.
When unchecked, Windows will operate as if there is no time service controlling the clock between time corrections
and the system clock will therefore run at whatever rate was last adjusted to (see the description of Phase Adjustment below).
This may cause the clock to drift severely between corrections.
More critically, because Windows thinks no process is managing the clock, it will periodically (usually ~ once an hour), hard-set
the system clock to match the CMOS hardware clock on the motherboard, causing jumps in the system time.
The CMOS clock is notoriously unreliable and thus the resulting time jumps may be very large.
The stability of the system clock on Windows is a result of complex and difficult-to-predict interactions of
hardware and software timers, operating system processes, and running applications on each machine. Domain Time's
Correction Reduction functions are extremely good at taking all these items into account; however, some machine's
clocks are difficult to discipline automatically, and the default automatic algorithms can sometimes appear to make
If your machine gets progressively less accurate over time, please carefully investigate the options on the Advanced
Clock Control dialog (see below) before turning off Correction Reduction entirely. It may be that resetting the timings to defaults,
locking the clock rate, adjusting the Interphase settings, and/or changing the Timer Resolution settings will
improve the accuracy dramatically on an errant system. Uncheck Correction Reduction only if you have a compelling reason to do so.
Advanced Clock Control
The button will bring up the Advanced Clock Control dialog.
Machines running Domain Time II automatically train themselves over time to better match the speed of their sources.
If a particular machine is consistently slow, for example, it will gradually speed up in order to reduce the frequency
and magnitude of corrections. If it is consistently fast, it will gradually slow down. See the "Phase Adjustment" section
below for a description of how this is done.
Self-training may take several days to several weeks to reach equilibrium across all the machines on your network
since each machine has to collect data from its own time synchronizations, determine what type of adjustment to attempt, and
then re-sample to determine if the adjustment was correct. In most cases, the self-training process will hone in on the best
clock rate for each machine, and very few training changes will occur thereafter.
However, it may sometimes be desirable to take a shortcut to speed up the training process. The
button initiates a special accelerated clock training
sequence that causes an extended series of rapid clock synchronizations that allows the system to estimate what the correct
clock rate is in a relatively short period of time.
Accelerated clock training is not as accurate as the automatic self-training over time, however it can get the machine close
to the correct clock rate so that final self-training can fine-tune the rate more quickly. On machines with highly variable
load where self-training cannot reliably determine a correct rate, accelerated training can be used to determine a decent
clock rate value to use as a starting point to determine a locked rate (see below).
Use accelerated training on your master time server when you first deploy Domain Time II on your network. When the master
is fully trained, then you can use accelerated training on each slave.
Then, use accelerated training on your Independent Servers.
Allow other machines to automatically train their clocks without accelerated training if possible.
Do not use accelerated training on clients before their servers have finished either self-training or accelerated training,
since this will result in inaccurate training of the client.
In most cases, having these boxes checked will increase the accuracy of the system clock. However, they are global settings for all applications on the machine,
and other applications may raise or lower the resolution unexpectedly. Also, changes to the OS timer in particular may have unintended consequences to other
applications or system functions, so the default for that setting is unchecked.
If you find that your system's clock accuracy changes when certain applications are run (such as multimedia applications, Java applets,
etc.) you may want to try disabling these settings, reset the clock rate settings on this page to the defaults (click the
button, and then use the Accelerated Clock Training function (described above) to re-train the software while your application is active.
These settings display (and set) the current clock rate settings on the machine.
In most cases, you will not need to adjust these settings as Domain Time will usually do an excellent job of finding the optimum tuning values.
However, you may be able to acheive higher accuracy/clock stability by adjusting these settings.
Default Phase Adjustment: displays the original clock tick rate calculated by the OS for the hardware of this machine. Windows
expects that this rate will equal one second per second. In reality, it almost never does. The actual number of
ticks necessary to run at exactly one second per second on this machine is usually some value greater or less than the default.
Domain Time attempts to automatically determine the optimum tick rate setting and will adjust this value in small increments over time.
The current tick rate setting in use is displayed in the Phase adjustment: field.
Checking the Phase Locked box will lock the clock at the current rate.
This should be used with great care as it prevents any further automatic clock training. Use this setting if automatic clock training results
in incorrect phase adjustments. For example, auto-training on some systems may result in the phase adjustment continually incrementing,
causing the clock to run ever faster (or slower). Locking the rate will prevent the rate from incrementing.
Locking the phase rate can also be useful if auto-training results in the clock consistently running slightly slower or faster than the correct time.
You can change the phase rate and lock it so that corrections are slightly behind the actual time (so that corrections are always speeding up the clock slightly)
Then, use the Interphase settings described below to fine-tune the corrections the rest of the way.
On versions of Windows other than Vista, 2008, 2008/R2, and Win7, the tick rate can reliably be set to the actual resolution shown (i.e. changing the tick
rate from 156250 to 156251 will change the clock rate by an exact number of microseconds per second). However, with Vista, 2008, 2008/R2, and Win7, Microsoft made underlying changes to
how Windows handles the clock timers, resulting in a significant reduction in the granularity of this setting. In effect, on those operating systems a change of at least 16 ticks
must occur before a change in clock rate actually happens on those systems.
In the example above, changing 156250 to 156251 will not have any effect. You must change the rate to 156266 (156250 + 16) before the clock rate actually changes. The
next rate change will occur at 156282 (156250 + 32), etc.
In most cases, this decrease in granularity will result in a significant loss of accuracy unless you allow Domain Time to compensate for it properly using the Interphase adjustment setting below.
As of Windows 2012/Windows 8, Microsoft appears to have addressed the granularity issue so that single digit changes to the tick value again respond as expected.
The Interphase adjustment: settings allows for fine-tuning the clock rate when the correct time falls somewhere between the resolution of the tick rates set in
the Phase Adjustment setting above. As described above, this is much more likely to be necessary on newer versions of Windows, since the granularity of phase adjustment
is larger than on older versions. This value is the automatic clock correction value applied every minute (at the rate selected by the Interphase period setting below)
to provide highly precise clock adjustment (and compensate for underlying timer errors/corrections on newer versions of Windows).
These corrections are usually made automatically, but if your system is unable to achieve the desired level of accuracy, you can manually set this value and
lock it using the Interphase Locked checkbox. Use this value for extreme fine tuning after
getting the clock as accurate as possible first if you are using NTP or DT2 protocols to synchronize time.
If you are using the IEEE 1588-2008 (PTP) protocol to synchronize time, it is usually better to allow Domain Time to continuously adjust the Interphase settings automatically to achieve
significantly more accurate and smoother clock corrections. This function is enabled by checking the Continuously variable (PTP)
checkbox. If you are using PTP and this function is enabled, the Interphase adjustment/Interphase period settings are ignored, even if locked. Note that if PTP sync is lost, these settings resume effect
if the machine falls back to using another time protocol like NTP or DT2.
The Interphase period:
seconds selection determines how often per minute Domain Time applies a fraction of the Interphase adjustment when attempting to exactly match this clock's
phase to a time source.
For example, a setting of 15 seconds will apply 1/4 of the Interphase setting every 15 seconds. A setting of 20 will apply 1/3 of the Interphase value every 20 seconds, etc.
Due to the complex nature of the underlying timers, there is usually a "sweet spot" for this setting that results in maximum accuracy, but it can only be discovered by trial and error.
It is probably not necessary to adjust this value unless you have first fine-tuned your accuracy as much as possible with all of the other settings.
Change rate limiter enabled: % controls
how quickly the software makes changes to the Interphase settings based on the collected time samples. Setting this value too high may result in overly-large Interphase adjustments; too low of a setting may result in unnecessarily-small adjustments.
Either condition can affect how long it takes to converge on accurate timings for the machine.