TransactionImpl is the implementation of the Transaction interface,
defined in JTA specifications. This object is intended to be used
by the EJBServer for transaction management. It is used indirectly
by the UserTransaction implementation too, i.e. the Current object.
The goal is to use the JTA interface to hide the JTM interface to
the caller (EJBServer, Bean or Client).
commit
public void commit()
throws RollbackException,
HeuristicMixedException,
HeuristicRollbackException,
SecurityException,
SystemException
Complete the transaction represented by this Transaction object
The calling thread is not required to have the same transaction
associated with the thread. (JTA 3.3.3)
delistResource
public boolean delistResource(XAResource xares,
int flag)
throws IllegalStateException,
SystemException
Delist the resource specified from the current transaction
associated with the calling thread.
xares
- The XAResource object representing the resource to delistflag
- One of the values of TMSUCCESS, TMSUSPEND, or TMFAIL.
- true if the dissociation of the Resource is successful;
false otherwise.
doAttach
public void doAttach(int flag)
throws SystemException,
RollbackException
doDetach
public void doDetach(int flag)
throws SystemException
enlistResource
public boolean enlistResource(XAResource xares)
throws RollbackException,
IllegalStateException,
SystemException
Enlist the resource specified with the current transaction
context of the calling thread
xares
- The XAResource object representing the resource to enlist
- true if the resource was enlisted successfully; otherwise
false.
equals
public boolean equals(Object obj2)
return true if objects are identical
getEnlistedXAResource
public List getEnlistedXAResource()
getPropagationContext
public TransactionContext getPropagationContext(boolean hold)
Return associated PropagationContext
Used for implicit Context propagation.
- PropagationContext associated with the transaction.
getStatus
public int getStatus()
throws SystemException
Obtain the status of the transaction associated with the current thread.
- The transaction status. If no transaction is associated with
the current thread, this method returns the Status.NoTransaction
value.
getTxDate
public String getTxDate()
get the date time stamp for the transaction
getXid
public Xid getXid()
Get the Xid of the transaction
hashCode
public int hashCode()
return a hashcode value for this object
isRemovable
public boolean isRemovable()
return true if object is no more used (= removable)
prepare
public int prepare()
throws IllegalStateException,
SystemException
Prepare the transaction represented by this Transaction object.
registerSynchronization
public void registerSynchronization(Synchronization sync)
throws RollbackException,
IllegalStateException,
SystemException
Register a synchronization object for the transaction currently
associated with the calling thread. The transction manager invokes
the beforeCompletion method prior to starting the transaction
commit process. After the transaction is completed, the transaction
manager invokes the afterCompletion method.
sync
- The javax.transaction.Synchronization object for the
transaction associated with the target object
rollback
public void rollback()
throws IllegalStateException,
SystemException
Rollback the transaction represented by this Transaction object.
setRollbackOnly
public void setRollbackOnly()
throws IllegalStateException,
SystemException
Modify the transaction associated with the current thread such that
the only possible outcome of the transaction is to roll back the
transaction.
setTimer
public void setTimer(TimerEvent timer)
set a timer for the transaction
setTxDate
public void setTxDate(String date)
set the date time stamp for the transaction
toString
public String toString()
string form
unsetTimer
public void unsetTimer()
unset the timer
updatePropagationContext
public void updatePropagationContext(TransactionContext pctx)
update the propagation context
We should be inside the reply of a request involved in a tx here!