[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [REL-94] Amended Poll Reply Pattern Binding Proposal
The group agreed to accept the proposal with one change:
- Move the "request for
poll" into a new Header rather than
overloading
"AckRequested".
Here is a final proposal for REL-94 with the required changes.
<Rel94ProposalBegin/>
So the initial msg. with the intent for Poll ReplyPattern Binding
will have
ReplyPattern set to Poll and it will have AckRequested sub-element
<MessageHeader>
....
<ReplyPattern>Poll</ReplyPattern>
</MessageHeader>
<Request>
<AckRequested/>
...
</Request>
The poll request will have a new Header called PollRequest.
An example is as follows:
<PollRequest>
<GroupId value="a.b.c.com/xyz/001"
>
<SequenceNumberRange From="1" To="10" />
</GroupId>
<GroupId value="a.b.c.com/xyz/002"
/>
</PollRequest>
Specifics:
2) <PollRequest>
<GroupId value="a.b.c.com/xyz/001"
>
<SequenceNumberRange From="1" To="5" />
<SequenceNumberRange From="7" To="7" />
<SequenceNumberRange From="10" To="12" />
</GroupId>
</PollRequest>
3) <PollRequest>
<GroupId value="a.b.c.com/xyz/001"
>
<SequenceNumberRange From="1" To="5" />
</GroupId>
<GroupId value="a.b.c.com/xyz/001"
>
<SequenceNumberRange From="6" To="12" />
</GroupId>
</PollRequest>
While all the 3 cases are valid, (1) will be the most efficient and should be recommended.
And the receiver is REQUIRED to send back requested Acks for message(s)
that were
received already.
Note that the Response will include all received messages in the
range mentioned in
the Request, not just previously un-acked messages.
<Response>
<RefToGroupId value="a.b.c.com/xyz/001">
<RefToSequenceNumberRange
From="1" To="5" />
<RefToSequenceNumberRange
From="7" To="7" />
<RefToSequenceNumberRange
From="10" To="12 />
</RefToGroupId>
<RefToGroupId value="a.b.c.com/xyz/002">
<RefToSequenceNumberRange
From="1" To="8" />
</RefToGroupId>
</Response>
It was also decided to use the same syntax for bataching acks
in
Callback pattern case. [REL 75]
Tdibits:
1.This request will be sent to the same endpoint as the original
message(s) are sent..
2.Poll request for a message sent to another endpoint MAY result
in InvalidGroupId fault.
3.Since it is defined as a Header, it could be defined in the
SOAP Binding part in the
if desired.
Possible failure faultcodes are:
1.InvalidGroupId: Even if one of the GroupIds are wrong
or invalid, this fault will be sent.
2.InvalidSequenceNumber: Even if one of the SequenceNumbers
is wrong or invalid,
this fault will be generated and sent.
3.InvalidRMRequest: If the AckRequested element has one or more
child elements for
Response or Callback poll pattern. Or,
if there is some mis-match of ReplyPatten
types for the messages in the same group.
Essentially, all or none approach wrt to Faults. We should be
able to share the above
Status values with Fault Codes. Note both are QNAME
types and hence shareable.
Piggybacking of a Poll request could either be disallowed or should
be tackled along
with the general piggybacking problem.
<ProposalEnd/>
-Sunil
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]