CI_PRICECOMP_K Unique Constraint Violation Persists after Patch 22343310 Applied (Doc ID 2150567.1)

Last updated on JUNE 20, 2016

Applies to:

Oracle Financial Services Revenue Management and Billing - Version 2.4.0.1.0 and later
Information in this document applies to any platform.

Symptoms

On RMB 2.4.0.1.0 version, BT - Batch:

ACTUAL BEHAVIOR
-------------------------
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

EXPECTED BEHAVIOR
-----------------------
Batch should generate successfully with correct price assignment id.

BUSINESS IMPACT
-----------------------
The issue has the following business impact:
Due to this issue, users cannot generate the billing batch.

Cause

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