KNOWN ISSUE: Inv_Software_Component table MinorVersion and Majorversion columns cannot accept non-numeric characters
search cancel

KNOWN ISSUE: Inv_Software_Component table MinorVersion and Majorversion columns cannot accept non-numeric characters

book

Article ID: 152029

calendar_today

Updated On:

Products

Software Management Solution

Issue/Introduction

Inv_Software_Component table MinorVersion and Majorversion columns cannot accept non-numeric characters.

Error in the log:

Module: AeXSVC.exe
Source:
Altiris.NS.ResourceManagement.Database.DataLoaderSqlClientInserter.SetColumn
Description: SetColumn: Couldn't set [MinorVersion] to (0-B11).

( Exception Details: System.ArgumentException: Input string was not in a
correct format.Couldn't store <0-B11> in MinorVersion Column.  Expected type is
Int32. ---> System.FormatException: Input string was not in a correct format.
  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.String.System.IConvertible.ToInt32(IFormatProvider provider)
  at System.Data.Common.Int32Storage.Set(Int32 record, Object value)
  at System.Data.DataColumn.set_Item(Int32 record, Object value)
  --- End of inner exception stack trace ---

Cause

The Major and Minor version fields in the database are set to INT (integer) values, and letters and special characters such as a dash are not allowed. A few programs put non-standardized characters in these fields captured by Software Discovery.

Resolution

This is working as designed.  The warning error message within the logs is being revised by Symantec development.

This warning message is thrown when a program has a major or minor build version that contains alpha-numeric characters rather than just numeric characters.  The full version will be recorded for the specific software component and the major and minor build information will be discarded (as per the above warning message)

This issue is slated to be addressed in the 7.1 release of Inventory and Software Management.

The following process is provided "As Is". This will work around the issue, but be advised there may be some ramifications as this process did not go through a QA process.

Reports that use the Minor-version and try to join to another data field of an INT value will fail – I checked our common reports that key off of data from the table I’m modifying, and none of them use the minorversion field.

Here is the process to follow to modify this value, plus how to confirm the change worked.  There are two options.

Option 1 (Works for SQL 2005)

  1. Open SQL Enterprise Manager.
  2. Browse to your Symantec Management Platform database. By default the database is called Symantec_CMDB.
  3. Under Tables, find the table listed as dbo.Inv_Software_Component
  4. Right-click and choose Design.
  5. Under the Data Type column, aside of the MajorVersion Column Name, use the dropdown to select nvarchar(50).
  6. Under the Data Type column, aside of the MinorVersion Column Name, use the dropdown to select nvarchar(50).
  7. Go to File > and choose Save All.

Option 2 (Recommended for SQL 2008)

Run the following SQL statements in SQL Server Management Studio if you get an error in SQL 2008 stating that "Saving changes is not permitted".

  1. Open SQL Enterprise Manager.
  2. Browse to your Symantec Management Platform database. By default the database is called Symantec_CMDB.
  3. Right-click the database and choose "New Query"
  4. Copy the following commands into the Query window, and Execute them (F5)
    • ALTER TABLE dbo.Inv_Software_Component ALTER COLUMN MajorVersion NVARCHAR(50)
    • ALTER TABLE dbo.Inv_Software_Component ALTER COLUMN MinorVersion NVARCHAR(50)

  5. Go to File > and choose Save All.

To verify that the changes worked, do the following:

  1. Go back into the Altiris Console and browse under Settings > All Settings.
  2. In the left-hand tree browse under Settings > Notification Server > Resource and Data Class Settings > Data Classes > Software Management > and select Software Component from the list.
  3. On the right the MajorVersion and MinorVersion Attribute should show nvarchar (50).
  4. Done!
If a problem is found unexpectedly, we can revert the column to int easily by using the same steps, only modified to change it back to Int.


Applies To

Inventory Solution 7.0 SP1x
Software Management 7.0x