Provides an implementation of
TransactionCoordinator
. This class is thread safe, but the {@link TransactionHandle} returned by the{@link #createTransaction createTransaction} method, and the {@link Transaction} associated with the handle, are not thread safe. Callersshould provide their own synchronization to insure that those objects are not accessed concurrently from multiple threads.
Transactions created by this class can only support at most a single durable participant — one that does not implement {@link NonDurableTransactionParticipant}. The {@link Transaction#join join} methodon transactions created using this class will throw {@link UnsupportedOperationException} if more than one durable participant attemptsto join the transaction.
The Transaction
instances created by this class are not synchronized; methods on those instances should only be called from a single thread.
The default timeout for bounded transactions created by this class is 100ms. The default timeout for unbounded transactions created by this class is Long.MAX_VALUE. These defaults may be overridden using the properties TransactionCoordinator.TXN_TIMEOUT_PROPERTY
and TransactionCoordinator.TXN_UNBOUNDED_TIMEOUT_PROPERTY
respectively.