Hi,
I observed this problem when the RM server (its storage option
enabled) is restarted while the client continues to send messages over
the same sequence. In this case, a sequence acknowledge message is
generated by the restarted server but its ack range starts from the
first message after the restart. In other words, the message numbers
acknowledged prior to the server restart are not included in the
AcknowledgementRange.

The reason for this problem seems to be that RMTxStore's
updateDestinationSequence never gets called and consequently the
acknowledgement property of the destination sequence is never updated
in the storage. This update method never gets called because RMStore's
persistIncoming method never gets called.

I think Destination's acknowledge method should include a call to the
RMStore to store the message so that it updates its destination
sequence's acknowledgment property. But to store the message, you need
to create a RMMessage and I am not sure what the best approach is at
this location (it's a different situation from the outbound case).

So for just updating the acknowledgement property in the store, I
modified the Destination's acknowledge method so that it updates the
acknowledgement property using an empty RMMessage for now.

With this change, the acknowledgement messages now contain the whole
range. But I see an open issue regarding the message storage and
delivery mechanism for the inbound processing in general.

Could you comment on this issue and let me know if I should open a
JIRA ticket and attach the diff file?

Thanks.
Regards, Aki

Reply via email to