org.ofbiz.service
Class ServiceXaWrapper

java.lang.Object
  extended by java.lang.Thread
      extended by org.ofbiz.entity.transaction.GenericXaResource
          extended by org.ofbiz.service.ServiceXaWrapper
All Implemented Interfaces:
java.lang.Runnable, javax.transaction.xa.XAResource

public class ServiceXaWrapper
extends GenericXaResource

ServiceXaWrapper - XA Resource wrapper for running services on commit() or rollback()


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
protected  boolean commitAsync
           
protected  boolean commitAsyncPersist
           
protected  java.util.Map<java.lang.String,? extends java.lang.Object> commitContext
           
protected  java.lang.String commitService
           
protected  DispatchContext dctx
           
static int MODE_ASYNC
           
static int MODE_SYNC
           
static java.lang.String module
           
protected  boolean rollbackAsync
           
protected  boolean rollbackAsyncPersist
           
protected  java.util.Map<java.lang.String,? extends java.lang.Object> rollbackContext
           
protected  java.lang.String rollbackService
           
protected  java.lang.String runAsUser
           
static int TYPE_COMMIT
           
static int TYPE_ROLLBACK
           
 
Fields inherited from class org.ofbiz.entity.transaction.GenericXaResource
active, timeout, trans, xid
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Fields inherited from interface javax.transaction.xa.XAResource
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
 
Constructor Summary
protected ServiceXaWrapper()
           
  ServiceXaWrapper(DispatchContext dctx)
           
 
Method Summary
 void commit(javax.transaction.xa.Xid xid, boolean onePhase)
           
 void enlist()
          Enlists this resource in the current transaction
 java.util.Map<java.lang.String,? extends java.lang.Object> getCommitContext()
           
 java.lang.String getCommitService()
           
 java.util.Map getRollbackContext()
           
 java.lang.String getRollbackService()
           
 int prepare(javax.transaction.xa.Xid xid)
           
 void rollback(javax.transaction.xa.Xid xid)
           
protected  void runService(java.lang.String service, java.util.Map<java.lang.String,? extends java.lang.Object> context, boolean persist, int mode, int type)
           
 void setCommitService(java.lang.String serviceName, java.util.Map<java.lang.String,? extends java.lang.Object> context)
          Sets the service to run on rollback()
 void setCommitService(java.lang.String serviceName, java.util.Map<java.lang.String,? extends java.lang.Object> context, boolean async, boolean persist)
          Sets the service to run on rollback()
 void setCommitService(java.lang.String serviceName, java.lang.String runAsUser, java.util.Map<java.lang.String,? extends java.lang.Object> context, boolean async, boolean persist)
          Sets the service to run on rollback()
 void setRollbackService(java.lang.String serviceName, java.util.Map<java.lang.String,? extends java.lang.Object> context)
          Sets the service to run on rollback()
 void setRollbackService(java.lang.String serviceName, java.util.Map<java.lang.String,? extends java.lang.Object> context, boolean async, boolean persist)
          Sets the service to run on rollback()
 
Methods inherited from class org.ofbiz.entity.transaction.GenericXaResource
end, enlist, forget, getTransaction, getTransactionTimeout, getXid, isSameRM, recover, run, runOnTimeout, setTransaction, setTransactionTimeout, start
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

module

public static final java.lang.String module

TYPE_ROLLBACK

public static final int TYPE_ROLLBACK
See Also:
Constant Field Values

TYPE_COMMIT

public static final int TYPE_COMMIT
See Also:
Constant Field Values

MODE_ASYNC

public static final int MODE_ASYNC
See Also:
Constant Field Values

MODE_SYNC

public static final int MODE_SYNC
See Also:
Constant Field Values

dctx

protected DispatchContext dctx

rollbackService

protected java.lang.String rollbackService

commitService

protected java.lang.String commitService

runAsUser

protected java.lang.String runAsUser

rollbackContext

protected java.util.Map<java.lang.String,? extends java.lang.Object> rollbackContext

commitContext

protected java.util.Map<java.lang.String,? extends java.lang.Object> commitContext

rollbackAsync

protected boolean rollbackAsync

rollbackAsyncPersist

protected boolean rollbackAsyncPersist

commitAsync

protected boolean commitAsync

commitAsyncPersist

protected boolean commitAsyncPersist
Constructor Detail

ServiceXaWrapper

protected ServiceXaWrapper()

ServiceXaWrapper

public ServiceXaWrapper(DispatchContext dctx)
Method Detail

setCommitService

public void setCommitService(java.lang.String serviceName,
                             java.util.Map<java.lang.String,? extends java.lang.Object> context)
Sets the service to run on rollback()

Parameters:
serviceName - Name of service to run
context - Context to use when running

setCommitService

public void setCommitService(java.lang.String serviceName,
                             java.util.Map<java.lang.String,? extends java.lang.Object> context,
                             boolean async,
                             boolean persist)
Sets the service to run on rollback()

Parameters:
serviceName - Name of service to run
context - Context to use when running
async - override default async behavior

setCommitService

public void setCommitService(java.lang.String serviceName,
                             java.lang.String runAsUser,
                             java.util.Map<java.lang.String,? extends java.lang.Object> context,
                             boolean async,
                             boolean persist)
Sets the service to run on rollback()

Parameters:
serviceName - Name of service to run
runAsUser - UserLoginID to run as
context - Context to use when running
async - override default async behavior

getCommitService

public java.lang.String getCommitService()
Returns:
The name of the service to run on rollback()

getCommitContext

public java.util.Map<java.lang.String,? extends java.lang.Object> getCommitContext()
Returns:
The context used when running the rollback() service

setRollbackService

public void setRollbackService(java.lang.String serviceName,
                               java.util.Map<java.lang.String,? extends java.lang.Object> context)
Sets the service to run on rollback()

Parameters:
serviceName - Name of service to run
context - Context to use when running

setRollbackService

public void setRollbackService(java.lang.String serviceName,
                               java.util.Map<java.lang.String,? extends java.lang.Object> context,
                               boolean async,
                               boolean persist)
Sets the service to run on rollback()

Parameters:
serviceName - Name of service to run
context - Context to use when running
async - override default async behavior

getRollbackService

public java.lang.String getRollbackService()
Returns:
The name of the service to run on rollback()

getRollbackContext

public java.util.Map getRollbackContext()
Returns:
The context used when running the rollback() service

enlist

public void enlist()
            throws javax.transaction.xa.XAException
Description copied from class: GenericXaResource
Enlists this resource in the current transaction

Overrides:
enlist in class GenericXaResource
Throws:
javax.transaction.xa.XAException

commit

public void commit(javax.transaction.xa.Xid xid,
                   boolean onePhase)
            throws javax.transaction.xa.XAException
Specified by:
commit in interface javax.transaction.xa.XAResource
Specified by:
commit in class GenericXaResource
Throws:
javax.transaction.xa.XAException
See Also:
XAResource.commit(javax.transaction.xa.Xid xid, boolean onePhase)

rollback

public void rollback(javax.transaction.xa.Xid xid)
              throws javax.transaction.xa.XAException
Specified by:
rollback in interface javax.transaction.xa.XAResource
Specified by:
rollback in class GenericXaResource
Throws:
javax.transaction.xa.XAException
See Also:
XAResource.rollback(javax.transaction.xa.Xid xid)

prepare

public int prepare(javax.transaction.xa.Xid xid)
            throws javax.transaction.xa.XAException
Specified by:
prepare in interface javax.transaction.xa.XAResource
Overrides:
prepare in class GenericXaResource
Throws:
javax.transaction.xa.XAException
See Also:
XAResource.prepare(javax.transaction.xa.Xid xid)

runService

protected final void runService(java.lang.String service,
                                java.util.Map<java.lang.String,? extends java.lang.Object> context,
                                boolean persist,
                                int mode,
                                int type)
                         throws javax.transaction.xa.XAException
Throws:
javax.transaction.xa.XAException