Support Article
prpcUtils import.existing.instances not working
SA-7541
Summary
Admin is trying to import CPM_713_upgrade.jar via the command line utility prpcUtils. There are non rule resolved classes in this application bundle archive which were previously in another ruleset in CPM 6.3sp1. You set the import.existing.instances=override to override the existing rules with the newer versions but it is failing trying to insert instead of update. Also tried setting import.existing.instances=skip so that it shouldn't try to import these rules at all but it is also trying to insert them.
Error Messages
[java] 2015-03-05 15:24:04,907 [ lpdza686] [ STANDARD] [ ] ( internal.util.MoveLog) INFO - Error: Save Failed: Database-Saver-Insertfail (RULE-OBJ-CLASS CPM-PORTAL)
[java] 2015-03-05 15:24:05,240 [ lpdza686] [ STANDARD] [ ] ( internal.util.ImportImpl) ERROR - Save failed for 'RULE-OBJ-CLASS CPM-PORTAL'
[java] com.pega.pegarules.pub.database.IntegrityConstraintViolationException: Database-Saver-Insertfail
[java] From: (A29D023EC33B6A9C0D7EE3CE77E4A971E)
[java] SQL: insert into RULES.pr4_base (PXCREATEDATETIME , PXCREATEOPERATOR , PXCREATEOPNAME , PXCREATESYSTEMID , PXHOSTID , PXINSID , PXINSNAME , PXOBJCLASS , PXUPDATEDATETIME , PXUPDATEOPERATOR , PXUPDATEOPNAME , PXUPDATESYSTEMID , PYAPPLET , PYAPPLETHARNESS , PYBASERULE , PYCATEGORY , PYCIRCUMSTANCEDATE , PYCIRCUMSTANCEDATEPROP , PYCIRCUMSTANCEPROP , PYCIRCUMSTANCETYPE , PYCIRCUMSTANCEVAL , PYCLASSGROUP , PYCLASSGROUPINDICATOR , PYCLASSINHERITANCE , PYCLASSNAME , PYCLASSTYPE , PYDATABASENAME , PYDERIVESFROM , PYFORMTYPE , PYINITIALVERSION , PYLABEL , PYMETHODSTATUS , PYPATTERNINHERITANCE , PYREPORTDATABASENAME , PYRULEAVAILABLE , PYRULEENDS , PYRULENAME , PYRULERESOLUTION , PYRULESET , PYRULESETNAME , PYRULESETVERSION , PYRULESTARTS , PYSORTDATECIRCUMWITHINRSMAJOR , PYTABLENAME , PZRULESETVERSIONMAJOR , PZRULESETVERSIONMINOR , PZRULESETVERSIONPATCH , pzInsKey , pzPVStream) values (? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ?)
[java] SQL Inserts: <2010-05-24 12:55:53.506> <GagnP> <Paul (PRPC 6.1)> <pega> <c2aee4254deb7b1436f6ebdf0a002fef> <CPM-PORTAL> <CPM-PORTAL> <Rule-Obj-Class> <2013-04-18 02:12:42.585> <muralik> <Murali Kondapally> <pega> <<null>> <<null>> <true> <<null>> <<null>> <<null>> <<null>> <<null>> <<null>> <CPM-Portal> <NOCLASSGROUP> <false> <CPM-Portal> <Concrete> <<null>> <Data-Portal> <Form> <06-02-60> <Created for CPM-Portal Infrastructure> <<null>> <true> <<null>> <Yes> <<null>> <CPM-Portal> <false> <PegaAppCA> <<null>> <<null>> <<null>> <true> <<null>> <-1> <-1> <-1> <RULE-OBJ-CLASS CPM-PORTAL> <<stream>>
[java]
[java] Caused by SQL Problems.
[java] Problem #1, SQLState 23505, Error code -803: com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=PR4RBASE;0000055D01, DRIVER=4.14.137
[java] at com.pega.pegarules.data.internal.access.ExceptionInformation.createExceptionDueToDBFailure(ExceptionInformation.java:193)
[java] at com.pega.pegarules.data.internal.access.DatabasePreparedStatementImpl.addBatch(DatabasePreparedStatementImpl.java:646)
[java] at com.pega.pegarules.data.internal.access.Saver.saveInstanceWithNoDeletedColumnOnlyIfNew(Saver.java:1222)
[java] at com.pega.pegarules.data.internal.access.Saver.saveInstance(Saver.java:830)
Steps to Reproduce
Run prpcUtils.bat import to import an application bundle archive such as CPM_713_upgrade.jar with the prpcUtils property import.existing.instances set to override.
Root Cause
The import.existing.instances option you are looking at is supported for PegaArchive only. The jar you are importing is a ApplicationBundle.
Resolution
This issue is resolved through the following local change:
The import.existing.instances option only is supported for PegaArchives. The CPM_713_upgrade.jar archive you are trying to import is an application archive. To import this archive via prpcUtils with either the override or skip option you will need to do the following:
1. Extract the jar to a directory, for example, C:\Media\CPM7.1.3\Upgrade\RuleSetsAndData\CPM713UpgradeExtracted
2. Use the application.xml file that is in the extracted directory to determine the order that the archives should be imported.
<?xml version="1.0"?>
<application name="CPMBuild_Upgrade 07.13" description="CPM 7.1 Release 2 to 7.1 Release 3 Upgrade">
<cardir name="pegafw-channelservices" order="1"/>
<parfile name="CPM_713_Upgrade_rules.jar" order="2"/>
</application>
3. Set your import.archive.path to first import the pegafw-channelservices directory and then the CPM_713_Upgrade_rules.jar.
import.archive.path=C:\Media\CPM7.1.3\Upgrade\RuleSetsAndData\CPM713UpgradeExtracted\pegafw-channelservices,C:\Media\CPM7.1.3\Upgrade\RuleSetsAndData\CPM713UpgradeExtracted\CPM_713_Upgrade_rules.jar
Published January 31, 2016 - 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.