org.jboss.ejb.plugins
Class CleanShutdownInterceptor
java.lang.Object
org.jboss.ejb.plugins.AbstractInterceptor
org.jboss.ejb.plugins.CleanShutdownInterceptor
- All Implemented Interfaces:
- AllowedOperationsFlags, ContainerPlugin, Interceptor, Service
public class CleanShutdownInterceptor
- extends 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: 83000 $
Revisions:
14 avril 2002 Sacha Labourey:
- Author:
- Sacha Labourey.
- See Also:
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 |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
container
protected Container container
ejbModule
protected 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 ReadWriteLock rwLock
CleanShutdownInterceptor
public CleanShutdownInterceptor()
onlyAllowLocalInvocations
public void onlyAllowLocalInvocations()
waitForNoMoreInvocations
public void waitForNoMoreInvocations()
create
public void create()
throws Exception
- Specified by:
create
in interface Service
- Overrides:
create
in class AbstractInterceptor
- Throws:
Exception
start
public void start()
throws Exception
- Specified by:
start
in interface Service
- Overrides:
start
in class AbstractInterceptor
- Throws:
Exception
stop
public void stop()
- Specified by:
stop
in interface Service
- Overrides:
stop
in class AbstractInterceptor
destroy
public void destroy()
- Specified by:
destroy
in interface Service
- Overrides:
destroy
in class AbstractInterceptor
invokeHome
public Object invokeHome(Invocation mi)
throws Exception
- Specified by:
invokeHome
in interface Interceptor
- Overrides:
invokeHome
in class AbstractInterceptor
- Throws:
Exception
invoke
public Object invoke(Invocation mi)
throws Exception
- Specified by:
invoke
in interface Interceptor
- Overrides:
invoke
in class AbstractInterceptor
- Throws:
Exception
getContainer
public Container getContainer()
- Overrides:
getContainer
in class AbstractInterceptor
setContainer
public void setContainer(Container con)
- This callback is set by the container so that the plugin may access it
- Specified by:
setContainer
in interface ContainerPlugin
- Overrides:
setContainer
in class AbstractInterceptor
- Parameters:
con
- The container using this plugin.
forbidInvocations
protected void forbidInvocations()
purgeRunningInvocations
protected void purgeRunningInvocations()
getOrigin
protected String getOrigin(Invocation mi)
setOrigin
protected void setOrigin(Invocation mi)
revertOrigin
protected void revertOrigin(Invocation mi,
String origin)
containerIsAboutToStop
protected void containerIsAboutToStop()
Copyright © 2009 JBoss, a division of Red Hat, Inc.. All Rights Reserved.