com.sun.management.oss.impl.factory.opstatus
Class JmxJVTOperationalStatusMonitorSession

java.lang.Object
  extended byjavax.management.NotificationBroadcasterSupport
      extended bycom.sun.management.oss.impl.factory.opstatus.JmxJVTOperationalStatusMonitorSession
All Implemented Interfaces:
javax.management.DynamicMBean, java.util.EventListener, JVTOperationalStatusMonitorSession, JVTSession, javax.management.MBeanRegistration, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter, javax.management.NotificationListener

public class JmxJVTOperationalStatusMonitorSession
extends javax.management.NotificationBroadcasterSupport
implements JVTOperationalStatusMonitorSession, javax.management.DynamicMBean, javax.management.MBeanRegistration, javax.management.NotificationListener

The class JmxJVTOperationalStatusMonitorSession implements the JVTOperationalStatusMonitorSession interface.
Concerning OSS/J quality of service APIs description, please refer to JVTOperationalStatusMonitorSession.
Note : this description provides only information concerning the Monitoring Agent part.


This class is an operational status job factory and the only access point to manage the operational status monitoring job task.

It is implemented as a DynamicMBean that makes it manage-able through the Java Management eXtension (JMX). It implements the NotificationEmitter interface to allow clients to subscribe to or unsubscribe from the job reporting process.

Overview

An operational status job observes a set of objects and sends reports to subscribed client when operational or availability state changes occured. Observed objects are MBeans that must provide the CIB or JSR77 functionalities. The monitoring job retrieves data from the observed objects and send a report to subscribed clients.

CIB monitored attributes are OperationalStatusState, OperationalStatusLastChange, OperationalStatusStartTime, AvailabilityStatusState, AvailabilityStatusLastChange and AvailabilityStatusDegradedTime.

JSR 77 monitored attributes are state and startTime.


Set of monitored objects

The operational status factory is able to create two types of jobs (see makeOperationalStatusMonitorValue(VALUE_TYPE)). The argument defines the way the set of the monitored objects is handled :


Data collection method

Observed MBeans must respect the CIB or JSR77 models. Both models provide the ability to send events when relevant changes occur modifying the behavior of the application, service, ... process.

The most efficient way is of course when the MBeans warn the monitoring job about changes. This way, the monitoring job just retrieve data at worthwhile time.

However, if monitored objects are not able to send events, the monitoring jobs will poll data according to the setGranularityPeriod method. This defines the amount of time in seconds between two data collections.

Note : the ability that MBeans are able or not to send events is detected by the monitoring job itself and can not be disabled, enabled or forced in any way.


Reports

A report is a document that describes the evolution of a set of observed objects. It is written according to a ReportFormat definition. So far, this implementation only provides XML support for reports. The formal definition is provided by the Functional Specifications Document.

A report is carried in a JMX notification and composed of two distinct parts :

Both parts can be sent jointly or separately. A monitoring job can generate both types of reports for a same state change.

A byEvent report includes both the container and the data parts. It is specified by the setReportByEvent(ReportMode.EVENT_SINGLE) method (only ReportMode.EVENT_SINGLE is supported so far).

A byFile report carries only the container part in the JMX notification and store the data on a local filesystem. It is specified by the setReportByFile(ReportMode.FILE_SINGLE) method (only ReportMode.FILE_SINGLE is supported so far). The report received by subscribed clients provides an URL to locate the store data and an expiration date specifying when data have become obsolate (the data are removed from the local filesystem).


Copyright (c) 2001 Ericsson

Version:
1.0
Author:
Andreas Jirven, Anna Eriksson, Ali Feizabadi, Hooman Tahamtani, Katarina Wahlstr?m
See Also:
JVTOperationalStatusMonitorSession

Field Summary
static java.util.logging.Logger logger
          One log for the whole session.
static java.util.Properties properties
          Hold the values from the property file that is given as a start parameter to the EisSimulator.
 
Fields inherited from interface com.sun.management.oss.pm.opstatus.JVTOperationalStatusMonitorSession
OSS_QOS_VERSION_R1
 
Constructor Summary
JmxJVTOperationalStatusMonitorSession()
          Constructor for the JmxJVTOperationalStatusMonitorSession object.
 
Method Summary
 OperationalStatusMonitorKey createOperationalStatusMonitorByValue(OperationalStatusMonitorValue pmValue)
          Creates a new measurement job.
 java.lang.Object getAttribute(java.lang.String attribute_name)
          Allows the value of the specified attribute of the Dynamic MBean to be obtained.
 javax.management.AttributeList getAttributes(java.lang.String[] attributeNames)
          Enables the to get the values of several attributes of the Dynamic MBean.
 ReportFormat getCurrentReportFormat()
          Returns the current measurement result format that the performance monitor agent use.
 CurrentResultReport getCurrentResultReport(OperationalStatusMonitorKey pmKey, ReportFormat format)
          Generate a result report of the current measurement result values.
 EventPropertyDescriptor getEventDescriptor(java.lang.String eventType)
          Get the EventPropertyDescriptor associated with an event type name.
 java.lang.String[] getEventTypes()
          Get the Event Type names supported by the JVT Session Bean
 com.sun.management.oss.impl.job.opstatus.OperationalStatusMonitorJob getJob(java.lang.String key)
          Get job from table
 java.util.Enumeration getJobs()
          Get jobs from table
 java.lang.String[] getManagedEntityTypes()
          Get the Managed Entity types supported by a JVT Session Bean.
 javax.management.MBeanInfo getMBeanInfo()
          This method provides the exposed attributes and operations of the Dynamic MBean.
 javax.management.MBeanNotificationInfo[] getNotificationInfo()
          Returns a NotificationInfo object containing the name of the Java class of the notification and the notification types sent by this notification broadcaster.
 PerformanceAttributeDescriptor[] getObservableAttributes(java.lang.String observableObjectClassName)
          Returns all measurement attributes that can be monitored in the observable object class, in the performance monitoring agent.
 ObservableObjectClassIterator getObservableObjectClasses()
          Returns all supported observed object classes in the performance monitoring agent.
 ObservableObjectIterator getObservableObjects(java.lang.String observableObjectClassName, javax.management.ObjectName base)
          Returns the supported observable object instances of the specific object class that are located below the specified distinguished name in the performance monitoring agent.
 OperationalStatusMonitorValue getOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey, java.lang.String[] attributes)
          Gets the attribute values of a specific measurement job.
 OperationalStatusMonitorValueIterator getOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKey, java.lang.String[] attributes)
          Gets a list of attribute values of the specific measurement jobs.
 ReportInfoIterator getOperationalStatusReportInfo(OperationalStatusMonitorKey pmKey, java.util.Calendar date)
          Returns a list of available measurement result in the performance monitor agent.
 java.lang.String[] getQueryTypes()
          Get the Query type names supported by a JVT Session Bean
 ReportFormat[] getReportFormats()
          Returns the supported measurement result formats of the performance monitor agent.
 int[] getReportModes()
          Returns the supported report modes of the performance monitor agent.
 int[] getSupportedGranularities(OperationalStatusMonitorValue pmValue)
          Returns the supported granularity periods for the provided definition of a measurement job.
 javax.management.ObjectName[] getSupportedObservableObjects(javax.management.ObjectName[] dnList)
          Checks a list of distinguished names if they are supported observable objects.
 java.lang.String[] getSupportedOptionalOperations()
          Get the names of the optional operations supported by this JVT Session Bean.
 java.lang.String[] getVersion()
          Retrieve information of the supported API versions.
 void handleNotification(javax.management.Notification notification, java.lang.Object handback)
          Get the Jobs' events and forward them to interested clients
 java.lang.Object invoke(java.lang.String operationName, java.lang.Object[] params, java.lang.String[] signature)
          Allows an operation to be invoked on the Dynamic MBean.
 ManagedEntityValue makeManagedEntityValue(java.lang.String valueType)
          Create a Value Type object for a specific Managed Entity type.
 OperationalStatusMonitorValue makeOperationalStatusMonitorValue(java.lang.String value)
          Creates a new value object for a measurement job.
 QueryValue makeQueryValue(java.lang.String type)
          Create a QueryValue Instance matching a Query type name.
 void postDeregister()
          Allows the MBean to perform any operations needed after having been unregistered in the MBean server.
 void postRegister(java.lang.Boolean registrationDone)
          Allows the MBean to perform any operations needed after having been registered in the MBean server or after the registration has failed.
 void preDeregister()
          Allows the MBean to perform any operations it needs before being unregistered by the MBean server.
 javax.management.ObjectName preRegister(javax.management.MBeanServer server, javax.management.ObjectName name)
          Allows the MBean to perform any operations it needs before being registered in the MBean server.
 void putJob(java.lang.String key, com.sun.management.oss.impl.job.opstatus.OperationalStatusMonitorJob aOperationalStatusMonitorJob)
          Put job in table
 ManagedEntityValueIterator queryManagedEntities(QueryValue query, java.lang.String[] attrNames)
          Query multiple Managed Entities using a QueryValue.
 OperationalStatusMonitorValueIterator queryOperationalStatusMonitors(QueryValue query, java.lang.String[] attrNames)
          Queries for multiple measurement jobs using a query value instance.
 void removeJob(java.lang.String key)
          Remove job from table
 void removeOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey)
          Remove measurement job.
 void resumeOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey)
          Re-enables the measurement job to collect measurement data.
 void setAttribute(javax.management.Attribute attribute)
          Sets the value of the specified attribute of the Dynamic MBean.
 javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
          Sets the values of several attributes of the Dynamic MBean, and returns the list of attributes that have been set.
 void suspendOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey)
          Inhibits the measurement job from collection of measurement data.
 OperationalStatusMonitorKeyResult[] tryCreateOperationalStatusMonitorsByValues(OperationalStatusMonitorValue[] pmValues)
          Try to create measurement jobs.
 OperationalStatusMonitorKeyResult[] tryRemoveOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKeys)
          Try to remove measurement jobs.
 OperationalStatusMonitorKeyResult[] tryResumeOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKeys)
          Try to re-enables the measurement jobs to collect measurement data.
 OperationalStatusMonitorKeyResult[] trySuspendOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKeys)
          Try to inhibit measurement jobs from collection of measurement data.
 
Methods inherited from class javax.management.NotificationBroadcasterSupport
addNotificationListener, removeNotificationListener, removeNotificationListener, sendNotification
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

public static java.util.logging.Logger logger
One log for the whole session. Visible for all classes in the package.


properties

public static java.util.Properties properties
Hold the values from the property file that is given as a start parameter to the EisSimulator.

Constructor Detail

JmxJVTOperationalStatusMonitorSession

public JmxJVTOperationalStatusMonitorSession()
Constructor for the JmxJVTOperationalStatusMonitorSession object.

Method Detail

getManagedEntityTypes

public java.lang.String[] getManagedEntityTypes()
Description copied from interface: JVTSession
Get the Managed Entity types supported by a JVT Session Bean.

Specified by:
getManagedEntityTypes in interface JVTSession
Returns:
String array which contains the fully qualified names of the leaf node interfaces representing the supported managed entity types. Note that it is not the implementation class name that is returned.
See Also:
JVTSession.getManagedEntityTypes()

getVersion

public java.lang.String[] getVersion()
Description copied from interface: JVTOperationalStatusMonitorSession
Retrieve information of the supported API versions.

The operation shall indicate compatibility with the first release of OSS QoS API.

If more then one version is supported then the latest supported OSS QoS API version shall be in the first entry of the returned array.

At least one OSS QoS API version and a vendor version shall be returned by this operation.

This operation could also be used to identify the version of implementation and the version of the supported standards (3GPP).

Specified by:
getVersion in interface JVTOperationalStatusMonitorSession
Returns:
String[] Array of supported version strings.
See Also:
JVTOperationalStatusMonitorSession.getVersion()

getSupportedOptionalOperations

public java.lang.String[] getSupportedOptionalOperations()
Description copied from interface: JVTSession
Get the names of the optional operations supported by this JVT Session Bean. The names of the optional operations are defined in the JVT<ApplicationType>SessionOptionalOps interface as defined by the API.

Specified by:
getSupportedOptionalOperations in interface JVTSession
Returns:
String array which contains the names of all the optional operations supported by an implementation of a JVT Session Bean.
See Also:
JVTSession.getSupportedOptionalOperations()

getEventTypes

public java.lang.String[] getEventTypes()
Description copied from interface: JVTSession
Get the Event Type names supported by the JVT Session Bean

Specified by:
getEventTypes in interface JVTSession
Returns:
String array which contains the fully qualified names of the leaf node interfaces representing the supported event types.
See Also:
JVTSession.getEventTypes()

getEventDescriptor

public EventPropertyDescriptor getEventDescriptor(java.lang.String eventType)
                                           throws java.lang.IllegalArgumentException
Description copied from interface: JVTSession
Get the EventPropertyDescriptor associated with an event type name.

Specified by:
getEventDescriptor in interface JVTSession
Parameters:
eventType - fully qualified name of the leaf node Event interface.
Returns:
EventPropertyDescriptor which can be used to discover the filterable properties of the specified event type.
Throws:
java.lang.IllegalArgumentException - unknown or unsupported event type.
See Also:
JVTSession.getEventDescriptor( String eventType)

makeOperationalStatusMonitorValue

public OperationalStatusMonitorValue makeOperationalStatusMonitorValue(java.lang.String value)
                                                                throws java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Creates a new value object for a measurement job.

Specified by:
makeOperationalStatusMonitorValue in interface JVTOperationalStatusMonitorSession
Parameters:
value - The name of one of the supported value types that are returned by getManagedEntityTypes().
Returns:
OperationalStatusMonitorValue The created value object. The value object is empty.
Throws:
java.lang.IllegalArgumentException - Is raised if the input paramters are not valid.
See Also:
JVTOperationalStatusMonitorSession.makeOperationalStatusMonitorValue( String value)

getQueryTypes

public java.lang.String[] getQueryTypes()
Description copied from interface: JVTSession
Get the Query type names supported by a JVT Session Bean

Specified by:
getQueryTypes in interface JVTSession
Returns:
String array which contains the fully qualified names of the leaf node interfaces representing the supported query value types, i.e., interfaces which extend QueryValue.
See Also:
JVTSession.getQueryTypes()

makeQueryValue

public QueryValue makeQueryValue(java.lang.String type)
                          throws java.lang.IllegalArgumentException
Description copied from interface: JVTSession
Create a QueryValue Instance matching a Query type name. The Session Bean is used as a factory for the creation of query values.

Specified by:
makeQueryValue in interface JVTSession
Parameters:
type - fully qualified name of the leaf node QueryValue interface.
Returns:
query value object of the specified type.
Throws:
java.lang.IllegalArgumentException - unknown or unsupported query type.
See Also:
JVTSession.makeQueryValue(String type)

getReportFormats

public ReportFormat[] getReportFormats()
Description copied from interface: JVTOperationalStatusMonitorSession
Returns the supported measurement result formats of the performance monitor agent.

At least one report format must be returned by this operation.

Specified by:
getReportFormats in interface JVTOperationalStatusMonitorSession
Returns:
ReportFormat[] List of supported measurement result formats.
See Also:
JVTOperationalStatusMonitorSession.getReportFormats()

getCurrentReportFormat

public ReportFormat getCurrentReportFormat()
Description copied from interface: JVTOperationalStatusMonitorSession
Returns the current measurement result format that the performance monitor agent use.

This function can be used to determined the measurement result format that the performance monitor agent currently is using for result reports with many measurement jobs.

Specified by:
getCurrentReportFormat in interface JVTOperationalStatusMonitorSession
Returns:
ReportFormat The current measurement result file format.
See Also:
JVTOperationalStatusMonitorSession.getCurrentReportFormat()

getReportModes

public int[] getReportModes()
Description copied from interface: JVTOperationalStatusMonitorSession
Returns the supported report modes of the performance monitor agent.

The implementaion must support one of the file report modes, ReportMode.FILE_SINGLE or ReportMode.FILE_MULTIPLE. The other report modes are optional. The report mode ReportMode.NO_REPORT_MODE can not be returned by this operation.

Specified by:
getReportModes in interface JVTOperationalStatusMonitorSession
Returns:
int[] List of supported report modes.
See Also:
JVTOperationalStatusMonitorSession.getReportModes()

getObservableObjectClasses

public ObservableObjectClassIterator getObservableObjectClasses()
Description copied from interface: JVTOperationalStatusMonitorSession
Returns all supported observed object classes in the performance monitoring agent.

Specified by:
getObservableObjectClasses in interface JVTOperationalStatusMonitorSession
Returns:
ObservableObjectClassIterator Iterator that contains all supported observable object classes.
See Also:
JVTOperationalStatusMonitorSession.getObservableObjectClasses()

getObservableObjects

public ObservableObjectIterator getObservableObjects(java.lang.String observableObjectClassName,
                                                     javax.management.ObjectName base)
                                              throws java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Returns the supported observable object instances of the specific object class that are located below the specified distinguished name in the performance monitoring agent.

If base is not specified then all instances of that class are returned.

Specified by:
getObservableObjects in interface JVTOperationalStatusMonitorSession
Parameters:
observableObjectClassName - The class name of the observable object instances to be found.
base - The JMX pattern to use for the search.
Returns:
ObservableObjectIterator Iterator that contains all supported observable objects.
Throws:
java.lang.IllegalArgumentException - Is raised if the input paramters are not valid.
See Also:
JVTOperationalStatusMonitorSession.getObservableObjects(String observableObjectClassName, ObjectName base )

getSupportedObservableObjects

public javax.management.ObjectName[] getSupportedObservableObjects(javax.management.ObjectName[] dnList)
Description copied from interface: JVTOperationalStatusMonitorSession
Checks a list of distinguished names if they are supported observable objects.

This operation is used to determine which observable objects are supported in a measurement job.

If none of the observable objects are supported an empty array is returned.

Specified by:
getSupportedObservableObjects in interface JVTOperationalStatusMonitorSession
Parameters:
dnList - List of observable objects distinguished names.
Returns:
String[] returns a list of distinguished names for observable objects that can be observed.
See Also:
JVTOperationalStatusMonitorSession.getSupportedObservableObjects( ObjectName[] dnList )

getObservableAttributes

public PerformanceAttributeDescriptor[] getObservableAttributes(java.lang.String observableObjectClassName)
                                                         throws java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Returns all measurement attributes that can be monitored in the observable object class, in the performance monitoring agent.

For each observable objects that are supported, minimum one attribute must be returned.

Specified by:
getObservableAttributes in interface JVTOperationalStatusMonitorSession
Parameters:
observableObjectClassName - The name of the observable object class.
Returns:
PerformanceAttributeDescriptor[] List of all supported measurement attributes in the observable object class.
Throws:
java.lang.IllegalArgumentException - is raised if the input paramter is not valid.
See Also:
JVTOperationalStatusMonitorSession.getObservableAttributes( String observableObjectClassName )

getSupportedGranularities

public int[] getSupportedGranularities(OperationalStatusMonitorValue pmValue)
                                throws java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Returns the supported granularity periods for the provided definition of a measurement job.

This operation returns a list of granularity periods that can be used when a measurement job shall be created, with the specified definition of the measurement job.

If no granularity period is supported for the specified instances and attributes, an empty array shall be returned.

The returned granularity periods shall be a factor or a multiple of a hour.

Specified by:
getSupportedGranularities in interface JVTOperationalStatusMonitorSession
Parameters:
pmValue - The attributes of the measurement job except the granularity period.
Returns:
int[] List of supported granularity periods in seconds.
Throws:
java.lang.IllegalArgumentException - Is raised when the input parameters are not valid.
See Also:
JVTOperationalStatusMonitorSession.getSupportedGranularities( OperationalStatusMonitorValue pmValue )

getOperationalStatusReportInfo

public ReportInfoIterator getOperationalStatusReportInfo(OperationalStatusMonitorKey pmKey,
                                                         java.util.Calendar date)
                                                  throws java.lang.IllegalArgumentException,
                                                         ObjectNotFoundException
Description copied from interface: JVTOperationalStatusMonitorSession
Returns a list of available measurement result in the performance monitor agent.

During the recording intervals specified for measurement jobs, scheduled measurement reports are generated at the end of each granularity period if the measurement jobs are not suspended.

Measurement jobs that have the distribution set to file will add its measurement report to a measurement result file. A list of reference to these generated measurement result files is returned, to allow retrieval of the measurement result files.

The storage capacity and duration as well as the method how the data may be deleted are implementation dependent.

If a performance monitor key is specified all result files containing that measurement job is returned. This is only applicable if the performance monitor agent stores measurement reports per measurement job.

If the date is specified all result files created after that date is returned.

If some of the input parameters should not be specified a null value should be specified. If both parameters are specified, a logical AND will be used to find the result files. If both parameters are null, all result files will be returned.

Specified by:
getOperationalStatusReportInfo in interface JVTOperationalStatusMonitorSession
Parameters:
pmKey - The primary key of a measurement job, that shall be included in the reports.
date - Specifies the minimum creation date for the reports.
Returns:
ReportInfoIterator Iterator that contains all measurement result files.
Throws:
java.lang.IllegalArgumentException - is raised if the input paramters are not valid.
ObjectNotFoundException - Is raised if the measurement job was not found.
See Also:
JVTOperationalStatusMonitorSession.getOperationalStatusReportInfo(OperationalStatusMonitorKey pmKey, java.util.Calendar date)

getOperationalStatusMonitorByKey

public OperationalStatusMonitorValue getOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey,
                                                                      java.lang.String[] attributes)
                                                               throws ObjectNotFoundException,
                                                                      java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Gets the attribute values of a specific measurement job.

The input parameters specify which attributes to get on the measurement job. If the attribute id list is an empty array then all attribute values of the measurement jobs are returned.

Specified by:
getOperationalStatusMonitorByKey in interface JVTOperationalStatusMonitorSession
Parameters:
pmKey - Primary key of the measurement job.
attributes - A list of the attributes to be returned.
Returns:
OperationalStatusMonitoringValue The attribute values for the requested measurement job.
Throws:
ObjectNotFoundException - Is raised if the measurement job is not found.
java.lang.IllegalArgumentException - Is raised when the input parameters are not valid.
See Also:
JVTOperationalStatusMonitorSession.getOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey, String[] attributes)

getOperationalStatusMonitorsByKeys

public OperationalStatusMonitorValueIterator getOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKey,
                                                                                java.lang.String[] attributes)
                                                                         throws FinderException,
                                                                                java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Gets a list of attribute values of the specific measurement jobs.

The input parameters specify which attributes to get on the measurement jobs. If the attribute id list is an empty array then all attribute values of the measurement jobs are returned. if the array of measurement job keys is empty then all measurement jobs are returned.

Specified by:
getOperationalStatusMonitorsByKeys in interface JVTOperationalStatusMonitorSession
Parameters:
pmKey - Primary keys of the measurement jobs.
attributes - A list of the attributes to be returned.
Returns:
OperationalStatusMonitorValueIterator Iterator that contains attribute values for each requested measurement job.
Throws:
FinderException - Is raised if one or several measurement jobs where not found.
java.lang.IllegalArgumentException - Is raised when the input parameters are not valid.
See Also:
JVTOperationalStatusMonitorSession.getOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKey, String[] attributes)

queryOperationalStatusMonitors

public OperationalStatusMonitorValueIterator queryOperationalStatusMonitors(QueryValue query,
                                                                            java.lang.String[] attrNames)
                                                                     throws java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Queries for multiple measurement jobs using a query value instance.

The operation returns a list of attribute values of the specific measurement jobs that match the provided query.

The first input parameter specifies a query value instance that each measurement jobs must match, if the measurement jobs attribute values shall be returned. If the firts input parameter is an empty query value, then all measurement jobs are returned. The attribute values to be returned are specified by the second input parameter. If the attribute list is an empty array then all attribute values of the measurement jobs are returned.

If the first input parameter can be a com.sun.management.oss.pm.opstatus.QueryOperationalStatusMonitorValue or a com.sun.management.oss.pm.opstatus.QueryByDNValue or a vendor defined query, that the operation getQueryTypes() returns.

Specified by:
queryOperationalStatusMonitors in interface JVTOperationalStatusMonitorSession
Parameters:
query - Search attributes with values to be match in each measurement job.
attrNames - A list of the attributes to be returned.
Returns:
OperationalStatusMonitorValueIterator A iterator of measurement job values.
Throws:
java.lang.IllegalArgumentException - Is raised if the query type is not supported or the attribute names is not supported.
See Also:
JVTOperationalStatusMonitorSession.queryOperationalStatusMonitors( QueryValue query , String[] attrNames)

createOperationalStatusMonitorByValue

public OperationalStatusMonitorKey createOperationalStatusMonitorByValue(OperationalStatusMonitorValue pmValue)
                                                                  throws CreateException,
                                                                         DuplicateKeyException,
                                                                         java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Creates a new measurement job.

On creation of a measurement job, all needed information has to be supplied in order to collect the required data from the selected resources as specified by the measurement job.

If the value object is of the type OperationalStatusMonitorByObjectsValue all observable object instances must be of the same object class. The attributes that should be monitored needs to be supported by that object class. If the attribute list is omitted all attributes will be monitored.

If the value object is of the type OperationalStatusMonitorByClassesValue all observable object classes must support the attributes that should be monitored. If the attribute list is omitted all common attributes will be monitored.

If the name of the measurement job is set it needs to be unique within the performance monitor agent. The default value for the name is an empty string and the empty string will be regarded as no name.

The set of observable object instances and measurement attribute has a set of supported granularity periods. These granularity periods can be retrieved from the operation getSupportedGranularities(). The specified granularity period must be one of the supported granularity periods.

The specified report mode must be one of the supported reports modes, that can be retrieved from the method getReportModes(). If the report mode is set to ReportMode.FILE_SINGLE and the reporting period has not been set, the reporting period will be the same as the granularity period of the measurement job. If the granularity period is set to zero (0), then no reports will be generated and the measurement data can only be gathered on request from the client (getCurrentResultReport()).

The specified report format must be one of the supported reports formats, that can be retrieved from the method getReportFormats(). If the report format is not specified the report format will be set to the report format that the getCurrentReportFormat() returns. If the report mode is set to ReportMode.FILE_MULTIPLE or EVENT_MULTIPLE the client can not set the report format. The result reports will be generated in the format that the getCurrentReportFormat() returns.

The implementation shall support a measurement job start time (schedule) of up to at least 30 days from the measurement job creation date. It shall also validate that the start and end time is not a time in the past and that the end time is greater then start time. The recording intervals may repeat on a daily and/or weekly basis and specify the time periods during which the measurement data is collected. The daily interval is defined by start times and end times, which lie between 00.00 and 24.00 hours, aligned on granularity period boundaries. Thus the length of a daily interval will be a multiple of the granularity period. The daily intervals can not be overlapped.

On creation of a measurement job the state is set to active and depending of the schedule it will be on duty or off duty. If the state is set to suspended on creation and the agent supports the suspension of jobs, the state job will be suspended and the schedule will be ignored until the job is resumed.

The value object that is passed to this method should have been created by calling the operations that creates value object, such as createOperationalStatusMonitorValue(). If the value object is not created by these methods then it is implementation dependant if the create operation will work.

If the value object includes a performance monitor key then the IllegalArgumentException is raised.

Specified by:
createOperationalStatusMonitorByValue in interface JVTOperationalStatusMonitorSession
Parameters:
pmValue - The input parameters to create a measurement job.
Returns:
OperationalStatusMonitorKey The primary key of the created measurement job.
Throws:
DuplicateKeyException - Is raised if an measurement job cannot be created because a measurement job with the same key already exists.
java.lang.IllegalArgumentException - Is raised if parameters are wrong.
CreateException - Is raised if the measurement job could not be create.
See Also:
JVTOperationalStatusMonitorSession.createOperationalStatusMonitorByValue(OperationalStatusMonitorValue pmValue)

tryCreateOperationalStatusMonitorsByValues

public OperationalStatusMonitorKeyResult[] tryCreateOperationalStatusMonitorsByValues(OperationalStatusMonitorValue[] pmValues)
                                                                               throws java.lang.IllegalArgumentException,
                                                                                      UnsupportedOperationException,
                                                                                      DuplicateKeyException
Description copied from interface: JVTOperationalStatusMonitorSession
Try to create measurement jobs.

This operation try to create a number of measurement jobs. The operation has a best effort behavior and return a list results that indicate if the operation was successful or not on each measurement job.

The measurement jobs that should be created shall be done in accordance with the behavior of the createOperationalStatusMonitor(...), which creates a single measurement job.

Specified by:
tryCreateOperationalStatusMonitorsByValues in interface JVTOperationalStatusMonitorSession
Parameters:
pmValues - The input parameters to create measurement jobs.
Returns:
OperationalStatusMonitorResultKey[] List of result information of the measurement jobs.
Throws:
DuplicateKeyException - Is raised if an measurement job cannot be created because a measurement job with the same key already exists.
java.lang.IllegalArgumentException - Is raised if parameters are wrong.
UnsupportedOperationException - Is raised if this operation is not supported.
See Also:
JVTOperationalStatusMonitorSession.tryCreateOperationalStatusMonitorsByValues(OperationalStatusMonitorValue[] pmValues)

removeOperationalStatusMonitorByKey

public void removeOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey)
                                         throws java.lang.IllegalArgumentException,
                                                ObjectNotFoundException,
                                                RemoveException
Description copied from interface: JVTOperationalStatusMonitorSession
Remove measurement job.

The measurement process associated with the measurement job is stopped, all allocated resources are freed. The stored measurement result reports, that are related to the measurement job shall not be removed. The measurement result reports should be removed only when the storage duration of the stored measurement result reports expires.

A measurement job is automatically removed by the system when it reaches the monitoring end-time, and all scheduled or explicitly requested measurement reports have been generated.

Specified by:
removeOperationalStatusMonitorByKey in interface JVTOperationalStatusMonitorSession
Parameters:
pmKey - Primary key of the measurement job to be removed.
Throws:
ObjectNotFoundException - Is raised if the measurement job was not found.
java.lang.IllegalArgumentException - Is raised if parameters are wrong.
RemoveException
See Also:
JVTOperationalStatusMonitorSession.removeOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey)

tryRemoveOperationalStatusMonitorsByKeys

public OperationalStatusMonitorKeyResult[] tryRemoveOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKeys)
                                                                             throws UnsupportedOperationException,
                                                                                    java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Try to remove measurement jobs.

This operation try to remove a number of measurement jobs. The operation has a best effort behavior and return a list results that indicate if the operation was successful or not on each measurement job.

The measurement jobs that should be removed shall be done in accordance with the behavior of the removeOperationalStatusMonitor(...), which removes a single measurement job.

Specified by:
tryRemoveOperationalStatusMonitorsByKeys in interface JVTOperationalStatusMonitorSession
Parameters:
pmKeys - List of primary keys of the measurement jobs to delete.
Returns:
OperationalStatusMonitorResultKey[] List of measurement jobs that could not be removed else null is returned.
Throws:
java.lang.IllegalArgumentException - Is raised if parameters are wrong.
UnsupportedOperationException - Is raised if this operation is not supported.
See Also:
JVTOperationalStatusMonitorSession.tryRemoveOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKeys)

suspendOperationalStatusMonitorByKey

public void suspendOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey)
                                          throws UnsupportedOperationException,
                                                 ObjectNotFoundException,
                                                 java.lang.IllegalArgumentException
Description copied from interface: JVTOperationalStatusMonitorSession
Inhibits the measurement job from collection of measurement data.

This function can be used to temporarily discard the collection of measurement data (e.g. in case of system overload or congestion, measurement results not used,...). The measurement job can be suspended at any time. This implies that the measurement job definitions remains in the system, but that no measurement gathering activities are performed for this monitoring. When the measurement job is resumed, measurement data collection is started again at the next granularity period within the measurement schedule.

The resume function will re-enable measurement data collection according to the measurement job schedule.

Requesting the current measurement result values of a measurement job is NOT possible when the measurement job is suspended.

No scheduled measurement reports are generated when the measurement job is suspended.

If the measurement job is already suspended the measurement will remain suspended.

Specified by:
suspendOperationalStatusMonitorByKey in interface JVTOperationalStatusMonitorSession
Parameters:
pmKey - Primary keys of the measurement job to be suspended.
Throws:
java.lang.IllegalArgumentException - Is raised if parameters are wrong.
ObjectNotFoundException - Is raised if the measurement job was not found.
UnsupportedOperationException - Is raised if this operation is not supported.
See Also:
JVTOperationalStatusMonitorSession.suspendOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey)

trySuspendOperationalStatusMonitorsByKeys

public OperationalStatusMonitorKeyResult[] trySuspendOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKeys)
                                                                              throws java.lang.IllegalArgumentException,
                                                                                     UnsupportedOperationException
Description copied from interface: JVTOperationalStatusMonitorSession
Try to inhibit measurement jobs from collection of measurement data.

This operation try to inhibit a number of measurement jobs. The operation has a best effort behavior and return a list results that indicate if the operation was successful or not on each measurement job.

The measurement jobs that should be inhibit shall be done in accordance with the behavior of the suspendOperationalStatusMonitor(...), which removes a single measurement job.

Specified by:
trySuspendOperationalStatusMonitorsByKeys in interface JVTOperationalStatusMonitorSession
Parameters:
pmKeys - List of primary keys of the measurement jobs to be suspended.
Returns:
OperationalStatusMonitorResultKey[] List of measurement jobs that could not be suspended else null is returned.
Throws:
UnsupportedOperationException - Is raised if this operation is not supported.
java.lang.IllegalArgumentException - Is raised if parameters are wrong.
See Also:
JVTOperationalStatusMonitorSession.trySuspendOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKeys)

resumeOperationalStatusMonitorByKey

public void resumeOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey)
                                         throws java.lang.IllegalArgumentException,
                                                UnsupportedOperationException,
                                                ObjectNotFoundException
Description copied from interface: JVTOperationalStatusMonitorSession
Re-enables the measurement job to collect measurement data.

The measurement job in the request starts to collect measurement data at the next granularity period within the measurement schedule.

This implies that the measurement job definition, which are remained in the system, are used when the measurement job is resumed.

If the measurement job is already active the measurement will remain active.

Specified by:
resumeOperationalStatusMonitorByKey in interface JVTOperationalStatusMonitorSession
Parameters:
pmKey - Primary key of the measurement job to be resumed.
Throws:
java.lang.IllegalArgumentException - Is raised if parameters are wrong.
UnsupportedOperationException - Is raised if this operation is not supported.
ObjectNotFoundException - Is raised if the measurement job was not found.
See Also:
JVTOperationalStatusMonitorSession.resumeOperationalStatusMonitorByKey(OperationalStatusMonitorKey pmKey)

tryResumeOperationalStatusMonitorsByKeys

public OperationalStatusMonitorKeyResult[] tryResumeOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKeys)
                                                                             throws java.lang.IllegalArgumentException,
                                                                                    UnsupportedOperationException
Description copied from interface: JVTOperationalStatusMonitorSession
Try to re-enables the measurement jobs to collect measurement data.

This operation try to re-enable a number of measurement jobs. The operation has a best effort behavior and return a list results that indicate if the operation was successful or not on each measurement job.

The measurement jobs that should be re-enable shall be done in accordance with the behavior of the resumeOperationalStatusMonitor(...), which resume a single measurement job.

Each measurement job in the request starts to collect measurement data at the next granularity period within the measurement schedule.

This implies that the measurement job definition, which are remained in the system, are used when the measurement job is resumed.

If the measurement jobs are already active the measurement will remain active.

Specified by:
tryResumeOperationalStatusMonitorsByKeys in interface JVTOperationalStatusMonitorSession
Parameters:
pmKeys - List of primary keys of the measurement jobs to be resumed.
Returns:
OperationalStatusMonitorKeyResult[] List of measurement jobs that could not be resumed else null is returned.
Throws:
java.lang.IllegalArgumentException - Is raised if parameters are wrong.
UnsupportedOperationException - Is raised if this operation is not supported.
See Also:
JVTOperationalStatusMonitorSession.tryResumeOperationalStatusMonitorsByKeys(OperationalStatusMonitorKey[] pmKeys)

getCurrentResultReport

public CurrentResultReport getCurrentResultReport(OperationalStatusMonitorKey pmKey,
                                                  ReportFormat format)
                                           throws java.lang.IllegalArgumentException,
                                                  UnsupportedOperationException,
                                                  java.lang.IllegalStateException,
                                                  ObjectNotFoundException
Description copied from interface: JVTOperationalStatusMonitorSession
Generate a result report of the current measurement result values.

An external system may for some reason be interested in the current values of the measurement job, independently of the scheduled data collection and subsequent reporting, e.g. for tracing the increment of some of the counters. To this aim, this method generates a result report of the current values of the measurement job for the same network resources as defined in the measurement job. The current measurement result is returned in the specified report format. If no report format is specified then the report format will be the same as in the measurement job definition.

This operation does not affect the measurement job, and may only be issued when the measurement job is active and not suspended. If the measurement job is suspended, the method will raise the IllegalStateException exception.

Specified by:
getCurrentResultReport in interface JVTOperationalStatusMonitorSession
Parameters:
pmKey - Primary key of the measurement job.
format - Defines the report format of the current measurement values.
Returns:
CurrentResultReport The measurement result of the current values of the measurement job for the same resources as defined in the measurement job.
Throws:
java.lang.IllegalArgumentException - Is raised if parameters are wrong.
java.lang.IllegalStateException - Is raised if the measurement job is suspended.
ObjectNotFoundException - Is raised if the measurement job was not found.
UnsupportedOperationException - Is raised if this operation is not supported.
See Also:
JVTOperationalStatusMonitorSession.getCurrentResultReport(OperationalStatusMonitorKey pmKey, ReportFormat format)

makeManagedEntityValue

public ManagedEntityValue makeManagedEntityValue(java.lang.String valueType)
                                          throws java.lang.IllegalArgumentException
Description copied from interface: JVTSession
Create a Value Type object for a specific Managed Entity type. Not to be confused with the creation of a Managed Entity. The Session Bean is used as a factory for the creation of Value Types.

Specified by:
makeManagedEntityValue in interface JVTSession
Parameters:
valueType - fully qualified name of the leaf managed entity value interface.
Returns:
managed entity value object of the specified type.
Throws:
java.lang.IllegalArgumentException - unknown or unsupported managed entity value type.
See Also:
JVTSession.makeManagedEntityValue(String valueType)

queryManagedEntities

public ManagedEntityValueIterator queryManagedEntities(QueryValue query,
                                                       java.lang.String[] attrNames)
                                                throws java.lang.IllegalArgumentException
Description copied from interface: JVTSession
Query multiple Managed Entities using a QueryValue.

Specified by:
queryManagedEntities in interface JVTSession
Parameters:
query - a QueryValue object representing the query.
attrNames - names of attributes which should be populated in the ManagedEntityValue objects returned by the ManagedEntityValueIterator.
Returns:
a ManagedEnityValueIterator used to extract the results of the query.
Throws:
java.lang.IllegalArgumentException - unsupported query value type. (Note: if an attribute specified in the attributeName array is not supported, it is simply ignored and and does not result in an exception.)
See Also:
JVTSession.queryManagedEntities(QueryValue query, String[] attrNames)

getNotificationInfo

public javax.management.MBeanNotificationInfo[] getNotificationInfo()
Returns a NotificationInfo object containing the name of the Java class of the notification and the notification types sent by this notification broadcaster.

Specified by:
getNotificationInfo in interface javax.management.NotificationBroadcaster

handleNotification

public void handleNotification(javax.management.Notification notification,
                               java.lang.Object handback)
Get the Jobs' events and forward them to interested clients

Specified by:
handleNotification in interface javax.management.NotificationListener

putJob

public void putJob(java.lang.String key,
                   com.sun.management.oss.impl.job.opstatus.OperationalStatusMonitorJob aOperationalStatusMonitorJob)
Put job in table


getJob

public com.sun.management.oss.impl.job.opstatus.OperationalStatusMonitorJob getJob(java.lang.String key)
Get job from table


getJobs

public java.util.Enumeration getJobs()
Get jobs from table


removeJob

public void removeJob(java.lang.String key)
Remove job from table


getAttribute

public java.lang.Object getAttribute(java.lang.String attribute_name)
                              throws javax.management.AttributeNotFoundException,
                                     javax.management.MBeanException,
                                     javax.management.ReflectionException
Allows the value of the specified attribute of the Dynamic MBean to be obtained.

Specified by:
getAttribute in interface javax.management.DynamicMBean
Throws:
javax.management.AttributeNotFoundException
javax.management.MBeanException
javax.management.ReflectionException

setAttribute

public void setAttribute(javax.management.Attribute attribute)
                  throws javax.management.AttributeNotFoundException,
                         javax.management.InvalidAttributeValueException,
                         javax.management.MBeanException,
                         javax.management.ReflectionException
Sets the value of the specified attribute of the Dynamic MBean.

Specified by:
setAttribute in interface javax.management.DynamicMBean
Throws:
javax.management.AttributeNotFoundException
javax.management.InvalidAttributeValueException
javax.management.MBeanException
javax.management.ReflectionException

getAttributes

public javax.management.AttributeList getAttributes(java.lang.String[] attributeNames)
Enables the to get the values of several attributes of the Dynamic MBean.

Specified by:
getAttributes in interface javax.management.DynamicMBean

setAttributes

public javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
Sets the values of several attributes of the Dynamic MBean, and returns the list of attributes that have been set.

Specified by:
setAttributes in interface javax.management.DynamicMBean

invoke

public java.lang.Object invoke(java.lang.String operationName,
                               java.lang.Object[] params,
                               java.lang.String[] signature)
                        throws javax.management.MBeanException,
                               javax.management.ReflectionException
Allows an operation to be invoked on the Dynamic MBean.

Specified by:
invoke in interface javax.management.DynamicMBean
Throws:
javax.management.MBeanException
javax.management.ReflectionException

getMBeanInfo

public javax.management.MBeanInfo getMBeanInfo()
This method provides the exposed attributes and operations of the Dynamic MBean. It provides this information using an MBeanInfo object.

Specified by:
getMBeanInfo in interface javax.management.DynamicMBean

postDeregister

public void postDeregister()
Allows the MBean to perform any operations needed after having been unregistered in the MBean server.

Specified by:
postDeregister in interface javax.management.MBeanRegistration

postRegister

public void postRegister(java.lang.Boolean registrationDone)
Allows the MBean to perform any operations needed after having been registered in the MBean server or after the registration has failed.

Specified by:
postRegister in interface javax.management.MBeanRegistration

preDeregister

public void preDeregister()
Allows the MBean to perform any operations it needs before being unregistered by the MBean server.

Specified by:
preDeregister in interface javax.management.MBeanRegistration

preRegister

public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
                                               javax.management.ObjectName name)
                                        throws java.lang.Exception
Allows the MBean to perform any operations it needs before being registered in the MBean server. Factory name is build this way - Domain name is taken in property OS_DEFAULT_DOMAIN_PROPERTY_KEY if no domain in the provided object name at registration time (name isnull) - only 3 keys are used: - CM_CLASS_NAME_KEY key that holds the factory class name - CM_DATA_MODEL_KEY key that hold the class name implementing the OperationalStatusGenericModel interface => if a CM_DATA_MODEL_KEY key is provided in the provided object name at registration time, its value will be used instead of the default one that is configured in OS_DEFAULT_MODEL_CLASS_PROPERTY_KEY - CM_INSTANCE_KEY key that holds the instance id of the factory (for the factory type), it is automatically incermented in the factory

Specified by:
preRegister in interface javax.management.MBeanRegistration
Throws:
java.lang.Exception