Since upgrading our SMP Server to the 8.7 version, the "Inventory Clean Up" (under SMP Console Manage>Jobs and Tasks>System Jobs and Tasks>Service and Asset Management>CMDB)) the task seems to be that has not been running successfully.
The NS logs show "This functionality is removed: Inventory Cleanup".
This functionality is removed: 'Inventory Clean Up' (a8acd0fc-3ecb-4ae0-b1d5-0a2c560fd8fb)
Message logged from:
at Altiris.Diagnostics.Logging.EventLog.ReportException(int, string, string, Exception, string)
at Altiris.AssetContractCommon.Settings.InventoryCleanUp.ExecuteInventoryCleanUp(IList<Guid>, IList<Guid>, IList<Guid>)
at System.RuntimeMethodHandle.InvokeMethod(object, object[], Signature, bool)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(object, object[], object[])
at System.Reflection.RuntimeMethodInfo.Invoke(object, BindingFlags, Binder, object[], CultureInfo)
at Altiris.AssetContractCommon.Operation.ScheduleHandler.Execute(ParameterValueCollection, ParameterValueCollection)
at Altiris.AssetContractCommon.Operation.OperationTask.OnExecute(IServerTaskExecutionInstance)
at Altiris.TaskManagement.ServerTasks.BaseServerTask.OnExecute(ITaskExecutionEngine, IServerTaskExecutionInstance, TaskInstanceRequest)
at Altiris.TaskManagement.ServerTasks.BaseServerTask.Execute(ITaskExecutionEngine, IBaseTaskExecutionInstance, TaskInstanceRequest)
at Altiris.TaskManagement.Common.Execution.Engine.TaskEngineExecutionThread.ExecuteTaskHandler()
at Altiris.TaskManagement.ServerTasks.ServerTaskExecutionThread.ExecuteTaskHandler()
at Altiris.TaskManagement.Common.Execution.Engine.TaskEngineExecutionThread.Execute()
at Altiris.TaskManagement.Common.Execution.Engine.TaskExecutionEngine.ProcessTaskExecuteOperation(TaskInstanceRequest, TaskEngineExecutionThread)
at Altiris.TaskManagement.ServerTasks.ServerTaskManager.ProcessTaskExecuteOperation(TaskInstanceRequest, TaskEngineExecutionThread)
at Altiris.TaskManagement.Common.Execution.Engine.TaskExecutionEngine.ProcessTaskExecuteOperation(object)
at Altiris.DotNetLib.Threading.AtrsThreadPoolEx.ProcessWorkToDo(Thread, AtrsThreadPoolWorkItemEx)
at Altiris.DotNetLib.Threading.AtrsThreadPoolEx.ProcessWorkToDo()
at Altiris.DotNetLib.Threading.AtrsThreadPoolEx.WorkerThreadRun()
at Altiris.DotNetLib.Threading.AtrsThreadPoolEx.WorkerThreadProc()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext, ContextCallback, object, bool)
at System.Threading.ExecutionContext.Run(ExecutionContext, ContextCallback, object, bool)
at System.Threading.ExecutionContext.Run(ExecutionContext, ContextCallback, object)
at System.Threading.ThreadHelper.ThreadStart()
-----------------------------------------------------------------------------------------------------
Date: 9/6/2023 8:59:50 AM, Tick Count: 269938031 (3.02:58:58.0310000), Size: 2.69 KB
Process: AtrsHost (7508), Thread ID: 198, Module: Altiris.AssetContractCommon.dll
Priority: 1, Source: InventoryCleanUp.ExecuteInventoryCleanUp
ITMS 8.7
Why we remove it (Inventory Clean Up)?:
1. The intermediate tables were not purged ever, which brought 1.2+ billion rows (over 130GB) for some customers.
2. The task itself is not stable - it was designed to allow purging by "excludes", which might have not been up to date. Hence, purging computers, that are not intended to be purged.
3. Purge process itself removed data, populated by any solution, not Asset only. This is not something, we have to do at all - and there was no control over it.
And, why the task itself was left in the UI?:
This was solely an oversight by our Dev team. This task was using a purging schedule by .NET reflection, not executing API directly.
This message itself is not a reflection of something going wrong.
What advice we can make to a customer?:
We have made some changes to our documentation:
The latest documentation on Inventory license was updated @ About Licensing Inventory Solution
We've also updated the KB which was referencing and suggesting to run this task: Altiris Licensing - Technical FAQ
and added/modified the part for License Reclaiming.