Support Article
upgrade.sh fails determining the mode of PRPC
SA-7803
Summary
User is upgrading to Pega 7.1.6 from PRPC 6.3. User wants to use the split schema in Pega 7.
While running the upgrade.sh script, user is getting the below error and the script is interrupted.
Error Messages
[java] 2015-03-01 15:49:43,140 [ main] [ ] [ ] (ta.internal.PRDataProviderImpl) ERROR - Error determining the mode of PRPC install from database.
[java] com.pega.pegarules.pub.database.NonexistentTableException: Database-TableWithNoColumns PEGA_RULES.pr4_base PegaRULES
[java] From: (unknown)
[java] at com.pega.pegarules.data.internal.access.TableInformationMapImpl.lookupColumnInfo(TableInformationMapImpl.java:664)
[java] at com.pega.pegarules.data.internal.access.TableInformationMapImpl.lookupTableInfo(TableInformationMapImpl.java:500)
[java] at com.pega.pegarules.data.internal.access.TableInformationMapImpl.get(TableInformationMapImpl.java:384)
[java] at com.pega.pegarules.data.internal.access.TableInformationMapImpl.getWithConnection(TableInformationMapImpl.java:352)
[java] at com.pega.pegarules.data.internal.PRDataProviderImpl.isMultiTenantEnvironment(PRDataProviderImpl.java:1146)
[java] at com.pega.pegarules.data.internal.dictionary.DictionaryImpl.<clinit>(DictionaryImpl.java:259)
[java] at java.lang.J9VMInternals.initializeImpl(Native Method)
[java] at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
[java] at com.pega.pegarules.data.internal.PRDataProviderImpl.getEngineDictionary(PRDataProviderImpl.java:661)
[java] at com.pega.pegarules.data.external.dictionary.EngineDictionary.<clinit>(EngineDictionary.java:71)
[java] at java.lang.J9VMInternals.initializeImpl(Native Method)
[java] at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
[java] at com.pega.pegarules.data.external.clipboard.ClipboardObjectImpl.getDictionary(ClipboardObjectImpl.java:380)
[java] at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getDictionary(ClipboardPageBase.java:337)
[java] at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.getDictionary(ClipboardPageImpl.java:478)
[java] at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.putStringOverride(ClipboardPageImpl.java:2201)
[java] at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.putString(ClipboardPageImpl.java:2091)
[java] at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.putString(ClipboardPageImpl.java:2087)
[java] at com.pega.pegarules.deploy.internal.util.MoveLog.<init>(MoveLog.java:93)
[java] at com.pega.pegarules.deploy.internal.archive.ImportableAbstract.<init>(ImportableAbstract.java:83)
[java] at com.pega.pegarules.deploy.internal.archive.PegaArchiveAbstract.<init>(PegaArchiveAbstract.java:192)
[java] at com.pega.pegarules.deploy.internal.archive.ParFile.<init>(ParFile.java:289)
[java] at com.pega.pegarules.deploy.internal.archive.ParFile.<init>(ParFile.java:262)
[java] at com.pega.pegarules.deploy.internal.PRRuleMgmtUtilsImpl.readArchive(PRRuleMgmtUtilsImpl.java:439)
[java] at com.pega.pegarules.deploy.internal.PRRuleMgmtUtilsImpl.createArchiveForRead(PRRuleMgmtUtilsImpl.java:488)
[java] at com.pega.pegarules.deploy.internal.util.ImportImpl.main(ImportImpl.java:408)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:600)
[java] at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:419)
[java] at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:460)
[java] at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:509)
[java] at com.pega.pegarules.pub.PegaRULES.main(PegaRULES.java:85)
Steps to Reproduce
Run migrate.sh
Run upgrade.sh
Root Cause
The root cause of this problem is in a third-party product integrated with PRPC.
This is a known issue with Oracle and how its JDBC drivers handles synonyms. Basically because user is running with a user who has DBA type privileges that are required to do the upgrade the user can access any schema, including the ones with synonyms, the JDBC driver cannot correctly determine the table that we are trying to get the structure of.
Resolution
This issue is resolved through the following local change:
Go to the PDN > My Support Portal and search the support articles and find SA-1916.
This article tells you how to resolve the Oracle synonym issue by first upgrading to a single schema 7.1.x and then run the migrate script to split the upgraded 7.1 schema into a rules and data schema.
Published March 14, 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.