Java Management Extensions (JMX) is a technology that lets you implement management interfaces for Java applications. JConsole is a JMX-compliant monitoring tool, which comes with the Java Development Kit (JDK) 1.5 or later versions. Therefore, when you use a WSO2 product, JMX is enabled by default, which allows you to monitor the product using JConsole.
Go to the WSO2 Administration Guide for detailed instructions on how to configure JMX for a WSO2 product and how to use JConsole for monitoring a product.
MBeans for WSO2 ESB
When JMX is enabled, WSO2 ESB exposes a number of management resources as JMX MBeans that can be used for managing and monitoring the running server. When you start JConsole, you can monitor these MBeans from the MBeans tab. While some of these MBeans (ServerAdmin and DataSource) are common to all WSO2 products, some MBeans are specific to WSO2 ESB.
This section summarizes the attributes and operations available for the following ESB specific MBeans:
These MBeans provide connection statistics for the HTTP and HTTPS transports.
You can view the following Connection MBeans:
|ActiveConnections||Number of currently active connections.|
|ActiveConnectionsPerHosts||A map of number of connections against hosts.|
|LastXxxConnections||Number of connections created during last Xxx time period.|
|RequestSizesMap||A map of number of requests against their sizes.|
|ResponseSizesMap||A map of number of responses against their sizes.|
|LastResetTime||Last time connection statistic recordings was reset.|
|reset()||Clear recorded connection statistics and restart recording.|
This view provides statistics of the latencies from all backend services connected through the HTTP and HTTPS transports. These statistics are provided as an aggregate value.
Tip: You need to enable advanced mediation statistics like mediation level latencies. In order to enable them, add following two entries in the passthru-http.properties file.
Then you can view the time taken in the mediation layer (request and response) separately from the total latencies.
You can view the following Latency MBeans:
|AllTimeAvgLatency||Average latency since latency recording was last reset.|
|LastxxxAvgLatency||Average latency for last xxx time period. For example, LastHourAvgLatency returns the average latency for the last hour.|
|LastResetTime||Last time latency statistic recording was reset.|
|reset()||Clear recorded latency statistics and restart recording.|
These MBeans are only available in the NHTTP transport and not in the default Pass Through transport.
You can view the following Threading MBeans:
|TotalWorkerCount||Total worker threads related to this server/client.|
|AvgUnblockedWorkerPercentage||Time-averaged unblocked worker thread percentage.|
|AvgBlockedWorkerPercentage||Time-averaged blocked worker thread percentage.|
|LastXxxBlockedWorkerPercentage||Blocked worker thread percentage averaged for last Xxx time period.|
|DeadLockedWorkers||Number of deadlocked worker threads since last statistics reset.|
|LastResetTime||Last time thread statistic recordings was reset.|
|reset()||Clear recorded thread statistic and restart recording.|
For each transport listener and sender enabled in the ESB, there will be an MBean under the
org.apache.axis2/Transport domain. For example, when the JMS transport is enabled, the following MBean will be exposed:
You can also view the following Transport MBeans:
|ActiveThreadCount||Threads active in this transport listener/sender.|
|AvgSizeReceived||Average size of received messages.|
|AvgSizeSent||Average size of sent messages.|
|BytesReceived||Number of bytes received through this transport.|
|BytesSent||Number of bytes sent through this transport.|
|FaultsReceiving||Number of faults encountered while receiving.|
|FaultsSending||Number of faults encountered while sending.|
|LastResetTime||Last time transport listener/sender statistic recording was reset.|
|MaxSizeReceived||Maximum message size of received messages.|
|MaxSizeSent||Maximum message size of sent messages.|
|MetricsWindow||Time difference between current time and last reset time in milliseconds.|
|MinSizeReceived||Minimum message size of received messages.|
|MinSizeSent||Minimum message size of sent messages.|
|MessagesReceived||Total number of messages received through this transport.|
|MessagesSent||Total number of messages sent through this transport.|
|QueueSize||Number of messages currently queued. Messages get queued if all the worker threads in this transport thread pool are busy.|
|ResponseCodeTable||Number of messages sent against their response codes.|
|TimeoutsReceiving||Message receiving timeout.|
|TimeoutsSending||Message sending timeout.|
|start()||Start this transport listener/sender.|
|stop()||Stop this transport listener/sender.|
|resume()||Resume this transport listener/sender which is currently paused.|
|resetStatistics()||Clear recorded transport listener/sender statistics and restart recording.|
|pause()||Pause this transport listener/sender which has been started.|
|maintenenceShutdown(long gracePeriod)||Stop processing new messages, and wait the specified maximum time for in-flight requests to complete before a controlled shutdown for maintenence.|