Support Article
Instance number of errors captured in Oracle DB
SA-10483
Summary
Errors observed in Oracle DB logs.
ORA-00001: unique constraint (FP_OWNER.PR_SYS_LOCKS_PK) violated insert into pr_sys_locks ( 418,742
ORA-00001: unique constraint (FP_OWNER.PR4_LOG_RULE_USAGE_PK) violated insert into pr4_log_rule_usage ( 80,565
Error Messages
ERR_MSG ERR_CAUSE TALLY
------------------------------------------------------------------------ -------------------------------- -------
ORA-00001: unique constraint (FP_OWNER.PR_SYS_LOCKS_PK) violated insert into pr_sys_locks ( 418,742
ORA-00001: unique constraint (FP_OWNER.PR4_LOG_RULE_USAGE_PK) violated insert into pr4_log_rule_usage ( 80,565
ORA-00001: unique constraint (FP_OWNER.PC_ASSIGN_WORKLIST_PK) violated insert into pc_assign_worklist ( 7,681
ORA-00001: unique constraint (FP_OWNER.COMPLAINTS_WORK_PK) violated insert into complaints_work ( 4,873
ORA-00001: unique constraint (FP_OWNER.PC_INDEX_WORKPARTY_PK) violated insert into pc_index_workparty ( 484
ORA-00001: unique constraint (FP_OWNER.PR4_RULE_SYSGEN_PK) violated insert into pr4_rule_sysgen ( 179
ORA-00001: unique constraint (FP_OWNER.PC_ASSIGN_WORKBASKET_PK) violated insert into pc_assign_workbasket ( 143
ORA-00001: unique constraint (FP_OWNER.PC_HISTORY_WORK_PK) violated insert into pc_history_work ( 42
ORA-00001: unique constraint (FP_OWNER.PR_OPERATORS_PK) violated insert into pr_operators ( 37
Steps to Reproduce
There is no specific use case to reproduce this issue.
Resolution
During the design of database access techniques for the PRPC, an in-memory item had been updated and needed to be written to the PegaRULES database.
One standard technique for this situation would be to Select the row from the database and use the resulting SQL code to determine if an Insert or an Update needed to be done.
However, to minimize database access where possible, a different technique was chosen: Try to Insert the row and if the Insert fails due to a duplicate key condition, then issue an Update for the existing row.
This second technique leads to only one SQL statement being issued for every case where the Insert succeeds, reducing the required SQL statement processing by some, often significant, percent.
These failed Insert attempts are handled programmatically in the PRPC code that manages the database. They are not given back to the application. And normally, they do not produce an exception on the logs.
In this case, the log has the logging level set to DEBUG. If the logging level is returned to a higher level, then this error would not be displayed.
Published June 26, 2015 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.