Support Article
Connect-SOAP stream rule compile error (65535 bytes limit).
Summary
After upgrading from Pega Version 6.3 to 7.2.1, an existing XML Stream rule would not compile due to length.
Error Messages
Failed to compile generated Java com.pegarules.generated.xml.ra_stream_paymentinfo_mapfrom_b598166b7627950d767b908485d97919: ----------
1. ERROR in /com/pegarules/generated/xml/ra_stream_paymentinfo_mapfrom_b598166b7627950d767b908485d97919.java (at line 72)
public void execute() {
^^^^^^^^^
The code of method execute() is exceeding the 65535 bytes limit
Steps to Reproduce
- Migrate the rules from PRPC 6.3 SP1 to Pega 7.2.1.
- Local-change was done to regenerate the Connector artifacts, especially XML Stream rules, by using the new 'Create SOAP Integration' widget and use them our application.
- Run the activity that calls the service.
Root Cause
A defect in Pegasystems’ code or rules.
Resolution
Perform the following local-change: Uncheck the "Auto-generated XML" option and manually break up stream rule into multiple pieces.
For example, if the stream rule is named "Long_List.pyDefault", then the XML data will be as follows :
<Long_List>
<First_Element><pega:r ...></First_Element>
<Second_Element><pega:r ...></Second_Element>
....
<Last_Element><pega:r ...></Last_Element>
</Long_List>
Move a portion of the elements to a new stream rule - "Long_List_New.pyDefault".
Then embed that to the end of the original as follows :
....
<Last_Element><pega:r ...></Last_Element>
<pega:include name="Long_List_New.pyDefault" type=Rule-Obj-XML" inline="false></pega:include>
</Long_List>
Published February 18, 2017 - 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.