Implementing serialized objects on distributed systems
Passivation uses Java serialization when persisting clipboard pages to storage. Two options are used during this process: serialization (encoding) and deserialization (decoding) of data.
It is recommended that you implement serialized objects in your system because the Pega 7 Platform uses passivation to free up JVM memory, which helps the system to run more efficiently during Java serialization. However, unserialized objects do not passivate, which can cause an application to be run into a bad operating state.
For more information about serializing an object, refer to the Oracle knowledge base:
https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html
Passivation timeout error messages
This section describes error messages that might be displayed when you work with unserialized objects on the Pega 7 Platform.
Pages with unpassivatable objects
The following example is of a timeout error message for a page that includes an unpassivatable object:
14:17:11,286 [lkendmw8] (mgmt.base.NodeRequestorMgt)
ERROR - Unable to timeout page
com.pega.pegarules.session.external.mgmt.
PageCannotBeSerializedForPassivationException: Unable to passivate page
'PassivateMe' on thread 'JUNIT' in requestor
'PF96737BB5C4A020EB04372DB98A53C61'. The following items were not
serializable: [Property not serializable: "PassivateMe.object1444069030745" Class: "java.lang.Object"]
at com.pega.pegarules.session.internal.mgmt.base.
NodeRequestorMgt.getPageAsBytes(NodeRequestorMgt.java:3304)
at com.pega.pegarules.session.internal.mgmt.base.
NodeRequestorMgt.getPageAsBytes(NodeRequestorMgt.java:3259)
at com.pega.pegarules.session.internal.mgmt.base.
NodeRequestorMgt.savePage(NodeRequestorMgt.java:935)
Pages with environmental exceptions
The following example is of a timeout error message for a page that includes an environmental exception:
com.pega.pegarules.session.external.mgmt.PassivationException:
Unable to passivate requestor 'P3A3F6934EFDBB44D76B9722E8205777E'
at com.pega.pegarules.session.internal.mgmt.base.NodeRequestorMgt.
cleanupConditionally(NodeRequestorMgt.java:1380)
at com.pega.pegarules.session.internal.mgmt.base.NodeRequestorMgt.
cleanupInner(NodeRequestorMgt.java:1314)
Previous topic How to process large SQL resultsets Next topic Memory and JVMs