Error occured while skimming
Skimming problem in 7.x split schema using Oracle when synonyms are present.
Upgrade from PRPC 6.2 SP1 to Pega 7.1.6 and then migrate to a split schema. When skimming an application ruleset a "Failed" message is displayed in a pop-up window.
"Failed" message in a popup window when clicking the "Skim" button
In the PegaRULES log file:
Caused by: com.pega.pegarules.pub.PRRuntimeError: Database Error : Database-TableWithNoColumns RULES71.pwbv4_rule_locking PegaRULES
Steps to Reproduce
Try to skim a ruleset on a split schema Oracle database that has synonyms in another PRPC schema
The root cause of this problem is in a third-party product integrated with PRPC. This is an Oracle bug regarding how its JDBC drivers handle synonyms. We have seen this error previously during the upgrade process. If there is a synonym in another PRPC schema on the same table the JDBC driver will not return the metadata on the table we are looking for. The process fails if synonyms exist on RULE tables such as pr4_base in schemas other than the one that is being upgraded. E.g If you are upgrading v71rulesupdate schema and have a prpc63sp1 schema on the same Oracle server, create a synonym pr4_base for prpc63sp1.pr4_base.
This is a manifest of the same problem. After the split schema upgrade the pwbv4_rule_locking table actually exists in both the Data and Rules schema. The one in the Data schema is no longer used and should be cleaned up to avoid confusion. The "Skim" code is actually looking for the table in the Rules schema like it should but is running into the Oracle synonym issue.
This issue is resolved by making the following change to the PRPC operating environment:
For the database user that is running PRPC create a private synonym for RULES71.pwbv4_rule_locking. This will be found by the Oracle JDBC driver before the synonym in the other PRPC schema.
Published January 31, 2016 - Updated October 8, 2020
Was this useful?
0% found this useful
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.