com.objectwave.transactionalSupport.xa
Class XaSessionManager

java.lang.Object
  |
  +--com.objectwave.transactionalSupport.xa.XaSessionManager
All Implemented Interfaces:
javax.transaction.xa.XAResource

public class XaSessionManager
extends java.lang.Object
implements javax.transaction.xa.XAResource

Support using Sessions as a compliant XAResource. The resources it manages are the DomainObject instances. This class is in the early stage of development - Whats important is that this resource somehow get associated with a TransactionManager transaction. Since that can be application server specific, I'll leave this as is for now.


  Example of how it may look. 

XaSessionManager manager = new XaSessionManager();

public void doSomethingNeedingManaged() {
TransactionManager tm = null;
try {
tm = (TransactionManager) new InitialContext().lookup("java:/TransactionManager");
Transaction tran = tm.getTransaction();
if( tran != null ) tran.enlistResource( manager );
}
catch(Exception e) {
MessageLog.debug( this, "Failed to locate transaction manager", e);
}

Version:
$Id: XaSessionManager.java,v 1.1 2001/06/15 13:46:06 dave_hoag Exp $
Author:
dhoag

Field Summary
protected  java.util.Hashtable table
           
protected  int timeout
           
 
Fields inherited from interface javax.transaction.xa.XAResource
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
 
Constructor Summary
XaSessionManager()
          Constructor for the XaSession object
 
Method Summary
protected  void commit(Session ses)
          Do the actual commit
 void commit(javax.transaction.xa.Xid xid, boolean parm2)
           
 void end(javax.transaction.xa.Xid xid, int parm2)
           
protected  Session findSession(javax.transaction.xa.Xid xid)
           
 void forget(javax.transaction.xa.Xid xid)
           
protected  java.lang.Object getKey(javax.transaction.xa.Xid xid)
           
 int getTransactionTimeout()
          Gets the TransactionTimeout attribute of the XaSession object
 boolean isSameRM(javax.transaction.xa.XAResource parm1)
          Gets the SameRM attribute of the XaSession object
 int prepare(javax.transaction.xa.Xid xid)
           
 javax.transaction.xa.Xid[] recover(int parm1)
           
 void rollback(javax.transaction.xa.Xid xid)
           
 boolean setTransactionTimeout(int parm1)
          Sets the TransactionTimeout attribute of the XaSession object
 void start(javax.transaction.xa.Xid xid, int parm2)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

table

protected java.util.Hashtable table

timeout

protected int timeout
Constructor Detail

XaSessionManager

public XaSessionManager()
Constructor for the XaSession object

Method Detail

setTransactionTimeout

public boolean setTransactionTimeout(int parm1)
                              throws javax.transaction.xa.XAException
Sets the TransactionTimeout attribute of the XaSession object

Specified by:
setTransactionTimeout in interface javax.transaction.xa.XAResource
Parameters:
parm1 - The new TransactionTimeout value
Returns:
Throws:
javax.transaction.xa.XAException

getTransactionTimeout

public int getTransactionTimeout()
                          throws javax.transaction.xa.XAException
Gets the TransactionTimeout attribute of the XaSession object

Specified by:
getTransactionTimeout in interface javax.transaction.xa.XAResource
Returns:
The TransactionTimeout value
Throws:
javax.transaction.xa.XAException

isSameRM

public boolean isSameRM(javax.transaction.xa.XAResource parm1)
                 throws javax.transaction.xa.XAException
Gets the SameRM attribute of the XaSession object

Specified by:
isSameRM in interface javax.transaction.xa.XAResource
Parameters:
parm1 -
Returns:
The SameRM value
Throws:
javax.transaction.xa.XAException

getKey

protected java.lang.Object getKey(javax.transaction.xa.Xid xid)
Parameters:
xid -
Returns:
The Key value

commit

protected void commit(Session ses)
               throws javax.transaction.xa.XAException
Do the actual commit

Parameters:
ses -
Throws:
javax.transaction.xa.XAException

commit

public void commit(javax.transaction.xa.Xid xid,
                   boolean parm2)
            throws javax.transaction.xa.XAException
Specified by:
commit in interface javax.transaction.xa.XAResource
Parameters:
parm2 -
xid -
Throws:
javax.transaction.xa.XAException

end

public void end(javax.transaction.xa.Xid xid,
                int parm2)
         throws javax.transaction.xa.XAException
Specified by:
end in interface javax.transaction.xa.XAResource
Parameters:
parm2 -
xid -
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
Parameters:
xid -
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
Parameters:
xid -
Returns:
Throws:
javax.transaction.xa.XAException

recover

public javax.transaction.xa.Xid[] recover(int parm1)
                                   throws javax.transaction.xa.XAException
Specified by:
recover in interface javax.transaction.xa.XAResource
Parameters:
parm1 -
Returns:
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
Parameters:
xid -
Throws:
javax.transaction.xa.XAException

start

public void start(javax.transaction.xa.Xid xid,
                  int parm2)
           throws javax.transaction.xa.XAException
Specified by:
start in interface javax.transaction.xa.XAResource
Parameters:
parm2 -
xid -
Throws:
javax.transaction.xa.XAException

findSession

protected Session findSession(javax.transaction.xa.Xid xid)
Parameters:
xid -
Returns: