IBM Tivoli Directory Integrator
The JMX Connector uses the JMX 1.2 and JMX Remote API 1.0 specifications.
It only uses standard JMX features.
The JMX Connector can listen to, and report, either local or remote
JMX notifications, depending on how it is configured.
When the AssemblyLine starts the JMX Connector is initialized.
On initialization, the Connector determines whether it will report
local or remote notifications based on the Connector parameters (the
Connector cannot report both local and remote notifications in a single
run). Then, the Connector gets either a local or a remote reference
to the respective MBean Server and registers for the desired JMX notifications
specified in a Connector parameter.
In the getNextEntry() method, the Connector blocks the
AssemblyLine while waiting for notifications. When a notification
is received, the getNextEntry() method of the Connector
returns an Entry (which contains the notification details) to the
AssemblyLine.
Notifications that are received between successive getNextEntry() calls
are buffered, so that no notifications are lost. If there are buffered
notifications when the getNextEntry() is called, then the
Connector returns the first buffered notification immediately without
blocking the AssemblyLine.
This Connector operates in Iterator mode only.
The JMX Connector makes the following Attributes available (Input
Attribute Map):
- event.originator
- The JMX Connector object of type com.ibm.di.connector.JMXConnector
- event.type
- The notification type of type java.lang.String
- event.rawNotification
- The raw JMX Notification instance received by the JMX Connector
(javax.management.Notification). If the component that broadcasts
this notification has extended javax.management.Notification and has
put some additional data in the subclass, this extra information can
be retrieved through this property.
- event.timestamp
- The notification timestamp of type java.lang.Long. It represents
the moment when the notification was created.
- event.sequenceNumber
- The notification sequence number (java.lang.Long). It represents
the notification sequence number within the source object. It's a
serial number identifying a particular instance of notification in
the context of the notification source. The notification model does
not assume that notifications will be received in the same order that
they are sent. The sequence number can be used to sort received notifications.
- event.message
- The message of the notification (java.lang.String).
- event.mbean.objectName
- The object name of the registered and unregistered MBean (javax.management.ObjectName).
This property is only available if the event.type is JMX.mbean.registered
or JMX.mbean.unregistered. ObjectName represents an MBean Name (as
well as a wildcard for MBean Names). The entire combination of the
domain plus all keys and values must be unique. (That is equivalent
to saying that the entire MBean Name must be unique).
- event.mbean.name
- The string representation of the MBean object name (java.lang.String).
This property is only available if the event.type is JMX.mbean.registered
or JMX.mbean.unregistered.
- event.userData
- The JMX notification user data (java.lang.Object).
- event.source
- The MBean object name on which the notification initially occurred
(javax.management.ObjectName).
- Mode
- This parameter determines whether the JMX Connector will listen
for local or remote JMX notifications. The Connector registers for
and listens to remote JMX notifications according to the JMX Remote
API 1.0 specification.
The available values (drop-down list) for
this parameter are remote and local.
The
value "local" means that the Connector will only listen for notifications
issued by MBeans registered with an MBeanServer in the local Java
Virtual Machine.
The value "remote" means that the Connector
will connect to a remote JMX system based on the JMX Remote API 1.0
specification, and register for notifications issued by MBeans registered
with an MBean server in the Java Virtual Machine of that remote system.
- Remote JMX URL
- This parameter is only taken into account if the "mode" parameter
is set to "remote". This is the JMX URL used to connect to the remote
JMX system. More precisely, this URL is specified by the remote MBean
Server on its startup and is used by remote clients to connect to
it.
An example value for this parameter would be: "service:jmx:rmi://localhost/jndi/rmi://localhost:1099/jmxconnector"
The
default value is "service:jmx:rmi://localhost/jndi/jmx"
- Listen to all MBeans
- Specifies whether the Connector will register with all available
MBeans (checked) or only with the ones specified in the MBeans
to listen to Connector parameter (unchecked). This parameter
is checked by default.
- MBeans to listen to
- Specifies a list of MBean object names, each typed on a separate
line. This list specifies the MBeans with which the Connector will
register for notifications. If no MBean object names are specified
(that is, the list is empty) notifications issued by any MBean will
be reported. If at least one MBean name is specified, then only notifications
issued from the MBeans specified will be reported.
- Notification types
- The type of a JMX notification, not to be confused with its
Java class, is the characterization of a generic notification object.
The type is assigned by the broadcaster object and conveys the semantic
meaning of a particular notification. The type is given as a String
field of the Notification object. This string is interpreted as any
number of dot-separated components, allowing an arbitrary, user-defined
structure in the naming of notification types.
Specifies the types
of JMX notifications which the JMX Connector will listen to. Notifications
whose types are not specified will not be reported by the Connector.
Each notification type must be typed on a separate line.
- Detailed Log
- If this parameter is checked, more detailed log messages are
generated.
The JMX Connector is capable of using the SSL protocol on the connection.
If the remote JMX system accepts only SSL connections, the JMX Connector
will automatically establish an SSL connection provided that a trust
store is configured properly. This means that appropriate values have
to be set for the javax.net.ssl.trustStore, javax.net.ssl.trustStorePassword and javax.net.ssl.trustStoreType properties
in global.properties or solution.properties.
Wikipedia on JMX,
Getting Started with JMX,
JMX Tutorial,
Managing TDI with ITM using JMX.