org.jboss.ejb.plugins
Class TxInterceptorCMT

java.lang.Object
  extended byorg.jboss.ejb.plugins.AbstractInterceptor (src) 
      extended byorg.jboss.ejb.plugins.AbstractTxInterceptor
          extended byorg.jboss.ejb.plugins.TxInterceptorCMT
All Implemented Interfaces:
AllowedOperationsFlags (src) , ContainerPlugin (src) , Interceptor (src) , Service (src) , XmlLoadable (src)

public class TxInterceptorCMT
extends org.jboss.ejb.plugins.AbstractTxInterceptor
implements XmlLoadable (src)

This interceptor handles transactions for CMT beans.


Field Summary
protected static java.lang.reflect.Method ejbTimeout
          A reference to TimedObject.ejbTimeout(javax.ejb.Timer).
static int MAX_RETRIES
           
static java.util.Random random
           
protected  TransactionManager (src) tm
          Local reference to the container's TransactionManager.
 
Fields inherited from class org.jboss.ejb.plugins.AbstractInterceptor (src)
container, log, nextInterceptor
 
Fields inherited from interface org.jboss.ejb.AllowedOperationsFlags (src)
IN_AFTER_BEGIN, IN_AFTER_COMPLETION, IN_BEFORE_COMPLETION, IN_BUSINESS_METHOD, IN_EJB_ACTIVATE, IN_EJB_CREATE, IN_EJB_FIND, IN_EJB_HOME, IN_EJB_LOAD, IN_EJB_PASSIVATE, IN_EJB_POST_CREATE, IN_EJB_REMOVE, IN_EJB_STORE, IN_EJB_TIMEOUT, IN_INTERCEPTOR_METHOD, IN_SERVICE_ENDPOINT_METHOD, IN_SET_ENTITY_CONTEXT, IN_SET_MESSAGE_DRIVEN_CONTEXT, IN_SET_SESSION_CONTEXT, IN_UNSET_ENTITY_CONTEXT, NOT_ALLOWED
 
Constructor Summary
TxInterceptorCMT()
           
 
Method Summary
protected  void checkTransactionStatus(Transaction (src)  tx, InvocationType (src)  type)
          The application has not thrown an exception, but...
 void create()
          create the service, do expensive operations etc
 void importXml(org.w3c.dom.Element ielement)
           
 java.lang.Object invoke(Invocation (src)  invocation)
          This method does invocation interpositioning of tx management
 java.lang.Object invokeHome(Invocation (src)  invocation)
          ???
protected  java.lang.Object invokeNext(Invocation (src)  invocation, boolean inheritedTx)
          This method calls the next interceptor in the chain.
static ApplicationDeadlockException (src) isADE(java.lang.Throwable t)
          Detects exception contains is or a ApplicationDeadlockException.
 void resetStatistic()
           
 java.util.Map retrieveStatistic()
           
 void sample(java.lang.Object s)
           
protected  void throwJBossException(java.lang.Exception e, InvocationType (src)  type)
          Rethrow the exception as a rollback or rollback local
 
Methods inherited from class org.jboss.ejb.plugins.AbstractInterceptor (src)
destroy, getContainer, getNext, setContainer, setNext, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_RETRIES

public static int MAX_RETRIES

random

public static java.util.Random random

ejbTimeout

protected static final java.lang.reflect.Method ejbTimeout
A reference to TimedObject.ejbTimeout(javax.ejb.Timer).


tm

protected TransactionManager (src)  tm
Local reference to the container's TransactionManager.

Constructor Detail

TxInterceptorCMT

public TxInterceptorCMT()
Method Detail

isADE

public static ApplicationDeadlockException (src)  isADE(java.lang.Throwable t)
Detects exception contains is or a ApplicationDeadlockException.


importXml

public void importXml(org.w3c.dom.Element ielement)
Specified by:
importXml in interface XmlLoadable (src)

create

public void create()
            throws java.lang.Exception
Description copied from interface: Service (src)
create the service, do expensive operations etc

Specified by:
create in interface Service (src)
Throws:
java.lang.Exception

invokeHome

public java.lang.Object invokeHome(Invocation (src)  invocation)
                            throws java.lang.Exception
Description copied from interface: Interceptor (src)
???

Specified by:
invokeHome in interface Interceptor (src)
Overrides:
invokeHome in class AbstractInterceptor (src)
Throws:
java.lang.Exception

invoke

public java.lang.Object invoke(Invocation (src)  invocation)
                        throws java.lang.Exception
This method does invocation interpositioning of tx management

Specified by:
invoke in interface Interceptor (src)
Overrides:
invoke in class AbstractInterceptor (src)
Throws:
java.lang.Exception

throwJBossException

protected void throwJBossException(java.lang.Exception e,
                                   InvocationType (src)  type)
                            throws TransactionRolledbackException (src) 
Rethrow the exception as a rollback or rollback local

Parameters:
e - the exception
type - the invocation type
Throws:
TransactionRolledbackException (src)

checkTransactionStatus

protected void checkTransactionStatus(Transaction (src)  tx,
                                      InvocationType (src)  type)
                               throws TransactionRolledbackException (src) 
The application has not thrown an exception, but... When exception-on-rollback is true, check whether the transaction is not active. If it did not throw an exception anyway.

Parameters:
tx - the transaction
type - the invocation type
Throws:
TransactionRolledbackException (src) - if transaction is no longer active

sample

public void sample(java.lang.Object s)

retrieveStatistic

public java.util.Map retrieveStatistic()

resetStatistic

public void resetStatistic()

invokeNext

protected java.lang.Object invokeNext(Invocation (src)  invocation,
                                      boolean inheritedTx)
                               throws java.lang.Exception
This method calls the next interceptor in the chain.

All Throwables are caught and divided into two groups: application exceptions and system exceptions. Application exception are simply rethrown. System exceptions result in the transaction being marked for rollback only. If the transaction was not started by the container (i.e., it was inherited from the client) the system exception is wrapped in a TransactionRolledBack[Local]Exception.

Parameters:
invocation - The Invocation of this call.
inheritedTx - If true the transaction has just been started in this interceptor.
Throws:
java.lang.Exception - if an exception occures in the interceptor chain. The actual exception throw is governed by the rules in the EJB 2.0 specification section 18.3