My environment is:
Windows XP (x86) SP3 (I had the same problem with SP2)
SQL Server 2005 (x86) Developer Edition SP2
wbemtest connected to namespace root\cimv2 enumerating classes
beginning with win32_perf, shows none of the
Win32_PerfFormattedData_MSSQLSERVER_* classes exist, all of the
Win32_PerfRawData_MSSQLSERVER_* classes exist and
Win32_PerfFormattedData_msftesql_* exist.
The following didn't fix the problem (I also tried reinstalling SQL
Server).
wmiadap /f
net stop winmgmt
net start winmgmt
and
winmgmt /clearadap
winmgmt /resyncperf
After running these commands C:\WINDOWS\system32\wbem\Logs
\wbemcore.log shows lots of Win32_PerfFormattedData_* and
Win32_PerfRawData_* classes being registered but none of the
Win32_PerfRawData_MSSQLSERVER_* classes.
wmiadap.log
(Wed Jun 18 11:04:42 2008.1170406) : Constructing the MSSQLSERVER
performance library wrapper.
(Wed Jun 18 11:04:42 2008.1170406) :
CAdapPerfLib::BeginProcessingStatus()...
(Wed Jun 18 11:04:42 2008.1170421) : ** MSSQLSERVER Library Loaded.
(Wed Jun 18 11:04:42 2008.1170421) : Worker thread for MSSQLSERVER is
0xc34
(Wed Jun 18 11:04:42 2008.1170421) : Open called for MSSQLSERVER
returned 0
(Wed Jun 18 11:04:42 2008.1170421) : Collect called for MSSQLSERVER
returned 0
(Wed Jun 18 11:04:42 2008.1170421) : Collect called for MSSQLSERVER
returned 0
(Wed Jun 18 11:04:42 2008.1170421) : Close called for MSSQLSERVER
returned 0
(Wed Jun 18 11:04:42 2008.1170421) : Thread 0xc34 for MSSQLSERVER is
terminating
(Wed Jun 18 11:04:42 2008.1170421) :
CAdapPerfLib::EndProcessingStatus()...
(Wed Jun 18 11:04:42 2008.1170421) : Destructing the MSSQLSERVER
performance library wrapper.
(Wed Jun 18 11:04:42 2008.1170421) : Library for Service MSSQLSERVER
Freed.
(Wed Jun 18 11:04:42 2008.1170421) : CPerfLibSchema::Initialize for
MSSQLSERVER hr 00000000
(Wed Jun 18 11:04:42 2008.1170437) : GetClassList for MSSQLSERVER hr
00000000
(Wed Jun 18 11:04:42 2008.1170453) : m_apMasterClassList[0]->Merge for
MSSQLSERVER hr 00000000
(Wed Jun 18 11:04:42 2008.1170453) : GetClassList for MSSQLSERVER hr
80041001
The following entries were in the Event Log.
Source: WinMgmgt
Event ID: 40
Description: WMI ADAP was unable to create the object
Win32_PerfFormattedData_MSSQLSERVER_SQLServerBufferManager for
Performance Library MSSQLSERVER because error 0x80041002 was returned
Source: LoadPerf
Event ID: 1000
Description: Performance counters for the MSSQLServer (SQL Server
(MSSQLSERVER)) service were loaded successfully. The Record Data
contains the new index values assigned to this service.
0000: 0c 14 00 00 ....
Source: LoadPerf
Event ID: 1001
Description: Performance counters for the MSSQLSERVER (SQL Server
(MSSQLSERVER)) service were removed successfully. The Record Data
contains the new values of the system Last Counter and Last Help
registry entries.
0000: 8e 30 00 00 8f 30 00 00 Ž0.. 0..
0008: 17 07 00 00 ....
The Extensible Counter List tool from the Resource Kit (c:\Program
Files\Resource Kit\exctrlst.exe) shows that the SQL Server performance
counter dll is registered and enabled.
MSSQLSERVER sqlctr90.dll
[x] Performance Counters Enabled
DLL Name: sqlctr90.dll
Open Procedure: OpenSQLPerformanceData1
Collect Procedure: CollectSQLPerformanceData1
Close Procedure: CloseSQLPerformanceData1
Counter ID Range: 12432 to 13060
Help ID Range: 12433 to 13061
And sqlctr90.dll exists in c:\windows\system32
The machine has the following registry settings.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER
\Performance
First Counter 0x3090 (12432)
Last Counter 0x3304 (13060)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
\009\Counter
...
12432
SQLServer:Buffer Manager
...
Interestingly, the first counter is the SQLServer::Buffer Manager
which is the class with the 0x80041002 (WBEM_E_NOT_FOUND) error in the
Event Log for. This may mean the first counter failing is preventing
the other counters from being loaded (or attempted).
These queries work fine in SQL Server Management Studio successfully
select * from sysperfinfo
select * from sys.dm_os_performance_counters
And perfmon (and perfmon /wmi) correctly show the SQL Server
performance counters.
Does anyone have any idea why the
Win32_PerfFormattedData_MSSQLSERVER_* WMI classes don't exist on my
machine, or how to fix this problem.
They should be there.
Allan
<calum.m...@gmail.com> wrote in message
news:66bdb8e1-e1a1-45d6...@z66g2000hsc.googlegroups.com...
> 0000: 8e 30 00 00 8f 30 00 00 Z0..�
I also looked at the classes using WMI Code Creator, WMI Explorer,
Visual Studio 2005's Server Explorer and Powershell's WMI queries.
Calum
On Jun 24, 11:35 pm, "Allan" <codera...@msn.com> wrote:
> When you enum classes, did you select recursive?
>
> They should be there.
>
> Allan
>
> <calum.mitch...@gmail.com> wrote in message
> > 0000: 8e 30 00 00 8f 30 00 00 Z0.. 0..