none
Problem collecting Inventory and Metrics - Bug? RRS feed

  • Question

  • Hi there

    I have installed MAP 3.2 on a Hyper-V VM running Server 2008 x64 Standard edition.
    All the prerequisities have been installed.
    When I go to run a performance metric collection against the 40 servers I wish to analyse, the process runs but after a few minutes, the WMI Inventory collection seems to crash the MAP tool. The error section in the log states the following:


    <DataAccessHelper 16:12:35> Error: DataAccessHelper.ExecuteNonQuery: Exception Stack:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
       at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
       at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at Microsoft.AssessmentPlatform.DataAccess.DataAccessHelper.ExecuteNonQuery(IDbCommand command, String sqlQuery) Expection Message: The conversion of the varchar value '4294967295' overflowed an int column.
    The statement has been terminated.   at Microsoft.AssessmentPlatform.DataAccess.DataAccessHelper.ExecuteNonQuery(IDbCommand command, String sqlQuery)
      0   at Microsoft.AssessmentPlatform.Logging.FlatFileSink.ERROR(String logString)
      0
    <InventoryEngine 16:12:35> Error: Exception Occurred (PersistRegistryKeysInfo for watersrf03): The conversion of the varchar value '4294967295' overflowed an int column.
    The statement has been terminated.   at Microsoft.AssessmentPlatform.InventoryCommon.InventoryDataAccess.PersistRegistryKeysInfo(RegistryKeyDataCollection registryKeyDataCollection)
      0   at Microsoft.AssessmentPlatform.Logging.FlatFileSink.ERROR(String logString)
      0
    <DataAccessHelper 16:12:35>  SqlException occurred: Message: The conversion of the varchar value '4294967295' overflowed an int column.
    The statement has been terminated. (Number: 248)
    <InventoryEngine 16:12:35> Error: The conversion of the varchar value '4294967295' overflowed an int column.
    The statement has been terminated.   at Microsoft.AssessmentPlatform.InventoryEngine.RegistryCollector.PersistRegistryNodeInfoCB(Object state)
      0   at Microsoft.AssessmentPlatform.Logging.FlatFileSink.ERROR(String logString)

    I have tried building the install on another Server 2008 x86 VM. But the same thing happens once I start a collection. I feel the issue is related to the WMI capture process bringing back a value which is outside the allowed value range for a SQL table field. Any ideas what is wrong? I can provide the full log on request. It is using SQL 2008 express as per the version downloaded on install. I have tried creating new databases without success. This information is crucial to a customers Hyper-V migration project.

    Thanks

    Norman
    Wednesday, May 27, 2009 7:25 PM

Answers

  • Hi Jay

    This worked fine, although there are no references to the language parameter in the stored procedures you speak of.
    The collections now run fine.

    Thanks for your help with this.

    Regards

    Norman
    • Marked as answer by NEnglish Monday, June 1, 2009 1:36 PM
    Monday, June 1, 2009 1:36 PM

All replies

  • Norm,

    Would you please take a look at the Known Issues page for MAP and determine if your issue fit into one of those 2 categories?  If so, we are looking into solving this in future releases of MAP.

    If it's about something else, please send us the log file to MAPSFDBK@microsoft.com .

    Thank you,
    MAP Team

    “Capture performance metrics” doesn’t work with computers in workgroup

    The “Capture performance metrics” wizard may fail to collect computer performance counters in the following scenarios:

    • The computer running the MAP tool is not joined to a domain and is collecting performance data from other computers that may or may not be joined to a domain.
    • Regardless of whether the computer running the MAP tool is joined to a domain, performance data is being collected from computers that are not joined to a domain.

    This issue is being investigated for a fix in the next version of the MAP tool. A workaround that is sometimes successful is to do a “net use \\computername\IPC$ /u:<adminuser>” from the computer running the MAP tool to each computer you wish to collect data from before running the MAP performance data collector. However, this may not work in all scenarios.

    Some inventory types may fail in multi-domain scenarios

    In scenarios where the MAP tool is run against computers that are in multiple DNS domains, some types of inventory may fail on computers that are not within the same domain as the computer running the MAP tool. Specifically, the SQL inventory functionality may fail even though base inventory (such as computer name or installed operating system) succeeds. This is due to a bug in MAP causing SQL inventory to be attempted using a computer’s host name without DNS suffix. A computer that has a fully qualified domain name of “hostname.subdomin.domain.com” will have a connection attempted using just “hostname”. If the target computer is not in the same domain as the computer running MAP, then DNS name resolution will likely fail and the SQL inventory will fail.

    To work around this issue, modify the DNS Suffix search list on the computer running MAP to add the domain names of the computers you wish to inventory. Note that if you have name collisions (two or more computers with the same hostname in different domains), then you will have to run the MAP tool multiple times with different DNS Suffix search lists in place to isolate the computers.

    This issue will be addressed in the next release of the MAP tool.


    BNg
    Thursday, May 28, 2009 4:44 AM
  • When interrogating the registry on a machine during inventory, a value that MAP is expecting to be a DWORD is actually a much larger value.  This is probably happening during inventory.

    <InventoryEngine 16:12:35> Error: Exception Occurred (PersistRegistryKeysInfo for watersrf03): The conversion of the varchar value '4294967295' overflowed an int column.


    Problem is, I don't know from this which registry key is being interrogated.  Is machine watersrf03 running SQL Server 2000?  We can start narrowing down which registry keys might be requested from this machine....

    Thanks,
    Jay
    Thursday, May 28, 2009 3:32 PM
  • Here's a list of keys that it might be:

     

     

    HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server: TSAppCompat

    HKLM\Microsoft\Update Services\Server\Setup: VersionString

    HKLM\SOFTWARE\Microsoft\%INSTANCE_NAME%\MSSQLServer\CurrentVersion: CurrentVersion, Language, checksum, CSDVersion

    HKLM\SOFTWARE\Microsoft\%INSTANCE_NAME%\Setup: Edition

    HKLM\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters: PhysicalHostNameFullyQualified, VirtualMachineName


    If you forced me to bet, my money would be on HKLM\SOFTWARE\Microsoft\%INSTANCE_NAME%\MSSQLServer\CurrentVersion: Language

    Thursday, May 28, 2009 3:52 PM
  • Thanks for the replys Guys

    I was thinking that as INT can only hold a certain value, would it be best to change this to BIGINT in the SQL table, that way it would capture ok? maybe this is not happening?

    It is happening on two servers. One is definitely a SQL server. Not sure what version though. The other is a Surfcontrol filtering server which is quite old. So I guess it is running SQL 2000.

    I am only collecting metrics, so it should only be running a basis WMI inventory also.

    I have removed both servers and the tool is now collecting.

    I will find this out when I visit the customer site again on Monday. I will reply back with the registry values of both servers also.

    Again, thanks for this

    Regards

    Norman
    Thursday, May 28, 2009 7:18 PM
  • Hi Jay

    I can confirm both servers are running SQL 2000 version.
    You are spot on, the offending key is:

    HKLM\SOFTWARE\Microsoft\%INSTANCE_NAME%\MSSQLServer\CurrentVersion: Language - 4294967295 (oxffffffff)

    Given this, can you suggest a workaround to let me scan the 2 servers.
    I guess changing the SQL field to type BIGINT should work? Which field though?
    Or do I need to change the registry value before running on each server?

    Thanks again

    Regards

    Norman
    Friday, May 29, 2009 10:00 AM
  • Two changes to make:

    ALTER TABLE [dbo].[sql_inventory] ALTER COLUMN [language] bigint

     

     

    then, change the stored procedure [dbo].[sp_insupd_sql2000_reg_info] and make the @language parameter bigint instead of int, and do the same for [dbo].[sp_insupd_sql_instance_data]

    That should take care of it.  If you make those changes in both the database you've already created and in your model database, then future databases you create will have the fix.

    Sorry for the trouble.  We're not sure why SQL 2000 put a value that large (or a negative value if SQL is internally representing it as signed int) in that reg key, but MAP definitely wasn't expecting it...  Fixed in v. 4 of MAP.

    Thanks,
    Jay

    Friday, May 29, 2009 4:13 PM
  • Sorry, the table you need to alter is [dbo].[sql_assessments], my mistake!
    Friday, May 29, 2009 4:14 PM
  • Hi Jay

    This worked fine, although there are no references to the language parameter in the stored procedures you speak of.
    The collections now run fine.

    Thanks for your help with this.

    Regards

    Norman
    • Marked as answer by NEnglish Monday, June 1, 2009 1:36 PM
    Monday, June 1, 2009 1:36 PM