External Monitoring Interface (EMI)

The External Monitoring Interface (EMI) is a tool that is used for monitoring the technical status of the AE. The EMI uses JMX technology and provides MBeans for all monitored components of the AE system. You can use EMI instead of SNMP. JMX represents start-of-the-art Java technology and supplies tools for managing and monitoring applications, system objects, devices, and service-oriented networks. For more information, see SNMP Support.

As of version 21.0, the Automation Engine and the Java components communicate using TLS/SSL. These components establish a connection with the Java communication process (JCP), which uses trusted certificates to prove its identity to other communication partners.

You can use the trustedCertFolder= parameter in the respective configuration file to define the path to the folder where the trusted certificates are stored. Otherwise, the certificates should be installed in the Java trust store. For more information, see Securing Connections to the AE (TLS/SSL).

This page includes the following:

General Information

The main idea for this JMX-based solution is its possible use as a standalone application. Monitoring can be done with each JMX-based client, for example, with Java Mission Control, the free JMX console. This solution also enables an easy integration with monitoring environments that support JMX, for example, HP OpenView or IBM Tivoli.

Compared to SNMP, JMX provides the following additional advantages:

  • JMX is based on a secured network protocol (TCP, instead of UDP)
  • JMX can use modern security mechanisms such as TLS, Proxy
  • The JMX solution allows interaction with the AE system, thus enabling actions such as starting components, deactivating or canceling tasks.

What is JMX

JMX: The Java Management Extension, a set of specifications for application and network management in the Java development and application environment.

MBean: JMX facilitates the centralized management of managed objects (called MBeans). It acts as Java wrappers for applications, services, components and devices in a distributed network.

MBean Server: The spine of the JMX architectural frame. It allows server components to plug in and discover all manageable objects.

Details

The EMI solution gathers information from the AE system and makes it available to JMX clients through Java Beans. As the MBeans only represent information from the AE system, these contents (the MBeans) are write protected. The original status and information can only be modified within the AE system.

The EMI uses two types of monitoring:

  • Active: This type is used for notifications. A notification is a JMX functionality. It enables MBeans to generate notifications such as for signal state changes or detecting problems.
  • Proactive: This type allows you to query the status of MBeans proactively.

On start, the EMI solution connects to an AE system and logs in to a defined client with a defined user. Once connected, EMI exports certain information from the AE system for monitoring purposes.

Monitoring

The EMI solution allows you to monitor selected components of the Administration perspective of the AE. These components can be Usage, Clients, Automation Engine, Queues, Users, and so on. You can also monitor activities and messages such as errors and warnings.

The components are grouped according to their names (side key) and include the actual MBeans. For example, all Agents are grouped in the side key Agents, all Users are grouped in the side key Users. For each existing side key, there is an associated MBean of the same name that has controlling functions. Controlling MBeans do not necessarily have an associated side key.

Controlling MBeans

Controlling MBeans provide general information about MBean groups. They inform about the name of a side key, the number of elements that are provided in a side key, or the corresponding polling interval.

Extra controlling MBeans are dedicated to the status of the EMI itself and the MessageBox which sends notifications. The MessageBox represents the message window of the AE system where system messages are displayed.

Controlling MBean MessageBox

You can use the controlling MBean MessageBox to subscribe to messages that should be shown in the message window. Do so by activating the Subscribe check box on the Notifications tab of In the Java Mission Control Center.

Each notification is a single message that is sent from the AE. It is a record that contains the timestamp, severity type, the message sequence number, and the message text.
In the field User Data, the record shows the raw data of the message: the message sequence number and its inserted texts. The message number identifies the message text in the MSL file and the inserted texts are used for the placeholders in the message text.

The script statement :SEND_MSG generates messages in the AE that are broadcasted to the MessageBox MBean as notifications. Therefore, these messages can be monitored through the EMI too.

Monitoring Activities

(Optional) You can enable the monitoring of activities with the tasks= parameter in the INI file of EMI (see External Monitoring Interface). If this parameter is set to zero, activities are not monitored. If this parameter is greater than zero, it specifies the interval where tasks are monitored. Only tasks that match the task filter criteria are considered. The task filter criteria are provided in the TASKS section of the configuration file.

Example

If tasks=20, MBeans are updated every 20 seconds. Affected are the MBeans of each activity that matches the filter criteria that are provided in the TASKS section of the configuration file.

Connection Failover Behavior

When the connection to the AE system is lost, the EMI solution automatically tries to reconnect to the AE system by selecting one of the available communication processes.

  • When connections to the AE system are established or lost, the EMI MBean is notified and updated.
  • Also, when the connection to the AE system is lost, all MBeans (except EMI and MessageBox) are removed from the server.
  • After a connection has been re-established, the MBeans will be rebuilt automatically.

Requirements

  • Java SE version 1.7 or later.

MBeans provided

  • AgentBean
    Represents the Agent object on the system
  • CacheBean
    Represents the statistics information for a single system cache instance
  • ClientBean
    Represents the monitored client
  • With one instance of the EMI, one AE client can be monitored at a time

  • CollectionBean
    Describes several MBeans registered as one group on the MBeanServer. For example, Users represents a collection of UserBeans.
  • EMIBean
    Describes the status of the EMI solution, provides information about the connection and the connection status and displays this information in its Notifications tab.
  • DatabaseBean
    Represents the DB information used in an AE system. The MBean instance will have the same name as the DB on the DB system.
  • MQEntryBean
    Represents a single message queue table used by the AE for message flow. The attributes of this MBean can be used for the basic KPI of the AE.
  • QueueBean
    Represents the Queue object
  • ServerBean
    Represents an AE Server instance, equivalent to the Automation Engine entry in the Administration perspective
  • WorkloadBean
    Describes one row in the System Workload Table
  • UserBean
    Represents an instance of one user present in the AE system

Installation

  1. Install the files:

    1. Install Java SE on the host system.
    2. Unpack the delivered files to a directory of your choice.
    3. Adjust the relevant parameters in the INI file. For more information, see External Monitoring Interface INI file.
  2. Start the EMI solution

    The following start parameters are available:

    • -IPath and File name

      Path and name of the INI file for the Java loader

      Note: It is mandatory to use double quotations for path indications that include blanks.

    To start the EMI solution, use the command shown below. In case you stored the INI file in a different location, you can define a path here:

    java -jar emi.jar -i[path/to/ini/file/emi.ini]

Upon starting, the EMI checks if its INI file has a JCPLIST section and if the section is populated with a list of JCPs available. If it does, the EMI selects one of the JCPs listed at random and connects to it. However, if the INI file of the EMI does not have a JCPLIST section or if the section is not populated, the EMI uses to the default JCP connection as defined in the connection= parameter of the INI file.

Once the EMI is connected, it periodically tries to get the JCP list from the Automation Engine. Using this information, the EMI automatically updates the JCPLIST section in its INI file.

Testing

  1. Install the Java JDK
  2. Start Java Mission Control by using jmc.exe which you find in JDK_HOME\bin\
  3. Find the EMI solution, …\emi.jar and its process MBean Server.
  4. In the context menu click Start JMX Console.
  5. Select the tab MBean Browser so that you are able to see all the Beans and attributes.
  6. In the group AUTOMIC you will find the AE system monitored and its Beans which are exported by EMI.
  7. Now you can browse and monitor the Beans (data) where each of them will be updated with the next polling interval configured in the INI file.
    You can also click on MessageBox and Subscribe for notifications. After that you will receive the system messages automatically, without polling.

See also: