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

AbstractScheduleProvider (Various API) - JBoss 4.0.1 sp1 varia API Documentation 英文版文档


org.jboss.varia.scheduler
Class AbstractScheduleProvider

java.lang.Object
  extended byorg.jboss.mx.util.JBossNotificationBroadcasterSupport
      extended byorg.jboss.system.ServiceMBeanSupport
          extended byorg.jboss.ha.jmx.HAServiceMBeanSupport
              extended byorg.jboss.ha.singleton.HASingletonSupport
                  extended byorg.jboss.varia.scheduler.AbstractScheduleProvider
All Implemented Interfaces:
AbstractScheduleProviderMBean, org.jboss.ha.jmx.HAServiceMBean, org.jboss.ha.singleton.HASingleton, org.jboss.ha.singleton.HASingletonMBean, javax.management.MBeanRegistration, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter, org.jboss.system.Service, org.jboss.system.ServiceMBean
Direct Known Subclasses:
DBScheduleProvider, SingleScheduleProvider, XMLScheduleProvider

public abstract class AbstractScheduleProvider
extends org.jboss.ha.singleton.HASingletonSupport
implements AbstractScheduleProviderMBean

Abstract Base Class for Schedule Provider. Any Schedule Provider should extend from this class or must provide the MBean Interface methods. This class is cluster aware and allows the use of the HASingleton MBean attribute to control whether or not it should run as a singleton service or not. When HASingleton is set to true the MBean will usually declare dependency on a cluster partition. When not explicitly set the attribute defaults to false.

Version:
$Revision: 1.5 $
Author:
Andreas Schaefer, Ivelin Ivanov

Field Summary
 
Fields inherited from class org.jboss.system.ServiceMBeanSupport
log, server, SERVICE_CONTROLLER_SIG, serviceName
 
Fields inherited from interface org.jboss.varia.scheduler.AbstractScheduleProviderMBean
OBJECT_NAME
 
Fields inherited from interface org.jboss.system.ServiceMBean
CREATE_EVENT, CREATED, DESTROY_EVENT, DESTROYED, FAILED, REGISTERED, START_EVENT, STARTED, STARTING, states, STOP_EVENT, STOPPED, STOPPING, UNREGISTERED
 
Constructor Summary
AbstractScheduleProvider()
          Default (no-args) Constructor
 
Method Summary
protected  int addSchedule(javax.management.ObjectName pTarget, String pMethodName, String[] pMethodSignature, Date pStart, long pPeriod, int pRepetitions)
          Add a single Schedule add the Schedule Manager
 String getScheduleManagerName()
          Get the Schedule Manager Name
 boolean isHASingleton()
          determines whether or not the service is clustered singleton
protected  void removeSchedule(int pID)
          Remove a Schedule from the Schedule Manager
 void setHASingleton(boolean hasingleton)
          determines whether or not the service is clustered singleton
 void setScheduleManagerName(String pSchedulerManagerName)
          Set the Schedule Manager Name
abstract  void startProviding()
          Add the Schedules to the Schedule Manager
protected  void startScheduleProviderService()
          When the Service is started it will register itself at the Schedule Manager which makes it necessary that the Schedule Manager is already running.
protected  void startService()
           
 void startSingleton()
          When HASingleton is enabled, this method will be invoked on the master node to start the singleton.
abstract  void stopProviding()
          Stops the Provider from providing and causing him to remove all Schedules
protected  void stopScheduleProviderService()
          When the Service is stopped it will unregister itself at the Schedule Manager.
protected  void stopService()
           
 void stopSingleton()
          When HASingleton is enabled, this method will be invoked on the master node to stop the singleton.
 
Methods inherited from class org.jboss.ha.singleton.HASingletonSupport
_stopOldMaster, isMasterNode, makeThisNodeMaster, partitionTopologyChanged
 
Methods inherited from class org.jboss.ha.jmx.HAServiceMBeanSupport
_receiveRemoteNotification, callAsyncMethodOnPartition, callMethodOnPartition, callMethodOnPartition, findHAPartitionWithName, getDistributedState, getPartition, getPartitionName, getServiceHAName, isDRMMasterReplica, registerDRMListener, registerRPCHandler, sendNotification, sendNotificationRemote, sendNotificationToLocalListeners, setDistributedState, setPartitionName, setupPartition, unregisterDRMListener, unregisterRPCHandler
 
Methods inherited from class org.jboss.system.ServiceMBeanSupport
create, createService, destroy, destroyService, getLog, getName, getNextNotificationSequenceNumber, getObjectName, getServer, getServiceName, getState, getStateString, jbossInternalCreate, jbossInternalDescription, jbossInternalDestroy, jbossInternalLifecycle, jbossInternalStart, jbossInternalStop, postDeregister, postRegister, preDeregister, preRegister, start, stop
 
Methods inherited from class org.jboss.mx.util.JBossNotificationBroadcasterSupport
addNotificationListener, getNotificationInfo, handleNotification, removeNotificationListener, removeNotificationListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jboss.ha.singleton.HASingletonMBean
isMasterNode
 
Methods inherited from interface org.jboss.ha.jmx.HAServiceMBean
callMethodOnPartition, getDistributedState, getPartitionName, sendNotification, setDistributedState, setPartitionName
 
Methods inherited from interface org.jboss.system.ServiceMBean
getName, getState, getStateString, jbossInternalLifecycle
 
Methods inherited from interface org.jboss.system.Service
create, destroy, start, stop
 
Methods inherited from interface javax.management.NotificationBroadcaster
addNotificationListener, getNotificationInfo, removeNotificationListener
 

Constructor Detail

AbstractScheduleProvider

public AbstractScheduleProvider()
Default (no-args) Constructor

Method Detail

getScheduleManagerName

public String getScheduleManagerName()
Get the Schedule Manager Name

Specified by:
getScheduleManagerName in interface AbstractScheduleProviderMBean

setScheduleManagerName

public void setScheduleManagerName(String pSchedulerManagerName)
                            throws javax.management.MalformedObjectNameException
Set the Schedule Manager Name

Specified by:
setScheduleManagerName in interface AbstractScheduleProviderMBean
Throws:
javax.management.MalformedObjectNameException

startProviding

public abstract void startProviding()
                             throws Exception
Add the Schedules to the Schedule Manager

Specified by:
startProviding in interface AbstractScheduleProviderMBean
Throws:
Exception

stopProviding

public abstract void stopProviding()
Stops the Provider from providing and causing him to remove all Schedules

Specified by:
stopProviding in interface AbstractScheduleProviderMBean

addSchedule

protected int addSchedule(javax.management.ObjectName pTarget,
                          String pMethodName,
                          String[] pMethodSignature,
                          Date pStart,
                          long pPeriod,
                          int pRepetitions)
                   throws javax.management.JMException
Add a single Schedule add the Schedule Manager

Parameters:
pTarget - Object Name of the target MBean (receiver of the time notification)
pMethodName - Name of the Method to be called on the target
pMethodSignature - Signature of the Method
pStart - Date when the Schedule has to start
pPeriod - Time between two notifications
pRepetitions - Number of repetitions (-1 for unlimited)
Returns:
Identification of the Schedule which is used to remove it later
Throws:
javax.management.JMException

removeSchedule

protected void removeSchedule(int pID)
                       throws javax.management.JMException
Remove a Schedule from the Schedule Manager

Parameters:
pID - Identification of the Schedule
Throws:
javax.management.JMException

startScheduleProviderService

protected void startScheduleProviderService()
                                     throws javax.management.InstanceNotFoundException,
                                            javax.management.MBeanException,
                                            javax.management.ReflectionException
When the Service is started it will register itself at the Schedule Manager which makes it necessary that the Schedule Manager is already running. This allows the Schedule Manager to call startProviding() which is the point to for the Provider to add the Schedules on the Schedule Manager. ATTENTION: If you overwrite this method in a subclass you have to call this method (super.startService())

Throws:
javax.management.InstanceNotFoundException
javax.management.MBeanException
javax.management.ReflectionException

stopScheduleProviderService

protected void stopScheduleProviderService()
                                    throws javax.management.InstanceNotFoundException,
                                           javax.management.MBeanException,
                                           javax.management.ReflectionException
When the Service is stopped it will unregister itself at the Schedule Manager. This allws the Schedule Manager to remove the Provider from its list and then call stopProviding() which is the point for the Provider to remove the Schedules from the Schedule Manager. ATTENTION: If you overwrite this method in a subclass you have to call this method (super.stopService())

Throws:
javax.management.InstanceNotFoundException
javax.management.MBeanException
javax.management.ReflectionException

startService

protected void startService()
                     throws Exception
Throws:
Exception

stopService

protected void stopService()
                    throws Exception
Throws:
Exception

startSingleton

public void startSingleton()
When HASingleton is enabled, this method will be invoked on the master node to start the singleton.

Specified by:
startSingleton in interface org.jboss.ha.singleton.HASingleton
See Also:
HASingletonSupport

stopSingleton

public void stopSingleton()
When HASingleton is enabled, this method will be invoked on the master node to stop the singleton.

Specified by:
stopSingleton in interface org.jboss.ha.singleton.HASingleton
See Also:
HASingletonSupport

isHASingleton

public boolean isHASingleton()
determines whether or not the service is clustered singleton

Specified by:
isHASingleton in interface AbstractScheduleProviderMBean

setHASingleton

public void setHASingleton(boolean hasingleton)
determines whether or not the service is clustered singleton

Specified by:
setHASingleton in interface AbstractScheduleProviderMBean


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