com.sun.management.oss.impl.factory.measurement
Class JmxJVTPerformanceMonitorSession

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

public class JmxJVTPerformanceMonitorSession
extends javax.management.NotificationBroadcasterSupport
implements JVTPerformanceMonitorSession, javax.management.DynamicMBean, javax.management.MBeanRegistration, javax.management.NotificationListener

The class JmxJVTPerformanceMonitorSession implements the JVTPerformanceMonitorSession interface. It is a JMX dynamic MBean that is a factory of PerformanceMonitorJob objects (Measurement jobs) that interact with observable objects of a data model whose interface is implemented with a PerformanceGenericModel object. This implementation object is passed at construction time of the factory, as a parameter of the constructor.

For a better understanding of what this factory is able to do, please first of all refer to the com.sun.management.oss.pm.measurement.JVTPerformanceMonitorSession description page and read at least the main description and the createPerformanceMonitorByValue() method description.

Here after we explain what are the characteristics specific to this implementation of the JVTPerformanceMonitorSession interface:

Job types:
This implementation supports both possible types of jobs: PerformanceMonitorByObjectsValue.VALUE_TYPE ('by objects') jobs and PerformanceMonitorByClassesValue.VALUE_TYPE ('by classes') jobs.

Once created, the jobs are entities that live forever regardless of the availability of the underlying objects they care about. Only an order of deletion can remove a job.

For creating a 'by objects' job, you provide the factory with list of the ObjectName of the objects you want to create a measurement job on. For creating a 'by classes' job, you provide the factory with the list of classes you want to care about. A 'by classes' job listens to MBeans registration/unregistration events. If the event is about an object of a class the job handles, the job adds/removes this object from the object instance list he cares about.

Job report modes:
The jobs managed by this factory are able to run in both possible report modes: 'by event' mode and 'by file' mode. Each job may use only one or both of the possible report modes (at least one mode is mandatory). Supported 'by event' mode is ReportMode.EVENT_SINGLE and supported 'by file' mode is ReportMode.FILE_SINGLE as far as report modes are concerned (ReportMode.FILE_MULTIPLE and ReportMode.EVENT_MULTIPLE are not supported by this implementation). Thus, each generated report (included in a file or an event) is only refering to one single job, whereas included data may be data regarding many sampling time.

For a PerformanceMonitorByClassesValue.VALUE_TYPE ('by classes') job, if no instance of any of the classes he cares about is present, no file report will be generated and no event will be sent until one proper object is available (registered in the JMX server).

Job report format:
There is only one report format supported by this factory. This format is defined like this:

If you want details about this format specification, please refer to the document: FormatReport-0.7.sxw.

Job report period:
The report period is a factor that is used to know how many sampling periods (defined by the job granularity) the job must wait before generating an event (if the job is a 'by event' one) containing the report(s), or before generating an event (if the job is a 'by file' one) containing the file report url(s). For instance, if the granularity period of a job is 30 seconds and the job is a 'by event' as well a a 'by file' one and the report period is set to 2: sampling will occur every 30 seconds and every minutes, an event will be fired containing 2 reports (the 'by event' event) and at the same time, another event (the 'by file' one) will be fired and will contain 2 urls pointing to the 2 file reports that have been generated (these files contain the same data than the 2 embedded reports in the 'by event' event). If the report period is set to 1, events are generated as often as the sampling occurs and events ('by event' and 'by file' ones) contain data related to only one sampling.

Job file reports:
Whatever the report period of a 'by file' job is, there is one file generated for each sample the job took at each granularity period start. The path to the generated measurement reports is defined by a property you can find at the com.sun.management.oss.impl.tools.CmsConfig description page. The report files respect a naming convention that is briefly described here after:
B<sampling_period_start_time>-<sampling_period_end_time>_<originator_job_primary_key>_<originator_job_name>.xml
Date format for <sampling_period_start_time> and <sampling_period_end_time>: yyyyMMdd.HHmmss
Here is a valid report file name example:
B20040514.133005-20040514.133010_8320c443819db375019ea173d228993b_MeasurementCIBAplication.xml

This file name format is inspired from the 3GPP TS 32.401 V5.1.0 (2002-09) specification.

The 'by file' mode of the jobs has a life time feature. That is, it is possible to have the generated file reports being automatically deleted after a certain amount of hours (it is also possible to have these reports never deleted). For setting the report life time of the file reports, please refer to the com.sun.management.oss.impl.tools.CmsConfig description page.

Optional methods:
All the optional methods of the JVTPerformanceMonitorSession interface are implemented in this implementation:

Job queries:
This implementation supports both QueryPerformanceMonitorValue.QUERY_TYPE and QueryByDNValue.QUERY_TYPE query types.

Job naming:
The name of a job is not a mandatory parameter to provide at job creation time. However, if a name is provided, it has to be unique in the context of the factory instance. If no name is provided, the name of the job will be affected the same value as the primary key computed for the job. Thus, a job has always a name, and the names of the jobs are unique.

Job granularities:
Regarding the possible granularities used for the jobs, any strictly positive value is accepted (no limitation): the getSupportedGranularities() method is implemented but is useless as other values returned by this method may be valid.

Copyright (c) 2001 Ericsson
Copyright (c) 2004 Sun microsystems

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

Field Summary
static java.util.logging.Logger logger
          One log for the whole session.
static java.util.Properties properties
          Hold the values from the properties that are given at constructor time.
 
Fields inherited from interface com.sun.management.oss.pm.measurement.JVTPerformanceMonitorSession
OSS_QOS_VERSION_R1
 
Constructor Summary
JmxJVTPerformanceMonitorSession()
          Constructor for the JmxJVTPerformanceMonitorSession object.
 
Method Summary
 PerformanceMonitorKey createPerformanceMonitorByValue(PerformanceMonitorValue pmValue)
          See JVTPerformanceMonitorSession.createPerformanceMonitorByValue(PerformanceMonitorValue pmValue).
 java.lang.Object getAttribute(java.lang.String attribute_name)
          See javax.management.DynamicMBean.getAttribute(String attribute_name)
 javax.management.AttributeList getAttributes(java.lang.String[] attributeNames)
          See javax.management.DynamicMBean.getAttributes(String[] attributeNames)
 ReportFormat getCurrentReportFormat()
          See JVTPerformanceMonitorSession.getCurrentReportFormat().
 CurrentResultReport getCurrentResultReport(PerformanceMonitorKey pmKey, ReportFormat format)
          See JVTPerformanceMonitorSession.getCurrentResultReport(PerformanceMonitorKey pmKey, ReportFormat format).
 EventPropertyDescriptor getEventDescriptor(java.lang.String eventType)
          See JVTSession.getEventDescriptor(String eventType).
 java.lang.String[] getEventTypes()
          See JVTSession.getEventTypes().
 PerformanceMonitorJob getJob(java.lang.String key)
          Get a job from the job list.
 java.util.Enumeration getJobs()
          Get all jobs from the job list.
 java.lang.String[] getManagedEntityTypes()
          See JVTSession.getManagedEntityTypes().
 javax.management.MBeanInfo getMBeanInfo()
          See javax.management.DynamicMBean.getMBeanInfo()
 javax.management.MBeanNotificationInfo[] getNotificationInfo()
          Get informatrion about the notification sent by this factory.
 PerformanceAttributeDescriptor[] getObservableAttributes(java.lang.String observableObjectClassName)
          See JVTPerformanceMonitorSession.getObservableAttributes(String observableObjectClassName).
 ObservableObjectClassIterator getObservableObjectClasses()
          See JVTPerformanceMonitorSession.getObservableObjectClasses().
 ObservableObjectIterator getObservableObjects(java.lang.String observableObjectClassName, javax.management.ObjectName base)
          See JVTPerformanceMonitorSession.getObservableObjects(String observableObjectClassName, String base).
 PerformanceMonitorValue getPerformanceMonitorByKey(PerformanceMonitorKey pmKey, java.lang.String[] attributes)
          See JVTPerformanceMonitorSession.getPerformanceMonitorByKey(PerformanceMonitorKey pmKey, String[] attributes).
 PerformanceMonitorValueIterator getPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKey, java.lang.String[] attributes)
          See JVTPerformanceMonitorSession.getPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKey, String[] attributes).
 ReportInfoIterator getPerformanceReportInfo(PerformanceMonitorKey pmKey, java.util.Calendar date)
          See JVTPerformanceMonitorSession.getPerformanceReportInfo(PerformanceMonitorKey pmKey, java.util.Calendar date).
 java.lang.String[] getQueryTypes()
          See JVTSession.getQueryTypes().
 ReportFormat[] getReportFormats()
          See JVTPerformanceMonitorSession.getReportFormats().
 int[] getReportModes()
          See JVTPerformanceMonitorSession.getReportModes().
 int[] getSupportedGranularities(PerformanceMonitorValue pmValue)
          Deprecated. This method is implemented, but useless as any positive integer value will work as far as the granularity period is concerned: we do not want to limit possibilities.
 javax.management.ObjectName[] getSupportedObservableObjects(javax.management.ObjectName[] dnList)
          See JVTPerformanceMonitorSession.getSupportedObservableObjects(ObjectName[] dnList).
 java.lang.String[] getSupportedOptionalOperations()
          See JVTSession.getSupportedOptionalOperations().
 java.lang.String[] getVersion()
          See JVTPerformanceMonitorSession.getVersion().
 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)
          See javax.management.DynamicMBean.invoke(String operationName, Object[] params, String[] signature)
 ManagedEntityValue makeManagedEntityValue(java.lang.String valueType)
          See JVTSession.makeManagedEntityValue(String valueType).
 PerformanceMonitorValue makePerformanceMonitorValue(java.lang.String value)
          See JVTPerformanceMonitorSession.makePerformanceMonitorValue(String value).
 QueryValue makeQueryValue(java.lang.String type)
          See JVTSession.makeQueryValue(String type).
 void postDeregister()
          See javax.management.MBeanRegistration.postDeregister()
 void postRegister(java.lang.Boolean registrationDone)
          See javax.management.MBeanRegistration.postRegister(Boolean registrationDone)
 void preDeregister()
          See javax.management.MBeanRegistration.preDeregister()
 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, PerformanceMonitorJob aPerformanceMonitorJob)
          Put a job in the job list.
 ManagedEntityValueIterator queryManagedEntities(QueryValue query, java.lang.String[] attrNames)
          See JVTSession.queryManagedEntities(QueryValue query, String[] attrNames).
 PerformanceMonitorValueIterator queryPerformanceMonitors(QueryValue query, java.lang.String[] attrNames)
          See JVTPerformanceMonitorSession.queryPerformanceMonitors(QueryValue query , String[] attrNames).
 void removeJob(java.lang.String key)
          Remove a job from the job list.
 void removePerformanceMonitorByKey(PerformanceMonitorKey pmKey)
          See JVTPerformanceMonitorSession.removePerformanceMonitorByKey(PerformanceMonitorKey pmKey).
 void resumePerformanceMonitorByKey(PerformanceMonitorKey pmKey)
          See JVTPerformanceMonitorSession.resumePerformanceMonitorByKey(PerformanceMonitorKey pmKey).
 void setAttribute(javax.management.Attribute attribute)
          See javax.management.DynamicMBean.setAttribute(Attribute attribute)
 javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
          See javax.management.DynamicMBean.setAttributes(AttributeList attributes)
 void suspendPerformanceMonitorByKey(PerformanceMonitorKey pmKey)
          See JVTPerformanceMonitorSession.suspendPerformanceMonitorByKey(PerformanceMonitorKey pmKey).
 PerformanceMonitorKeyResult[] tryCreatePerformanceMonitorsByValues(PerformanceMonitorValue[] pmValues)
          See JVTPerformanceMonitorSession.tryCreatePerformanceMonitorsByValues(PerformanceMonitorValue[] pmValues).
 PerformanceMonitorKeyResult[] tryRemovePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys)
          See JVTPerformanceMonitorSession.tryRemovePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys).
 PerformanceMonitorKeyResult[] tryResumePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys)
          See JVTPerformanceMonitorSession.tryResumePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys).
 PerformanceMonitorKeyResult[] trySuspendPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys)
          See JVTPerformanceMonitorSession.trySuspendPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys).
 
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.


properties

public static java.util.Properties properties
Hold the values from the properties that are given at constructor time.

Constructor Detail

JmxJVTPerformanceMonitorSession

public JmxJVTPerformanceMonitorSession()
Constructor for the JmxJVTPerformanceMonitorSession object.

Method Detail

getManagedEntityTypes

public java.lang.String[] getManagedEntityTypes()
See JVTSession.getManagedEntityTypes().

This implementation supports both PerformanceMonitorByObjectsValue.VALUE_TYPE and PerformanceMonitorByClassesValue.VALUE_TYPE job types.

Specified by:
getManagedEntityTypes in interface JVTSession
Returns:
A String array containing PerformanceMonitorByObjectsValue.VALUE_TYPE and PerformanceMonitorByClassesValue.VALUE_TYPE.
See Also:
JVTSession.getManagedEntityTypes()

getVersion

public java.lang.String[] getVersion()
See JVTPerformanceMonitorSession.getVersion().

Specified by:
getVersion in interface JVTPerformanceMonitorSession
Returns:
The version number and description.
See Also:
JVTPerformanceMonitorSession.getVersion()

getSupportedOptionalOperations

public java.lang.String[] getSupportedOptionalOperations()
See JVTSession.getSupportedOptionalOperations().

This implementation supports every optional operations:

Specified by:
getSupportedOptionalOperations in interface JVTSession
Returns:
A String array containing JVTPerformanceMonitorSessionOptionalOpt.GET_CURRENT_RESULT_REPORT, JVTPerformanceMonitorSessionOptionalOpt.RESUME_PERFORMANCE_MONITOR_BY_KEY, JVTPerformanceMonitorSessionOptionalOpt.SUSPEND_PERFORMANCE_MONITOR_BY_KEY, JVTPerformanceMonitorSessionOptionalOpt.TRY_CREATE_PERFORMANCE_MONITORS_BY_VALUES, JVTPerformanceMonitorSessionOptionalOpt.TRY_REMOVE_PERFORMANCE_MONITORS_BY_KEYS, JVTPerformanceMonitorSessionOptionalOpt.TRY_RESUME_PERFORMANCE_MONITORS_BY_KEYS, JVTPerformanceMonitorSessionOptionalOpt.TRY_SUSPEND_PERFORMANCE_MONITORS_BY_KEYS.
See Also:
JVTSession.getSupportedOptionalOperations()

getEventTypes

public java.lang.String[] getEventTypes()
See JVTSession.getEventTypes().

This implementation supports both PerformanceDataEventDescriptor.OSS_EVENT_TYPE_VALUE and PerformanceDataEventDescriptor.OSS_EVENT_TYPE_VALUE event types.

Specified by:
getEventTypes in interface JVTSession
Returns:
A String array containing PerformanceDataEventDescriptor.OSS_EVENT_TYPE_VALUE and PerformanceDataEventDescriptor.OSS_EVENT_TYPE_VALUE.
See Also:
JVTSession.getEventTypes()

getEventDescriptor

public EventPropertyDescriptor getEventDescriptor(java.lang.String eventType)
                                           throws java.lang.IllegalArgumentException
See JVTSession.getEventDescriptor(String eventType).

Specified by:
getEventDescriptor in interface JVTSession
Parameters:
eventType - Fully qualified name of the leaf node Event interface. It can be:
  • PerformanceDataEvent
  • PerformanceDataAvailableEvent
Returns:
EventPropertyDescriptor which can be used to discover the filterable properties of the specified event type.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTSession.getEventDescriptor(String eventType)

makePerformanceMonitorValue

public PerformanceMonitorValue makePerformanceMonitorValue(java.lang.String value)
                                                    throws java.lang.IllegalArgumentException
See JVTPerformanceMonitorSession.makePerformanceMonitorValue(String value).

Specified by:
makePerformanceMonitorValue in interface JVTPerformanceMonitorSession
Parameters:
value - The name of one of the supported value types that are returned by getManagedEntityTypes().
Returns:
The created PerformanceMonitorValue object. The value object is empty.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTPerformanceMonitorSession.makePerformanceMonitorValue(String value)

getQueryTypes

public java.lang.String[] getQueryTypes()
See JVTSession.getQueryTypes().

This implementation supports both QueryPerformanceMonitorValue.QUERY_TYPE and QueryByDNValue.QUERY_TYPE query types.

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: QueryPerformanceMonitorValue.QUERY_TYPE and QueryByDNValue.QUERY_TYPE.
See Also:
JVTSession.getQueryTypes()

makeQueryValue

public QueryValue makeQueryValue(java.lang.String type)
                          throws java.lang.IllegalArgumentException
See JVTSession.makeQueryValue(String type).

This implementation supports both QueryPerformanceMonitorValue.QUERY_TYPE and QueryByDNValue.QUERY_TYPE query types.

Specified by:
makeQueryValue in interface JVTSession
Parameters:
type - Fully qualified name of the leaf node QueryValue interface. It can be:
  • QueryByDNValue
  • QueryPerformanceMonitorValue
Returns:
QueryValue object of the specified type.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTSession.makeQueryValue(String type)

getReportFormats

public ReportFormat[] getReportFormats()
See JVTPerformanceMonitorSession.getReportFormats().

Currently only one report format is supported by this implementation. See the top description of this page for futher information.

Specified by:
getReportFormats in interface JVTPerformanceMonitorSession
Returns:
List of supported measurement result formats.
See Also:
JVTPerformanceMonitorSession.getReportFormats()

getCurrentReportFormat

public ReportFormat getCurrentReportFormat()
See JVTPerformanceMonitorSession.getCurrentReportFormat().

Currently only one report format is supported by this implementation. See the top description of this page for futher information.

Specified by:
getCurrentReportFormat in interface JVTPerformanceMonitorSession
Returns:
List of supported measurement result formats.
See Also:
JVTPerformanceMonitorSession.getCurrentReportFormat()

getReportModes

public int[] getReportModes()
See JVTPerformanceMonitorSession.getReportModes().

This implementation supports both ReportMode.EVENT_SINGLE and ReportMode.FILE_SINGLE modes.

Specified by:
getReportModes in interface JVTPerformanceMonitorSession
Returns:
List of supported report modes containing values ReportMode.EVENT_SINGLE and ReportMode.FILE_SINGLE.
See Also:
JVTPerformanceMonitorSession.getReportModes()

getObservableObjectClasses

public ObservableObjectClassIterator getObservableObjectClasses()
See JVTPerformanceMonitorSession.getObservableObjectClasses().

The returned classes depend on the PerformanceGenericModel implentation object the factory is using.

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

getObservableObjects

public ObservableObjectIterator getObservableObjects(java.lang.String observableObjectClassName,
                                                     javax.management.ObjectName base)
                                              throws java.lang.IllegalArgumentException
See JVTPerformanceMonitorSession.getObservableObjects(String observableObjectClassName, String base).

The returned observable objects depend on the PerformanceGenericModel implentation object the factory is using.

Specified by:
getObservableObjects in interface JVTPerformanceMonitorSession
Parameters:
observableObjectClassName - The Java class name (including the package name) of the class whose objects are to be considered.
base - The JMX pattern under which the objects are to be considered.
Returns:
Iterator that contains all supported observable objects.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTPerformanceMonitorSession.getObservableObjects(String observableObjectClassName, ObjectName base)

getSupportedObservableObjects

public javax.management.ObjectName[] getSupportedObservableObjects(javax.management.ObjectName[] dnList)
See JVTPerformanceMonitorSession.getSupportedObservableObjects(ObjectName[] dnList).

Specified by:
getSupportedObservableObjects in interface JVTPerformanceMonitorSession
Parameters:
dnList - The list of object names you want to know if they are monitorable (i.e: jobs can be created for these objects).
Returns:
List of object names for observable objects that can be observed. This list contains a subset of object names included in the dnList parameter.
See Also:
JVTPerformanceMonitorSession.getSupportedObservableObjects(ObjectName[] dnList)

getObservableAttributes

public PerformanceAttributeDescriptor[] getObservableAttributes(java.lang.String observableObjectClassName)
                                                         throws java.lang.IllegalArgumentException
See JVTPerformanceMonitorSession.getObservableAttributes(String observableObjectClassName).

The returned observable attributes depend on the PerformanceGenericModel implentation object the factory is using.

Specified by:
getObservableAttributes in interface JVTPerformanceMonitorSession
Parameters:
observableObjectClassName - The name of the observable object class we want to get monitorable attributes.
Returns:
List of all supported measurement attributes in the observable object class.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTPerformanceMonitorSession.getObservableAttributes(String observableObjectClassName)

getSupportedGranularities

public int[] getSupportedGranularities(PerformanceMonitorValue pmValue)
                                throws java.lang.IllegalArgumentException
Deprecated. This method is implemented, but useless as any positive integer value will work as far as the granularity period is concerned: we do not want to limit possibilities.

See JVTPerformanceMonitorSession.getSupportedGranularities(PerformanceMonitorValue pmValue).

This method is implemented but is useless, as the current implementation of this factory allow the use any strictly positive value for the job granularity. Thus, there is no restriction regarding the granularity except performance aspects.

Specified by:
getSupportedGranularities in interface JVTPerformanceMonitorSession
Parameters:
pmValue - The attributes of the measurement job except the granularity period. Currently, the implementation of this method returns the same values, whatever the chosen job is.
Returns:
List of supported granularity periods in seconds.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTPerformanceMonitorSession.getSupportedGranularities(PerformanceMonitorValue pmValue)

getPerformanceReportInfo

public ReportInfoIterator getPerformanceReportInfo(PerformanceMonitorKey pmKey,
                                                   java.util.Calendar date)
                                            throws java.lang.IllegalArgumentException,
                                                   ObjectNotFoundException
See JVTPerformanceMonitorSession.getPerformanceReportInfo(PerformanceMonitorKey pmKey, java.util.Calendar date).

Specified by:
getPerformanceReportInfo in interface JVTPerformanceMonitorSession
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:
Iterator that contains all measurement result files.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
ObjectNotFoundException - Is raised if the measurement job was not found.
See Also:
JVTPerformanceMonitorSession.getPerformanceReportInfo(PerformanceMonitorKey pmKey, java.util.Calendar date)

getPerformanceMonitorByKey

public PerformanceMonitorValue getPerformanceMonitorByKey(PerformanceMonitorKey pmKey,
                                                          java.lang.String[] attributes)
                                                   throws ObjectNotFoundException,
                                                          java.lang.IllegalArgumentException
See JVTPerformanceMonitorSession.getPerformanceMonitorByKey(PerformanceMonitorKey pmKey, String[] attributes).

Specified by:
getPerformanceMonitorByKey in interface JVTPerformanceMonitorSession
Parameters:
pmKey - Primary key of the measurement job.
attributes - A list of the attributes to be returned.
Returns:
The attribute values for the requested measurement job.
Throws:
ObjectNotFoundException - Is raised if the measurement job was not found.
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTPerformanceMonitorSession.getPerformanceMonitorByKey(PerformanceMonitorKey pmKey, String[] attributes)

getPerformanceMonitorsByKeys

public PerformanceMonitorValueIterator getPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKey,
                                                                    java.lang.String[] attributes)
                                                             throws FinderException,
                                                                    java.lang.IllegalArgumentException
See JVTPerformanceMonitorSession.getPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKey, String[] attributes).

Specified by:
getPerformanceMonitorsByKeys in interface JVTPerformanceMonitorSession
Parameters:
pmKey - Primary keys of the measurement jobs.
attributes - A list of the attributes to be returned.
Returns:
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 if an arguement has a wrong format/value.
See Also:
JVTPerformanceMonitorSession.getPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKey, String[] attributes)

queryPerformanceMonitors

public PerformanceMonitorValueIterator queryPerformanceMonitors(QueryValue query,
                                                                java.lang.String[] attrNames)
                                                         throws java.lang.IllegalArgumentException
See JVTPerformanceMonitorSession.queryPerformanceMonitors(QueryValue query , String[] attrNames).

This implementation supports both QueryPerformanceMonitorValue.QUERY_TYPE and QueryByDNValue.QUERY_TYPE query types.

Specified by:
queryPerformanceMonitors in interface JVTPerformanceMonitorSession
Parameters:
query - Search attributes with values to be match in each measurement job.
attrNames - A list of the attributes to be returned.
Returns:
An 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:
JVTPerformanceMonitorSession.queryPerformanceMonitors(QueryValue query , String[] attrNames)

createPerformanceMonitorByValue

public PerformanceMonitorKey createPerformanceMonitorByValue(PerformanceMonitorValue pmValue)
                                                      throws CreateException,
                                                             DuplicateKeyException,
                                                             java.lang.IllegalArgumentException
See JVTPerformanceMonitorSession.createPerformanceMonitorByValue(PerformanceMonitorValue pmValue).

See also the top description of this page for the supported parameters you can use in your PerformanceMonitorValue object parameter and futher information.

Specified by:
createPerformanceMonitorByValue in interface JVTPerformanceMonitorSession
Parameters:
pmValue - The input parameters to create a measurement job.
Returns:
The primary key of the created measurement job. Null if the job could not be created for some reason.
Throws:
CreateException - Is raised if the measurement job could not be created.
DuplicateKeyException - Is raised if a measurement job cannot be created because a measurement job with the same key already exists.
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTPerformanceMonitorSession.createPerformanceMonitorByValue(PerformanceMonitorValue pmValue)

tryCreatePerformanceMonitorsByValues

public PerformanceMonitorKeyResult[] tryCreatePerformanceMonitorsByValues(PerformanceMonitorValue[] pmValues)
                                                                   throws java.lang.IllegalArgumentException,
                                                                          UnsupportedOperationException,
                                                                          DuplicateKeyException
See JVTPerformanceMonitorSession.tryCreatePerformanceMonitorsByValues(PerformanceMonitorValue[] pmValues).

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

removePerformanceMonitorByKey

public void removePerformanceMonitorByKey(PerformanceMonitorKey pmKey)
                                   throws java.lang.IllegalArgumentException,
                                          ObjectNotFoundException,
                                          RemoveException
See JVTPerformanceMonitorSession.removePerformanceMonitorByKey(PerformanceMonitorKey pmKey).

Specified by:
removePerformanceMonitorByKey in interface JVTPerformanceMonitorSession
Parameters:
pmKey - Primary key of the measurement job to be removed.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
ObjectNotFoundException - Is raised if the measurement job was not found.
RemoveException - Is raied if the measurement job could not be removed.
See Also:
JVTPerformanceMonitorSession.removePerformanceMonitorByKey(PerformanceMonitorKey pmKey)

tryRemovePerformanceMonitorsByKeys

public PerformanceMonitorKeyResult[] tryRemovePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys)
                                                                 throws UnsupportedOperationException,
                                                                        java.lang.IllegalArgumentException
See JVTPerformanceMonitorSession.tryRemovePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys).

Specified by:
tryRemovePerformanceMonitorsByKeys in interface JVTPerformanceMonitorSession
Parameters:
pmKeys - List of primary keys of the measurement jobs to delete.
Returns:
List of measurement jobs that could not be removed else null is returned.
Throws:
UnsupportedOperationException - Is raised if this operation is not supported.
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTPerformanceMonitorSession.tryRemovePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys)

suspendPerformanceMonitorByKey

public void suspendPerformanceMonitorByKey(PerformanceMonitorKey pmKey)
                                    throws UnsupportedOperationException,
                                           ObjectNotFoundException,
                                           java.lang.IllegalArgumentException
See JVTPerformanceMonitorSession.suspendPerformanceMonitorByKey(PerformanceMonitorKey pmKey).

Specified by:
suspendPerformanceMonitorByKey in interface JVTPerformanceMonitorSession
Parameters:
pmKey - Primary key of the measurement job to be suspended.
Throws:
UnsupportedOperationException - Is raised if this operation is not supported.
ObjectNotFoundException - Is raised if the measurement job was not found.
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTPerformanceMonitorSession.suspendPerformanceMonitorByKey(PerformanceMonitorKey pmKey)

trySuspendPerformanceMonitorsByKeys

public PerformanceMonitorKeyResult[] trySuspendPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys)
                                                                  throws java.lang.IllegalArgumentException,
                                                                         UnsupportedOperationException
See JVTPerformanceMonitorSession.trySuspendPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys).

Specified by:
trySuspendPerformanceMonitorsByKeys in interface JVTPerformanceMonitorSession
Parameters:
pmKeys - List of primary keys of the measurement jobs to be suspended.
Returns:
List of measurement jobs that could not be suspended else null is returned.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
UnsupportedOperationException - Is raised if this operation is not supported.
See Also:
JVTPerformanceMonitorSession.trySuspendPerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys)

resumePerformanceMonitorByKey

public void resumePerformanceMonitorByKey(PerformanceMonitorKey pmKey)
                                   throws java.lang.IllegalArgumentException,
                                          UnsupportedOperationException,
                                          ObjectNotFoundException
See JVTPerformanceMonitorSession.resumePerformanceMonitorByKey(PerformanceMonitorKey pmKey).

Specified by:
resumePerformanceMonitorByKey in interface JVTPerformanceMonitorSession
Parameters:
pmKey - Primary key of the measurement job to be resumed.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
UnsupportedOperationException - Is raised if this operation is not supported.
ObjectNotFoundException - Is raised if the measurement job was not found.
See Also:
JVTPerformanceMonitorSession.resumePerformanceMonitorByKey(PerformanceMonitorKey pmKey)

tryResumePerformanceMonitorsByKeys

public PerformanceMonitorKeyResult[] tryResumePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys)
                                                                 throws java.lang.IllegalArgumentException,
                                                                        UnsupportedOperationException
See JVTPerformanceMonitorSession.tryResumePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys).

Specified by:
tryResumePerformanceMonitorsByKeys in interface JVTPerformanceMonitorSession
Parameters:
pmKeys - List of primary keys of the measurement jobs to be resumed.
Returns:
List of measurement jobs that could not be resumed else null is returned.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
UnsupportedOperationException - Is raised if this operation is not supported.
See Also:
JVTPerformanceMonitorSession.tryResumePerformanceMonitorsByKeys(PerformanceMonitorKey[] pmKeys)

getCurrentResultReport

public CurrentResultReport getCurrentResultReport(PerformanceMonitorKey pmKey,
                                                  ReportFormat format)
                                           throws java.lang.IllegalArgumentException,
                                                  UnsupportedOperationException,
                                                  java.lang.IllegalStateException,
                                                  ObjectNotFoundException
See JVTPerformanceMonitorSession.getCurrentResultReport(PerformanceMonitorKey pmKey, ReportFormat format).

This method forces a report generation with immediate data measurement. That means, that if the job is not suspended, a measurement will be done on excactly the same attributes on the same objects/classes the job is caring about. The generated report contains only data for one sampling (one only value for each attribute, one only sampling time).

Specified by:
getCurrentResultReport in interface JVTPerformanceMonitorSession
Parameters:
pmKey - Primary key of the measurement job.
format - Defines the report format of the current measurement values.
Returns:
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 an arguement has a wrong format/value.
UnsupportedOperationException - Is raised if this operation is not supported.
java.lang.IllegalStateException - Is raised if the measurement job is suspended.
ObjectNotFoundException - Is raised if the measurement job was not found.
See Also:
JVTPerformanceMonitorSession.getCurrentResultReport(PerformanceMonitorKey pmKey, ReportFormat format)

makeManagedEntityValue

public ManagedEntityValue makeManagedEntityValue(java.lang.String valueType)
                                          throws java.lang.IllegalArgumentException
See JVTSession.makeManagedEntityValue(String valueType).

This implementation supports both PerformanceMonitorByObjectsValue.VALUE_TYPE and PerformanceMonitorByClassesValue.VALUE_TYPE job types.

Specified by:
makeManagedEntityValue in interface JVTSession
Parameters:
valueType - Fully qualified name of the leaf managed entity value interface. It can be:
  • PerformanceMonitorByObjectsValue
  • PerformanceMonitorByClassesValue
Returns:
Managed entity value object of the specified type.
Throws:
java.lang.IllegalArgumentException - Is raised if an arguement has a wrong format/value.
See Also:
JVTSession.makeManagedEntityValue(String valueType)

queryManagedEntities

public ManagedEntityValueIterator queryManagedEntities(QueryValue query,
                                                       java.lang.String[] attrNames)
                                                throws java.lang.IllegalArgumentException
See JVTSession.queryManagedEntities(QueryValue query, String[] attrNames).

This implementation supports both QueryPerformanceMonitorValue.QUERY_TYPE and QueryByDNValue.QUERY_TYPE query types.

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 - Is raised if an arguement has a wrong format/value.
See Also:
JVTSession.queryManagedEntities(QueryValue query, String[] attrNames)

getNotificationInfo

public javax.management.MBeanNotificationInfo[] getNotificationInfo()
Get informatrion about the notification sent by this factory.

Specified by:
getNotificationInfo in interface javax.management.NotificationBroadcaster
Returns:
An object containing the name of the Java class of the notification and the notification types sent by this notification broadcaster.

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
Parameters:
notification - The notification that arrived.
handback - The cookie used by the notification emitter.

putJob

public void putJob(java.lang.String key,
                   PerformanceMonitorJob aPerformanceMonitorJob)
Put a job in the job list.

This method is public for other packages access purpose. However, no factory client has to call this method.

Parameters:
key - Primary key of the job to store.
aPerformanceMonitorJob - The PerformanceMonitorJob object to be stored in the job list.
See Also:
PerformanceMonitorJob

getJob

public PerformanceMonitorJob getJob(java.lang.String key)
Get a job from the job list.

This method is public for other packages access purpose. However, no factory client has to call this method.

Parameters:
key - Primary key of the job to get.
Returns:
The PerformanceMonitorJob object asked. Null is returned if the job not found.
See Also:
PerformanceMonitorJob

getJobs

public java.util.Enumeration getJobs()
Get all jobs from the job list.

This method is public for other packages access purpose. However, no factory client has to call this method.

Returns:
The jobs of the list.

removeJob

public void removeJob(java.lang.String key)
Remove a job from the job list.

This method is public for other packages access purpose. However, no factory client has to call this method.

Parameters:
key - Primary key of the job to remove.

getAttribute

public java.lang.Object getAttribute(java.lang.String attribute_name)
                              throws javax.management.AttributeNotFoundException,
                                     javax.management.MBeanException,
                                     javax.management.ReflectionException
See javax.management.DynamicMBean.getAttribute(String attribute_name)

Specified by:
getAttribute in interface javax.management.DynamicMBean
Parameters:
attribute_name - The name of the attribute to be retrieved.
Returns:
The value of the attribute retrieved.
Throws:
javax.management.AttributeNotFoundException - Is raised if attribute attribute_name is not found.
javax.management.MBeanException - Wraps a java.lang.Exception thrown by the MBean's getter.
javax.management.ReflectionException - Wraps a java.lang.Exception thrown while trying to invoke the getter.
See Also:
DynamicMBean.getAttribute(String attribute_name)

setAttribute

public void setAttribute(javax.management.Attribute attribute)
                  throws javax.management.AttributeNotFoundException,
                         javax.management.InvalidAttributeValueException,
                         javax.management.MBeanException,
                         javax.management.ReflectionException
See javax.management.DynamicMBean.setAttribute(Attribute attribute)

Specified by:
setAttribute in interface javax.management.DynamicMBean
Parameters:
attribute - The identification of the attribute to be set and the value it is to be set to.
Throws:
javax.management.AttributeNotFoundException - Is raised if attribute attribute is not found.
javax.management.InvalidAttributeValueException - Is raised if attribute has a wrong value.
javax.management.MBeanException - raps a java.lang.Exception thrown by the MBean's setter.
javax.management.ReflectionException - Wraps a java.lang.Exception thrown while trying to invoke the setter.
See Also:
DynamicMBean.setAttribute(Attribute attribute)

getAttributes

public javax.management.AttributeList getAttributes(java.lang.String[] attributeNames)
See javax.management.DynamicMBean.getAttributes(String[] attributeNames)

Specified by:
getAttributes in interface javax.management.DynamicMBean
Parameters:
attributeNames - A list of the attributes to be retrieved.
Returns:
The list of attributes retrieved.
See Also:
DynamicMBean.getAttributes(String[] attributeNames)

setAttributes

public javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
See javax.management.DynamicMBean.setAttributes(AttributeList attributes)

Specified by:
setAttributes in interface javax.management.DynamicMBean
Parameters:
attributes - A list of attributes: The identification of the attributes to be set and the values they are to be set to.
Returns:
The list of attributes that were set, with their new values.
See Also:
DynamicMBean.setAttributes(AttributeList attributes)

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
See javax.management.DynamicMBean.invoke(String operationName, Object[] params, String[] signature)

Specified by:
invoke in interface javax.management.DynamicMBean
Parameters:
operationName - The name of the action to be invoked.
params - An array containing the parameters to be set when the action is invoked.
signature - An array containing the signature of the action. The class objects will be loaded through the same class loader as the one used for loading the MBean on which the action is invoked.
Returns:
The object returned by the action, which represents the result of invoking the action on the MBean specified.
Throws:
javax.management.MBeanException - Wraps a java.lang.Exception thrown by the MBean's invoked method.
javax.management.ReflectionException - Wraps a java.lang.Exception thrown while trying to invoke the method
See Also:
DynamicMBean.invoke(String operationName, Object[] params, String[] signature)

getMBeanInfo

public javax.management.MBeanInfo getMBeanInfo()
See javax.management.DynamicMBean.getMBeanInfo()

Specified by:
getMBeanInfo in interface javax.management.DynamicMBean
Returns:
An instance of MBeanInfo allowing all attributes and actions exposed by this Dynamic MBean to be retrieved.
See Also:
DynamicMBean.getMBeanInfo()

postDeregister

public void postDeregister()
See javax.management.MBeanRegistration.postDeregister()

Specified by:
postDeregister in interface javax.management.MBeanRegistration
See Also:
MBeanRegistration.postDeregister()

postRegister

public void postRegister(java.lang.Boolean registrationDone)
See javax.management.MBeanRegistration.postRegister(Boolean registrationDone)

Specified by:
postRegister in interface javax.management.MBeanRegistration
Parameters:
registrationDone - Indicates whether or not the MBean has been successfully registered in the MBean server. The value false means that the registration phase has failed.
See Also:
MBeanRegistration.postRegister(Boolean registrationDone)

preDeregister

public void preDeregister()
See javax.management.MBeanRegistration.preDeregister()

Specified by:
preDeregister in interface javax.management.MBeanRegistration
See Also:
MBeanRegistration.preDeregister()

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 PM_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 PerformanceGenericModel 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 PM_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