Viewing Comprehensive Monitoring Data

By applying the list and get subcommands
against the tree structure using dotted names, you can display more comprehensive
monitoring data, such as a description of each of the statistics and its unit
of measurement.

Guidelines for Using the list and get Subcommands for Monitoring

The underlying assumptions for using the list and get subcommands with dotted names are:

A list subcommand that specifies a dotted
name that is not followed by a wildcard (*)
lists the current node’s immediate children. For example, the following
subcommand lists all immediate children belonging to the server node:

list --monitor server

A list subcommand that specifies a dotted
name followed by a wildcard of the form .* lists a hierarchical
tree of child nodes from the specified node. For example, the following subcommand
lists all children of the applications node, their subsequent
child nodes, and so on:

list --monitor server.applications.*

A list subcommand that specifies a dotted
name preceded or followed by a wildcard of the form *dottedname or dotted * name or dottedname * lists
all nodes and their children that match the regular expression created by
the specified matching pattern.

A get subcommand followed by a .* or
a * gets the set of attributes and their values that belong
to the node specified.

For example, the following table explains the output of the list and get subcommands used with the dotted name for the resources node.

Table 8–4 Example Resources
Level Dotted Names

Subcommand

Dotted Name

Output

list --monitor

server.resources

List of pool names.

list --monitor

server.resources.connection-pool1

No attributes, but a message saying “Use get subcommand
with the --monitor option to view this node’s attributes
and values.”

get --monitor

server.resources.connection-pool1.*

List of attributes and values corresponding to connection pool attributes.

To View Comprehensive Monitoring Data

Although the monitor subcommand is useful in many
situations, it does not offer the complete list of all monitorable objects.
To work with comprehensive data for an object type, use the list --monitor and the get --monitor subcommands followed by the
dotted name of a monitorable object.

Before You Begin

A monitorable object must be configured for monitoring before you can
display information about the object. See To Enable Monitoring if needed.

List the objects that are enabled for monitoring by using the list(1) subcommand.

For
example, the following subcommand lists all components and services that have
monitoring enabled for instance server.

Comprehensive Monitoring Statistics

You can get comprehensive monitoring statistics by forming a dotted
name that specifies the statistic you are looking for. For example, the following
dotted name will display the cumulative number of requests for the HTTP service
on virtual-server1:

server.http-service.virtual-server1.request.requestcount

The tables in the following sections list the statistics that are available
for each monitorable object:

EJB Method Statistics

The statistics available for EJB method invocations are listed in the
following table.

Table 8–7 EJB Method Monitoring
Statistics

Statistic

Data Type

Description

executiontime

CountStatistic

Time, in milliseconds, spent executing the method for the last successful/unsuccessful
attempt to run the operation. This is collected for stateless and stateful
session beans and entity beans if monitoring is enabled on the EJB container.

methodstatistic

TimeStatistic

Number of times an operation is called; the total time that is spent
during the invocation, and so on.

totalnumerrors

CountStatistic

Number of times the method execution resulted in an exception. This
is collected for stateless and stateful session beans and entity beans if
monitoring is enabled for the EJB container.

totalnumsuccess

CountStatistic

Number of times the method successfully executed. This is collected
for stateless and stateful session beans and entity beans if monitoring enabled
is true for EJB container.

EJB Pool Statistics

Use the following dotted name pattern for EJB pool statistics:

server.applications.appname.ejbmodulename.bean-pool.ejbname.statistic

The statistics available for EJB pools are listed in the following table.

Table 8–8 EJB Pool Monitoring
Statistics

Statistic

Data Type

Description

jmsmaxmessagesload

CountStatistic

The maximum number of messages to load into a JMS session at one time
for a message-driven bean to serve. Default is 1. Applies only to pools for
message driven beans.

numbeansinpool

RangeStatistic

Number of EJBs in the associated pool, providing information about how
the pool is changing.

numthreadswaiting

RangeStatistic

Number of threads waiting for free beans, giving an indication of possible
congestion of requests.

totalbeanscreated

CountStatistic

Number of beans created in associated pool since the gathering of data
started.

totalbeansdestroyed

CountStatistic

Number of beans destroyed from associated pool since the gathering of
data started.

Timer Statistics

Use the following dotted name pattern for timer statistics:

server.applications.appname.ejbmodulename.timers.ejbname.statistic

The statistics available for timers are listed in
the following table.

JVM Class Loading System Statistics

Use the following dotted name pattern for JVM class loading system statistics:

server.jvm.class-loading-system.statistic

With Java SE, additional monitoring information can be obtained from
the JVM. Set the monitoring level to LOW to enable the display of this additional
information. Set the monitoring level to HIGH to also view information pertaining
to each live thread in the system. More information about the additional monitoring
features for Java SE is available in Monitoring and Management for the Java Platform.

The statistics available for the connection manager in an ORB are listed
in the following table.

Table 8–28 ORB Monitoring Statistics
(Connection Manager)

Statistic

Data Type

Description

connectionsidle

CountStatistic

Total number of connections that are idle to the ORB

connectionsinuse

CountStatistic

Total number of connections in use to the ORB

totalconnections

BoundedRangeStatistic

Total number of connections to the ORB

Resource Statistics (Connection Pool)

By monitoring connection pool resources you can measure performance
and capture resource usage at runtime. Connections are expensive and frequently
cause performance bottlenecks in applications. It is important to monitor
how a connection pool is releasing and creating new connections and how many
threads are waiting to retrieve a connection from a particular pool.

Thread Pool Monitoring Statistics

The statistics available for the thread pool are shown in the following
table.

Table 8–33 Thread Pool Monitoring
Statistics

Statistic

Data Type

Description

averagetimeinqueue

BoundedRangeStatistic

Average amount of time (in milliseconds) a request waited in the queue
before being processed

averageworkcompletiontime

BoundedRangeStatistic

Average amount of time (in milliseconds) taken to complete an assignment

currentbusythreads

CountStatistic

Number of busy threads

currentnumberofthreads

BoundedRangeStatistic

Current number of request processing threads

numberofavailablethreads

CountStatistic

Number of available threads

numberofworkitemsinqueue

BoundedRangeStatistic

Current number of work items waiting in queue

totalworkitemsadded

CountStatistic

Total number of work items added to the work queue as of last sampling

JVM Statistics for Java SE-Thread Information

The statistics available for ThreadInfo in the JVM
in Java SE are shown in the following table.

Table 8–34 JVM Monitoring Statistics
for Java SE - Thread Info

Statistic

Data Type

Description

blockedcount

CountStatistic

Total number of times that the thread entered the BLOCKED state.

blockedtime

CountStatistic

Time elapsed (in milliseconds) since the thread entered the BLOCKED state. Returns -1 if thread contention monitoring is disabled.

lockname

StringStatistic

String representation of the monitor lock that the thread is blocked
to enter or waiting to be notified through the Object.wait method.

lockownerid

CountStatistic

ID of the thread that holds the monitor lock of an object on which this
thread is blocking.

lockownername

StringStatistic

Name of the thread that holds the monitor lock of the object this thread
is blocking on.

stacktrace

StringStatistic

Stack trace associated with this thread.

threadid

CountStatistic

ID of the thread.

threadname

StringStatistic

Name of the thread.

threadstate

StringStatistic

State of the thread.

waitedtime

CountStatistic

Elapsed time (in milliseconds) that the thread has been in a WAITING state. Returns -1 if thread contention monitoring is disabled.

waitedcount

CountStatistic

Total number of times the thread was in WAITING or TIMED_WAITING states.

Transaction Service Statistics

The transaction service allows the client to freeze the transaction
subsystem in order to roll back transactions and determine which transactions
are in process at the time of the freeze. The transaction service fits into
the tree of objects as shown in Transactions Service Tree Hierarchy.

Use the following dotted name pattern for transaction service statistics:

server.transaction-service.statistic

The statistics available for the transaction service are shown in the
following table.

Table 8–35 Transaction Service
Monitoring Statistics

Statistic

Data Type

Description

activecount

CountStatistic

Number of transactions currently active.

activeids

StringStatistic

The ID’s of the transactions that are currently active. Every
such transaction can be rolled back after freezing the transaction service.