public class TransactionSynchronizationRegistryImpl
extends java.lang.Object
implements javax.naming.Referenceable, javax.transaction.TransactionSynchronizationRegistry
Constructor and Description |
---|
TransactionSynchronizationRegistryImpl() |
Modifier and Type | Method and Description |
---|---|
static TransactionSynchronizationRegistryImpl |
getInstance()
Return an opaque object to represent the transaction bound to the current
thread at the time this method is called.
|
javax.naming.Reference |
getReference()
Retrieves the
Reference of this object. |
java.lang.Object |
getResource(java.lang.Object key)
Get an object from the map of resources being managed for the current
transaction.
|
boolean |
getRollbackOnly()
Get the
rollbackOnly status of the transaction bound to
the current thread. |
java.lang.Object |
getTransactionKey() |
int |
getTransactionStatus()
Returns the status of the transaction bound to the current thread.
|
void |
putResource(java.lang.Object key,
java.lang.Object value)
Add an object to the map of resources being managed for the current
transaction.
|
void |
registerInterposedSynchronization(javax.transaction.Synchronization sync)
Register a
Synchronization instance with special ordering
semantics. |
void |
setRollbackOnly()
Set the
rollbackOnly status of the transaction bound to
the current thread. |
public TransactionSynchronizationRegistryImpl()
public static TransactionSynchronizationRegistryImpl getInstance()
hashCode
and equals
methods to allow its
use as the key in a java.util.HashMap
for use by the
caller. If there is no transaction currently active, null is returned.
The returned object will return the same hashCode
and
compare equal to all other objects returned by calling this method from
any component executing in the same transaction context in the same
application server.
The toString
method returns a String
that
might be usable by a human reader to usefully understand the transaction
context. The result of the toString
method is otherwise
not defined. Specifically, there is no forward or backward compatibility
guarantee for the result returned by the toString
method.
The object is not necessarily serializable, and is not useful outside the virtual machine from which it was obtained.
public java.lang.Object getTransactionKey()
getTransactionKey
in interface javax.transaction.TransactionSynchronizationRegistry
public void putResource(java.lang.Object key, java.lang.Object value)
hashCode
and equals
methods are
suitable for keys in a map. The key and value are not examined or used by
the implementation.putResource
in interface javax.transaction.TransactionSynchronizationRegistry
key
- The key for looking up the associated value object.value
- The value object to keep track of.java.lang.IllegalStateException
- Thrown if the current thread is not associated with a
transaction.public java.lang.Object getResource(java.lang.Object key)
putResouce
in the same transaction. If the key cannot be
found in the current resource map, null is returned.getResource
in interface javax.transaction.TransactionSynchronizationRegistry
key
- The key for looking up the associated value object.java.lang.IllegalStateException
- Thrown if the current thread is not associated with a
transaction.public void registerInterposedSynchronization(javax.transaction.Synchronization sync) throws java.lang.IllegalStateException
Synchronization
instance with special ordering
semantics. The beforeCompletion
method on the registered
Synchronization
will be called after all user and system
component beforeCompletion
callbacks, but before the
2-phase commit process starts. This allows user and system components to
flush state changes to the caching manager, during their
SessionSynchronization
callbacks, and allows managers to
flush state changes to Connectors, during the callbacks registered with
this method. Similarly, the afterCompletion
callback will
be called after 2-phase commit completes but before any user and system
afterCompletion
callbacks.
The beforeCompletion
callback will be invoked in the
transaction context of the current transaction bound to the thread of the
caller of this method, which is the same transaction context active at
the time this method is called. Allowable methods include access to
resources, for example, Connectors. No access is allowed to user
components, for example, timer services or bean methods, as these might
change the state of POJOs, or plain old Java objects, being managed by
the caching manager.
The afterCompletion
callback will be invoked in an
undefined transaction context. No access is permitted to resources or
user components as defined above. Resources can be closed, but no
transactional work can be performed with them.
Other than the transaction context, no component J2EE context is active during either of the callbacks.
registerInterposedSynchronization
in interface javax.transaction.TransactionSynchronizationRegistry
sync
- The synchronization callback object.java.lang.IllegalStateException
- Thrown if the current thread is not associated with a
transaction.public int getTransactionStatus()
getStatus
method on the
TransactionManager
, in the current transaction context.getTransactionStatus
in interface javax.transaction.TransactionSynchronizationRegistry
public void setRollbackOnly()
rollbackOnly
status of the transaction bound to
the current thread.setRollbackOnly
in interface javax.transaction.TransactionSynchronizationRegistry
java.lang.IllegalStateException
- Thrown if the current thread is not associated with a transaction.public boolean getRollbackOnly()
rollbackOnly
status of the transaction bound to
the current thread.getRollbackOnly
in interface javax.transaction.TransactionSynchronizationRegistry
java.lang.IllegalStateException
- Thrown if the current thread is not associated with a transaction.public javax.naming.Reference getReference() throws javax.naming.NamingException
Reference
of this object.getReference
in interface javax.naming.Referenceable
Reference
of this object.javax.naming.NamingException
- If a naming exception was encountered while retrieving the reference.