Server Inventory: SQL Server DB Inventory fails to populate if Windows Region and Language Settings use a character other than full stop as a decimal separator
Last Updated April 03, 2014
When collecting server inventory from servers with MS SQL installed the database details fail to write to the Symantec CMDB during NSE processing.
Altiris.NS.Exceptions.AeXException: Failed to load inventory. [Database context invalidated by inner exception] ---> Altiris.Database.InvalidDatabaseContextException: Database context invalidated by inner exception ---> System.Data.SqlClient.SqlException: Error converting data type nvarchar to float.
The Inv_MS_SQL_Server_Databases table uses a float data type to record the [Space Available (MegaByte)] value. If Windows Region and Language Settings are set to a language that uses a symbol other than the full stop '.' for a decimal separator. eg. German that uses the comma ',' as a decimal separator - this field cannot be populated as a float and so the whole row is rejected.
Switch the regional and language settings on the affected server(s) to English
Alter the Symantec CMDB schema using the command below to accept nvarchar instead of float type for the Space Available column value
ALTER TABLE Inv_MS_SQL_Server_Databases ALTER COLUMN [Space Available (MegaByte)] nvarchar(20) NULL
The issue will be addressed in a future product version
7.0, 7.1.x, 7.5
Imported Document ID: TECH216360
Subscribing will provide email updates when this Article is updated. Login is required to Subscribe