CI_PRICECOMP_K Unique Constraint Violation Persists after Patch 22343310 Applied
Last updated on MARCH 08, 2018
Applies to:Oracle Financial Services Revenue Management and Billing - Version 220.127.116.11.0 and later
Information in this document applies to any platform.
On RMB 18.104.22.168.0 version, BT - Batch:
Following errors are occurring in the environment:
ERROR (com.splwg.base.support.hibernate.KeyTableHelper) Cannot insert keys into key table CI_PRICEASGN_K with sql insert into CI_PRICEASGN_K (PRICE_ASGN_ID, ENV_ID) select ?, ENV_ID from F1_INSTALLATION
org.hibernate.exception.ConstraintViolationException: ORA-00001: unique constraint (CISADM.SYS_C0016471) violated
The environment has a custom batch process that creates price assignments using Price Assignment DTO and Price Component DTO for a person-product combination (this is the thread work unit). Errors were first encountered in performance testing and was replicated in development environment. Batch run upon replication was multi-threaded on 150 threads to create 360,000 price assignments (1000 persons x 360 products = 360,000 price assignments) with override commit size of 400.
Patch 22343310 (UNIQUE CONSTRAINT VIOLATED ISSUE WITH CI_PRICECOMP_K) has been applied to try to solve the issue but still either CI_PRICEASGN_K or CI_PRICECOMP_K unique constraint violation is randomly encountered for large volumes of price assignments to be created.
The CM code is just a simple dummy batch process that creates a price assignment for the thread work unit which is a Person-Product combination. Customer observed that when using Price Assignment DTO to add a new entity, the price assignment id generated is not prefixed with the first 6 digits of the owner id in contrast with price assignment created online through UI. They also tried the following but the unique constraint violation is still encountered:
1. Copying id-generation code (beforeAddRoot() method) from PriceAssignmentMaintenance.java
2. Changing the thread work unit to a Person and create price assignments for a set of products
Batch should generate successfully with correct price assignment id.
The issue has the following business impact:
Due to this issue, users cannot generate the billing batch.
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