Getting "Failed to insert row into table ( INSERT INTO dbo.[Evt_Resource_Merge]" table after an User AD Import happens.

Article:TECH127477  |  Created: 2010-05-04  |  Updated: 2013-01-18  |  Article URL http://www.symantec.com/docs/TECH127477
Article Type
Technical Solution


Issue



Customer created a test OU in his domain and then created a test security group as well as a test user.  The test user is a member of the test security group.

The customer configured one of his User AD Import rules to import that test security group.

After the import ran, the User organisational group was populated by the test user. The "All Users" filter was also populated and resource manager displays the data for this test user.  However, the AD security group filter doesn't contain this test user. 

Looking on the User AD Import process, the following error message was noticed right after the AD Import finished:

Priority: 2
Date: 4/27/2010 10:27:07 AM
Tick Count: 97779734
Host Name: NS7SERVER3
Process: AeXSvc (6164)
Thread ID: 65
Module: AeXSVC.exe
Source: Altiris.NS.ResourceManagement.Database.DataLoaderSqlClientInserter.CommitBatch
Description: Failed to insert row into table ( INSERT INTO dbo.[Evt_Resource_Merge] ([_ResourceGuid],[Resource1Guid],[MergeDate],[Resource2Guid],[_eventTime]) VALUES (N'Test User (c4df258b-2bde-4456-9269-f843a637e163)',N'00000000-0000-0000-0000-000000000000',N'1/1/0001 12:00:00 AM',N'00000000-0000-0000-0000-000000000000',N'2010-04-27 10:27:07.123') )

( Exception Details: System.Data.SqlClient.SqlException: Arithmetic overflow error converting expression to data type datetime.
The statement has been terminated.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.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.RunExecuteNonQueryTds(String methodName, Boolean async)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Altiris.NS.ResourceManagement.Database.DataLoaderSqlClientInserter.CommitBatch() )
( Exception logged from:
   at Altiris.Diagnostics.Logging.EventLog.ReportException(Int32 severity, String strMessage, String category, Exception exception)
   at Altiris.NS.ResourceManagement.Database.DataLoaderSqlClientInserter.CommitBatch()
   at Altiris.NS.ResourceManagement.Database.SqlClientInserter.CommitAll()
   at Altiris.NS.ResourceManagement.Database.SqlClientInserter.CommitBatch()
   at Altiris.NS.ResourceManagement.DataClassRowCollection.InternalTableInserterImpl(IDataLoaderConnection connection, Hashtable resourceDLInfoHT, TargetTable targetTable, String strInserterTable, DataClass dataClass, DataClassRows dataClassRows)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.InternalTableInserter(IDataLoaderConnection connection, Hashtable resourceDLInfoHT, TargetTable targetTable, String strInserterTable, DataClass dataClass, DataClassRows dataClassRows)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.UpdateDataClass_Impl(DataClass dataClass, DataClassRows rows, Hashtable resourceDLInfoHT, Boolean HistoryEnabled, Hashtable resourceGuidToResourceTypeGuid, IDataLoaderConnection connection)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.<>c__DisplayClassa.<UpdateDataClass>b__6(IDatabaseContext context)
   at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetryHelper(Int32 retries, Boolean inTransaction, Getter`1 getContext, Action`1 action, Action`1 retry)
   at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetry(Int32 retries, Boolean startNewTransaction, IsolationLevel isolationLevel, Boolean independentContext, Action`1 action, Action`1 retry)
   at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetry(Int32 retries, Boolean startNewTransaction, Action`1 action, Action`1 retry)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.UpdateDataClass(DataClass dataClass, DataClassRows rows, Hashtable resourceDLInfoHT, Boolean HistoryEnabled, Hashtable resourceGuidToResourceTypeGuid, IDataLoaderConnection connection)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.CommitData_Impl(IDataLoaderConnection connection)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.DefaultCommit(Object sender, ICommitEventArgs commitArgs)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.OnCommitHandler(DCCommitEventArgs commitArgs)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.<>c__DisplayClass4.<CommitData>b__0(IDatabaseContext context)
   at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetryHelper(Int32 retries, Boolean inTransaction, Getter`1 getContext, Action`1 action, Action`1 retry)
   at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetry(Int32 retries, Boolean startNewTransaction, IsolationLevel isolationLevel, Boolean independentContext, Action`1 action, Action`1 retry)
   at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetry(Int32 retries, Boolean startNewTransaction, Action`1 action, Action`1 retry)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.CommitData(IDataLoaderConnection connection)
   at Altiris.NS.ResourceManagement.DataClassImporter.CommitData(DataClassRowCollection rows)
   at Altiris.NS.ResourceManagement.DataClassImporter.ProcessData(DataClass dataClass, XmlReader reader, Guid resourceGuidOverride, ProcessingDirective processingDirective)
   at Altiris.NS.ResourceManagement.DataClassImporter.LoadInventory_Impl(XmlReader reader, Boolean bProcessData, Boolean bForceSchemaValidation, Guid resourceGuidOverride)
   at Altiris.NS.ResourceManagement.DataClassImporter.LoadInventory(XmlReader reader, Boolean bProcessData, Boolean bForceSchemaValidation)
   at Altiris.NS.ResourceManagement.DataClassImporter.LoadInventory(XmlReader reader)
   at Altiris.NS.StandardItems.Messaging.InventoryCaptureItem.OnMessage_Impl(String message, Boolean useFilename)
   at Altiris.NS.StandardItems.Messaging.InventoryCaptureItem.OnMessageInternal(String message, Boolean useFilename)
   at Altiris.NS.StandardItems.Messaging.InventoryCaptureItem.OnFHMessage(String path)
   at Altiris.NS.LegacyInterop.ItemMessageDispatcherService.Dispatch(String message, Boolean useFilename)
   at Altiris.NS.LegacyInterop.ItemMessageDispatcherService.DispatchFile(String path)
   at Altiris.NS.ClientMessaging.FileDispatcher.ProcessFileCallback(Object state)
   at Altiris.Common.Threading.LocalThreadPool.ExecuteUserWorkItem(UserWorkItem workItem)
   at Altiris.NS.Threading.NSThreadPool.ExecuteUserWorkItem(UserWorkItem workItem)
   at Altiris.Common.Threading.LocalThreadPool.ExecuteUserWorkItemInContext(UserWorkItem workItem)
   at Altiris.Common.Threading.LocalThreadPool.ThreadPoolProc(Object threadStartParameter)
   at System.Threading.ThreadHelper.ThreadStart(Object obj)
 )
( Extra Details:  Type=System.Data.SqlClient.SqlException Src=.Net SqlClient Data Provider )

SMP  7.0 ERROR Message : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Priority: 1
Date: 4/27/2010 10:27:07 AM
Tick Count: 97779734
Host Name: NS7SERVER3
Process: AeXSvc (6164)
Thread ID: 65
Module: AeXSVC.exe
Source: Altiris.NS.ResourceManagement.DataClassRowCollection.CommitData
Description: Unspecified Dataloader Exception encountered for inventory data class Inventory Rule Prerequisite (71ac831d-3a9b-4f67-9877-05695d802809)!

( Exception Details: System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
   at System.Guid..ctor(String g)
   at Altiris.NS.ResourceManagement.DataClass.GetNormalizedColumnValueForHashing(DataClassAttribute dca, String columnValue)
   at Altiris.NS.ResourceManagement.DataClass.GetHashStrings(DataClassRows rows)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.CommitData_Impl(IDataLoaderConnection connection)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.DefaultCommit(Object sender, ICommitEventArgs commitArgs)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.OnCommitHandler(DCCommitEventArgs commitArgs)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.<>c__DisplayClass4.<CommitData>b__0(IDatabaseContext context)
   at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetryHelper(Int32 retries, Boolean inTransaction, Getter`1 getContext, Action`1 action, Action`1 retry)
   at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetry(Int32 retries, Boolean startNewTransaction, IsolationLevel isolationLevel, Boolean independentContext, Action`1 action, Action`1 retry)
   at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetry(Int32 retries, Boolean startNewTransaction, Action`1 action, Action`1 retry)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.CommitData(IDataLoaderConnection connection) )
( Exception logged from:
   at Altiris.Diagnostics.Logging.EventLog.ReportException(Int32 severity, String strMessage, String category, Exception exception)
   at Altiris.Diagnostics.Logging.EventLog.ReportException(String strMessage, String category, Exception exception)
   at Altiris.NS.Logging.EventLog.ReportException(String strMessage, Exception exception)
   at Altiris.NS.ResourceManagement.DataClassRowCollection.CommitData(IDataLoaderConnection connection)
   at Altiris.NS.ResourceManagement.DataClassImporter.CommitData(DataClassRowCollection rows)
   at Altiris.NS.ResourceManagement.DataClassImporter.ProcessData(DataClass dataClass, XmlReader reader, Guid resourceGuidOverride, ProcessingDirective processingDirective)
   at Altiris.NS.ResourceManagement.DataClassImporter.LoadInventory_Impl(XmlReader reader, Boolean bProcessData, Boolean bForceSchemaValidation, Guid resourceGuidOverride)
   at Altiris.NS.ResourceManagement.DataClassImporter.LoadInventory(XmlReader reader, Boolean bProcessData, Boolean bForceSchemaValidation)
   at Altiris.NS.ResourceManagement.DataClassImporter.LoadInventory(XmlReader reader)
   at Altiris.NS.StandardItems.Messaging.InventoryCaptureItem.OnMessage_Impl(String message, Boolean useFilename)
   at Altiris.NS.StandardItems.Messaging.InventoryCaptureItem.OnMessageInternal(String message, Boolean useFilename)
   at Altiris.NS.StandardItems.Messaging.InventoryCaptureItem.OnFHMessage(String path)
   at Altiris.NS.LegacyInterop.ItemMessageDispatcherService.Dispatch(String message, Boolean useFilename)
   at Altiris.NS.LegacyInterop.ItemMessageDispatcherService.DispatchFile(String path)
   at Altiris.NS.ClientMessaging.FileDispatcher.ProcessFileCallback(Object state)
   at Altiris.Common.Threading.LocalThreadPool.ExecuteUserWorkItem(UserWorkItem workItem)
   at Altiris.NS.Threading.NSThreadPool.ExecuteUserWorkItem(UserWorkItem workItem)
   at Altiris.Common.Threading.LocalThreadPool.ExecuteUserWorkItemInContext(UserWorkItem workItem)
   at Altiris.Common.Threading.LocalThreadPool.ThreadPoolProc(Object threadStartParameter)
   at System.Threading.ThreadHelper.ThreadStart(Object obj)
 )
( Extra Details:  Type=System.FormatException Src=mscorlib )

SMP  7.1 ERROR Message : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Severity: 1
Date: 1/6/2012 5:20:33 AM
Tick Count: -1968401765
Host Name: DC2ALTNS1
Process: AeXSvc (9688)
Thread: 79
Module: AeXSVC.exe
Source: Altiris.NS.ResourceManagement.Database.BatchSqlClientInserter.CommitBatch
Description: CommitBatch: Couldn't update table dbo.[Evt_Resource_Merge].
**CEDUrlStart** :http://entced.symantec.com/entt?product=SMP?version=Unknown?language=en?module=i6RlT5KD4rLKHg+eRJT1v3VyYQYOuYFhnmVjmA5/PBsNLs5iRTWKpVzBhjsel2kH?error=919441469?build=**CEDUrlEnd**

 

Similar issue occured with 7.0 SP 4 but the error was slightly different.  

Error in the log viewer was "SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM"  while attempting to write to the evt_resource_merge table.
 


Environment



Symantec Management Platform 7.0, 7.1
 


Cause



Working as designed. There is no mapping for these items ("Inventory Rule Prerequisite" and "Resource Merge"). This is by design.


Solution



We captured the NSE from a different server where that issue is not present. Then we found the NSE that actually failed under the EvtQSlow/Bad folder.
We compared both NSEs and we found that the bad one has extra dataclasses on it:

</dataClass><dataClass guid="{212064A9-24B0-4B3E-8210-CA30CFD9B10E}" ignoreMissingResources="true">
  <data><resource partialUpdate="false" resourceRef="{48B27C9C-0385-4C28-AB48-456E9CAFC857}">
  <row c2="" c4="" c7="" />
</resource></data>
</dataClass><dataClass guid="{71AC831D-3A9B-4F67-9877-05695D802809}" ignoreMissingResources="true">
  <data><resource partialUpdate="false" resourceRef="{48B27C9C-0385-4C28-AB48-456E9CAFC857}">
  <row c1="" c2="" />
</resource></data>

GUID 71AC831D-3A9B-4F67-9877-05695D802809 belongs to Inventory Rule Prerequisite.
GUID 212064A9-24B0-4B3E-8210-CA30CFD9B10E belongs to Resource Merge.

To resolve this error and get those Users imported try the following:

1. Go to the User AD Import Rule that you are using for importing those users.
2. Open the Default Column Mapping in that User AD Import Rule and uncheck the Inventory Rule Prerequisite and Resource Merge column mappings. Click OK.
3. Run the User AD Import Rule and verify that the desired users are now appearing under the AD security group filter.



Legacy ID



52719


Article URL http://www.symantec.com/docs/TECH127477


Terms of use for this information are found in Legal Notices