next up previous contents
Next: List of Figures Up: Integration verteilter JMX- und Previous: Informationsmodell   Contents

IDL Struktur des Informationsmodells

#ifndef __management

#define __management

MODULE management {

 

TYPEDEF sequence< any > sequenceany;

TYPEDEF sequence< string > sequencestring;

TYPEDEF sequence< octet > sequenceoctet;

 

/* Describes a notification emitted by an MBean. */

STRUCT JMX_MBeanNotificationInfo {

  /* The name of the feature. */

  string name;

  /* The human readable description of the feature. */

  string description;   

  /* The type of the notification. */

  sequencestring notifTypes;

};

 

/* Describes an argument of an operation exposed by an MBean. */

STRUCT JMX_MBeanParameterInfo {

  /* The name of the feature. */

  string name;

  /* The human readable description of the feature. */

  string description;   

  /* The type or class name of the data. */

  string type;

};

 

TYPEDEF sequence< management::JMX_MBeanParameterInfo >

 sequencemanagement__JMX_MBeanParameterInfo;

 

/* Enumeration of impacttypes from MBeanOperationInfo: */

ENUM impactTypes{ INFO, ACTION, ACTION_INFO, UNKNOWN };

 

/* Describes a management operation exposed by an MBean. */

STRUCT JMX_MBeanOperationInfo {

  /* The name of the feature. */

  string name;

  /* The human readable description of the feature. */

  string description;

  /* The method's return value. */

  string returnType;

  /* The signature of the method, that is, the class names of the arguments. */

  sequencemanagement__JMX_MBeanParameterInfo signature;

  /* Returns the impact of the method */

  impactTypes impact;

};

 

/* Describes an MBean attribute exposed for management. */

STRUCT JMX_MBeanAttributeInfo {

  /* The name of the feature. */

  string name;

  /* The human readable description of the feature. */

  string description;

  /* The actual attribute type. */

  string attributeType;

  /* The attribute write right. */

  boolean isWrite;

  /* The attribute read right. */

  boolean isRead;

  /* Indicates if this method is a "is" */

  boolean is;

};         

 

/* Describes a constructor exposed by an MBean. */

STRUCT JMX_MBeanConstructorInfo {

  /* The name of the feature. */

  string name;

  /* The human readable description of the feature. */

  string description;  

  /* The signature of the method, that is, the class names of the arguments. */

  sequencemanagement__JMX_MBeanParameterInfo signature;

};

 

TYPEDEF sequence< management::JMX_MBeanNotificationInfo >

  sequencemanagement__JMX_MBeanNotificationInfo;

TYPEDEF sequence< management::JMX_MBeanConstructorInfo >

  sequencemanagement__JMX_MBeanConstructorInfo;

TYPEDEF sequence< management::JMX_MBeanOperationInfo >

  sequencemanagement__JMX_MBeanOperationInfo;

TYPEDEF sequence< management::JMX_MBeanAttributeInfo >

  sequencemanagement__JMX_MBeanAttributeInfo;

 

/* Describes the management interface exposed by an MBean;

   that is, the set of attributes and operations which are available

   for management operations. */

STRUCT JMX_MBeanInfo {

  /* The human readable description of the class. */

  string description;

  /* The MBean qualified name. */

  string className;

  /* The MBean attribute descriptors. */

  sequencemanagement__JMX_MBeanAttributeInfo attributes;

  /* The MBean operation descriptors. */

  sequencemanagement__JMX_MBeanOperationInfo operations;

  /* The MBean constructor descriptors. */

  sequencemanagement__JMX_MBeanConstructorInfo constructors;

  /* The MBean notification descriptors. */

  sequencemanagement__JMX_MBeanNotificationInfo notifications;

};

 

INTERFACE JMX_NotificationFilter;

INTERFACE JMX_NotificationListener;

 

/* Represents the object name of an MBean. */

VALUETYPE JMX_ObjectName {

  /* Domain name. */

  public string domain;

  /* Contains the properties in the same order

   as the user specified them, if the constructor

  ObjectName(String) was used to create this object. */

  public string propertyListString;

  /* Compares the current object name with another object name. */

  boolean equals( in management::JMX_ObjectName _object);

  /* Returns a string representation of the object name. */

  string toString();

  /* Instantiate JMX_ObjectName */             

  factory create(in string newDomain, in string newProp);

};

 

/* Used to represent the object name of an MBean and its class name.

   If the MBean is a Dynamic MBean the class name should be retrieved

   from the MBeanInfo it provides. */

VALUETYPE JMX_ObjectInstance {

  /* Object name. */

  public management::JMX_ObjectName objectName;

  /* Class name. */

  public string className;

  /* Compares the current object instance with another object instance. */

  boolean equals( in management::JMX_ObjectInstance _object);

  /* Instantiate JMX_ObjectInstance */         

  factory create(in management::JMX_ObjectName newOName,

                 in string newClassName);

};

 

/* Represents an MBean attribute by associating its name with its value.

   The MBean server and other objects use this class to get and

   set attributes values. */

VALUETYPE JMX_Attribute {

  /* Attribute name. */

  public string name;

  /* Value */

  public any value;

  /* Compares the current Attribute Object with another Attribute Object. */

  boolean equals( in management::JMX_Attribute _object); 

  /* Instantiate JMX_ObjectInstance */         

  factory create(in string newName, in any newValue);

};

 

TYPEDEF sequence< management::JMX_ObjectName >

  sequencemanagement__JMX_ObjectName;

TYPEDEF sequence< management::JMX_ObjectInstance >

  sequencemanagement__JMX_ObjectInstance;

TYPEDEF sequence< management::JMX_Attribute >

  sequencemanagement__JMX_Attribute;

 

/* The Notification class represents a notification emitted by an MBean.

   It contains a reference to the source MBean: if the notification has been

   forwarded through the MBean server, this is the object name of the MBean.

   If the listener has registered directly with the MBean, this is a direct

   reference to the MBean. */

STRUCT JMX_Notification {

  /* The notification type. A string expressed in a dot notation similar to Java

     properties. An example of a notification type is network.alarm.router */

  string type;

  /* The notification sequence number. A serial number which identify particular

     instance of notification in the context of the notification source. */

  long long sequenceNumber;

  /* The notification timestamp. Indicating when the notification was generated */

  long long timeStamp;

  /* The notification user data.  Used for whatever other data the notification

     source wishes to communicate to its consumers */

  any userData;

  /* The notification message. */

  string message;

  /* The object on which the notification initially occurred. */

  management::JMX_ObjectName source;

};

 

/* To be implemented by a any class acting as a notification filter. It allows

   a registered notification listener to filter the notifications of interest. */

INTERFACE JMX_NotificationFilter {

  /* Invoked before sending the specified notification to the listener. */

  boolean isNotificationEnabled( in management::JMX_Notification notification);

};

 

/* Should be implemented by an object that wants to receive notifications. */

INTERFACE JMX_NotificationListener {

  /* Invoked when a JMX notification occurs.*/

  void handleNotification( in management::JMX_Notification notification,

                           in any handback);

};

 

/* Exception for IIOPAdaptor-Exceptions occuring in Adaptor */

EXCEPTION JMX_IIOPAdaptorException {

  string message;

  string javaException;

};      

 

/* Represents exceptions thrown in the MBean server when using the

   java.lang.reflect classes to invoke methods on MBeans. It "wraps" the

   actual java.lang.Exception thrown. */

EXCEPTION JMX_ReflectionException {

  string message;

  string javaException;

};

 

/* Represents "user defined" exceptions thrown by MBean methods

   in the agent. It "wraps" the actual "user defined" exception thrown.

   This exception will be built by the MBeanServer when a call to an

   MBean method results in an unknown exception. */

EXCEPTION JMX_MBeanException {

  string message;

  string javaException;

};

 

/* Wraps exceptions thrown by the preRegister(), preDeregister() methods */

EXCEPTION JMX_MBeanRegistrationException {

  string message;

  string javaException;

};

 

/* Represents exceptions thrown in the MBean server when performing

   operations on MBeans. */

EXCEPTION JMX_OperationsException {

  string message;

};

 

/* The specified MBean does not exist in the repository. */

EXCEPTION JMX_InstanceNotFoundException {

  string message;

};

 

/* The specified MBean listener does not exist in the repository. */

EXCEPTION JMX_ListenerNotFoundException {

  string message;

};

 

/* An exception occurred during the introspection of an MBean. */

EXCEPTION JMX_IntrospectionException {

  string message;

};

 

/* The specified attribute does not exist or cannot be retrieved. */

EXCEPTION JMX_AttributeNotFoundException {

  string message;

};

 

/* The MBean is already registered in the repository. */

EXCEPTION JMX_InstanceAlreadyExistsException {

  string message;

};

 

/* Exception which occurs when trying to register an  object in

   the MBean server that is not a JMX compliant MBean. */

EXCEPTION JMX_NotCompliantMBeanException {

  string message;

};

 

/* The value specified is not valid for the attribute. */

EXCEPTION JMX_InvalidAttributeValueException {

  string message;

};

 

/* This is the interface for MBean manipulation on the agent side. It

   contains the methods necessary for the creation, registration, and

   deletion of MBeans as well as the access methods for registered MBeans.

   This is the core component of the JMX infrastructure.

   Every MBean which is added to the MBean server becomes manageable:

   its attributes and operations become remotely accessible through the

   connectors/adaptors connected to that MBean server. A Java object cannot

   be registered in the MBean server unless it is a JMX compliant MBean.*/

INTERFACE JMX_MBeanServer {

   

  /* Instantiates an object using the list of all class loaders registered

     in the MBean server. The object's class should have a public constructor.

     It returns a reference to the newly created object.

     The newly created object is not registered in the MBean server. */

  any instantiate1( in string className)

    raises(JMX_ReflectionException,

           JMX_MBeanException,

           JMX_IIOPAdaptorException);

 

  /* Instantiates an object using the class Loader specified by its ObjectName.

     If the loader name is null, the ClassLoader that loaded the MBean Server

     will be used. The object's class should have a public constructor.

     It returns a reference to the newly created object.

     The newly created object is not registered in the MBean server. */

  any instantiate2( in string className,

                    in management::JMX_ObjectName loaderName)

    raises(JMX_ReflectionException,

           JMX_MBeanException,

           JMX_InstanceNotFoundException,

           JMX_IIOPAdaptorException);

   

  /* Instantiates an object using the list of all class loaders registered

     in the MBean server. The object's class should have a public constructor.

     The call returns a reference to the newly created object.

     The newly created object is not registered in the MBean server. */

  any instantiate3( in string className,

                    in sequenceany params,

                    in sequencestring signature)

    raises(JMX_ReflectionException,

           JMX_MBeanException,

           JMX_IIOPAdaptorException);

 

  /* Instantiates an object. The class loader to be used is identified by its object

     name. If the object name of the loader is null, the ClassLoader that loaded the

     MBean server will be used. The object's class should have a public constructor.

     The call returns a reference to the newly created object.

     The newly created object is not registered in the MBean server. */

  any instantiate4( in string className,

                    in management::JMX_ObjectName loaderName,

                    in sequenceany params,

                    in sequencestring signature)

    raises(JMX_ReflectionException,

           JMX_MBeanException,

           JMX_InstanceNotFoundException,

           JMX_IIOPAdaptorException);

   

  /* Instantiates and registers an MBean in the MBean server.

     The MBean server will use the DefaultLoaderRepository

     to load the class of the MBean. An object name is associated

     to the MBean. If the object name given is null, the MBean

     can automatically provide its own name by implementing the

     MBeanRegistration interface. The call returns an ObjectInstance

     object representing the newly created MBean. */

  management::JMX_ObjectInstance createMBean1( in string className,

                                               in management::JMX_ObjectName name)

    raises(JMX_ReflectionException,

           JMX_InstanceAlreadyExistsException,

           JMX_MBeanRegistrationException,

           JMX_MBeanException,

           JMX_NotCompliantMBeanException,

           JMX_IIOPAdaptorException);

   

  /* Instantiates and registers an MBean in the MBean server.

     The class loader to be used is identified by its object  name.

     An object name is associated to the MBean.If the object name

     of the loader is null, the ClassLoader that loaded the MBean server

     will be used. If the object name given is null, the MBean

     can automatically provide its own name by implementing the

     MBeanRegistration interface. The call returns an ObjectInstance

     object representing the newly created MBean. */

  management::JMX_ObjectInstance createMBean2( in string className,

                                               in management::JMX_ObjectName name,

                                               in management::JMX_ObjectName loaderName)

    raises(JMX_ReflectionException,

           JMX_InstanceAlreadyExistsException,

           JMX_MBeanRegistrationException,

           JMX_MBeanException,

           JMX_NotCompliantMBeanException,

           JMX_InstanceNotFoundException,

           JMX_IIOPAdaptorException);

 

  /* Instantiates and registers an MBean in the MBean server.

     The MBean server will use the Default Loader Repository to load

     the class of the MBean. An object name is associated to the MBean.

     If the object name given is null, the MBean

     can automatically provide its own name by implementing the

     MBeanRegistration interface. The call returns an ObjectInstance

     object representing the newly created MBean. */

  management::JMX_ObjectInstance createMBean3( in string className,

                                               in management::JMX_ObjectName name,

                                               in sequenceany params,

                                               in sequencestring signature)

    raises(JMX_ReflectionException,

           JMX_InstanceAlreadyExistsException,

           JMX_MBeanRegistrationException,

           JMX_MBeanException,

           JMX_NotCompliantMBeanException,

           JMX_IIOPAdaptorException);

 

  /* Instantiates and registers an MBean in the MBean server.

     The class loader to be used is identified by its object name.

     An object name is associated to the MBean. If the object name

     of the loader is not specified, the ClassLoader that loaded

     the MBean server will be used. If the object name given is null,

     the MBean can automatically provide its own name by implementing the

     MBeanRegistration interface. The call returns an ObjectInstance

     object representing the newly created MBean. */

  management::JMX_ObjectInstance createMBean4( in string className,

                                               in management::JMX_ObjectName name,

                                               in management::JMX_ObjectName loaderName,

                                               in sequenceany params,

                                               in sequencestring signature)

    raises(JMX_ReflectionException,

           JMX_InstanceAlreadyExistsException,

           JMX_MBeanRegistrationException,

           JMX_MBeanException,

           JMX_NotCompliantMBeanException,

           JMX_InstanceNotFoundException,

           JMX_IIOPAdaptorException);

 

  /* Registers a pre-existing object as an MBean with the MBean server.

     If the object name given is null, the MBean

     can automatically provide its own name by implementing the

     MBeanRegistration interface. The call returns an ObjectInstance

     object representing the newly created MBean. */

  management::JMX_ObjectInstance registerMBean( in any _object,

                                                in management::JMX_ObjectName name)

    raises(JMX_InstanceAlreadyExistsException,

           JMX_MBeanRegistrationException,

           JMX_NotCompliantMBeanException,

           JMX_IIOPAdaptorException);

 

  /* De-registers an MBean from the MBean server. The MBean is identified by

     its object name. Once the method has been invoked, the MBean may

     no longer be accessed by its object name. */

  void unregisterMBean( in management::JMX_ObjectName name)

    raises(JMX_InstanceNotFoundException,

           JMX_MBeanRegistrationException,

           JMX_IIOPAdaptorException);

 

  /* Gets the ObjectInstance for a given MBean registered with the MBean server. */

  management::JMX_ObjectInstance getObjectInstance(

                                                   in management::JMX_ObjectName name)

    raises(JMX_InstanceNotFoundException,

           JMX_IIOPAdaptorException);

 

  /* Gets MBeans controlled by the MBean server. This method allows any

     of the following to be obtained: All MBeans, a set of MBeans specified

     by pattern matching on the ObjectName and/or a Query expression, a

     specific MBean. When the object name is null or no domain and key

     properties are specified, all objects are to be selected. It returns the

     set of ObjectInstance objects (containing the ObjectName and the

     Java Class name) for the selected MBeans. */

  sequencemanagement__JMX_ObjectInstance queryMBeans(

                                                     in management::JMX_ObjectName name,

                                                     in any query)

    raises (JMX_IIOPAdaptorException);

 

  /* Gets the names of MBeans controlled by the MBean server. This method

     enables any of the following to be obtained: The names of all MBeans,

     the names of a set of MBeans specified by pattern matching on the

     ObjectName and/or a Query expression, a specific MBean name (equivalent to

     testing whether an MBean is registered). When the object name is

     null or no domain and key properties are specified, all objects are selected.

     It returns the set of ObjectNames for the MBeans selected. */

  sequencemanagement__JMX_ObjectName queryNames(

                                                in management::JMX_ObjectName name,

                                                in any query)

    raises (JMX_IIOPAdaptorException);

 

  /* Checks whether an MBean, identified by its object name, is already

     registered with the MBean server. */

  boolean isRegistered( in management::JMX_ObjectName name)

    raises (JMX_IIOPAdaptorException);

 

  /* Returns the number of MBeans registered in the MBean server. */

  long getMBeanCount();

 

  /* Gets the value of a specific attribute of a named MBean. The MBean

     is identified by its object name. */

  any getAttribute( in management::JMX_ObjectName name,  in string _attribute)

    raises(JMX_MBeanException,

           JMX_AttributeNotFoundException,

           JMX_InstanceNotFoundException,

           JMX_ReflectionException,

           JMX_IIOPAdaptorException);

 

  /* Enables the values of several attributes of a named MBean. The MBean

     is identified by its object name. */

  sequencemanagement__JMX_Attribute getAttributes(

                                                  in management::JMX_ObjectName name,

                                                  in sequencestring attributes)

    raises(JMX_InstanceNotFoundException,

           JMX_ReflectionException,

           JMX_IIOPAdaptorException);

 

  /* Sets the value of a specific attribute of a named MBean. The MBean

     is identified by its object name. */

  void setAttribute( in management::JMX_ObjectName name,

                     in management::JMX_Attribute _attribute)

    raises(JMX_InstanceNotFoundException,

           JMX_AttributeNotFoundException,

           JMX_InvalidAttributeValueException,

           JMX_MBeanException,

           JMX_ReflectionException,

           JMX_IIOPAdaptorException);

 

  /* Sets the values of several attributes of a named MBean. The MBean is

     identified by its object name. */

  sequencemanagement__JMX_Attribute setAttributes(

                                                  in management::JMX_ObjectName name,

                                                  in sequencemanagement__JMX_Attribute attributes)

    raises(JMX_InstanceNotFoundException,

           JMX_ReflectionException,

           JMX_IIOPAdaptorException);

 

  /* Invokes an operation on an MBean. */

  any invoke( in management::JMX_ObjectName name,

              in string operationName,

              in sequenceany params,

              in sequencestring signature)

    raises(JMX_InstanceNotFoundException,

           JMX_MBeanException,

           JMX_ReflectionException,

           JMX_IIOPAdaptorException);

 

  /* Returns the default domain used for naming the MBean.

     The default domain name is used as the domain part in the

     ObjectName of MBeans if no domain is specified by the user. */

  string getDefaultDomain();

 

  /* Enables to add a listener to a registered MBean. */

  void addNotificationListener1( in management::JMX_ObjectName name,

                                 in management::JMX_NotificationListener listener,

                                 in management::JMX_NotificationFilter filter,

                                 in any handback)

    raises(JMX_InstanceNotFoundException,

           JMX_IIOPAdaptorException);

 

  /* Enables to add a listener to a registered MBean. */

  void addNotificationListener2( in management::JMX_ObjectName name,

                                 in management::JMX_ObjectName listener, 

                                 in management::JMX_NotificationFilter filter,

                                 in any handback)

    raises(JMX_InstanceNotFoundException,

           JMX_IIOPAdaptorException);

 

  /* Enables to remove a listener from a registered MBean. */

  void removeNotificationListener1( in management::JMX_ObjectName name,

                                    in management::JMX_NotificationListener listener)

    raises(JMX_InstanceNotFoundException,

           JMX_ListenerNotFoundException,

           JMX_IIOPAdaptorException);

 

  /* Enables to remove a listener from a registered MBean. */

  void removeNotificationListener2( in management::JMX_ObjectName name, 

                                    in management::JMX_ObjectName listener)

    raises(JMX_InstanceNotFoundException,

           JMX_ListenerNotFoundException,

           JMX_IIOPAdaptorException);

 

  /* This method discovers the attributes and operations that an MBean exposes

     for management. */

  management::JMX_MBeanInfo getMBeanInfo( in management::JMX_ObjectName name)

    raises(JMX_InstanceNotFoundException,

           JMX_IntrospectionException,

           JMX_ReflectionException,

           JMX_IIOPAdaptorException);

 

  /* Returns true if the MBean specified is an instance of the specified class,

     false otherwise. */

  boolean isInstanceOf( in management::JMX_ObjectName name,

                        in string className)

    raises(JMX_InstanceNotFoundException,

           JMX_IIOPAdaptorException);

 

  /* De-serializes a byte array in the context of the class loader

     of an MBean. */

  any deserialize1( in management::JMX_ObjectName name,

                    in sequenceoctet data)

    raises(JMX_InstanceNotFoundException,

           JMX_OperationsException,

           JMX_IIOPAdaptorException);

 

  /* De-serializes a byte array in the context of a given MBean class loader.

     The class loader is the one that loaded the class with name "className". */

  any deserialize2( in string className,

                    in sequenceoctet data)

    raises(JMX_OperationsException,

           JMX_ReflectionException,

           JMX_IIOPAdaptorException);

 

  /* De-serializes a byte array in the context of a given MBean class loader.

     The class loader is the one that loaded the class with name "className".

     The name of the class loader to be used for loading the specified class

     is specified. If null, the MBean Server's class loader will be used. */

  any deserialize3( in string className,

                    in management::JMX_ObjectName loaderName,

                    in sequenceoctet data)

    raises(JMX_InstanceNotFoundException,

           JMX_OperationsException,

           JMX_ReflectionException,

           JMX_IIOPAdaptorException);

 

  /* Adaptorspecific Operations */

  string getProtocol();

  string getAddress();

  long getPort();

  void setPort(in long newPort);

  boolean isConnected();

  void stop();

};

 

};

#endif


next up previous contents
Next: List of Figures Up: Integration verteilter JMX- und Previous: Informationsmodell   Contents
root 2002-08-11