After you apply this hotfix, you can configure the SnaDatabase service and the SnaPMP service to retry the
NetGetDCName function call. This lets the SnaDatabase service and the SnaPMP service start automatically when you restart the domain controller that is running Windows Server 2003.
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.
To specify the number of times that you want the SnaDatabase service and the SnaPMP service to retry the
NetGetDCName function call and the delay between each attempt, you must configure the following registry entries. To do this, follow these steps:
1. | Click Start, click Run, type regedit, and then click OK. |
2. | Locate the following subkey in the registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SNA Server\CurrentVersion\HostSecurity |
3. | Right-click HostSecurity, point to New, and then click Key. |
4. | Type NetGetDcName, and then press ENTER. |
5. | Right-click NetGetDcName, point to New, and then click DWORD Value. |
6. | Type RetryCount, and then press ENTER. |
7. | Double-click RetryCount, type the number of attempts that you want in the Value data box, and then click OK.
Note By default, Hexadecimal is selected for the Base value. If you want to enter the value in decimal, click Decimal. |
8. | Right-click NetGetDcName, point to New, and then click DWORD Value. |
9. | Type RetryDelayInSec, and then press ENTER. |
10. | Double-click RetryDelayInSec, type the number of seconds that you want between each attempt in the Value data box, and then click OK.
Note By default, Hexadecimal is selected for the Base value. If you want to enter the value in decimal, click Decimal. |
11. | Quit Registry Editor. |
12. | Stop and then restart the SnaDatabase service and the SnaPMP service. |
If the RetryCount entry and the RetryDelayInSec entry do not exist, the default values are used. The default value for the RetryCount entry is one. The default value for the RetryDelayInSec entry is 5 seconds.
If the RetryCount entry is set to five and the RetryDelayInSec entry is set to 30 seconds, the SnaDatabase service and the SnaPMP service each retry the
NetGetDCName function call one time every 30 seconds until the call succeeds or until the SnaDatabase service and the SnaPMP service have each made five attempts. In this example, the maximum time during the retry sequence is 150 seconds.
Typically, the SnaPMP service is installed on all the domain controllers in the Windows domain that contain the user accounts that use the Host Integration Server 2000 host security features. When the SnaPMP service initializes, the SnaPMP service calls the
NetGetDCName function to determine which domain controller holds the PDC emulator operations master role in the domain. This information is required because the SnaPMP service only runs on the PDC emulator in a Windows 2000 domain or in a Windows Server 2003 domain. The SnaPMP service stops the initialization on all the other domain controllers on which the SnaPMP service is installed when the SnaPMP service detects that the local domain controller is not the PDC emulator.
Event ID 42 is a typical event that occurs when the SnaPMP service detects that the local domain controller is not the PDC emulator. The problem that is described in this article occurs when the SnaPMP service does not start automatically when you restart a Windows Server 2003 PDC emulator.
Typically, the SnaDatabase service is installed on multiple servers in a Windows domain. This includes domain controllers and member servers. The SnaDatabase service can successfully run on multiple servers at the same time. This allows for multiple backup Host Account Cache databases and one primary Host Account Cache database. The primary Host Account Cache service and the primary Host Account Cache database run on the PDC emulator. That is why the
NetGetDCName function is called. The SnaDatabase service must determine which domain controller holds the PDC emulator operations master role so that the SnaDatabase service initializes in the master role.
If you use Host Integration Server 2000 Trace Initiator (Snatrace.exe) to capture the SnaDatabase service and the SnaPMP service trace when this problem occurs, trace data that is similar to the following is included in the resulting trace files.
Pmpint1.atf: SNA WinNT Account Synchronization internal trace file
[Data omitted for brevity]
About Get PMP primary role status
Checking if this machine is the PDC
WeAreThePdc: Local machine is <Computer Name>
WeAreThePdc: NetGetDcNameFailed, error 995
This is not PDC, set to SECONDARY
This PMP is not primary. Operation halted
[Data omitted for brevity]
Udbint1.atf: SNA Host Account Cache internal trace file
[Data omitted for brevity]
Share D:\Program Files\Host Integration Server\system\hsdata\Logs as SnaUdb
Share UdbLogs already exists
Requested Access: 100009h
Found a matching ACE
User already has access to share
Failed to grant admins access to share UdbLogs, hr = 8007054Bh
Unable to start LogShipping, abort
UdbWorkThread exit with code: 2147500036
Error occured, singal termination event
Termination Event signaled, set service status to pending
[Data omitted for brevity]
Note In this trace file, the word "occured" is a misspelling for the word "occurred," and the word "singal" is a misspelling for the word "signal."