|
IBM WebSphere Application ServerTM Release 8 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface UOWSynchronizationRegistry
This interface provides functionality equivalent to
javax.transaction.TransactionSynchronizationRegistry
for all types of unit of
work (UOW) supported by WebSphere Application Server (WAS) in a UOW-agnostic fashion. It is
intended for use by system level application server components such as persistence managers,
resource adapters, as well as EJB and Web application components and provides the ability to
register synchronization objects with special ordering semantics, associate resource objects
with the UOW, get the context of the current UOW, get current UOW status, and mark the current
UOW for rollback.
In the event of multiple units of work being bound to the current thread, e.g. a global or local transaction nested within an ActivitySession, the unit of work that is accessed by invocation of methods on an instance of this interface will occur against the unit of work that is responsible for coordinating enlisted resources. When there is a global transaction bound to the current thread it will always be responsible for such coordination irrespective of the presence or otherwise of an ActivitySession. In the case of a local transaction and an ActivitySession the unit of work that is coordinating resource is dependent on the configuration settings for the local transaction. If the local transaction is configured with a resolver of container-at-boundary and a boundary of ActivitySession the ActivitySession will be responsible for coordination of enlisted resources, otherwise the local transaction is responsible for such coordination.
This interface is implemented by the application server by a stateless service object. The same object can be used by any number of components with thread safety.
An instance implementing this interface can be looked up via JNDI by using the name
java:comp/websphere/UOWSynchronizationRegistry
. Note that UOWSynchronizationRegistry
is only available in a server environment.
Field Summary | |
---|---|
static int |
UOW_STATUS_ACTIVE
Indicates that a UOW is bound to the current thread and it is in the active state. |
static int |
UOW_STATUS_COMMITTED
Indicates that a UOW is bound to the current thread and that it has been committed. |
static int |
UOW_STATUS_COMPLETING
Indicates that a UOW is bound to the current thread and that it is in the process of completing. |
static int |
UOW_STATUS_NONE
Indicates that no UOW is bound to the current thread. |
static int |
UOW_STATUS_ROLLBACKONLY
Indicates that a UOW is bound to the current thread and it has been marked for rollback, perhaps as a result of a setRollbackOnly operation. |
static int |
UOW_STATUS_ROLLEDBACK
Indicates that a UOW is bound to the current thread and that it has been rolled back. |
static int |
UOW_TYPE_ACTIVITYSESSION
Identifies that the UOW is an ActivitySession. |
static int |
UOW_TYPE_GLOBAL_TRANSACTION
Identifies that the UOW is a global transaction. |
static int |
UOW_TYPE_LOCAL_TRANSACTION
Identifies that the UOW bound to the current thread is a local transaction. |
Method Summary | |
---|---|
long |
getLocalUOWId()
Returns a long that uniquely identifies the unit of work
bound to the current thread at the time this method is called. |
java.lang.Object |
getResource(java.lang.Object key)
Get an object from the map of resources being managed by the current unit of work. |
boolean |
getRollbackOnly()
Get the rollbackOnly status of the current unit of work. |
java.lang.String |
getUOWName()
Returns the human-readable name that identifies the current unit of work, or null if no UOW is bound to the thread. |
int |
getUOWStatus()
Returns the status of the current unit of work. |
int |
getUOWType()
Returns the type of the current unit of work. |
void |
putResource(java.lang.Object key,
java.lang.Object value)
Add or replace an object in the Map of resources being managed by the current unit of work. |
void |
registerInterposedSynchronization(javax.transaction.Synchronization sync)
Register a Synchronization instance with special ordering semantics. |
void |
setRollbackOnly()
Set the rollbackOnly status of the current unit of work such that the only possible outcome of the unit of work is rollback. |
Field Detail |
---|
static final int UOW_STATUS_ACTIVE
getUOWStatus()
,
Constant Field Valuesstatic final int UOW_STATUS_ROLLBACKONLY
getUOWStatus()
,
Constant Field Valuesstatic final int UOW_STATUS_COMPLETING
getUOWStatus()
,
Constant Field Valuesstatic final int UOW_STATUS_COMMITTED
getUOWStatus()
,
Constant Field Valuesstatic final int UOW_STATUS_ROLLEDBACK
getUOWStatus()
,
Constant Field Valuesstatic final int UOW_STATUS_NONE
getUOWStatus()
,
Constant Field Valuesstatic final int UOW_TYPE_LOCAL_TRANSACTION
getUOWType()
,
Constant Field Valuesstatic final int UOW_TYPE_GLOBAL_TRANSACTION
getUOWStatus()
,
Constant Field Valuesstatic final int UOW_TYPE_ACTIVITYSESSION
getUOWStatus()
,
Constant Field ValuesMethod Detail |
---|
long getLocalUOWId()
long
that uniquely identifies the unit of work
bound to the current thread at the time this method is called.
java.lang.IllegalStateException
- Thrown if no UOW is bound to the threadjava.lang.Object getResource(java.lang.Object key) throws java.lang.NullPointerException
Get an object from the map of resources being managed by the
current unit of work. The key should have been supplied earlier
by a call to putResouce in the same unit of work. If the key cannot
be found in the current resource Map, null
is returned.
The general contract of this method is that of Map.get(Object) for a Map that supports non-null keys and null values. For example, the returned value is null if there is no entry for the parameter key or if the value associated with the key is actually null.
key
- The key for the Map entry
java.lang.NullPointerException
- Thrown if the key is null
java.lang.IllegalStateException
- Thrown if no UOW is bound to the threadboolean getRollbackOnly()
java.lang.IllegalStateException
- Thrown if no UOW is bound to the threadint getUOWStatus()
UOW_STATUS_ACTIVE
,
UOW_STATUS_COMPLETING
,
UOW_STATUS_COMMITTED
,
UOW_STATUS_NONE
,
UOW_STATUS_ROLLBACKONLY
,
UOW_STATUS_ROLLEDBACK
int getUOWType()
java.lang.IllegalStateException
- Thrown if no UOW is bound to the threadUOW_TYPE_ACTIVITYSESSION
,
UOW_TYPE_LOCAL_TRANSACTION
,
UOW_TYPE_GLOBAL_TRANSACTION
void putResource(java.lang.Object key, java.lang.Object value)
Add or replace an object in the Map of resources being managed by the current unit of work. The supplied key should be of a caller-defined class so as not to conflict with other users. The class of the key must guarantee that the hashCode and equals methods are suitable for use as a keys in a Map. The key and value are not examined or used by the implementation.
The general contract of this method is that of Map.put(Object, Object) for a Map that supports non-null keys and null values. For example, if there is already an value associated with the key, it is replaced by the value parameter.
key
- The key for the Map entry.value
- The value for the Map entry.
java.lang.NullPointerException
- If the parameter key is null
.
java.lang.IllegalStateException
- Thrown if no UOW is bound to the threadvoid registerInterposedSynchronization(javax.transaction.Synchronization sync)
Register a Synchronization instance with special ordering semantics. Its beforeCompletion will be called after all SessionSynchronization beforeCompletion callbacks and callbacks registered directly with the unit of work, but before commit processing starts. Similarly, the afterCompletion callback will be called after commit completes but before any SessionSynchronization and directly-registered afterCompletion callbacks.
The beforeCompletion callback will be invoked in the unit of work context of the unit of work bound to the current thread at the time this method is called. Allowable methods include access to resources, e.g. Connectors. No access is allowed to "user components" (e.g. timer services or bean methods), as these might change the state of data being managed by the caller, and might change the state of data that has already been flushed by another caller of registerInterposedSynchronization. The general context is the component context of the caller of registerInterposedSynchronization.
The afterCompletion callback will be invoked in an undefined context. No access is permitted to "user components" as defined above. Resources can be closed but no work can be performed with them.
sync
- The Synchronization instance.
java.lang.IllegalStateException
- Thrown if the UOW is in not in a state to accept
synchronization registration, e.g. a global transaction that is preparing, or
if no UOW is bound to the thread.
java.lang.NullPointerException
- Thrown if the given synchronization is nullvoid setRollbackOnly()
java.lang.IllegalStateException
- Thrown if no UOW is bound to the threadjava.lang.String getUOWName()
Returns the human-readable name that identifies the current unit of work, or null if no UOW is bound to the thread. The format of the name is undefined.
|
IBM WebSphere Application ServerTM Release 8 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |