Microsoft KB Archive/112610

{|
 * width="100%"|

PRB: SQL Performance Counters Missing in Windows NT Performance Monitor

 * }

Q112610

-

The information in this article applies to:


 * Microsoft SQL Server version 4.2x

-

SYMPTOMS
The SQL Server for Windows NT performance counters may, under some conditions, not be visible when Performance Monitor (Perfmon.exe) is run from a Windows NT network client. This is most frequently seen following a restart of the server computer.

CAUSE
Windows NT monitors a wide variety of SQL-specific performance counters. These counters are visible as objects in the Performance Monitor program. If a Windows NT network client is monitoring either SQL or non-SQL performance counters, and if the server computer is restarted, thereafter, the SQL performance counters may not be visible. They will be visible if Performance Monitor is run locally on the server computer.

The extensible Sqlctrs.dll acts as the interface between SQL Server and Performance Monitor, and is what exports the counters. If Performance Monitor is run locally, the Advapi32.dll process is responsible for loading any Performance Monitor extensible DLL. If Performance Monitor is run from a network client, Screg.exe is responsible for loading any Performance Monitor extensible DLL. ADVAPI32 and SCREG are not part of SQL Server, but are Windows NT components.

Screg.exe can become unable to load the Sqlctrs.dll if Performance Monitor sessions are running on network clients and if the server computer is restarted. You may see one or both of the following errors in the Windows NT application event log:

Event ID 4005:

Load of a required DLL failed. Make sure the DLL file is in the PATH. DOS Error number is returned in the data.

Event ID 2:

OpenSQLPerformanceData: Cannot Connect to

SQL Server - SERVERNAME

where SERVERNAME is the name of your SQL Server.

WORKAROUND
Following a restart of the server computer, if any Performance Monitor sessions are running against it from network clients, you may need to momentarily discontinue these sessions until SQL Server starts. If SQL Server has already started, you can simply momentarily shut down any Performance Monitor sessions running on network clients. This will immediately restore the ability to monitor SQL Server performance counters, and further Performance Monitor use can continue as before.

The Performance Monitor sessions running on network clients can be shut down manually, or remotely by means of several ways:


 * From the server, run the NET FILE command. Current Performance Monitor connections can be identified as having open the file \PIPE\winreg. Close each such session with the NET FILE /close command. See your Windows NT documentation for more information on this command.
 * From the server, run Control Panel Server and click the In Use button. Identify and close each Performance Monitor connection.
 * From a Windows NT network client, run the Server Manager program, Srvmgr.exe. Connect to the server computer and close any existing Performance Monitor connection. Server Manager comes with Windows NT Advanced Server, and is also available in the Windows NT Resource Kit. See these sources for more information on Server Manager.

MORE INFORMATION
NOTE: Performance counters on clustered SQL Servers are not always available. When performance counters are available, they are usually only on the primary node if no failover has occurred.

Additional query words: Windows NT winnt perf mon perfmon machine

Keywords : kbtool

Issue type : kbprb

Technology : kbSQLServSearch kbAudDeveloper kbSQLServ420OS2