[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [ebxml-msg] an assessment of the reliability of pulled messages
-----Original Message-----Here are the two proposals as I see them for a "reliable" pull transaction:
From: Jeff Turpin [mailto:jturpin@cyclonecommerce.com]
Sent: Wednesday, January 05, 2005 1:41 PM
To: Jacques Durand; 'ebxml-msg@lists.oasis-open.org'
Subject: Re: [ebxml-msg] an assessment of the reliability of pulled messages
I. Non-reliable Pull Request
---------- Step#1:
-Sender MSH: pass Pull(PartyId) to RMP.
-Sending RMP: send Pull(PartyId) (non-reliable)
|
|
-Receiving RMP: get the Pull (non-reliable)
-Receiver MSH: get the Pull, pass to App
---------- Step #2:
-Receiver MSH: gets the pull request and gets a waiting message (response) from its queue, pass to RMP.
-Receiving RMP: send reliably the pulled message over synch MEP
(SOAP Response to the previous Pull, as this was a synchronous Pull) and persist this message (for possible resend)
a. failure
-Sending RMP: does not get the reliable response, does not send an AckII. Reliable Pull Request
-Sender MSH: does not get a pulled message.
-Sender MSH: schedules the next pull request
|
|
-Receiver RMP: RMP does not get the Ack for the reliable message (response), makes message eligible for
"resend" (makes message available for next pull request)
b. success
-Sender RMP: gets reliable response, sends (callback) RMP Ack, passes "pulled" message to MSH
-Sender MSH: Processes "pulled" message
|
|
- Receiver RMP: Receives Ack and notifies MSH of Delivery
---------- Step#1:
-Sender MSH: pass Pull(PartyId) to RMP.
-Sending RMP: send Pull(PartyId) (reliable)
|
|
-Receiving RMP: get the Pull reliable request, pass to MSH
-Receiver MSH: get the Pull, pass to App
---------- Step #2:
-Receiver MSH: get the waiting message (response) from its queue, pass to RMP.
-Receiving RMP: send reliably the pulled message over synch MEP with bundled Ack
(SOAP Response to the previous Pull, as this was a synchronous Pull) and persist this message (for possible resend)
a. failure
-Sending RMP: does not get the Ack, makes request eligible for resend-Sender MSH: Processes "pulled" message
-Sender MSH: does not get a pulled message.
-Sender RMP: resends the same (duplicate RM message ID) pull request
|
|
-Receiver RMP: RMP does not get the Ack for the reliable message (response), makes message eligible for
"resend" (makes message available for next duplicate pull request)
-Receiver RMP: Receives duplicate pull request (duplicate RM message ID) and responds with the cached reliable
pull message (response)
b. success
-Sender RMP: gets reliable response/Ack, sends (callback) RMP Ack, passes "pulled" message to MSH
|
|
- Receiver RMP: Receives Ack and notifies MSH of Delivery
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]