search cancel

Error: Procedure or function spNSResourceCollectionBaseSave has too many arguments specified.

book

Article ID: 161538

calendar_today

Updated On:

Products

IT Management Suite

Issue/Introduction

While running the Delta and Complete - Resource Membership Update schedules an error similar to the following is thrown for every filter that is to be updated.

 

Process: AeXSvc (9868)

Thread: 106

Module: AeXSVC.exe

Source: DeltaCollectionUpdateSchedule

Description: Error delta updating collection: 9b40aebd-274c-41d5-8398-fe3b4c9afc03

Procedure or function spNSResourceCollectionBaseSave has too many arguments specified.

   [System.Data.SqlClient.SqlException @ .Net SqlClient Data Provider]

   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)

   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

   at Altiris.NS.DataAccessLayer.Implementation.Altiris_NS_StandardItems_Collection_DataAccessLayerNSResourceCollectionDAL.spNSResourceCollectionBaseSaveWithDirty(Guid CollectionGuid, DateTime LastUpdate, DateTime LastUpdateEventDate, Boolean Dirty)

   at Altiris.NS.StandardItems.Collection.NSResourceCollectionBase.UpdateMembershipImpl(ICollectionUpdateMessage updateMessage)

   at Altiris.NS.StandardItems.Collection.NSResourceCollectionBase.UpdateMembership(ICollectionUpdateMessage updateMessage)

   at Altiris.NS.StandardItems.Collection.DeltaCollectionUpdateSchedule.DeltaUpdateCollections(ICollection`1 collectionGuids, DateTime lastRunTime)

 

SQL Exception details: code=8144, procedure=spNSResourceCollectionBaseSave

 

Exception logged from:

   at Altiris.Diagnostics.Logging.EventLog.ReportException(Int32 severity, String strMessage, String category, Exception exception, String footer)

   at Altiris.NS.Logging.EventLog.ReportException(Int32 severity, String strMessage, String category, Exception exception)

   at Altiris.NS.StandardItems.Collection.DeltaCollectionUpdateSchedule.DeltaUpdateCollections(ICollection`1 collectionGuids, DateTime lastRunTime)

   at Altiris.NS.StandardItems.Collection.DeltaCollectionUpdateSchedule.OnScheduleImpl()

   at Altiris.NS.StandardItems.Collection.DeltaCollectionUpdateSchedule.OnSchedule(String identifier)

   at Altiris.NS.StandardItems.ContainerUpdateSchedule.RunUpdateScheduleImpl(String identifier, String name, Guid scheduleGuid)

   at Altiris.NS.StandardItems.ContainerUpdateSchedule.RunFilterDeltaUpdate(String identifier)

   at Altiris.NS.StandardItems.ContainerUpdateSchedule.RunDeltaUpdate(String identifier)

   at Altiris.NS.StandardItems.ContainerUpdateSchedule.OnSchedule(String identifier)

   at Altiris.NS.Scheduling.ScheduleService.ProcessScheduleImpl(String scheduleId, CodeProfiler cp, SecurityContext owner, Guid guid)

   at Altiris.NS.Scheduling.ScheduleService.<>c__DisplayClass4.<ProcessSchedule>b__0(SecurityContext owner)

   at Altiris.NS.Security.SecurityContext.ExecuteAsOwner(Guid itemGuid, Boolean useAppIdentityIfNoOwnerFound, Action`1 action)

   at Altiris.NS.Scheduling.ScheduleService.ProcessSchedule(String scheduleId)

   at Altiris.NS.Scheduling.ScheduleService.ProcessScheduleWithCleanup(String scheduleId, Boolean deleteMissingSchedule)

   at Altiris.Diagnostics.RemoteControl.ScheduleServiceProxy.ProcessScheduleImpl(String scheduleId, Boolean throwOnError)

   at Altiris.Diagnostics.RemoteControl.ScheduleServiceProxy.ProcessScheduleThreadProc(Object state)

   at System.Threading.ExecutionContext.runTryCode(Object userData)

   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)

   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

   at Altiris.Diagnostics.RemoteControl.ScheduleServiceProxy.ProcessSchedule(String scheduleId, Boolean async)

   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)

   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

   at System.Runtime.Remoting.Messaging.ServerObjectTerminatorSink.SyncProcessMessage(IMessage reqMsg)

   at System.Runtime.Remoting.Lifetime.LeaseSink.SyncProcessMessage(IMessage msg)

   at System.Runtime.Remoting.Messaging.ServerContextTerminatorSink.SyncProcessMessage(IMessage reqMsg)

   at System.Runtime.Remoting.Channels.CrossContextChannel.SyncProcessMessageCallback(Object[] args)

   at System.Runtime.Remoting.Channels.ChannelServices.DispatchMessage(IServerChannelSinkStack sinkStack, IMessage msg, IMessage& replyMsg)

   at System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream)

   at System.Runtime.Remoting.Channels.SoapServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream)

   at System.Runtime.Remoting.MetadataServices.SdlChannelSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream)

   at System.Runtime.Remoting.Channels.Tcp.TcpServerTransportSink.ServiceRequest(Object state)

   at System.Runtime.Remoting.Channels.SocketHandler.ProcessRequestNow()

   at System.Runtime.Remoting.Channels.SocketHandler.BeginReadMessageCallback(IAsyncResult ar)

   at System.Net.LazyAsyncResult.Complete(IntPtr userToken)

   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

   at System.Net.ContextAwareResult.Complete(IntPtr userToken)

   at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken)

   at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)

   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

 

 

Cause

Authentication to the SQL server/database was set to be done via the domain service account (Application Identity), but an unknown environmental condition was causing the authentication attempt to be translated into the SMP server's system account: "Domain\ServerName$" which the SQL server could not authenticate.

Example "EMP.local\SMP-W2K8-01$"

 

Resolution

In the case sited the only solution was to employ a workaround wherein the account used to access SQL was set to either use the SQL server's local "sa" account or to create a new local SQL user and give it dbo permissions to the database, and then use the new account for reading and writing to the SQL account.

 


Applies To

Symantec Management Platform 7.5 SP1 HF3