Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Data page exception in cluster environment after restart

SA-36605

Summary



Data page exception in one node in multi node environment after restart.

Whenever user restart the cluster, Pega Marketing REST API which is returning Next-Best-Action propositions are returning an error message stating "Customer Not Found", although the customer exists in the database.

However, apparently, the issue because the cluster is restarted, but after each restart REST API is failing.

Then, they manually flush the data pages created to make it work.

The issue is happening only in one node. That is to say, one node of the cluster works just fine but when user calls the same API from the second node it fails.


Error Messages


Caused by:

java.lang.IndexOutOfBoundsException: Index: 17, Size: 9

at java.util.ArrayList.rangeCheck(ArrayList.java:647)

at java.util.ArrayList.get(ArrayList.java:423)

at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.decorateSingleFrame(ClipboardPropertyBase.java:3764)

at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.decorateSingleFrame(ClipboardPropertyBase.java:3747)

at com.pega.pegarules.data.internal.clipboard.VirtualClipboardPageImpl.getPropertyAndSetValueIfAny(VirtualClipboardPageImpl.java:406)

at com.pega.pegarules.data.internal.clipboard.VirtualClipboardPageImpl.getString(VirtualClipboardPageImpl.java:771)

at com.pega.pegarules.data.internal.clipboard.VirtualClipboardPageImpl.getString(VirtualClipboardPageImpl.java:736)

at com.pega.pegarules.data.internal.clipboard.VirtualClipboardPageImplWrapper.getString(VirtualClipboardPageImplWrapper.java:1243)

at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.doGetString(PropertyReferenceImpl.java:1503)

at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.getString(PropertyReferenceImpl.java:1221)

at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.getString(PropertyReferenceImpl.java:1204)

at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.getValueInType(ClipboardPageImpl.java:1297)

at com.pega.pegarules.session.internal.mgmt.Executable.getAnyValueViaPropRef(Executable.java:10080)

at com.pega.pegarules.session.internal.mgmt.Executable.getStringValueViaPropRef(Executable.java:10215)

at com.pega.decision.dsm.strategy.clipboard.DSMPegaAPI.getStringValueViaPropRef(DSMPegaAPI.java:1719)


Steps to Reproduce



Restarting the cluster. The API works in node #1 and fails in node #2.


Root Cause



A defect in Pegasystems’ code or rules. getValueInType API is called to fetch property values from multiple threads. This API is not thread safe.

Resolution



Apply HFix-33224.

Published May 6, 2017 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us