TimeServ

TimeServ is Part of Microsoft's Windows NT Resource Kit (3.5 or later); you must license it from Microsoft Press (you can't download TimeServ from here).

Note: Windows 2000 and XP include a built-in time service which is equivalent to TimeServ's Type=Primary and Secondary (for sychronization) or NTP (typically used over internet to obtain accurate time).  When MS officially told me that (before year 2000), I stopped enhancing TimeServ.  Therefore the target users of TimeServ are only those still using older Windows NT (perhaps those with special hardware clocks for accurate time).   For some Windows 2000 info, try http://www.microsoft.com/windows2000/docs/wintimeserv.doc

If you're just looking for the device driver necessary to access ISA cards, download GENPORT.EXE (save to disk and follow steps in TimeServ documentation).

Contents:

To Doug Hogarth's Home Page (which has additional pointers relating to time)


Product Summary

TimeServ is a service for Windows NT which can set the PC's time accurately from a variety of sources, or synchronize the time between various networked machines. As mentioned above, it is on a CD-ROM as part of a larger offering of utilities and documentation.

Key Features

Key Benefits

Back to Top


Specifications

Rather than write new words, MS allows me to post the latest documentation in HTML format (previously known as TimeServ.wri).
So here it is (with various hyperlinks): TimeServ Documentation (or use this alternative link if your browser is broken).

Back to Top


Update Information

There have been seven external releases of TimeServ as of December '97. This section will attempt to describe some of the most recent (unreleased) work, as well as some history of the various versions (not including various items such as compiler updates or internal changes). TimeServ was initially written on my own time while I had an unrelated job at Microsoft, and I have arranged to still maintain it for Microsoft as appropriate.

Changes in testing (not shipped yet, but contact me for further info)

Version 1.55 bugfix posted on MS FTP site

Version 1.5 ships in Server 4.0 Resource Kit "Supplement Two"

Version 1.4 ships in Server 4.0 Resource Kit "Supplement One"

Version 1.3 ships in the Windows NT Server 4.0 Resource Kit

Version 1.2 shipped in the Windows NT 3.51 Resource Kit Update2

Version 1.1 shipped in the Windows NT 3.51 Resource Kit

Version 1.0 shipped in the Windows NT 3.5 Resource Kit ('nuff said!)

FAQ

RTFM: Common Questions, Event Log entries, etc.

Notice to users of Type=Internet: I apologize for any inconvenience, but in Aug'97 another bug was encountered similar to the oldest TimeServ version, causing "100% CPU use" when I failed to detect a missing service on USNO's server (their hardware has changed and now non-NTP services are disabled).
If possible, Type=Internet users should consider switching to Type=NTP in your %SystemRoot%\timeserv.ini file instead, and NTPServer=tick.usno.navy.mil (or some other server such as tock.usno.navy.mil). Since Type=NTP is more efficient, the only reason to keep using Type=Internet is if you are behind a firewall which passes TCP but not UDP (datagrams). After such change, don't forget to run "TimeServ -update" and restart the service.
If you can't switch to Type=NTP, I have made code changes to stop using USNO (for Type=Internet) which Microsoft has posted in the i386 or (DEC) alpha directory under ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/ (or the Y2K ftp site mentioned below).
Don't forget that before restarting the Time Service you must MOVE timeserv.exe and timeserv.dll to your %SystemRoot%\system32 directory.

What about Year 2000 (Y2K, which is a leap year)?  As far as I know, the only related problems are that Type=Trimble might have trouble starting around Aug 21 '99 or around 20 years later (depending on your version), Type=NTP might have trouble starting around 2036, and some other Types might have trouble starting around year 2090.   Of course you should also have a recent version of Windows NT (install service packs) and check with your manufacturer of any underlying devices (such as potential GPS week rollover issues with bc627AT or Acutime).  If problems are reported (first be sure you are using a recent version such as the update from the 1997 MS FTP site linked elsewhere on this page), I'll do my best to provide fixes; If you receive the event "Attempt to set date prior to 1995 aborted", please notify me of the details such as the Type= (and be glad that TimeServ has always had that failsafe).

In January 2000 I received two potentially Y2K-related bug reports (the first was with Type=Trimble which as mentioned above I have not been able to support fully since Aug'99).  However, it seems that both cases were related to having a bad .exe, perhaps from cluster server, so there was nothing for me to fix.  Cluster server has its own timeserv.exe which does not support all my Types.  If necessary, non-cluster users can get a recent .exe from  ftp://ftp.microsoft.com/reskit/y2kfix/.

What about TimeServ on Windows 2000/XP?  First, users of special ISA timing cards will need a new installation method.  Second, Windows 2000/XP have a built-in time service which presumably is similar/equivalent to Type=Primary | Secondary | NTP.  NET TIME /help tells how to specify the NTPServer.  See document linked from top of this one.

Need another description of synchronization (primary, secondary, etc)? Try Tao Zhou's "Time Synchronization in an NT Network" article in the Feb.'97 issue of Windows NT Magazine.

Why does Type=NMEA only support the ZDA sentence? Other common sentences such as GPGGA which appear to contain the time don't contain the date and really contain the "time of fix" rather than the current time. Since such time might be around one second old while tracking and probably would not be updated while not tracking, I choose not to support them (sorry).

Do you care about leap seconds? TimeServ knows about leap seconds, but currently doesn't schedule the insertion for the exact moment at midnight. Instead, TimeServ will just insert the second at the first synchronization after the source time has adjusted, and log the event (typically time will jump backward for that one second). So in a tiered environment, the leap second might first get inserted on the master (for example when it calls NISTACTS), then when any primary machines request the time from the master, and finally when any secondary machines request the time from a primary. For types which warn of a coming leap second, an experimental version of TimeServ optimizes the synchronization time to be shortly after the moment of leap second insertion, with certain allowances for randomization (to spread potential logjams at servers) and delays due to tiered structure (aiming toward re-synchronization within 15 minutes).

Want to completely uninstall TimeServ rather than just use Control Panel-Services-Startup-Disabled? Use REGEDT32 to carefully select SYSTEM\CurrentControlSet\Services\TimeServ and delete that entire key. You can then delete all TimeServ.* files (and reboot).

Are other devices than the ones listed supported?  In some cases such as hopf radio controlled clocks with serial interface the manufacturer may document how to configure compatibly.   Other manufacturers are welcome to contact me.

A user advises to make sure that your timeserv.ini file doesn't have the +R read-only attribute before editing, and that timeserv.ini doesn't have something like .txt added to the end by notepad.

Looking for something that TimeServ doesn't support such as RFC-868 server/client or Internet proxy server? I've attempted to describe some that can be downloaded immediately (entries in the table might be incomplete). For an NTP server there is the xntpd source code. Typically the servers could be used (with their client disabled) in conjunction with TimeServ. For purposes of this table, accuracy is an estimate as observed over an analog dial-up PPP session.

  RFC-868 server RFC-868 client Proxy support Win9x/GUI WinNT service Accuracy(sec)
Tardis Y Y ? Y Y  
UniTime Y Y   N/Y Y  
TimeSync N Y   N Y  
AtomTime95 N N Y Y N +.85/-1
YATS32 Y Y Y Y Y  
RCC Time Server Y Y     Y  
Dimension 4   Y   Y    
Domain Time Y Y Y Y Y  
NTPTime N N   Y/N Y  
AboutTime Y ?   Y    

Back to Top


Doug Hogarth authored this page (and the majority of TimeServ, although TimeServ is owned by Microsoft Corp.)
Copyright 1996-2001 Douglas W. Hogarth. All rights reserved.
Information in this document is subject to change without notice.
Other products and companies referred to herein are trademarks or registered trademarks of their respective companies or mark holders.
Last revised: May 13, 2002