Support Article
Migration issue with Pega 7.1.5
SA-9421
Summary
While performing an upgrade from a Pega 6.3 SP 1 to a Pega 7.1.5 split schema installation encounters error when running script upgrade.bat to upgrade the old Pega 6 DB schema.
Query: How to upgrade the old Pega 6 DB schema for selectively exporting an old Pega 6 application from Pega 6 installation and importing it into a new/empty Pega 7 installation INSTEAD of migrating the ENTIRE Pega 6 rule base into Pega 7 using the migrate.bat script?
Error Messages
No such Rule-Application instance PegaRULES 06.03
----------------------------------------------
[java] 2015-04-08 14:04:48,107 [ batavia] [ ] [ ] ( internal.archive.ParUtilsImpl) INFO - pxPegaRULES_07.10.01.zip is v6 Archive
[java] Apr 08, 2015 2:04:48 PM com.pega.pegarules.internal.bootstrap.PRBootstrap
[java] Schwerwiegend: Problem during method invocation (main)
[java] com.pega.pegarules.pub.PRException: A problem occurred.
[java] From: (unknown)
[java] at com.pega.pegarules.deploy.external.util.Application.main(Application.java:449)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ [java] ... 8 more
[java] at com.pega.pegarules.session.internal.mgmt.base.RequestorThreadSync.getOrCreateThread(RequestorThreadSync.java:174)
[java] at com.pega.pegarules.session.internal.mgmt.base.RequestorThreadSync.getOrCreateThread(RequestorThreadSync.java:161)
[java] Caused by: com.pega.pegarules.pub.context.InvalidConfigurationException: No such Rule-Application instance: PegaRULES 06.03
[java] From: (B2260B25D736B7B83E899328B760B012F)
[java] at com.pega.pegarules.session.internal.mgmt.base.RequestorThreadSync.getOrCreateThread(RequestorThreadSync.java:157)
[java] at com.pega.pegarules.session.internal.authorization.context.ContextUtils.getAppStackForApplication(ContextUtils.java:543)
[java] at com.pega.pegarules.session.internal.mgmt.base.RequestorPassivation.configureRequestorImpl(RequestorPassivation.java:463)
[java] at com.pega.pegarules.session.internal.authorization.context.BasicApplicationContext.createAppStackForAccessGroup(BasicApplicationContext.java:655)
[java] at com.pega.pegarules.session.internal.mgmt.PRRequestorBase.configureRequestor(PRRequestorBase.java:509)
[java] at com.pega.pegarules.session.internal.authorization.context.BasicApplicationContext.updateDefinition(BasicApplicationContext.java:489)
[java] at com.pega.pegarules.session.internal.mgmt.PRRequestorImpl.<init>(PRRequestorImpl.java:298)
[java] at com.pega.pegarules.session.internal.authorization.context.BasicApplicationContext.<init>(BasicApplicationContext.java:159)
[java] at com.pega.pegarules.session.internal.mgmt.PRRequestorImpl.acquire(PRRequestorImpl.java:322)
[java] at com.pega.pegarules.session.internal.mgmt.base.MultiThreadRequestorFactory.acquire(MultiThreadRequestorFactory.java:61)
[java] at com.pega.pegarules.session.internal.authorization.context.GlobalContextCache.getBasicApplicationContext(GlobalContextCache.java:425)
[java] at com.pega.pegarules.session.internal.mgmt.base.NodeRequestorMgt.createRequestorImpl(NodeRequestorMgt.java:1397)
[java] at com.pega.pegarules.session.internal.authorization.context.GlobalContextCache.getLocalizedApplicationContext(GlobalContextCache.java:459)
[java] at com.pega.pegarules.session.internal.mgmt.PRNodeImpl.createRequestor(PRNodeImpl.java:248)
[java] at com.pega.pegarules.session.internal.authorization.context.AuthorizationContextManagerImpl.getContext(AuthorizationContextManagerImpl.java:130)
[java] at com.pega.pegarules.session.internal.PRSessionProviderImpl.borrowRequestor(PRSessionProviderImpl.java:619)
[java] at com.pega.pegarules.session.internal.authorization.SessionAuthorization.getContext(SessionAuthorization.java:542)
[java] at com.pega.pegarules.session.internal.PRSessionProviderImpl.borrowRequestor(PRSessionProviderImpl.java:632)
[java] at com.pega.pegarules.session.internal.authorization.SessionAuthorization.getContext(SessionAuthorization.java:517)
[java] at com.pega.pegarules.session.internal.async.ActivationThread.createActivationRequestor(ActivationThread.java:111)
[java] at com.pega.pegarules.session.internal.authorization.SessionAuthorization.reset(SessionAuthorization.java:452)
[java] at com.pega.pegarules.session.internal.async.ActivationThread.<clinit>(ActivationThread.java:75)
[java] at com.pega.pegarules.session.internal.async.ActivationThreadFactory.newProduct(ActivationThreadFactory.java:61)
[java] at com.pega.pegarules.session.internal.authorization.SessionAuthorization.<init>(SessionAuthorization.java:243)
[java] ... 56 more
Steps to Reproduce
1. Install Pega 7.1.5 using split DB schemas using empty schemas Pega 7 RULES and Pega 7 DATA.
2. After Pega 7 starts-up import a Pega 6.3 version application using Application>Distribution>Import
For migration import application used sample application from 6.3 SP1.
3. Run the Application Upgrade Wizard using Designer StudioSystem>Upgrade>Update Existing Applications.
General migration of the application works fine up to this point.
4. Stop Pega 7 and Pega 6 installation process.
5. Run script upgrade.bat –dataOnly true specifying the old Pega 6 DB schema as the DATA schema and the new Pega 7 RULES schema as the RULES schema (associating setUpDatapase.properties). When running the script this error message appears: No such Rule-Application instance PegaRULES 06.03
Root Cause
During standrad rules migration step pr_data_admin table gets migrated as well into the new rules schema and perform upgrade (accessgroup is updated to use latest version). But in this case data table migration does not happen because of avoiding migration and using a fresh installation.
Resolution
There are two options to perform the custom upgrade for as per above requirement:
- Using above steps and then exporting the PRPC:Agents and PRPC:unauthenticated accessgroups from Pega7 install and importing them on Pega6 was equal to migrating data admin table and upgrading, it resolved the dataOnly upgrade error reported.
You must be careful about following issues below with this upgrade:
a. Need to manually migrate from Pega 6 to Pega 7 RULES schema any adjustments made to the rules tables.
b. Encountering the error No such Rule-Application instance: it is a valid approach to have AccessGroups PRPC:Agents and PRPC:unauthenticated exported from Pega 7 and imported into the old Pega 6 schema now used as DATA schema by Pega 7 before running the upgrade.bat –dataOnly script
c.After importing the Pega 6 application into Pega 7, Rule Application instances, built upon versions, Ruleset Versions and their prerequisites must be properly adjusted to refer to their Pega 7 counterparts. This can be done in part by the “Upgrade existing Application” Wizard but requires some manual modifications as well.
(Or)
a. Need to manually migrate from Pega 6 to Pega 7 RULES schema any adjustments made to the rules tables.
b. Encountering the error No such Rule-Application instance: it is a valid approach to have AccessGroups PRPC:Agents and PRPC:unauthenticated exported from Pega 7 and imported into the old Pega 6 schema now used as DATA schema by Pega 7 before running the upgrade.bat –dataOnly script
c.After importing the Pega 6 application into Pega 7, Rule Application instances, built upon versions, Ruleset Versions and their prerequisites must be properly adjusted to refer to their Pega 7 counterparts. This can be done in part by the “Upgrade existing Application” Wizard but requires some manual modifications as well.
(Or)
- Use the out-of-place upgrade described in the deployment guide on the PDN is the supported and documented process from one schema to Split Schema. And as far as clean up goes, use the cleanup scripts generated during the upgrade as a template example for cleaning up your own rules.
Published June 12, 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.