Error: ORA-00001: unique constraint (PBDS.PK_T2B_DUPLICATE_MERGE_NAMES) violated - TA/CRM M2 sync

The TA/CRM Sync job ends in error (near the start) with this error:
 
ORA-00001: unique constraint (PBDS.PK_T2B_DUPLICATE_MERGE_NAMES) violated

In the log, it would look like this:

1/20/2016 11:02:05 AM START [TADATASYNC] Beginning of package execution.

1/20/2016 11:02:05 AM INFO [Acquire Lock] Lock has been acquired.
1/20/2016 11:02:05 AM PROGRESS [Lookup Sync Changeagent] Executing query "select ID from changeagent where username='Data Sy...".(100%)
1/20/2016 11:02:09 AM INFO [Check Control Key] Control key successfully located.
1/20/2016 11:02:09 AM PROGRESS [Clear NewErrors Flag] Executing query "update dbo.B2TCONTROL set NEWERRORS=0".(100%)
1/20/2016 11:02:51 AM PROGRESS [Initialize TA] Executing query "begin t2b_sync_initialize; end;".(100%)
1/20/2016 11:02:52 AM PROGRESS [Truncate t2b_bbec_deleted_names] Executing query "truncate table t2b_bbec_deleted_names".(100%)
1/20/2016 11:02:52 AM INFO [Log Deleted BBEC Constituents] "component "t2b_bbec_deleted_names" (50)" wrote 0 rows.

1/20/2016 11:02:55 AM ERROR [t2b_merge] Executing the query "begin t2b_merge.process_merges; end;" failed with the following error: "ORA-00001: unique constraint (PBDS.PK_T2B_DUPLICATE_MERGE_NAMES) violated
ORA-06512: at "PBDS.T2B_MERGE", line 553
ORA-06512: at line 1". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

1/20/2016 11:02:55 AM INFO [t2b_merge] Aborting the current distributed transaction.

1/20/2016 11:02:55 AM WARN [Process Merges] SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.  The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.

1/20/2016 11:02:55 AM INFO [Process Merges] Aborting the current distributed transaction.

1/20/2016 11:02:55 AM WARN [Sequence Container] SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.  The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.

1/20/2016 11:02:55 AM PROGRESS [Mark sync not running] Executing query "update t2b_control set sync_is_running=NULL".(100%)
1/20/2016 11:02:55 AM INFO [Log Step Failures] Total number of steps executed: 0
1/20/2016 11:02:55 AM INFO [Log Step Failures] Successful steps:               0
1/20/2016 11:02:55 AM INFO [Log Step Failures] Failed steps:                   0
1/20/2016 11:02:55 AM END [TADATASYNC] End of package execution.
This is the result of a bug in the Sync process when handling certain chain merges. Here is an example of a situation that can cause this error to occur:

You have 4 accounts, A, B, C, and D. Accounts A and B are included in the Sync, account C is NOT in the sync, and account D and can be either in the sync or not in the sync. The merges then go A > B, B > C, and C > D, and all 3 merges are handled by the Sync at once (i.e. all merges happened after the last sync). Account D can also be merged into another account and so on, but it does not affect the issue caused by the 3 merge pairs outlined above.

Contact TA Support for assistance with identifying the problem merge pairs and implementing the workaround.

Environment

 RSR

Was this article helpful?