bitronix.tm.resource.jms.lrc
Class LrcXAResource
java.lang.Object
bitronix.tm.resource.jms.lrc.LrcXAResource
- All Implemented Interfaces:
- javax.transaction.xa.XAResource
public class LrcXAResource
- extends java.lang.Object
- implements javax.transaction.xa.XAResource
XAResource implementation for a non-XA JMS connection emulating XA with Last Resource Commit.
The XA protocol flow is implemented by this state machine:
NO_TX
|
| start(TMNOFLAGS)
|
| end(TMFAIL)
STARTED -------------- NO_TX
|
| end(TMSUCCESS)
|
| start(TMJOIN)
ENDED ---------------- STARTED
|\
| \ commit (one phase)
| ----------------- NO_TX
|
| prepare()
|
| commit() or
| rollback()
PREPARED ------------- NO_TX
XAResource.TMSUSPEND
and XAResource.TMRESUME
are not supported.
© Bitronix Software
- Author:
- lorban
Fields inherited from interface javax.transaction.xa.XAResource |
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
NO_TX
public static final int NO_TX
- See Also:
- Constant Field Values
STARTED
public static final int STARTED
- See Also:
- Constant Field Values
ENDED
public static final int ENDED
- See Also:
- Constant Field Values
PREPARED
public static final int PREPARED
- See Also:
- Constant Field Values
LrcXAResource
public LrcXAResource(javax.jms.Session session)
getState
public int getState()
getTransactionTimeout
public int getTransactionTimeout()
throws javax.transaction.xa.XAException
- Specified by:
getTransactionTimeout
in interface javax.transaction.xa.XAResource
- Throws:
javax.transaction.xa.XAException
setTransactionTimeout
public boolean setTransactionTimeout(int seconds)
throws javax.transaction.xa.XAException
- Specified by:
setTransactionTimeout
in interface javax.transaction.xa.XAResource
- Throws:
javax.transaction.xa.XAException
forget
public void forget(javax.transaction.xa.Xid xid)
throws javax.transaction.xa.XAException
- Specified by:
forget
in interface javax.transaction.xa.XAResource
- Throws:
javax.transaction.xa.XAException
recover
public javax.transaction.xa.Xid[] recover(int flags)
throws javax.transaction.xa.XAException
- Specified by:
recover
in interface javax.transaction.xa.XAResource
- Throws:
javax.transaction.xa.XAException
isSameRM
public boolean isSameRM(javax.transaction.xa.XAResource xaResource)
throws javax.transaction.xa.XAException
- Specified by:
isSameRM
in interface javax.transaction.xa.XAResource
- Throws:
javax.transaction.xa.XAException
start
public void start(javax.transaction.xa.Xid xid,
int flag)
throws javax.transaction.xa.XAException
- Specified by:
start
in interface javax.transaction.xa.XAResource
- Throws:
javax.transaction.xa.XAException
end
public void end(javax.transaction.xa.Xid xid,
int flag)
throws javax.transaction.xa.XAException
- Specified by:
end
in interface javax.transaction.xa.XAResource
- Throws:
javax.transaction.xa.XAException
prepare
public int prepare(javax.transaction.xa.Xid xid)
throws javax.transaction.xa.XAException
- Specified by:
prepare
in interface javax.transaction.xa.XAResource
- 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
- Throws:
javax.transaction.xa.XAException
rollback
public void rollback(javax.transaction.xa.Xid xid)
throws javax.transaction.xa.XAException
- Specified by:
rollback
in interface javax.transaction.xa.XAResource
- Throws:
javax.transaction.xa.XAException
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object