TransactionCoordinator
contract.See: Description
Exception | Description |
---|---|
LocalSynchronizationException |
Wraps an exception thrown from a "local synchronization" (one registered in the SynchronizationRegistry).
|
NullSynchronizationException |
Indicates an attempt to register a null synchronization.
|
TransactionRequiredForJoinException |
Indicates a call to
TransactionCoordinator.explicitJoin() that requires an
active transaction where there currently is none. |
Defines the resource-level transaction capabilities of Hibernate, which revolves around the
TransactionCoordinator
contract.
<p/>
TransactionCoordinator instances can be obtained from
TransactionCoordinatorBuilder
, which is a Service
and available from the StandardServiceRegistry
<p/>
A few terms/concepts to keep in mind here…
<h2>Local transaction</h2>
The local transaction is the idea of transactionality exposed to the application (as
Transaction
) as a means to control the underlying transaction. That
control flows from the Transaction
into the TransactionCoordinator
through the TransactionCoordinator.TransactionDriver
it exposes.
<h2>Physical transaction</h2>
This is the physical underlying transaction that ultimately controls the database transaction. This
can be:<ul>
<li>
a JTA transaction, as expressed by UserTransaction
or
Transaction
)
</li>
<li>
a "JDBC transaction", as expressed through the JDBC Connection
object
</li>
</ul>
The corresponding concrete TransactionCoordinator implementations manage that bridging internally.
<h2>Local Synchronization</h2>
The Hibernate transaction api allows the application itself to register JTA Synchronization
objects with the TransactionCoordinator. These local Synchronizations work in all transaction
environments. See Transaction.registerSynchronization(javax.transaction.Synchronization)
and
SynchronizationRegistry
for additional details.
Copyright © 2001-2018 Red Hat, Inc. All Rights Reserved.