Duplicate Poid Errors During CMT Migration : "Unique constraint (PIN.I_UNIQUENESS__ID) violated"
Last updated on DECEMBER 07, 2017
Applies to:Oracle Communications Billing and Revenue Management - Version 22.214.171.124.0 to 126.96.36.199.0 [Release 7.3.1]
Information in this document applies to any platform.
On a 731 BRM system :
with a multi database system, when we migrate accounts to BRM from legacy system using CMT, there are errors while loading into database because poid generated by CMT already exists. Before the migration some accounts were created via standard API like commit_customer. More precisely, the CMT errors occur when trying to load data into the uniqueness table in the primary database.
The error message in sqlldr log file is:
"Unique constraint (PIN.I_UNIQUENESS__ID) violated".
Below investigation and analysis was prepared about the issue :
The first important point is that CMT poid generation algorithm is not the same compared to real time APIs CM/DM algorithm. The CMT generated poids are not mangled (the lowest 12 bits are not reversed), while the commit_customer opcode generates poids are mangled.
Also second important point is that CMT uses POID_IDS2 sequence from primary database to generate the /uniqueness poids, which is not the case for the commit_customer opcode. The customer_commit opcode uses the POID_IDS2 sequence from the secondary database where the account was created to generate the /uniqueness poid to be inserted into primary database. Due to this fact the primary database POID_IDS2 sequence is uncorrelated with the objects inserted into the /uniqueness objects.
So when CMT tries to load data into uniqueness table, it got a duplicate poid error, as the poid that it wants to load was already loaded by customer_commit API.
Steps to reproduce the scenario:
1. Create of several accounts into the secondary database via BRM opcode cust_commit_customer
2. Soon after that, perform migration of several legacy accounts using CMT into one secondary database.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms