Error: "Error running cleanup task within schedule" when Clean Ownership task runs
search cancel

Error: "Error running cleanup task within schedule" when Clean Ownership task runs

book

Article ID: 253058

calendar_today

Updated On:

Products

Client Management Suite Asset Management Suite

Issue/Introduction

For several days you had been following this task schedule result and is not working properly. 

We see the following error in the Notification Server logs:

Error running cleanup task within schedule.

Error number 50000 is invalid. The number must be from 13000 through 2147483647 and it cannot be 50000.
A cursor with the name 'OwnershipDetailsResources_Cursor' already exists.
The cursor is already open.
   [System.Data.SqlClient.SqlException @ .Net SqlClient Data Provider]

Server stack trace: 
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Altiris.AssetContractCommon.Tasks.CleanupOwnershipTask.CleanOwnership()
   at Altiris.AssetContractCommon.Tasks.CleanupOwnershipTask.OnSchedule(String identifier)

SQL Exception details: code=2732, line=739, procedure=spAC_CleanupOwnership

Exception logged from: 
   at Altiris.AssetContractCommon.Tasks.CleanupOwnershipTask.OnSchedule(String)
   at RuntimeMethodHandle.InvokeMethod(Object, Object[], Signature, Boolean)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object, Object[], Object[])
   at System.Reflection.RuntimeMethodInfo.Invoke(Object, System.Reflection.BindingFlags, System.Reflection.Binder, Object[], System.Globalization.CultureInfo)
   at Altiris.AssetContractCommon.Operation.ScheduleHandler.Execute(Altiris.DotNetLib.Collections.ParameterValueCollection, Altiris.DotNetLib.Collections.ParameterValueCollection)
   at Altiris.AssetContractCommon.Operation.OperationTask.OnExecute(Altiris.TaskManagement.ServerTasks.IServerTaskExecutionInstance)
   at Altiris.TaskManagement.ServerTasks.BaseServerTask.OnExecute(Altiris.TaskManagement.Common.Execution.Engine.ITaskExecutionEngine, Altiris.TaskManagement.ServerTasks.IServerTaskExecutionInstance, Altiris.TaskManagement.Common.Execution.Engine.TaskInstanceRequest)
   at Altiris.TaskManagement.ServerTasks.BaseServerTask.Execute(Altiris.TaskManagement.Common.Execution.Engine.ITaskExecutionEngine, Altiris.TaskManagement.Common.Data.IBaseTaskExecutionInstance, Altiris.TaskManagement.Common.Execution.Engine.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(Altiris.TaskManagement.Common.Execution.Engine.TaskInstanceRequest, Altiris.TaskManagement.Common.Execution.Engine.TaskEngineExecutionThread)
   at Altiris.TaskManagement.ServerTasks.ServerTaskManager.ProcessTaskExecuteOperation(Altiris.TaskManagement.Common.Execution.Engine.TaskInstanceRequest, Altiris.TaskManagement.Common.Execution.Engine.TaskEngineExecutionThread)
   at Altiris.TaskManagement.Common.Execution.Engine.TaskExecutionEngine.ProcessTaskExecuteOperation(Object)
   at Altiris.DotNetLib.Threading.AtrsThreadPoolEx.ProcessWorkToDo(System.Threading.Thread, Altiris.DotNetLib.Threading.AtrsThreadPoolWorkItemEx)
   at Altiris.DotNetLib.Threading.AtrsThreadPoolEx.ProcessWorkToDo()
   at Altiris.DotNetLib.Threading.AtrsThreadPoolEx.WorkerThreadRun()
   at Altiris.DotNetLib.Threading.AtrsThreadPoolEx.WorkerThreadProc()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, Object)
   at System.Threading.ThreadHelper.ThreadStart()

Environment

ITMS 8.x

Cause

One of the associations had 0000 GUIDs on the results

Resolution

Run the following query. If the results include GUIDs with all zeros then contact technical support.

 declare
   @RA_USER_OWNERS uniqueidentifier,
   @RA_DEPARTMENT_OWNERS uniqueidentifier,
   @RA_SOFTWAREPURCHASE_USER_OWNERS uniqueidentifier,
   @RA_SOFTWAREPURCHASE_DEPARTMENT_OWNERS uniqueidentifier
 declare @OwnershipRule varchar(100)
 declare @RATypeDelete uniqueidentifier
 declare @RASoftwarePurchaseTypeDelete uniqueidentifier
 declare @MultipleEnabled bit
 declare @LastError int

 set @RA_USER_OWNERS = 'ED35A8D1-BF60-4771-9DDE-092C146C485A'
 set @RA_DEPARTMENT_OWNERS = '1466e770-4413-4517-a89d-6599b8a7f144'
 set @RA_SOFTWAREPURCHASE_USER_OWNERS ='5cf17724-8f75-4505-8898-7b42d8cd62da'
 set @RA_SOFTWAREPURCHASE_DEPARTMENT_OWNERS = '0DA075AC-6FCA-411c-AEEC-AE1003FA93E6'
   create table #MetaAssociationAssetTemp
   (
    ResourceAssociationTypeGuid uniqueidentifier,
    ParentResourceGuid uniqueidentifier,
    ChildResourceGuid uniqueidentifier,
    Percentage float
   )
   insert into #MetaAssociationAssetTemp

   select ResourceAssociationTypeGuid, ParentResourceGuid, ChildResourceGuid, 0
   from (select * from ResourceAssociation where
     (ResourceAssociation.ResourceAssociationTypeGuid = @RA_USER_OWNERS)
     or
     (ResourceAssociation.ResourceAssociationTypeGuid = @RA_DEPARTMENT_OWNERS)) as ra
   left join Inv_Ownership_Details o on 
    (o._ResourceGuid = ra.ParentResourceGuid) and (o.Owner = ra.ChildResourceGuid)
   where
    --just get the records that have not been synchronised
    (o._id is null)
   select * from #MetaAssociationAssetTemp
   drop table #MetaAssociationAssetTemp