OTS 1.1 NO IDEA Avatar
  1. OMG Issue

OTS11 — commit_one_phase

  • 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