When deployed in cluster, Diameter-Rf-Ra throws NonSerializableException, when jboss tries to replicate state of Rf-Ra.
java.io.NotSerializableException: org.mobicents.slee.resource.diameter.rf.RfMessageFactoryImpl
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
The cause of this behaviour is that RfClientSessionActivityImpl extends RfSessionActivityImpl which has declaration:
protected RfMessageFactory rfMessageFactory;
RfMessageFactory is not serializable.
Solution
Declare rfMessageFactory field as transient in RfSessionActivityImpl.
When deployed in cluster, Diameter-Rf-Ra throws NonSerializableException, when jboss tries to replicate state of Rf-Ra.
The cause of this behaviour is that RfClientSessionActivityImpl extends RfSessionActivityImpl which has declaration:
protected RfMessageFactory rfMessageFactory;
RfMessageFactory is not serializable.
Solution Declare rfMessageFactory field as transient in RfSessionActivityImpl.
(From Zendesk Issue 34342)