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



The information in this article applies to:

  • Microsoft SQL Server 2000 Desktop Engine (MSDE)

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 "Return Value 3" 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 error number


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


Error codeText for the error
1010The configuration registry key is invalid.
203The system could not find the environment option that was entered.
6The handle is invalid.


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)
    • Internet Information Services (IIS)
    • WnsService (This service corresponds to the Canon printer driver.)
    • Third-party performance monitor utilities that load performance counters.
    • Antivirus programs.
  • 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.

    LanguageLanguage identifier
    Spanish0x0a
    German0x07
    French0x0c
    Chinese0x04


    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

    • 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.
    • 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.
    • 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

  • 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.
  • Make sure that all the following are true:
    • 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.
    • 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
  • Manually register the SQL counters. This may resolve the problem. To do this, run the following command at the command prompt: lodctr "c:\Program Files\Microsoft SQL Server\<InstanceOfSQL Server>\Binn\sqlctr.ini"
  • Check to see if you can load a counter other than the performance counter. To do this, follow these steps:
    1. 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
    2. Open the command prompt, and then run the .bat file you created in step 1.
    If the RemoteAccess counter cannot be loaded, you may receive an error message.
  • 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:
    1. 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 "Symptoms" section.
    2. 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:
      [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


  • If the problem occurs when you install a named instance of MSDE, try to install a default instance of MSDE.
  • If the problem occurs on a computer that has a non-English version of the operating system installed, and if the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009 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.

REFERENCES

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

296152 Application Center 2000 installation fails during MSDE installation


Modification Type:MajorLast Reviewed:10/5/2004
Keywords:kbfile kbprb KB315083