David:
I think the section 7.5.2 Receiving Message Behavior in Draft
Version 2.0 is incomplete because it does describe the expected behavor when an
Error message is received. As stated in that section, only an Acknowledgment
message will cause the acknowledged message be marked as delivered. Furthermore,
section 7.5.1 Sending Message Behavior prescribes that retries be attempted if a
persisted message has not been marked delivered and RetryInterval has
elapsed.
Regards,
-Arvola
The spec says, in section 4.2.3.2.4, that if there is an error
severity of Error, "...there
is an unrecoverable error in the message and no further messages will be
generated as part of the conversation." How can we then continue to send
retries after an ErrorList with error severity of
Error?
Maybe
the problem we need to clarify is in the Error section rather than in the RM
section? OTOH, maybe the statement in 4.2.3.2.4 is
enough.
Regards,
David.
If the position
is to let the retry kick in then are we saying the sender MSH should
"ignore" the ErrorList message and just let the retry to complete? Then
report back to application of the N retries it did and all the Errors it
got back?
David's comment makes sense. I can't think of a reson why I would
respond in the same message with an Acknowledgment element AND an
ErrorList element . I would only ack a message after all MSH level
related validation has passed.
May be too late for 2.0 but I would say this introduces unnecessary
complexity. Should probabaly be looked into post 2.0.
-mw
Doug Bunting wrote:
David,
Almost every error may be transient. Further, our documentation
gives no "out" for the sending MSH other than exceeding the Retries
parameter or receiving an appropriate Acknowledgment. Adding the
ErrorList element to that list of outs would be very different from 1.0
and would involve multiple changes to our document. That's in spite
of the a receiving MSH already being able to send ErrorList and
Acknowledgment together.
125 was an editorial issue because the other parts of our specification
were clear what could stop retries. The section referenced in issue
125 muddied things. Let's not turn this into a new technical issue.
thanx, doug
David Fischer wrote:
Why would an MSH
continue sending retries after receiving an ErrorList for that
MessageId? Section 6.5.7 indicates that when a message cannot be
delivered then a DFN must be returned. You are right though, it
doesn't actually say not to send any more retries. I'm a
little confused... If an Acknowledgment is present with an
ErrorList, does that mean the MSH does or doesn't send a DFN to the
application? I suppose if the message got far enough so that the
receiving MSH could actually generate an Acknowledgment then that would
constitute delivery for the purposes of RM? I think this would be OK -- send an ErrorList
and an Acknowledgment together.I'm still
not clear why the sending MSH would continue to send retries if it got
an ErrorList (containing the appropriate RefToMessageId) from the
receiving MSH but without an Acknowledgment?Regards,David
FischerDrummond
Group.
Arvola,
I believe this is captured in issue 125. In David's response
[1], he indicated an ErrorList could end retries but that
interpretation is not borne out by our current documentation and seems
incorrect. I would suggest we stick with the current retry
semantics and end retries only upon receipt of an Acknowledgment or
exhaustion of allowable retries. If a MSH receiving a message in
error chooses to respond with an Acknowledgment bundled together with
an ErrorList, fine.
I also agree this option (combining Acknowledgment with ErrorList)
isn't well described. Improving that description was the intent
of issue 125.
thanx, doug
[1] http://lists.oasis-open.org/archives/ebxml-msg/200202/msg00006.html
(specifically, the XML file attached and unhelpfully inlined by the
OASIS site)
Arvola Chan wrote:
Section 7.5.2 in Draft
version 2.0 describes Receiving Message Behavior under the ebXML
Reliable Messaging Protocol. It does not mention anything about
error handling. Suppose the received message is
erroneous (e.g., some elements in the message are inconsistent with
the CPA), the receiver is obligated to return an Error message. It
is not clear to me if an Acknowledgment MUST also be included in the
Error message. Does the Error message serve as
an implicit Acknowledgement? Will the sender keep retrying until it
gets back an Acknowledgment (i.e., as long as the number of
allowable retries have not been exhausted)? Thanks,-Arvola
|