[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: RE: End to End RM
-----Original Message-----
From: Burdett, David [mailto:david.burdett@commerceone.com]
Sent: Thursday, August 09, 2001 11:32 AM
To: 'David Fischer'
Cc: Christopher Ferris (E-mail)
Subject: RE: End to End RMDavidSee comments in-line.David-----Original Message-----
From: David Fischer [mailto:david@drummondgroup.com]
Sent: Wednesday, August 08, 2001 10:52 PM
To: Burdett, David
Subject: FW: End to End RMI think I know the answers, I just want to make sure you agree.
Question 1: To do RM end-to-end you request a DeliveryReceipt, or if RM is set you MUST generate a DeliveryReceipt from To Party to From Party.
[David B] You don't have to generate a Delivery Receipt since if an intermediary fails to deliver a message to the next MSH (or to the application if it is the To Party MSH), then the MSH must return a "Delivery Failure" error message back to the "From Party". This error message is a "negative ack". On the other hand, the Delivery Receipt is a "positive ack" in that it is proof that the message was delivered. Both are valid use cases and I don't think we should, in the spec, force use of Delivery Receipts.Need to change:
10.3.3 Generating an Acknowledgement Message
An Acknowledgement Message MUST be generated whenever a message is received with:
· reliableMessagingMethod set to ebXML (the default) and
· deliverySemantics set to OnceAndOnlyOnce
In addition a Delivery Receipt message containing the DeliveryReceipt element MUST be generated and sent to the From Party MSH by the To Party MSH but not by an Intermediate MSH.
As a minimum, these messages MUST contain a MessageData element with a RefToMessageId that contains the same value as the MessageId element in the message being acknowledged.Need to make some other similar changes to section 10 e.g. second paragraph should be:Reliability is achieved by a Receiving MSH responding to a message with a Delivery Receipt, or in the case of an Intermediate hop, with an Acknowledgment Message.There is a problem with this since with two types of Acks, the From Party will always receive Both Acks. In a single-hop situation BOTH will be generated by the To Party (not good)
[David B] Maybe, but if both acks are in the same message, then it is no big deal.while in a multi-hop situation the Ack would come from the IM and the DR would come from the To Party (very good). I don't know how the To Party MSH would know if the message arrived via Single Hop or Multi-Hop since the Via with actor=next might not be passed to the end.
[David B] He shouldn't need to know it just follows the instructions in the message.SOAP 1.1 Section 4.2.2/snip... That is, a receiptient receiving a header element MUST NOTforward that header element to the next application in the SOAPmessage path. The receipient MAY insert a similar header elementbut in that case, the contract is between that application and thereceipient of that header element.The problem above can be solved by specifying somewhere in the spec that ALL ebXML headers MUST be forwarded to the next application. I don't see that anywhere? (Did I just miss it?)
[David B] I think we discussed this. Chris should be able to better advise on this - I'll copy him on this emailIf we do this then the From Party can refrain from sending Acks if there is no Via (or TraceHeaderList etc.)Question 2: There is no way to stop an IM from changing the value of AckRequested (for instance in the case of an IM hop using MQseries) and when the IM does this, it will be changed for all subsequent hops.
[David B] Correct, but I don't think this is an issue as if you are using MQ Series you don't need the ack. If Delivery Semantics is OnceAndOnlyOnce, then any intermediary MSH which receives a message knows that they should forward the message using a reliable messaging protocol of some kind.This is due to the actor=next on Via. There are two possible fixes. 1) forbid any change or 2) move AckRequested out of Via. In the first choice, if it doesn't change then why is it in Via?
[David B] It can change as previously described.So the second answer is really the only answer. AckRequested needs to go in QualityOfServiceInfo. The question must then be asked, will AckRequested ever be different than DeliveryReceiptRequested? Although some obscure case might be made, I doubt it. There will however be cases where a local CPA might override this value. Is there then any real reason to have two request parameters? Let's just get rid of AckRequested and use DeliveryReceiptRequested for both DeliveryReceipts and Acknowledgements (change to ReceiptRequested?) and make these two types of "Acknowledgement Messages" fairly synonomous in the spec.
[David B] You can't rely on just Delivery Receipts as if there is an intermediary who stores a message before forwarding it then the From Party might time out waiting for the Delivery Receipt and assume the delivery failed when actually there are no problems at all. Because you can have different transport protocols with different timing characteristics you need to make each hop reliable so that the retry behavior can stop within a reasonable time. For example if you are using HTTP you could retryt for say 5 minutes before giving up, but if the next hop is SMTP going you might want to wait three hours. As the original sender may have no idea what transport will be used for all the hops they cannot set a reasonable time out. If they assume that some link is slow (e.g. SMTP) but the first link is HTTP then they would not trap an HTTP failure for potentially hours.Question 2: Another answer might be that Acks are part of RM and they fall under section 10.3.3 which says an Ack MUST be generated if DeliverySemantics=OnceAndOnlyOnce & ReliableMessagingMethod=ebXML. Therefore do we need AckRequested at all since we can deduce the need for an Ack based on this criteria? Again, let's get rid of AckRequested.
[David B] This is an idea that could be worth considering.What do you think?Regards,David.
-----Original Message-----
From: David Fischer [mailto:david@drummondgroup.com]
Sent: Wednesday, August 08, 2001 9:39 PM
To: David Burdett
Cc: ebXML Msg
Subject: End to End RM
Was (RE: T2 SyncReply and ReliableMessagingMethod in QualityOfServiceInfo)
Thanks, David, that was long!
The answer to my questions is probably somewhere in there but I may have gotten
lost.
Question 1: How do we do end-to-end RM irrespective of IM RM, i.e. how do we
request an end-to-end Ack? Is it the DeliveryReceipt or is there something
else?
Question 2: In a multi-hop situation (more than one IM) how do we avoid having
the IM change AckRequested and thus have the wrong value for all subsequent
hops?
David Fischer
Drummond Group.
------------------------------------------------------------------
To unsubscribe from this elist send a message with the single word
"unsubscribe" in the body to: ebxml-msg-request@lists.oasis-open.org
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC