Attempts to enable metering for discovered software to track usage fails with generic error
Last Updated July 07, 2017
When attempting to enable metering for discovered software to track usage fails with generic error box:
There was a problem saving the software product. Check the Altiris logs for further details.
The SMP log contain an error similar to the following:
Module: Altiris.NS.Services.CoreServices.dll Source: Altiris.NS.Services.CoreServices.Logging.EventLogger.ReportException Description: Unable to update product '7-Zip ' (36c0b8c1-44c2-4395-9348-3dd8d83e3ae9): Object reference not set to an instance of an object. [System.NullReferenceException @ Altiris.Inventory] at Altiris.Inventory.Utilities.InvDataClassAPI.UpdateSoftwareExecutionDataclass(ResourceItem res, Int32 IsMetered) at Altiris.Inventory.Utilities.InvDataClassAPI.SetSoftwareExecutionDataClass(GuidCollection gCollObsoleteFileResource, GuidCollection gCollAddFileResource, Int32 IsMetered) at Altiris.NS.Services.CoreServices.SoftwareService.UpdateSoftwareProduct(SoftwareComponent product, FaultDetail& fault)
Exception logged from: at Altiris.NS.Services.CoreServices.Logging.EventLogger.ReportException(String, Exception) at Altiris.NS.Services.CoreServices.SoftwareService.UpdateSoftwareProduct(Altiris.NS.Services.CoreServices.Contracts.SoftwareComponent, Altiris.NS.Services.CoreServices.Contracts.FaultDetail&) at
The error was duplicated by doing the following in the SMP console
Manage > Software, under “Installed Products”
Select a software product in the right pane.
In the far right pane click on the link next to “Usage tracking:” the link will be Off
In the list of software select the desired version and click on the line “Add Program”
Select an available EXE in list of available programs and move it to the right pane.
After selecting the desired programs to use to monitor the software click the “OK” button.
The error pops up and short circuits the configuration.
Symantec Management Platform 8.0 HF6
A stored procedure behind the process (spGetResourceDataClasses) is supposed to gather the resource types that should be able to be used by the software resource. The one needed for software components to be tied to executables:
To confirm if the condition exits run the following SQL query against the SMP database using SQL Management Studio. If the above data class is not in the results the condition is confirmed
SELECT DISTINCT dc.Name, dc.DataTableName, rth.ResourceTypeGuid as 'ResourceTypeGuid', dc.Guid as 'DataClassGuid' FROM ResourceType rt JOIN ResourceTypeHierarchy rth ON rth.BaseResourceTypeGuid = rt.Guid JOIN ResourceTypeDataClass rtdc ON rtdc.ResourceTypeGuid = rt.Guid JOIN DataClass dc ON dc.Guid = rtdc.ResourceDataClassGuid where rth.ResourceTypeGuid = '018B191B-47AE-4180-9FCD-7F3CEA4F1E12' order by dc.Name
Using SQL Management Studio run the following SQL against the SMP database, then test to see of the problem resolves.
insert into ResourceTypeDataClass (ResourceTypeGuid, ResourceDataClassGuid, [Type]) values ( '018B191B-47AE-4180-9FCD-7F3CEA4F1E12', -- File Resource Type 'FF2EEE59-EAB7-4025-9E3E-9B430E3CB8EB', -- Software Execution 'O' )
Subscribing will provide email updates when this Article is updated. Login is required to Subscribe