Package 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TwoPhaseCommitTool.CommitFailException
Thrown byexecute(TwoPhaseCommit...)
when an object fails to commit().static class
TwoPhaseCommitTool.PrepareCommitFailException
Thrown byexecute(TwoPhaseCommit...)
when an object fails to prepareCommit().
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
execute(TwoPhaseCommit... objects)
Executes a 2-phase commit algorithm by firstTwoPhaseCommit.prepareCommit()
all objects and only if all succeed, it proceeds withTwoPhaseCommit.commit()
.
-
-
-
Method Detail
-
execute
public static void execute(TwoPhaseCommit... objects) throws TwoPhaseCommitTool.PrepareCommitFailException, TwoPhaseCommitTool.CommitFailException
Executes a 2-phase commit algorithm by firstTwoPhaseCommit.prepareCommit()
all objects and only if all succeed, it proceeds withTwoPhaseCommit.commit()
. If any of the objects fail on either the preparation or actual commit, it terminates andTwoPhaseCommit.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 toTwoPhaseCommit.prepareCommit()
TwoPhaseCommitTool.CommitFailException
- if any of the objects fail toTwoPhaseCommit.commit()
-
-