Application Metering - Do I have a license problem or Not?
Recently, I encountered a Application Metering problem, which was evidenced by constantly seeing the following three errors in the Altiris log files.
Error 1: Priority: 2
Date: 6/23/2009 12:41:41 PM
Tick Count: 11234656
Host Name: xxxxxxxxxx
Process: aexsvc.exe (480)
Thread ID: 572
Module: AltirisNativeHelper.dll
Source: LicenseManager::RequestLicense
Description: The specified resource failed to obtain a license (Resource: XXXXXXXXXX, Product Application Metering Solution Configuration, Exception: Failed to load inventory. [Cannot insert the value NULL into column '_ResourceGuid', table 'custom_table_name'; column does not allow nulls. INSERT fails.
The statement has been terminated.], Exception Type: Altiris.NS.Exceptions.AeXException )
Error 2: Priority: 1
Date: 6/23/2009 12:43:10 PM
Tick Count: 11324234
Host Name: XXXXXXXXX
Process: aexsvc.exe (480)
Thread ID: 5612
Module: AltirisNativeHelper.dll
Source: Altiris.NS.ResourceManagement.DataClassImporter.LoadInventory_Impl
Description: Failed to load inventory. [Cannot insert the value NULL into column '_ResourceGuid', table 'custom_table_name'; column does not allow nulls. INSERT fails.
The statement has been terminated.]
Error 3: Priority: 1
Date: 6/23/2009 12:43:10 PM
Tick Count: 11324234
Host Name: XXXXXXXXXX
Process: aexsvc.exe (480)
Thread ID: 5612
Module: AltirisNativeHelper.dll
Source: Altiris.NS.ResourceManagement.DataClassRowCollection.CommitData
Description: Unspecified Dataloader SQL Exception encountered for inventory data class AeX AM Monthly Summary. (SQL Exception Number: 515) ( Unhandled exception. Type=System.Data.SqlClient.SqlException Msg=Cannot insert the value NULL into column '_ResourceGuid', table 'custom_table_name'; column does not allow nulls. INSERT fails.
The statement has been terminated. Src=.Net SqlClient Data Provider
StackTrace=
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Altiris.NS.ResourceManagement.Database.DataLoaderSqlClientConnection.ExecuteSQLNoResults(String query, Int32& rowsAffected)
at Altiris.NS.ResourceManagement.Database.DataLoaderSqlClientConnection.ExecuteSQLNoResults(String query)
at Altiris.NS.ResourceManagement.DataClassRowCollection.UpdateDataClass(IDataLoaderConnection connection, DataClass dataClass, DataClassRows rows, Hashtable resourceDLInfoHT, Boolean HistoryEnabled, Hashtable resourceGuidToResourceTypeGuid)
at Altiris.NS.ResourceManagement.DataClassRowCollection.CommitData_Impl(IDataLoaderConnection connection)
at Altiris.NS.ResourceManagement.DataClassRowCollection.CommitData(IDataLoaderConnection connection) )
The top error, outlining the fact that licensing had failed was frustrating, and after reviewing the licensing page and seeing that all was in order, the issue became more challenging. I did some further review and analysis of the log files. I noticed this statement:
Cannot insert the value NULL into column '_ResourceGuid', table 'custom_table_name'; column does not allow nulls. INSERT fails. (custom table name was actually populated with a name from a specific database)
It became clear that as a part of collecting the application metering data, a custom table was also being populated. Further, that the custom table definition did not permit NULL values to be included in the _resourceguid column of that table, and that NULL values were coming in from the managed client machines.
Once the custom table definition was changed to support NULL values for the _resourceguid column, the problem and errors disappeared. And licensing had nothing to do with it.
The Endpoint Management Community Blog is the perfect place to share short, timely insights including product tips, news and other information relevant to the Endpoint Management community. Any authenticated Connect member can contribute to this blog.