javax.slee.management.SleeManagementMBean Maven / Gradle / Ivy
package javax.slee.management;
import javax.slee.InvalidStateException;
import javax.slee.InvalidArgumentException;
import javax.slee.usage.UnrecognizedUsageParameterSetNameException;
import javax.management.ObjectName;
/**
* The SleeManagementMBean
interface defines the central management
* interface for the SLEE. This interface provides access a management client with
* the JMX Object Names of other SLEE management MBeans, and allows the operational
* state of the SLEE to be changed.
*
* Note: As of SLEE 1.1, the JMX Object Names of the MBeans defined by the SLEE
* specification have been standardized. Each MBean interface defines one or more
* constants that specify the name and properties of the MBean's Object Name.
*
* Notifications
* Every time the operational state of the SLEE changes, the SleeManagementMBean
* object must emit a {@link SleeStateChangeNotification}. Therefore it is required
* that the SleeManagementMBean
object implement the
* javax.management.NotificationBroadcaster
interface.
*/
public interface SleeManagementMBean {
/**
* The JMX Object Name string of the SLEE Management MBean, equal to the string
* "javax.slee.management:name=SleeManagement".
* @since SLEE 1.1
*/
public static final String OBJECT_NAME = "javax.slee.management:name=SleeManagement";
/**
* The notification type of {@link SleeStateChangeNotification SleeStateChange}
* notifications emitted by this MBean. The notification type is equal to the
* string "javax.slee.management.sleestatechange
".
*/
public static final String SLEE_STATE_CHANGE_NOTIFICATION_TYPE =
"javax.slee.management.sleestatechange";
/**
* Get the name of the SLEE implementation. This may be a product name.
* @return the name of the SLEE implementation.
* @since SLEE 1.1
*/
public String getSleeName();
/**
* Get the vendor of the SLEE implementation.
* @return the vendor of the SLEE implementation.
* @since SLEE 1.1
*/
public String getSleeVendor();
/**
* Get the version of the SLEE implementation.
* @return the version of the SLEE implementation.
* @since SLEE 1.1
*/
public String getSleeVersion();
/**
* Get the current operational state of the SLEE.
* @return a SleeState
object that indicates the current operational
* state of the SLEE.
* @throws ManagementException if the operatioanl state could not be determined
* due to a system-level failure.
*/
public SleeState getState() throws ManagementException;
/**
* Request that the SLEE's event routing subsystem be started. The SLEE
* must be in the Stopped state, and transitions to the Starting state during
* this method invocation. The SLEE spontaneously moves out of the Starting
* state when conditions dictate.
* @throws InvalidStateException if the SLEE is not currently in the
* Stopped state.
* @throws ManagementException if the operational state of the SLEE could not
* be changed due to a system-level failure.
*/
public void start() throws InvalidStateException, ManagementException;
/**
* Request that the SLEE's event routing subsystem be stopped. The SLEE
* must be in the Running state, and transitions to the Stopping state during
* this method invocation. The SLEE spontaneously moves out of the Stopping
* state when conditions dictate.
* @throws InvalidStateException if the SLEE is not currently in the
* Running state.
* @throws ManagementException if the operational state of the SLEE could not
* be changed due to a system-level failure.
*/
public void stop() throws InvalidStateException, ManagementException;
/**
* Shutdown and terminate all SLEE processes related to this server image.
* In a distributed SLEE all nodes should terminate in response to this request.
* This method should never return, and does not cause the emission of a
* {@link SleeStateChangeNotification SleeStateChange} notification.
* @throws InvalidStateException if the SLEE is not currently in the
* Stopped state.
* @throws ManagementException if the operational state of the SLEE could not
* be changed due to a system-level failure.
*/
public void shutdown() throws InvalidStateException, ManagementException;
/**
* Get the JMX Object Name of the SLEE's {@link DeploymentMBean} object.
* @return the Object Name of the DeploymentMBean
object.
*/
public ObjectName getDeploymentMBean();
/**
* Get the JMX Object Name of the SLEE's {@link ServiceManagementMBean} object.
* @return the Object Name of the ServiceManagementMBean
object.
*/
public ObjectName getServiceManagementMBean();
/**
* Get the JMX Object Name of the SLEE's {@link ProfileProvisioningMBean} object.
* @return the Object Name of the ProfileProvisioningMBean
object.
*/
public ObjectName getProfileProvisioningMBean();
/**
* Get the JMX Object Name of the SLEE's {@link TraceMBean} object.
* @return the Object Name of the TraceMBean
object.
*/
public ObjectName getTraceMBean();
/**
* Get the JMX Object Name of the SLEE's {@link AlarmMBean} object.
* @return the Object Name of the AlarmMBean
object.
*/
public ObjectName getAlarmMBean();
/**
* Get the JMX Object Name of the SLEE's {@link ResourceManagementMBean} object.
* @return the Object Name of the ResourceManagementMBean
object.
* @since SLEE 1.1
*/
public ObjectName getResourceManagementMBean();
/**
* Get the names of the SLEE internal components or subsystems defined by the
* SLEE implementation. Internal subsystems of the SLEE implementation that
* generate {@link TraceNotification TraceNotifications}, {@link AlarmNotification AlarmNotifications},
* or {@link javax.slee.usage.UsageNotification UsageNotifications} should be
* named in the return value of this method.
*
* Subsystem names may be any vendor-defined string. The SLEE specification
* does not define any restrictions on the format of these names.
* @return the names of the SLEE internal components or subsystems defined by
* the SLEE implementation that may generate notifications. If the SLEE
* implementation does not have any internal components or subsystems that
* generate SLEE-defined notifications this method may return either
* null
or a zero-length array.
* @throws ManagementException if the name could not obtained due to a system-level
* failure.
* @since SLEE 1.1
*/
public String[] getSubsystems() throws ManagementException;
/**
* Determine if usage information is available for the specified SLEE internal
* component or subsystem.
* @param subsystemName the name of the SLEE internal component or subsystem.
* @return true
if the SLEE implementation provides usage information
* for the specified subsystem, false
otherwise.
* @throws NullPointerException if subsystemName
is null
.
* @throws UnrecognizedSubsystemException if subsystemName
does not
* correspond with a recognized SLEE internal component or subsystem.
* @throws ManagementException if a system-level failure occurrs.
* @since SLEE 1.1
*/
public boolean hasUsage(String subsystemName)
throws NullPointerException, UnrecognizedSubsystemException, ManagementException;
/**
* Get the names of the usage parameter sets that the specified SLEE internal
* component or subsystem is permitted to use. Note that the names returned by
* this method may change over the lifetime of the SLEE.
* @param subsystemName the name of the internal component or subsystem.
* @return the names of the usage parameter sets that the internal component or
* subsystem uses.
* @throws NullPointerException if subsystemName
is null
.
* @throws UnrecognizedSubsystemException if subsystemName
does not
* correspond with a recognized SLEE internal component or subsystem.
* @throws InvalidArgumentException if the SLEE does not provide usage information
* for the specified subsystem.
* @throws ManagementException if the usage parameter set names could not be obtained
* due to a system-level failure.
* @since SLEE 1.1
*/
public String[] getUsageParameterSets(String subsystemName)
throws NullPointerException, UnrecognizedSubsystemException,
InvalidArgumentException, ManagementException;
/**
* Get the JMX Object Name of a {@link javax.slee.usage.UsageMBean} object that
* provides management access to the unnamed usage parameter set for the specified
* SLEE internal component or subsystem. The subsystem must be providing usage
* information, ie. {@link #hasUsage hasUsage(subsystemName)} returns true
.
* @param subsystemName the name of the internal component or subsystem.
* @return the Object Name of a UsageMBean
object for the subsystem.
* @throws NullPointerException if subsystemName
is null
.
* @throws UnrecognizedSubsystemException if subsystemName
does not
* correspond with a recognized SLEE internal component or subsystem.
* @throws InvalidArgumentException if usage information is not available for the
* specified subsystem.
* @throws ManagementException if the Object Name could not be obtained due to a
* system-level failure.
* @since SLEE 1.1
*/
public ObjectName getUsageMBean(String subsystemName)
throws NullPointerException, UnrecognizedSubsystemException,
InvalidArgumentException, ManagementException;
/**
* Get the JMX Object Name of a {@link javax.slee.usage.UsageMBean} object that
* provides management access to the named usage parameter set for the specified
* SLEE internal component or subsystem. The subsystem must be providing usage
* information, ie. {@link #hasUsage hasUsage(subsystemName)} returns true
.
* @param subsystemName the name of the internal component or subsystem.
* @param paramSetName the name of the usage parameter set. The name must be one of the
* names returned by {@link #getUsageParameterSets getUsageParameterSets}(subsystemName)
.
* @return the Object Name of a UsageMBean
object for the subsystem.
* @throws NullPointerException if either argument is null
.
* @throws UnrecognizedSubsystemException if subsystemName
does not
* correspond with a recognized SLEE internal component or subsystem.
* @throws InvalidArgumentException if usage information is not available for the
* specified subsystem.
* @throws UnrecognizedUsageParameterSetNameException if the named usage parameter set
* does not exist for the specified subsystem.
* @throws ManagementException if the Object Name could not be obtained due to a
* system-level failure.
* @since SLEE 1.1
*/
public ObjectName getUsageMBean(String subsystemName, String paramSetName)
throws NullPointerException, UnrecognizedSubsystemException,
InvalidArgumentException, UnrecognizedUsageParameterSetNameException,
ManagementException;
/**
* Get the JMX Object Name of a {@link javax.slee.usage.UsageNotificationManagerMBean}
* that provides management access to the usage notification manager for the specified
* SLEE internal component or subsystem. The subsystem must be providing usage
* information, ie. {@link #hasUsage hasUsage(subsystemName)} returns true
.
* @param subsystemName the name of the internal component or subsystem.
* @return the Object Name of a UsageNotificationManagerMBean
object
* for the subsystem.
* @throws NullPointerException if subsystemName
is null
.
* @throws UnrecognizedSubsystemException if subsystemName
does not
* correspond with a recognized SLEE internal component or subsystem.
* @throws InvalidArgumentException if usage information is not available for the
* specified subsystem.
* @throws ManagementException if the Object Name could not be obtained due to a
* system-level failure.
* @since SLEE 1.1
*/
public ObjectName getUsageNotificationManagerMBean(String subsystemName)
throws NullPointerException, UnrecognizedSubsystemException,
InvalidArgumentException, ManagementException;
}