Windows NT DNR Does Not Cache Short Names

ID: Q173941


The information in this article applies to:
  • Microsoft Windows NT Workstation version 4.0
  • Microsoft Windows NT Server version 4.0
  • Microsoft Windows NT Server version 4.0, Terminal Server Edition


SYMPTOMS

When a Windows NT sockets application attempts to resolve a name using Gethostbyname(), your client computer may experience several time-outs if the Domain Name Service (DNS) server is unavailable. These time-outs may last several minutes as your client fails DNS resolution and then tries to use Windows Internet Name Service (WINS) or broadcast methods to successfully resolve the name.

NOTE: These time-outs occur repeatedly during the operation of Microsoft Exchange Server, because the client continues to attempt name resolution during various operations.


CAUSE

Windows NT clients are not properly caching "short names" that have been resolved successfully by the DNS Server.


RESOLUTION

To resolve this problem, use one of the methods below:

  • To resolve this problem, obtain the latest service pack for Windows NT 4.0 or Windows NT Server 4.0, Terminal Server Edition. For additional information, please see the following article in the Microsoft Knowledge Base:
    Q152734 How to Obtain the Latest Windows NT 4.0 Service Pack



    -or-


  • Edit the ServiceProvider priority so that WINS is used first. NetBIOS over TCP/IP (NetBT) fails quickly if WINS servers are unavailable.

    For additional information, please see the following articles in the Microsoft Knowledge Base:

    ARTICLE-ID: Q171567
    TITLE : Windows NT 4.0 ServiceProvider Priority Values Not Applied

    ARTICLE-ID: Q139270
    TITLE : How to Change Name Resolution Order on Windows 95 and Windows NT



STATUS

Microsoft has confirmed this to be a problem in Windows NT 4.0 and Windows NT Server 4.0, Terminal Server Edition. This problem was first corrected in Windows NT 4.0 Service Pack 4.0 and Windows NT Server 4.0, Terminal Server Edition Service Pack 4.


MORE INFORMATION

Your Windows NT Domain Name Resolver (DNR) should be caching the DNS name for the time-to-live (TTL) provided by the DNS server. This caching assists with the time-outs by allowing the client to use cached names that have been resolved successfully. Repeated queries and the resulting time-outs will not occur until the name's TTL assigned by the DNS server has expired.

If a Windows NT sockets application attempts to resolve a name, the caching is only done for fully qualified domain names (FQDNs). "Short names," or names such as Host instead of host.domain.com, are not cached.

Winsock, the files that provide Windows Sockets to applications, has been modified so that short names are cached. This is done on a per-process basis. For example, when a Microsoft Exchange client is initialized and name resolution is performed through Winsock to the DNS server, two queries are observed. One query is performed in the Exchange process; the other query is performed on behalf of the MAPI spooler process. Subsequent Gethostbyname() requests made by a process are serviced from the cache. The entry will remain in cache for the TTL provided in the name query response.

Additional query words: dns cache DNR

Keywords : kbnetwork NT4SP4Fix kbbug4.00 ntnetserv nttcp kbfix4.00.sp4 NTSrvWkst
Version : winnt:4.0
Platform : winnt
Issue type : kbbug


Last Reviewed: January 21, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.