← Prev in month ← Prev in thread

MP10 question

From
Jacques Durand <>
Date
2004-07-26T19:34:37+00:00
ID
Thread
MP10 question
Title: MP10 question

Mark Peel wrote:

MP10:

  Finally, a question.  The group establishment logic outlined in 5.1.2

strongly implies a Receiving RMP cannot acknowledge messages received

for a group if it has not received the group's SequenceNum==0 message: a

message after the first might have invalid group items (e.g., using

groupMaxIdleDuration instead of groupExpiryTime) and would get faulted

after being ack'ed.  Am I reading this correctly?

My answer: 

Good point. Both RMP behaviors you mention above would not be desired, 

and we need to make this more explicit.

For un-ordered groups, it may happen that the the first message(s) (SeqNum=0, 1,2...)

is (are) never received, or received late, yet subsequent messages should be

delivered and acked. If I remember well discussions on this, the desired behavior 

for the Receiving RMP, would be to use the first message received, for adjusting the 

timeout termination conditions on Receiving RMP.

We may want to extend (a) in 5.1.2 with a statement on this (see proposal below)

Beside this, a late SeqNum=0 message with a different termination parameter than the

first received message for this group, would indeed reveal a discrepancy.

But any message received for this group before SeqNum=0 must be delivered and acknowledged,

even if their termination parameter happens to not match the one of SeqNum=0.

Although the spec is silent on the behavior (Fault?), I believe a Fault (and no delivery)

is implied for the message received that reveals a discrepancy(here SeqNum=0).

For improving wording of 5.1.2:

- I propose that the last sentence of 5.2.1 be developed to list all the Fault cases

related to this section. 

This could mean using a bullet list (e.g. of a bullet: "failure to satisfy (b) will cause

Fault XYZ..."), and moving bullet #3 currently under (a), under this "Fault"

paragraph.

- Also, enhance (a) (added last sentence):

(a) The First message in a group (the one with Request/MessageId/SequenceNum/@number=0) MUST 

be used by the Sending RMP to indicate which timeout parameter is in use for the group. However, the first message received for this group by the Receiving RMP MUST be used for indicating which termination parameter is associated with this group.

-Jacques
← Prev in month ← Prev in thread