TIBCO EMS (E4JMS)

Introduction Copied

The suite of TIBCO EMS (E4JMS) plugins is designed to monitor the JMS implementation by TIBCO. It is not suitable for monitoring the JMS implementations from other vendors.

To be able to establish a connection in EMS Server, the EMS user should have Administrator rights as required by the TIBCO EMS APIs.

Client authentication in Geneos 5.4.x Copied

Beginning Geneos 5.4.x, the E4JMS plugin supports SSL client authentication. This feature introduces breaking changes to the E4JMS plugin SSL implementation for older Geneos versions.

If you are using SSL connections on your E4JMS plugins, you must update your configuration when using the new schema.

Java requirements Copied

The Java installation and environment configuration is a common source of errors for users setting up Java-based components and plug-ins. It is recommended to read Configure the Java environment to help you understand your Java installation.

Views Copied

The plugin produces a single view as follows:

E4JMS Bridges View Copied

Headline Legend

Name Description
emsUrl Shows which hostname is currently running on the dataview.
totalBridges The total number of bridges known to the server.

Table Legend

Name Description
source Get the type of the destination being bridged from
name Get the name of the destination being bridged from
queueTargets Get the destinations being bridged to which are of type Queue
topicTargets Get the destinations being bridged to which are of type Topic

E4JMS Connections View Copied

Headline Legend

Name Description
emsUrl Shows which hostname is currently running on the dataview.
totalConnections The total number of connections to the server
maxConnections The total number of connections available on this server. This number includes both the connections available for clients to connect on as well as those which are currently in use.

Table Legend

Name Description
connectionID Get the connection ID for this connection
username Get the username for this connection
starTime Get the creation time, in milliseconds, for this connection
upTime Get the time in seconds that this connection has been connected
type Get the connection type for this connection
clientID Get the clientID for this connection
sessionCount Get the number of sessions for this connection
consumerCount Get the number of consumers for this connection
producerCount Get the number of producers for this connection
clientVersion Get the version of the software being run by the client that created this connection
isAdmin Indicates whether or not the connection is a connection from an administration client, either tibjmsadmin or a client using this administration api
isXA Indicates whether or not the connection is an XA connection
isFT Indicates whether or not the connection is an FT connection, that is the connection has alternative URLs
isStarted Indicates whether or not the connection has been started by the client

E4JMS Durables View Copied

Headline Legend

Name Description
emsUrl Shows which hostname is currently running on the dataview.
totalDurables The total number of durables known to this server

Table Legend

Name Description
Name Get the name of this durable
topicName Get the topic name that this durable subscribes to
isActive Determine if this durable is connected or dormant
pendingMsgs Get the number of messages waiting to be delivered to this durable subscription
pendingMsgSize Get the total size, in bytes, of messages waiting to be delivered to this durable subscription
userName Get the name of the authenticated user whose connection this durable subscriber is currently using
clientID Get the client ID associated with this durable
consumerID Get the consumer ID associated with this durable
receiveOwnMsgs Indicates whether or not the durable has opted not to receive 'local' messages

E4JMS Non Durables View Copied

Headline Legend

Name Description
emsUrl Shows which hostname is currently running on the dataview.
totalNonDurables The total number of non-durable topic consumers/subscribers known to the server

Table Legend

Name Description
consumerID Get the consumer ID of a non-durable consumer
name Get the name of this non-durable consumer
destinationName The non-durable consumer's topic destination name
isConnected Determines if this non-durable consumer is connected to the server
pendingMsgs Get the number of pending messages for the non-durable topic consumer
pendingMsgSize Get the total combined size in bytes of pending messages for the non-durable topic consumer
userName Get the name of the authenticated user whose connection to this non-durable consumer is currently using
connectionID Get the connection ID associated with this non-durable consumer
receiveOwnMsgs Indicates whether or not the non-durable consumer has opted not to receive 'local' messages

E4JMS Queues View Copied

Headline Legend

Name Description
emsUrl Shows which hostname is currently running on the dataview.
totalQueues The total number of queues known to this server

Table Legend

Name Description
name The name of this queue
description The description of this queue
activeConsumers The number of consumers for this queue
queuedMsgs The total number of pending messages for this queue
percentFull The value for the amount of pending bytes consumed or allocated for this destination, e.g. currentPendingBytes divided by maxPendingBytes
bytesIncoming The value for the total size of messages in bytes
bytesOutgoing The value for the total size of messages in bytes
msgsIncoming The value for the total number of messages
msgsOutgoing The value for the total number of messages
currentPendingBytes The total size for all pending messages for this queue
maxPendingBytes The maximum number of message bytes that the server will store for pending messages bound for this destination
maxPendingMsgs The maximum number of messages that the server will store for pending messages bound for this destination.
isGlobal Determine if this destination is global
isImported Determine if this destination imports messages from other transports
isExclusive Determine if this queue is exclusive
isTemporary Determine if this destination is temporary
isDynamic Determine if this destination was created dynamically by a client application
receiverCount The value for the number of receivers of queue messages
unackedClientMsgCount The total number of unacknowledged messages that have been delivered to consumer applications
unackedRoutedMsgCount The total number of unacknowledged message that have been delivered to the queue owner
isRouteConnected Determine if the route for this queue is connected
maxRedelivery The maximum number of times the server will redeliver a message from this queue to its receivers
totalInboundBytes The value for the total size of inbound messages
totalOutboundBytes The value for the total size of outbound messages
totalIncomingMsgs The value for the total number of inbound messages
totalOutgoingMsgs The value for the total number of outbound messages
lastMessageReceivedOn The timestamp of the latest message in the queue. To enable this column, select 'Last message received on' on the columns option.
secondsSinceLastMessage The number of seconds since the last message was added to the queue. To enable this column, select 'Seconds since last message' on the columns option.

E4JMS Routes View Copied

Headline Legend

Name Description
emsUrl Shows which hostname is currently running on the dataview.
totalRoutes The total number of routes known to this server

Table Legend

Name Description
route Get the name of the remote server in this route
type Indicates whether or not the route is connected
URL Get the URL of the remote server in this route
stalled Indicates whether or not the route has stalled destinations.

E4JMS Server View Copied

Table Legend

Name Description
asynchStorage Get the current size of the asynchronous message store
connections Get the number of connections to the server
durables Get the number of durable subscribers in the server.
inboundBytesRate Get the volume of inbound messages per second for the server as a whole
maxMsgMemSize Get the maximum allowed message memory
outboundBytesRate Get the volume of outbound messages per second for the server as a whole
inboundMsgRate The number of inbound messages per second for the server as a whole
outboundMsgRate The number of outbound messages per second for the server as a whole
pendingMsg Get the total number of pending messages for this server
pendingMsgSize Get the total size of pending messages for this server
percentUsedMsgMem usedMsgMemSize / maxMsgMemSize * 100
queues Get the number of queues in the server
server Get the name of the server
state Get the current state of the server
synchStorage Get the current size of the synchronous message store
topics Get the number of topics in the server
uptime The number of seconds that the server has been running
usedMsgMemSize Get the amount of memory in use to store messages
version Get the version of the server

E4JMS Topics View Copied

Headline Legend

Name Description
emsUrl Shows which hostname is currently running on the dataview.
totalTopics The total number of topics known to the server

Table Legend

Name Description
name The name of this destination
description The description of this destination
activeConsumers The number of consumers for this destination
activeDurables The current number of active durable subscribers for this topic.
numDurables The current number of durable subscribers for this topic
queuedMsgs The total number of pending messages for this destination
percentFull The value for the amount of pending bytes consumed or allocated for this destination, e.g. currentPendingBytes divided by maxPendingBytes
bytesIncoming The value for the total size of messages
bytesOutgoing The value for the total size of messages
msgsIncoming The value for the total number of messages
msgsOutgoing The value for the total number of messages
currentPendingBytes The total size for all pending messages for this destination
maxPendingBytes The maximum number of message bytes that the server will store for pending messages bound for this destination
maxPendingMsgs The maximum number of messages that the server will store for pending messages bound for this destination.
isGlobal Determine if this destination is global
isExported Determine if the topic is exported to Tibrv
isImported Determine if this destination imports messages from other transports
isTemporary Determine if this destination is temporary
isDynamic Determine if this destination was created dynamically by a client application
subscribers The current number of subscribers for this topic
totalInboundBytes The value for the total size of inbound messages
totalOutboundBytes The value for the total size of outbound messages
totalIncomingMsgs The value for the total number of inbound messages
totalOutgoingMsgs The value for the total number of outbound messages

E4JMS User Summary View Copied

Headline Legend

Name Description
emsUrl Shows which hostname is currently running on the dataview.
totalUserSummary The total number of users.

Table Legend

Name Description
user The name of specific user on the server.
connections The number of connections opened by the user.

Plugin Configuration Copied

Caution: When you update the configuration of certain Java-based plug-ins, including this one, the Netprobe running it has to restart. Be aware of other potentially unrelated plug-ins that can be affected when you configure this particular plug-in. There are two ways to configure the plugin.

The first approach is suitable for monitoring a single server.

The second approach is suitable for monitoring a primary server and switching over to a backup server when the primary server goes down (without requiring re-configuration by the system administrator)

The following parameters can be configured for this plugin for the first approach:

singleHost > host Copied

The name or IP address of the machine on which the E4JMS server is to be run.

Mandatory: Yes

singleHost > port Copied

The port number of the E4JMS server that the plugin should attempt to connect to

Mandatory: Yes

singleHost > username Copied

The user name for the plugin to use when establishing a connection to the E4JMS server

Mandatory: Yes

singleHost > password Copied

The password for the plugin to use when establishing a connection to the E4JMS server.

As this is a mandatory field, if you need to connect to a server which is not protected by a password, you can enter blank text, which will ensure that no password is used when trying to connect to the EMS server.

Choose the appropriate field when specifying the password:

Mandatory: Yes

singleHost > protocol Copied

The protocol for the plugin to use when establishing a connection to the E4JMS Server.

Beginning Geneos 5.4.x, the E4JMS plugin supports SSL client authentication. This feature introduces breaking changes to the E4JMS plugin SSL implementation for older Geneos versions.

If you are using SSL connections on your E4JMS plugins, you must update your configuration when using the new schema.

Mandatory: Yes

singleHost > protocol > ssl > Server authentication > trusted certificates Copied

File name of CA certificates to trust as issuers of server certificates.

Mandatory: No

singleHost > protocol > ssl > Server authentication > expected hostname Copied

The host name the client expect in the Common Name (CN) field of the server certificate. If this field is set, ssl_verify_hostname is enabled.

Mandatory: No

singleHost > protocol > ssl > Server authentication > cipher suites Copied

Define the cipher suites that the client can use. This contains a colon separated string that follows the syntax stated in the Tibco EMS user guide.

Mandatory: No

singleHost > protocol > ssl > Client authentication > Identity Copied

File name of the client-side identity that consists of the certificate, corresponding private key, and an optional set of issuer certificates.

Mandatory: Yes

singleHost > protocol > ssl > Client authentication > Password Copied

SSL password for the identity store.

Choose the appropriate field when specifying the password:

Mandatory: Yes

The following parameters can be configured for this plugin for the second approach:

primaryServer > host Copied

The name or IP address of the machine on which the primary E4JMS server is to be run.

Mandatory: Yes

primaryServer > port Copied

The port number of the primary E4JMS server that the plugin should attempt to connect to

Mandatory: Yes

primaryServer > username Copied

The user name for the plugin to use when establishing a connection to the primary E4JMS server

Mandatory: Yes

primaryServer > password Copied

The password for the plugin to use when establishing a connection to the E4JMS server.

As this is a mandatory field, if you need to connect to a server which is not protected by a password, you can enter blank text, which will ensure that no password is used when trying to connect to the EMS server.

Choose the appropriate field when specifying the password:

Mandatory: Yes

primaryServer > protocol Copied

The protocol for the plugin to use when establishing a connection to the E4JMS Server.

Beginning Geneos 5.4.x, the E4JMS plugin supports SSL client authentication. This feature introduces breaking changes to the E4JMS plugin SSL implementation for older Geneos versions.

If you are using SSL connections on your E4JMS plugins, you must update your configuration when using the new schema.

Mandatory: Yes

primaryServer > protocol > ssl > Server authentication > trusted certificates Copied

File name of CA certificates to trust as issuers of server certificates.

Mandatory: No

primaryServer > protocol > ssl > Server authentication > expected hostname Copied

The hostname the client expect in the Common Name (CN) field of the server certificate. If this field is set, ssl_verify_hostname is enabled.

Mandatory: No

primaryServer > protocol > ssl > Server authentication > cipher suites Copied

Define the cipher suites that the client can use. This contains a colon separated string that follows the syntax stated in the Tibco EMS user guide.

Mandatory: No

primaryServer > protocol > ssl > Client authentication > Identity Copied

File name of the client-side identity that consists of the certificate, corresponding private key, and an optional set of issuer certificates.

Mandatory: Yes

primaryServer > protocol > ssl > Client authentication > Password Copied

SSL password for the identity store.

Choose the appropriate field when specifying the password:

backupServers > backupServer > host Copied

The name or IP address of the machine on which a non-primary E4JMS server is to be run.

Mandatory: Yes

backupServers > backupServer > port Copied

The port number of a non-primary E4JMS server that the plugin should attempt to connect to

Mandatory: Yes

backupServers > backupServer > username Copied

The user name for the plugin to use when establishing a connection to a non-primary E4JMS server

Mandatory: Yes

backupServers > backupServer > password Copied

The password for the plugin to use when establishing a connection to the E4JMS server.

As this is a mandatory field, if you need to connect to a server which is not protected by a password, you can enter blank text, which will ensure that no password is used when trying to connect to the EMS server.

Choose the appropriate field when specifying the password:

Note: Beginning Geneos 5.4.x, the E4JMS plugin supports external passwords from the CyberArk Local Credential Provider.

Mandatory: Yes

backupServers > protocol Copied

The protocol for the plugin to use when establishing a connection to the E4JMS Server.

Beginning Geneos 5.4.x, the E4JMS plugin supports SSL client authentication. This feature introduces breaking changes to the E4JMS plugin SSL implementation for older Geneos versions.

If you are using SSL connections on your E4JMS plugins, you must update your configuration when using the new schema.

Mandatory: Yes

backupServers > protocol > ssl > Server authentication > trusted certificates Copied

File name of CA certificates to trust as issuers of server certificates.

Mandatory: No

backupServers > protocol > ssl > Server authentication > expected hostname Copied

The hostname the client expect in the Common Name (CN) field of the server certificate. If this field is set, ssl_verify_hostname is enabled.

Mandatory: No

backupServers > protocol > ssl > Server authentication > cipher suites Copied

Define the cipher suites that the client can use. This contains a colon separated string that follows the syntax stated in the Tibco EMS user guide.

Mandatory: No

backupServers > protocol > ssl > Client authentication > Identity Copied

File name of the client-side identity that consists of the certificate, corresponding private key, and an optional set of issuer certificates.

Mandatory: Yes

backupServers > protocol > ssl > Client authentication > Password Copied

SSL password for the identity store.

Choose the appropriate field when specifying the password:

columns > column Copied

An option which presents users with a drop-down list of column names, which when selected will be diplayed in the View. Users can select one or more columns from the drop-down list. When this option is used, the first column in the View is not customizable. The following will always be the first column of the View when this option is used:

Note

This option is not available for E4JMS Server and User Summary.

Mandatory: No

javaproperties > property Copied

An option to pass to the JVM that gets created by the net probe e.g. -Xmx128M would require the JVM to ensure its size does not exceed 128 MB in size.

Caution: Java flags that are configured on this setting are inherited by all Java-based samplers running on the same Netprobe. For a full list of Java-based plugins, see Overview in Configure the Java environment.

For example, consider the following scenario:

  1. Netprobe A is running the JMX and REST API samplers.
  2. The JMX sampler uses the jproperties setting to enable TSL.
  3. A REST API sampler on Netprobe A inherits the values configured in the jproperties setting. It is possible that the REST API sampler may encounter errors if the jproperties flags require data that is not present in the REST API sampler. To address this the JMX and REST API samplers must be run on separate Netprobes.

Mandatory: No

regexFilters > regexFilter Copied

You can apply the regular expression or regex filter to the Bridge, Durable, Non-Durable, Queue, Route, Topic, and User Summary views. If this configuration is defined, then any row whose first column does not match the regex filter is excluded from the view.

The regex filters should follow the Java regex specifications described in the API documentation for java.util.Pattern.

e4jms_image8

Mandatory: No

timeout Copied

The amount of time (in seconds), that the system will try to connect to the EMS server, it will stop reconnecting when the timeout period has elapsed. The default timeout value is 5 seconds.

Deployment Copied

Additional Files Copied

The plugin requires the following additional files:

*Required for SSL connections only

For guidance on where these files should be placed, see For the JAR files in Configure the Java environment.

Diagnostics - configuration Copied

Prerequisites:

Make sure your directory only contains these files and that they are named exactly as given below:

If using SSL connections, the following are also required:

Command:

This must be specified on a single line.

For TCP connections:
C:\> java -jar geneos-plugins.jar ems               <tcp://hostname:portnumber><username><"none" | password>For example,
C:\> java -jar geneos-plugins.jar ems               tcp://localhost:7222               admin               none
For SSL connections:
C:\> java -jar geneos-plugins.jar ems               <ssl://hostname:portnumber> <username><"none" | password><trustedCertificates><"none" | expectedHostname><"none" | cipherSuites>For example,
C:\> java -jar geneos-plugins.jar ems               ssl://localhost:7234               admin               none                   server_root.cert.pem                   none                   +ALL

Expected Output

Successfully connected to EMS-SERVER
["Geneos"] ["Geneos > Netprobe"] ["Technical Reference"]

Was this topic helpful?