Support Article
Unable to deploy Pega 6.3 SP1 package after upgrade Pega 7.1.6
SA-2294
Summary
User encountering problem to import v6 package that has DB schema information to system upgraded from Pega 6.3 SP1 to Pega 7.1.6 (no hotfixes applied). User upgraded to Jboss 6.1.1 where before user used PRPC 6.3 with Jboss 5.1.2, and the import worked. User upgraded to split schema as part of upgrade.
User can also replicate the error via System: Upgrade landing page, PRPC Schema Report and expanding "Upgrade Data Tables" section. Copying jars from JBoss to endorsed directory was of no help.
Error Messages
14:45:28,601 INFO [stdout] (Dispatcher-Thread-79) 2014-10-01 14:45:28,598 [http<IPADDRESS><Port>-5] [TABTHREAD0] [ ] [ COMMONFW:01.01.01] ( internal.access.SQLGenerator) ERROR pegasit.cz.cre.insim.biz|127.0.0.1 QY33FW - An error occured generating table XML for table <your_table_name>
14:45:28,602 INFO [stdout] (Dispatcher-Thread-79) org.apache.xml.serializer.utils.WrappedRuntimeException: org.apache.xml.serializer.ToXMLSAXHandler cannot be cast to org.apache.xml.serializer.SerializationHandler
14:45:28,603 INFO [stdout] (Dispatcher-Thread-79) at org.apache.xml.serializer.SerializerFactory.getSerializer(SerializerFactory.java:179)
Steps to Reproduce
Attempt to import v6 application package with schema definition.
Error shows in logs and PRPC asks to update database schema which is already correct
Root Cause
The root cause of this problem is a defect in Pegasystems’ code/rules.
We are having class cast exception due to multiple class loaders loading same class from different sources in JBoss EAP 6x. We have serializer-2.7.1.jar in DB and JBoss has implicit module "org.apache.xalan": serializer-2.7.1-redhat-3.jar both are loaded by PRAppLoader and ModuleClassLoder respectively. JBoss has an option to exclude some of the modules using exclusions in jboss-deployment-structure.xml but it is not working since it is implicit module and some other JBoss modules depend on it.
Resolution
This issue is resolved through the following local change:
On the impacted system we have disabled serializer-2.7.1.jar entries in pr_engineclasses by updating the pzcodeset to 'pega-enginecodenouse' and this works as expected.
- Shutdown the application server.
- Connect to PRPC Database schema and execute the following statements to update 'pr_engineclasses' table, So that our version of PRPC serializer.jar file is Not Loaded :
select pzcodeset from <YOUR_SCHEMA_NAME>.pr_engineclasses where pzjar like '%serializer%';
Execute the following query to update the pzcodeset value to 'pega-enginecodenouse'.
update <YOUR_SCHEMA_NAME>.pr_engineclasses set pzcodeset='pega-enginecodenouse' where pzjar like '%serializer%';
commit;
The above statement is to be executed, So that our PRPC version of the serializer.jar file is Not loaded.
Execute the following query to confirm the pzcodeset value is set to 'pega-enginecodenouse'.
select pzcodeset from <YOUR_SCHEMA_NAME>.pr_engineclasses where pzjar like '%serializer%';
3. Delete the PegaRULES_Extract_Marker.txt file from the pega-temporary directory
4. Restart the server
Going forward from Pega 7.1.7 onwards we have removed remove serializer-2.7.1.jar from DB which is available to PRPC.
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.