Tibco BW Process Monitoring Extension

This extension is old and uses Tibco JMX beans to collect the metrics. We have added a new extension which uses Tibco Hawk methods to collect metrics, please use the latest tibco-hawk-monitoring-extension


2.1, updated 5/11/16


This extension monitors Tibco BW processes and their sub-processes ("Jobs"), giving count and duration metrics for each. Process counts are important because in a BW environment there is usually a fixed thread pool available for running process jobs -- high counts mean that jobs are sitting around waiting for an available thread. Duration metrics are basic ART info.


As of this writing the Hawk Console monitoring capability is not functional, so only the JMX monitor is usable. Do not try to build the hawk console monitor in the github repo, it will not build and is as of now just a template.



To build you must have Tibco dependencies available, they are not available through Maven. Also, the AppDynamics machine agent is a dependency. Variables are used in the build files to resolve these dependencies. For example, if you have Tibco installed in a directory called /Users/paulbunyan/tibco and an AppDynamics machine agent installed at /Users/paulbunyan/machine-agent, then you build using:

% mvn -Dtibhawk=/Users/paulbunyan/tibco/bw6/hawk/5.1 -Dappd-ma=/Users/paulbunyan/machine-agent clean package


When enabling JMX in Tibco BW, you select the JMX port in the ".tra" file of your Tibco deployment. That port number must be configured in monitor.xml for this extension to work. This extension levarages localhost JMX, so the machine agent running this extension should be on the same OS instance as a Tibco process with JMX enabled.

The port is the only value in monitor.xml that MUST be changed. The other values should work fine with the defaults, only change if there is a use case reason to do so.

Loggers used are com.singularity.TibcoJMSMonitor and com.singularity.TibcoJMSMonitor.ProcessInfo. Info-level logging is not great for troubleshooting, but debug-level logging should give reasonable information on how the JMX connection is working, and on what stats objects are being returned from JMX.


Tibco processes must be run with the standard JMX localhost command-line options:

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port= -Dcom.sun.management.jmxremote.ssl=false

The option Jmx.Enabled=true must be configured in the .tra file for all processes to be monitored.


Per the info in USE CASE: count and duration for Tibco proesses, by process. The default metric tree prefix is

Custom Metrics|Tibco|BW|ProcessInfo|

Below that will be a process name, and under that count and duration metrics.


Create a directory under monitors for the extension. Copy monitor.xml (with the port number changed) and the jar file for the monitor into that directory, and restart the machine agent.


Per the info in PREREQUISITES AND TROUBLESHOOTING, only the port number in monitor.xml must be changed -- to the value used for the JMX port in the .tra file for one of the Tibco BW nodes.


Github repository


1.0: contact help@appdynamics.com