-
Key: OTS11-18
-
Legacy Issue Number: 3617
-
Status: open
-
Source: Red Hat ( Mark Little)
-
Summary:
The commit_one_phase optimisation is available in OTS for the case where a
coordinator only has a single resource registered with it. However, consider
the following situation, which is concerned with heuristics (and assume that
the application wants to know about heuristics too):A root coordinator has two remote resources registered with it, and calls
prepare on each (they both return VoteCommit), followed by commit. The
second resource throws a HeuristicRollback, so the root coordinator throws a
HeuristicMixed exception from Current::commit.Now let's assume both resources reside within the same process, which uses
interposition at the client. So, rather than having two resources registered
with the root, there is only one, the interposed coordinator. When commit is
called on the root coordinator it sees only the interposed coordinator, so
can call commit_one_phase instead of prepare/commit as above. If both
resources are the interposed coordinator behave as before (i.e., one will
throw HeuristicRollback), the interposed coordinator would like to return
HeuristicMixed to the root coordinator. However, the signature of
commit_one_phase only lets it throw HeuristicHazard.It would be useful if the same information was available to the root
coordinator (and hence the application) regardless of the physical
distribution of the Resources. This is especially the case where heuristics
are concerned, as more accurate information is better than none. -
Reported: OTS 1.0b1 — Wed, 17 May 2000 04:00 GMT
-
Updated: Fri, 6 Mar 2015 20:57 GMT