站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > JBoss 4.0.1 sp1 cluster API Documentation 英文版文档

CleanShutdownInterceptor (JBoss Cluster API) - JBoss 4.0.1 sp1 cluster API Documentation 英文版文档


org.jboss.ejb.plugins
Class CleanShutdownInterceptor

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

public class CleanShutdownInterceptor
extends org.jboss.ejb.plugins.AbstractInterceptor

Track the incoming invocations and when shuting down a container (stop or destroy), waits for current invocations to finish before returning the stop or destroy call. This interceptor can be important in clustered environment where shuting down a node doesn't necessarly mean that an application cannot be reached: other nodes may still be servicing. Consequently, it is important to have a clean shutdown to keep a coherent behaviour cluster-wide. To avoid strange or inefficient behaviour, the facade session bean (if any) should be stopped first thus not blocking invocations in a middle-step (i.e. facade making multiple invocations to "sub-beans": if a "sub-bean" is shut down, the facade will get an exception in the middle of its activity)

Version:
$Revision: 1.9 $

Revisions:

14 avril 2002 Sacha Labourey:

  • First implementation
Author:
Sacha Labourey.
See Also:

Field Summary
protected  boolean allowInvocations
           
protected  boolean allowRemoteInvocations
           
protected  org.jboss.ejb.Container container
           
protected  org.jboss.ejb.EjbModule ejbModule
           
protected  String ejbModuleName
           
protected  boolean isDebugEnabled
           
 long readAcquireTimeMs
           
 long runningHomeInvocations
           
 long runningInvocations
           
protected  EDU.oswego.cs.dl.util.concurrent.ReentrantWriterPreferenceReadWriteLock rwLock
           
 long shutdownTimeout
           
 
Fields inherited from class org.jboss.ejb.plugins.AbstractInterceptor
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
CleanShutdownInterceptor()
           
 
Method Summary
protected  void containerIsAboutToStop()
           
 void create()
           
 void destroy()
           
protected  void forbidInvocations()
           
 org.jboss.ejb.Container getContainer()
           
protected  String getOrigin(org.jboss.invocation.Invocation mi)
           
 Object invoke(org.jboss.invocation.Invocation mi)
           
 Object invokeHome(org.jboss.invocation.Invocation mi)
           
 void onlyAllowLocalInvocations()
           
protected  void purgeRunningInvocations()
           
protected  void revertOrigin(org.jboss.invocation.Invocation mi, String origin)
           
 void setContainer(org.jboss.ejb.Container con)
          This callback is set by the container so that the plugin may access it
protected  void setOrigin(org.jboss.invocation.Invocation mi)
           
 void start()
           
 void stop()
           
 void waitForNoMoreInvocations()
           
 
Methods inherited from class org.jboss.ejb.plugins.AbstractInterceptor
getNext, setNext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

container

protected org.jboss.ejb.Container container

ejbModule

protected org.jboss.ejb.EjbModule ejbModule

ejbModuleName

protected String ejbModuleName

allowInvocations

protected boolean allowInvocations

allowRemoteInvocations

protected boolean allowRemoteInvocations

isDebugEnabled

protected boolean isDebugEnabled

runningInvocations

public long runningInvocations

runningHomeInvocations

public long runningHomeInvocations

shutdownTimeout

public long shutdownTimeout

readAcquireTimeMs

public long readAcquireTimeMs

rwLock

protected EDU.oswego.cs.dl.util.concurrent.ReentrantWriterPreferenceReadWriteLock rwLock
Constructor Detail

CleanShutdownInterceptor

public CleanShutdownInterceptor()
Method Detail

onlyAllowLocalInvocations

public void onlyAllowLocalInvocations()

waitForNoMoreInvocations

public void waitForNoMoreInvocations()

create

public void create()
            throws Exception
Throws:
Exception

start

public void start()
           throws Exception
Throws:
Exception

stop

public void stop()

destroy

public void destroy()

invokeHome

public Object invokeHome(org.jboss.invocation.Invocation mi)
                  throws Exception
Throws:
Exception

invoke

public Object invoke(org.jboss.invocation.Invocation mi)
              throws Exception
Throws:
Exception

getContainer

public org.jboss.ejb.Container getContainer()

setContainer

public void setContainer(org.jboss.ejb.Container con)
This callback is set by the container so that the plugin may access it

Parameters:
con - The container using this plugin.

forbidInvocations

protected void forbidInvocations()

purgeRunningInvocations

protected void purgeRunningInvocations()

getOrigin

protected String getOrigin(org.jboss.invocation.Invocation mi)

setOrigin

protected void setOrigin(org.jboss.invocation.Invocation mi)

revertOrigin

protected void revertOrigin(org.jboss.invocation.Invocation mi,
                            String origin)

containerIsAboutToStop

protected void containerIsAboutToStop()


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