ws-tx message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: Interop scenario doc - scenario 5.1
- From: Doug Davis <dug@us.ibm.com>
- To: ws-tx@lists.oasis-open.org
- Date: Tue, 27 Jun 2006 17:05:29 -0400
For scenario 5.1 ReplayCommit it current
shows this flow:
Initialization
IA sends an application message tns:ReplayCommit
request to PA containing CoordinationContext.
PA registers PS1 and PS2 with CS for a Durable2PC
protocol.
PA responds with an application reply tns:Response.
Message Exchange
(IA initiates
Commit)
- CS sends Durable2PC::Prepare to PS1
- PS1 sends Durable2PC::Prepared to
CS
- CS sends Durable2PC::Prepare to PS2
- PS2 sends Durable2PC::Prepared to
CS
- CS sends Durable2PC:Commit to PS1
- PS1 sends Durable2PC::Committed to
CS
- CS sends Durable2PC::Commit to PS2
(CS commits the transaction. PS2 suffers from internal failure)
- Upon recovery, PS2 sends 2PC::Prepared
to CS
- CS re-sends Durable2PC::Commit to
PS2
- PS2 sends Durable2PC::Committed
to CS
I believe this is wrong.
1 - The "(CS commits the transaction)"
should come after step 10 - meaning the Coordinator should not exit the
"Committing" stage until it receives Committed from all of the
participants
2 - Something should block resent "Commit"
messages from the Coordinator (if any) until PS2 has a chance to resend
its "Prepared" message - since the point of the test is how the
Coordinator deals with extra Prepared messages while in the Committing
stage.
Not sure who has the pen but i think
we should update the doc to correct this - something like:
- CS sends Durable2PC::Prepare to PS1
- PS1 sends Durable2PC::Prepared to
CS
- CS sends Durable2PC::Prepare to PS2
- PS2 sends Durable2PC::Prepared to
CS
- CS sends Durable2PC:Commit to PS1
- PS1 sends Durable2PC::Committed to
CS
- CS sends Durable2PC::Commit to PS2
(PS2 suffers from internal failure)
(PA prevents any resent Commit from reaching PS2 - simulating failure)
- Upon recovery, PS2 sends 2PC::Prepared
to CS
- CS re-sends Durable2PC::Commit to
PS2
- PS2 sends Durable2PC::Committed
to CS
(CS commits the transaction)
Not sure what the purpose of PS1 is
(and would prefer to remove it) but oh well :-)
thanks
-Doug
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]