org.objectweb.jonas_ejb.container
Class JStatefulSwitch

java.lang.Object
  |
  +--org.objectweb.jonas_ejb.container.JSessionSwitch
        |
        +--org.objectweb.jonas_ejb.container.JStatefulSwitch
All Implemented Interfaces:
TimerEventListener

public class JStatefulSwitch
extends JSessionSwitch

JStatefulSwitch is the implementation of JSessionSwitch dedicated to the Stateful Session Bean.

Author:
Philippe Durieux

Fields inherited from class org.objectweb.jonas_ejb.container.JSessionSwitch
bf, local, mytimer, remote
 
Constructor Summary
JStatefulSwitch(JStatefulFactory bf, JStatefulPool sfp)
          constructor.
 
Method Summary
 void bindICtx(javax.transaction.Transaction tx, JStatefulContext bctx)
          At each create, bind the Context to the transaction
 JSessionContext getICtx(javax.transaction.Transaction tx)
          At each business method, get a BeanContext to run it
 boolean isInTransaction()
          This is used for remove on stateful session beans only.
 void noLongerUsed()
          This Session is no longer used: - unexport Remote Object - return the Session in the pool
 void releaseICtx(javax.transaction.Transaction tx)
          Release the Context after use.
 void setMustCommit(boolean mc)
          set a flag to remember that the transaction must be committed
 void timeoutExpired(java.lang.Object arg)
          The session timeout has expired
 void txCompleted()
          End of Transaction
 
Methods inherited from class org.objectweb.jonas_ejb.container.JSessionSwitch
getBeanFactory, getLocal, getRemote, startTimer, stopTimer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JStatefulSwitch

public JStatefulSwitch(JStatefulFactory bf,
                       JStatefulPool sfp)
                throws java.rmi.RemoteException
constructor.
Parameters:
bf - The Bean Factory
The - Session Stateful Pool
Method Detail

timeoutExpired

public void timeoutExpired(java.lang.Object arg)
The session timeout has expired
Parameters:
arg - Not Used.

getICtx

public JSessionContext getICtx(javax.transaction.Transaction tx)
At each business method, get a BeanContext to run it
Overrides:
getICtx in class JSessionSwitch
Parameters:
tx - The Transaction Context
Returns:
The Session Context

bindICtx

public void bindICtx(javax.transaction.Transaction tx,
                     JStatefulContext bctx)
At each create, bind the Context to the transaction
Parameters:
tx - The current Transaction Context
bctx - The Context to bind

releaseICtx

public void releaseICtx(javax.transaction.Transaction tx)
Release the Context after use.
Overrides:
releaseICtx in class JSessionSwitch
Parameters:
tx - The current Transaction Context

noLongerUsed

public void noLongerUsed()
This Session is no longer used: - unexport Remote Object - return the Session in the pool

txCompleted

public void txCompleted()
End of Transaction

isInTransaction

public boolean isInTransaction()
This is used for remove on stateful session beans only.
Returns:
True if bean is participating in a client transaction

setMustCommit

public void setMustCommit(boolean mc)
set a flag to remember that the transaction must be committed
Overrides:
setMustCommit in class JSessionSwitch