## org.apache.lucene.index
Class TwoPhaseCommitTool

    java.lang.Object
      org.apache.lucene.index.TwoPhaseCommitTool

    public final class TwoPhaseCommitTool

extends Object

A utility for executing 2-phase commit on several objects.

See Also:
  `TwoPhaseCommit`
WARNING: This API is experimental and might change in incompatible ways in the next release.

Nested Class Summary
`static class` `TwoPhaseCommitTool.CommitFailException` Thrown by `execute(TwoPhaseCommit...)` when an object fails to commit().
`static class` `TwoPhaseCommitTool.PrepareCommitFailException` Thrown by `execute(TwoPhaseCommit...)` when an object fails to prepareCommit().

Method Summary
`static void` `execute(TwoPhaseCommit... objects)` Executes a 2-phase commit algorithm by first `TwoPhaseCommit.prepareCommit()` all objects and only if all succeed, it proceeds with `TwoPhaseCommit.commit()`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### execute

    public static void execute(TwoPhaseCommit... objects)
                        throws TwoPhaseCommitTool.PrepareCommitFailException,
                               TwoPhaseCommitTool.CommitFailException

  Executes a 2-phase commit algorithm by first `TwoPhaseCommit.prepareCommit()` all objects and only if all succeed, it proceeds with `TwoPhaseCommit.commit()`. If any of the objects fail on either the preparation or actual commit, it terminates and `TwoPhaseCommit.rollback()` all of them.

  NOTE: it may happen that an object fails to commit, after few have already successfully committed. This tool will still issue a rollback instruction on them as well, but depending on the implementation, it may not have any effect.

  NOTE: if any of the objects are `null`, this method simply skips over them.

  Throws:
    `TwoPhaseCommitTool.PrepareCommitFailException` - if any of the objects fail to `TwoPhaseCommit.prepareCommit()`
    `TwoPhaseCommitTool.PrepareCommitFailException` - if any of the objects fail to `TwoPhaseCommit.commit()`
    `TwoPhaseCommitTool.CommitFailException`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.