org.jboss.ejb.plugins
Class TxInterceptorCMT

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

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

This interceptor handles transactions for CMT beans.

Version:
$Revision: 1.44.2.1 $
Author:
Rickard �berg, Marc Fleury, Sebastien Alborini, Anatoly Akkerman, Ole Husgaard, Bill Burke

Field Summary
protected static Method ejbTimeout
          A reference to TimedObject.ejbTimeout(javax.ejb.Timer).
static int MAX_RETRIES
           
static Random random
           
protected  TransactionManager tm
          Local reference to the container's TransactionManager.
 
Fields inherited from class org.jboss.ejb.plugins.AbstractInterceptor
container, log, nextInterceptor
 
Fields inherited from interface org.jboss.ejb.AllowedOperationsFlags
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
 void create()
           
 void importXml(Element ielement)
           
 Object invoke(Invocation invocation)
          This method does invocation interpositioning of tx management
 Object invokeHome(Invocation invocation)
          ???
protected  Object invokeNext(Invocation invocation, boolean inheritedTx)
          This method calls the next interceptor in the chain.
static org.jboss.util.deadlock.ApplicationDeadlockException isADE(Throwable t)
          Detects exception contains is or a ApplicationDeadlockException.
 void resetStatistic()
           
 Map retrieveStatistic()
           
 void sample(Object s)
           
protected  void throwJBossException(Exception e, InvocationType type)
          Rethrow the exception as a rollback or rollback local
 
Methods inherited from class org.jboss.ejb.plugins.AbstractInterceptor
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 Random random

ejbTimeout

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


tm

protected TransactionManager tm
Local reference to the container's TransactionManager.

Constructor Detail

TxInterceptorCMT

public TxInterceptorCMT()
Method Detail

importXml

public void importXml(Element ielement)
Specified by:
importXml in interface XmlLoadable

isADE

public static org.jboss.util.deadlock.ApplicationDeadlockException isADE(Throwable t)
Detects exception contains is or a ApplicationDeadlockException.


invokeHome

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

Specified by:
invokeHome in interface Interceptor
Overrides:
invokeHome in class AbstractInterceptor
Throws:
Exception

invoke

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

Specified by:
invoke in interface Interceptor
Overrides:
invoke in class AbstractInterceptor
Throws:
Exception

throwJBossException

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

Parameters:
e - the exception
type - the invocation type
Throws:
TransactionRolledbackException

sample

public void sample(Object s)

retrieveStatistic

public Map retrieveStatistic()

resetStatistic

public void resetStatistic()

create

public void create()
            throws Exception
Specified by:
create in interface org.jboss.system.Service
Overrides:
create in class AbstractInterceptor
Throws:
Exception

invokeNext

protected Object invokeNext(Invocation invocation,
                            boolean inheritedTx)
                     throws 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:
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


Copyright © 2002 JBoss Group, LLC. All Rights Reserved.