Problems with Server 2008 and SQL Server 2008

Sep 2, 2009 at 1:49 PM

Cannot collect server information from Windows Server 2008. Error information reads:

2.9.2009 12:47:38       Status:           Collecting Win32_OperatingSystem
2.9.2009 12:47:38       Status:          Closing Unit 1
2.9.2009 12:47:38       ERROR:    Input string was not in a correct format.
2.9.2009 12:47:38       WARNING:          WMI Collector encountered critical err
or. Abandoning Collector.

Also receive this error when collecting SQL Server 2008 information:

2.9.2009 12:47:39       WARNING:        Querying Reporting Services WMI provider
 is not implemented for SQL Server 2008

 

Everything else is working fine. Database statistics and performance data works great.

Are there some issues with 2008?

Regards,
Einar.

Sep 5, 2009 at 12:28 AM

The first one is an error that needs investigation. WMI errors are difficult to catch as they may appear on some machines, but not others.

If you could run debug version that would help (we would gett better information in the log).

The second issue is not an error. It's just not implemented for 2008. Querying for RS information for 2008 has yet to be added. As of now it is simply blocked.

 

 

Sep 12, 2009 at 11:44 PM

13.9.2009 00:10:57  INFO:  inst_id = 1
13.9.2009 00:10:57  INFO:  version: 9.00.4035.00
13.9.2009 00:10:57  Status:    RUN 
13.9.2009 00:10:57  Status:   Initializing collector: WMI
13.9.2009 00:10:57  Status:  Running WMI collector
13.9.2009 00:10:57  Status:   Opening Unit 1 (OS/CS)
13.9.2009 00:10:57  Status:    Collecting Win32_OperatingSystem
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.Int16.Parse(String s, NumberStyles style, NumberFormatInfo info)
   at System.Int16.Parse(String s)
   at H2V2.Collector.CollectorWmi.StoreOS(ManagementObject a_mo) in F:\SQLH2\H2Collector\Collector_WMI.cs:line 489
   at H2V2.Collector.CollectorWmi.StoreWmi(UInt32 a_type, ManagementObject a_mo) in F:\SQLH2\H2Collector\Collector_WMI.cs:line 398
   at H2V2.Collector.CollectorBase.CollectWmi(String a_scope, String a_query, UInt32 a_type) in F:\SQLH2\H2Collector\Collector.cs:line 194
13.9.2009 00:10:58  Status:   Closing Unit 1
13.9.2009 00:10:58  ERROR:    Input string was not in a correct format.
13.9.2009 00:10:58  WARNING:    WMI Collector encountered critical error. Abandoning Collector.

Sep 16, 2009 at 10:31 PM

The line in question is this:

<font size="2">

Locale =

</font>

short.Parse ((string)a_mo["Locale"]);

Locale is expected to be a short integer. According to http://msdn.microsoft.com/en-us/library/aa394239(VS.85).aspx 

Locale

Data type: string Access type: Read-only

<!---->

Language identifier used by the operating system. A language identifier is a standard international numeric abbreviation for a country/region. Each language has a unique language identifier (LANGID), a 16-bit value that consists of a primary language identifier and a secondary language identifier.

However this particular article doesn't refer to Win2008. It is possible that something has changed, although you are the first to report such a problem. If you are able to debug it would be nice to see what actual string you get for Locale.

 

Nov 8, 2010 at 9:45 AM

I have the same problem on a Windows 2003 SP2 (64bits) French when running wmi collector :

Here an extract of the debug log file :

========================================
08/11/2010 10:19:57 		Opening Log 
08/11/2010 10:19:57 		SQLH2  ver. 2.2.1.0 12/04/2010 09:47:06
08/11/2010 10:19:57 	Status: 	Init
08/11/2010 10:19:57 	WARNING: 	There are no PerfProviders in the config file
08/11/2010 10:19:57 	Status: 	 Initializing repository: V2K3SQLDT4\DTX01
08/11/2010 10:19:58 	Status: 	 Repository Database: SQLH2Repository
	DEBUG: 	The .Net SqlClient Data Provider has received a severity 0, state 1 message 5701 on server V2K3SQLDT4\DTX01: Le contexte de la base de données a changé ; il est maintenant 'SQLH2Repository'.
08/11/2010 10:19:58 	INFO: 	host_id = 1
08/11/2010 10:19:58 	Status: 	Starting RUN  
08/11/2010 10:19:58 	Status: 	Registering Run
08/11/2010 10:19:58 	INFO: 	run_id = 12
08/11/2010 10:19:58 	Status: 	Starting Targets processing  
08/11/2010 10:19:58 	Status: 	Initializing Target: V2K3SQLDT4
08/11/2010 10:19:58 	Status: 	  registering Server
08/11/2010 10:19:58 	INFO: 	srv_id = 1; signature = 779d9ffe-07cd-4da3-aa42-f8fc5c856919
08/11/2010 10:19:58 	Status: 	Scanning Registry on V2K3SQLDT4
08/11/2010 10:19:58 	Status: 	  registering instance V2K3SQLDT4\DTX01
08/11/2010 10:19:58 	INFO: 	inst_id = 1
08/11/2010 10:19:58 	INFO: 	version: 10.50.1600.1
08/11/2010 10:19:58 	Status: 	  RUN  
08/11/2010 10:19:58 	Status: 	 Initializing collector: WMI
08/11/2010 10:19:58 	Status: 	Running WMI collector
08/11/2010 10:19:58 	Status: 	 Opening Unit 1 (OS/CS)
08/11/2010 10:19:58 	Status: 	  Collecting Win32_OperatingSystem
   à System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   à System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   à System.Int16.Parse(String s, NumberStyles style, NumberFormatInfo info)
   à H2V2.Collector.CollectorWmi.StoreOS(ManagementObject a_mo) dans D:\Documents\Development\SQLH2\H2Collector\Collector_WMI.cs:ligne 493
   à H2V2.Collector.CollectorWmi.StoreWmi(UInt32 a_type, ManagementObject a_mo) dans D:\Documents\Development\SQLH2\H2Collector\Collector_WMI.cs:ligne 402
   à H2V2.Collector.CollectorBase.CollectWmi(String a_scope, String a_query, UInt32 a_type) dans D:\Documents\Development\SQLH2\H2Collector\Collector.cs:ligne 213
08/11/2010 10:19:58 	Status: 	 Closing Unit 1
08/11/2010 10:19:58 	ERROR: 	  Le format de la chaîne d'entrée est incorrect.
08/11/2010 10:19:58 	WARNING: 	  WMI Collector encountered critical error. Abandoning Collector.
...
===========================================
08/11/2010 10:19:58 ERROR:   Le format de la chaîne d'entrée est incorrect. = (in english) "Input string was not in a correct format."
I have PowerShell 1.0 and colleting information on computer works, for example :

PS T:\SQLH2> get-wmiobject Win32_Processor -computer V2K3SQLDT4 | select Architecture,Caption,Name,Version,Manufacturer,ProcessorType,DeviceID,CurrentClockSpeed


Architecture      : 9
Caption           : EM64T Family 6 Model 26 Stepping 5
Name              : Processeur Intel(R) Pentium(R) III Xeon
Version           : Modèle 10, niveau 5
Manufacturer      : GenuineIntel
ProcessorType     : 3
DeviceID          : CPU0
CurrentClockSpeed : 2933

 

Architecture      : 9
Caption           : EM64T Family 6 Model 26 Stepping 5
Name              : Processeur Intel(R) Pentium(R) III Xeon
Version           : Modèle 10, niveau 5
Manufacturer      : GenuineIntel
ProcessorType     : 3
DeviceID          : CPU1
CurrentClockSpeed : 2934

 

Do you think a SQLH2 works with a system that is non english ?

Feb 3, 2012 at 4:48 AM

I have the same problem - so I downloaded the source code & did some debugging :)

 

The problem is this line:

 

Locale =

short.Parse((string)a_mo["Locale"]);

 H2V2.Collector.CollectorWmi line 494

  

The locale is a hex number - not a decimal (mine is 0c09).



So I modified it to use



Locale =

short.Parse((string)a_mo["Locale"], System.Globalization.NumberStyles.AllowHexSpecifier);



and it seems to work ok now.



So it will work in some regions but not others, depending on whether there are any a,b,c,d,e,f in the "number".