Microsoft KB Archive/315083

= A SQL Server Desktop Engine 2000 installation fails when it tries to register Performance Monitor counters =

Article ID: 315083

Article Last Modified on 10/5/2004

-

APPLIES TO


 * Microsoft SQL Server 2000 Desktop Engine (Windows)

-



This article was previously published under Q315083



Important This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry



SYMPTOMS
When you try to install Microsoft SQL Server 2000 Desktop Engine (MSDE 2.0), the installation may fail and roll back.

To determine why the failure occurred, use the following command to generate a verbose log file. Look for a &quot;Return Value 3&quot; entry in the verbose log file.

setup.exe /L*v c:\msde_install.log

In the verbose log file, you may see error messages that are similar to the following:

Error message 1

Starting custom action InstallPerfMon

Registering performance counters from sqlctr.ini

PerfmonLoad routine returned error code 1010

Action ended 21:39:40: InstallFinalize. Return value 3.

Error message 2

Loading extended custom action library sqlcax.dll

Starting custom action InstallPerfMon

Registering performance counters from sqlctr.ini

PerfmonLoad routine returned error code 203

Action ended 21:55:14: InstallFinalize. Return value 3.

Error message 3

Starting custom action InstallPerfMon

Registering performance counters from sqlctr.ini

PerfmonLoad routine returned error code 6

Action ended 18:04:25: InstallFinalize. Return value 3.

Error code 1010, error code 203, and error code 6 are operating system errors. These error codes are some examples of possible error messages that you may receive.

To determine the message that is associated with an operating system error, run the following command at a command prompt:

NET HELPMSG

The error codes that are listed earlier have the following text associated with them:

You receive these operating system error when you run the following command:

Lodctr.exe Sqlctr.ini



CAUSE
The Desktop Engine Setup program experienced a problem while it was trying to register the SQL Server Performance Monitor counters.



RESOLUTION
Use the following troubleshooting methods to help resolve the problem.  Stop all the services or the applications that might interfere with the Desktop Engine installation or with the loading of the SQL Server Performance Monitor counters. Here is list of some of the services and applications that you must stop:  Simple Network Management Protocol (SNMP) Performance Monitor Monitoring services like Surveyor or NetIQ Microsoft Distributed Transaction Coordinator (MSDTC) Microsoft Search (MSSearch)</li> Internet Information Services (IIS)</li> WnsService (This service corresponds to the Canon printer driver.)</li> Third-party performance monitor utilities that load performance counters.</li> Antivirus programs.</li></ul> </li> Look for corrupted registry keys. In many cases, the counters on the system may not function correctly because of corrupted registry keys.

Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

The extensible counters information is stored in the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009

Note 009 is a representation of the 3-digit hexadecimal language identifier. The U.S. English language identifier is 009. Language identifiers are defined in the Winnt.h header file. For other language identifiers, check the Winnt.h file. Examples of other language indentifiers are shown in the following table.

Run Registry Editor to view the language identifier registry key and to find registry damage, if it exists.

Another way to look for possible registry key corruption is to reinstall or to load counters for another application. For example, reinstall Microsoft Internet Information Services (IIS). For additional information about how to do this, click the following article number to view the article in the Microsoft Knowledge Base:

226512 How to reinstall IIS 4.0 Performance Monitor counters

<ul> To resolve a corrupted registry problem, run the following at the command prompt:

lodctr /r:PerfStringBackup.ini

Note Running the lodctr command removes any performance counters that were added after the PerfStringBackup.ini snapshot was created. You may have to reinstall any extensible counters or the programs that installed them.</li> If you are using Microsoft Windows 2000 or later, try to repair the registry problem by running the Windows Setup program and selecting the Upgrade option. By selecting the Upgrade option, you retain all your applications and settings. Note You must reapply any Windows service packs that you applied before you performed the upgrade.</li> To resolve the corrupted registry problem, you may have to manually rebuild the performance counter library values.

For additional information about how to do this, click the following article number to view the article in the Microsoft Knowledge Base:

300956 How to manually rebuild Performance Counter library values

</li></ul> </li> Check the permissions for the following registry key:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009

Make sure that the local Administrators group and the local System account have Full Control permissions for this key.</li> Make sure that all the following are true: <ul> The value of the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009\Counter registry key is the same as the value of the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\Last Counter registry key.</li> The value of the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009\Helpregistry key is the same as the value of the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\Last Help registry key</li></ul> </li> Manually register the SQL counters. This may resolve the problem. To do this, run the following command at the command prompt: lodctr &quot;c:\Program Files\Microsoft SQL Server\<InstanceOfSQL Server>\Binn\sqlctr.ini&quot; </li> Check to see if you can load a counter other than the performance counter. To do this, follow these steps: <ol>  Load the RemoteAccess counter. To do this, create a .bat file that contains a set of commands that are similar to the following: echo off rem findstr drivername %windir%\system32\*.ini echo unlodctr RemoteAccess unlodctr RemoteAccess

echo return value = %errorlevel% echo lodctr lodctr %windir%\system32\rasctrs.ini lodctr lodctr %windir%\system32\rasctrs.ini

echo return value = %errorlevel% echo See the Application Eventlog for errors from LoadPerf </li> <li>Open the command prompt, and then run the .bat file you created in step 1.</li></ol>

If the RemoteAccess counter cannot be loaded, you may receive an error message.</li> <li>Disable the rollback feature of the MSDE installation, and then check to see if the Sqlctr.ini file contains the required information. To do this, follow these steps: <ol> <li>At the command prompt, run the MSDE Setup program with the DISABLEROLLBACK parameter set to 1.

You may notice the behavior that is mentioned in the &quot;Symptoms&quot; section.</li> <li> Check to see if the information in the [info] section and the [text] section of the Sqlctr.ini file are correct. For example, the entries in the Sqlctr.ini file must be similar to the following for a named instance of SQL Server: <pre class="fixed_text">[info] drivername=MSSQL$<InstanceName> symbolfile=sqlctr.h

[languages] 009=English

[text] BUFMGR_OBJECT_009_NAME=MSSQL$<InstanceName> :Buffer Manager BUFMGR_OBJECT_009_HELP=Statistics related to SQL Servers buffer manager

</li></ol> </li> <li>If the problem occurs when you install a named instance of MSDE, try to install a default instance of MSDE.</li> <li>If the problem occurs on a computer that has a non-English version of the operating system installed, and if the  registry subkey is not present in the registry, try to change the input locale of your computer to English(United States).

Note You can use Regional Options in Control Panel to change the input locale of your computer.</li></ul>

<div class="references_section">