This chapter contains information about monitoring components using the Enterprise Server Admin Console. This chapter contains the following sections:
Use monitoring to observe the runtime state of various components and services deployed in a server instance of theEnterprise Server. With the information on the state of runtime components and processes, it is possible to identify performance bottlenecks for tuning purposes, aid capacity planning, predict failures, do root cause analysis in case of failures, and ensure that everything is functioning as expected.
Turning monitoring on reduces performance by increasing overhead.
You can also use management rules to alert you of potential problems with your server, and optionally take action when the server reaches certain performance thresholds. For more information, see Chapter 19, Configuring Management Rules.
To monitor the Enterprise Server, perform these steps:
Enable the monitoring of specific services and components using either the Admin Console or the asadmin tool.
For more information on this step, refer to Enabling and Disabling Monitoring.
View monitoring data for the specified services or components using either the Admin Console or the asadmin tool.
For more information on this step, refer to Viewing Monitoring Data.
The Enterprise Server uses a tree structure to track monitorable objects. Because the tree of monitoring objects is dynamic, it changes as components are added, updated, or removed in the instance. The root object in the tree is the server instance name, for example, server. (In the Platform Edition, just one server instance is permitted.)
The following command displays the top level of the tree:
asadmin> list --user adminuser --monitor server server.applications server.http-service server.connector-service server.jms-service server.jvm server.orb server.resources server.thread-pools |
The following sections describe these sub-trees:
The following schematic shows the top and child nodes for the various components of enterprise applications. The nodes at which monitoring statistics are available are marked with an asterisk (*). For more information, refer to EJB Container Statistics.
applications |--- application1 | |--- ejb-module-1 | | |--- ejb1 * | | |--- cache (for entity/sfsb) * | | |--- pool (for slsb/mdb/entity) * | | |--- methods | | |---method1 * | | |---method2 * | | |--- stateful-session-store (for sfsb)* | | |--- timers (for s1sb/entity/mdb) * | |--- web-module-1 | | |--- virtual-server-1 * | | |---servlet1 * | | |---servlet2 * |--- standalone-web-module-1 | | |----- virtual-server-2 * | | |---servlet3 * | | |---servlet4 * | | |----- virtual-server-3 * | | |---servlet3 *(same servlet on different vs) | | |---servlet5 * |--- standalone-ejb-module-1 | | |--- ejb2 * | | |--- cache (for entity/sfsb) * | | |--- pool (for slsb/mdb/entity) * | | |--- methods | | |--- method1 * | | |--- method2 * |--- application2
The nodes of the HTTP service are shown in the following schematic. The nodes at which monitoring information is available are marked with an asterisk (*). See HTTP Service Statistics.
http-service |--- virtual-server-1 |--- http-listener-1 * |--- http-listener-2 * |--- virtual-server-2 |--- http-listener-1 * |--- http-listener-2 *
http-service * |---connection-queue * |---dns * |---file-cache * |---keep-alive * |---virtual-server-1* | |--- request * |---virtual-server-2* | |--- request *
The resources node holds monitorable attributes for pools such as the JDBC connection pool and connector connection pool. The following schematic shows the top and child nodes for the various resource components. The nodes at which monitoring statistics are available are marked with an asterisk (*). See JDBC Connection Pools Statistics.
resources |---connection-pool1(either connector-connection-pool or jdbc)* |---connection-pool2(either connector-connection-pool or jdbc)*
The connector services node holds monitorable attributes for pools such as the connector connection pool. The following schematic shows the top and child nodes for the various connector service components. The nodes at which monitoring statistics are available are marked with an asterisk (*). See JMS/Connector Service Statistics.
connector-service |--- resource-adapter-1 | |-- connection-pools | | |-- pool-1 (All pool stats for this pool) | |-- work-management (All work mgmt stats for this RA)
The JMS services node holds monitorable attributes for pools such as the connector connection pool. The following schematic shows the top and child nodes for the various JMS service components. The nodes at which monitoring statistics are available are marked with an asterisk (*).
jms-service |-- connection-factories [AKA conn. pools in the RA world] | |-- connection-factory-1 (All CF stats for this CF) |-- work-management (All work mgmt stats for the MQ-RA)
The ORB node holds monitorable attributes for connection managers. The following schematic shows the top and child nodes for the ORB components. The nodes at which monitoring statistics are available are marked with an asterisk (*). See Statistics for Connection Managers in an ORB.
orb |--- connection-managers | |--- connection-manager-1 * | |--- connection-manager-1 *
The thread pool node holds monitorable attributes for connection managers. The following schematic shows the top and child nodes for the ORB components. The nodes at which monitoring statistics are available are marked with an asterisk (*). See Thread Pools Statistics.
thread-pools | |--- thread-pool-1 * | |--- thread-pool-2 *
This section describes the monitoring statistics that are available:
The EJB container statistics are described in the following tables:
EJB statistics are described in the following table.
Table 18–1 EJB Statistics
Attribute Name |
Data Type |
Description |
---|---|---|
createcount |
CountStatistic |
Number of times an EJB’s create method is called. |
removecount |
CountStatistic |
Number of times an EJB’s remove method is called. |
pooledcount |
RangeStatistic |
Number of entity beans in pooled state. |
readycount |
RangeStatistic |
Number of entity beans in ready state. |
messagecount |
CountStatistic |
Number of messages received for a message-driven bean. |
methodreadycount |
RangeStatistic |
Number of stateful or stateless session beans that are in the MethodReady state. |
passivecount |
RangeStatistic |
Number of stateful session beans that are in Passive state. |
The statistics available for EJB method invocations are listed in the following table.
Table 18–2 EJB Method Statistics
Attribute Name |
Data Type |
Description |
---|---|---|
methodstatistic |
TimeStatistic |
Number of times an operation is called; the total time that is spent during the invocation, and so on. |
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. |
|
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. |
|
CountStatistic |
Time (ms) spent executing the method for the last successful/unsuccessful attempt to execute the operation. This is collected for stateless and stateful session beans and entity beans if monitoring is enabled on the EJB container. |
The statistics for EJB Session Stores are listed in the following table.
Table 18–3 EJB Session Store Statistics
Attribute Name |
Data Type |
Description |
---|---|---|
currentSize |
RangeStatistic |
Number of passivated or checkpointed sessions currently in the store. |
activationCount |
CountStatistic |
Number of sessions activated from the store. |
activationSuccessCount |
CountStatistic |
Number of sessions successfully activated from the store |
activationErrorCount |
CountStatistic |
Time (ms) spent executing the method for the last successful/unsuccessful attempt to execute the operation. This is collected for stateless and stateful session beans and entity beans, if monitoring is enabled on the EJB container. |
passivationCount |
CountStatistic |
Number of sessions passivated (inactivated) using this store. |
passivationSuccessCount |
CountStatistic |
Number of sessions successfully passivated using this store. |
passivationErrorCount |
CountStatistic |
Number of sessions that could not be passivated using this store. |
expiredSessionCount |
CountStatistic |
Number of expired sessions that were removed by this store. |
passivatedBeanSize |
CountStatistic |
Total number of bytes passivated by this store, including total, minimum, and maximum. |
passivationTime |
CountStatistic |
Time spent on passivating beans to the store, including the total, minimum, and maximum. |
checkpointCount (enterprise profile only) |
CountStatistic |
Number of sessions checkpointed using this store. |
checkpointSuccessCount (enterprise profile only) |
CountStatistic |
Number of sessions checkpointed successfully. |
checkpointErrorCount (enterprise profile only) |
CountStatistic |
Number of sessions that couldn't be checkpointed. |
checkpointedBeanSize (enterprise profile only) |
ValueStatistic |
Total number of bytes checkpointed by the store. |
checkpointTime enterprise profile only) |
TimeStatistic |
Time spent on checkpointing beans to the store. |
The statistics available for EJB pools are listed in the following table.
Table 18–4 EJB Pool Statistics
Attribute Name |
Data Type |
Description |
---|---|---|
BoundedRangeStatistic |
Number of EJB’s in the associated pool, providing an idea about how the pool is changing. |
|
BoundedRangeStatistic |
Number of threads waiting for free beans, giving an indication of possible congestion of requests. |
|
CountStatistic |
Number of beans created in associated pool since the gathering of data started. |
|
CountStatistic |
Number of beans destroyed from associated pool since the gathering of data started. |
|
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. |
The statistics available for EJB caches are listed in the following table.
Table 18–5 EJB Cache Statistics
Attribute Name |
Data Type |
Description |
---|---|---|
BoundedRangeStatistic |
The number of times a user request does not find a bean in the cache. |
|
BoundedRangeStatistic |
The number of times a user request found an entry in the cache. |
|
numbeansincache |
BoundedRangeStatistic |
The number of beans in the cache. This is the current size of the cache. |
CountStatistic |
Number of passivated beans. Applies only to stateful session beans. |
|
CountStatistic |
Number of errors during passivation. Applies only to stateful session beans. |
|
CountStatistic |
Number of expired sessions removed by the cleanup thread. Applies only to stateful session beans. |
|
CountStatistic |
Number of times passivation completed successfully. Applies only to stateful session beans. |
The statistics available for Timers are listed in the following table.
Table 18–6 Timer Statistics
Statistic |
Data Type |
Description |
---|---|---|
numtimerscreated |
CountStatistic |
Number of timers created in the system. |
numtimersdelivered |
CountStatistic |
Number of timers delivered by the system. |
numtimersremoved |
CountStatistic |
Number of timers removed from the system. |
The web container fits into the tree of objects as shown in The Applications Tree. Web container statistics are displayed for each individual web application. Statistics available for the web container for servlets are shown in Table 18–7, and statistics available for web modules are shown in Table 18–8.
Table 18–7 Web Container (Servlet) Statistics
Statistic |
Units |
Data Type |
Comments |
---|---|---|---|
errorcount |
Number |
CountStatistic |
Cumulative number of cases where the response code is greater than or equal to 400. |
maxtime |
Milliseconds |
CountStatistic |
The maximum amount of time the web container waits for requests. |
processingtime |
Milliseconds |
CountStatistic |
Cumulative value of the amount of time required to process each request. The processing time is the average of request processing times divided by the request count. |
requestcount |
Number |
CountStatistic |
The total number of requests processed so far. |
Statistics available for web modules are shown in Web Container Statistics.
Table 18–8 Web Container (Web Module) Statistics
Statistic |
Data Type |
Comments |
---|---|---|
jspcount |
CountStatistic |
Number of JSP pages that have been loaded in the web module. |
jspreloadcount |
CountStatistic |
Number of JSP pages that have been reloaded in the web module. |
sessionstotal |
CountStatistic |
Total number of sessions that have been created for the web module. |
activesessionscurrent |
CountStatistic |
Number of currently active sessions for the web module. |
activesessionshigh |
CountStatistic |
Maximum number of concurrently active sessions for the web module. |
rejectedsessionstotal |
CountStatistic |
Total number of rejected sessions for the web module. This is the number of sessions that were not created because the maximum allowed number of sessions were active. |
expiredsessionstotal |
CountStatistic |
Total number of expired sessions for the web module. |
sessionsize |
AverageRangeStatistic |
Size of the session for the web module. Value is either high, low, or average, or is in bytes for serialized sessions. |
sessionpersisttime |
AverageRangeStatistic |
Time (in ms, low, high, or average) taken to persist HTTP session state to back-end store for the web module. |
cachedsessionscurrent |
CountStatistic |
Current number of sessions cached in memory for the web module. |
passivatedsessionscurrent |
CountStatistic |
Current number of sessions passivated for the web module. |
The statistics available for the HTTP service for the developer profile are shown in the following table.
Table 18–9 HTTP Service Statistics (Developer Profile)
Statistic |
Units |
Data Type |
Comments |
---|---|---|---|
bytesreceived |
Bytes |
CountStatistic |
The cumulative value of the bytes received by each of the request processors. |
bytessent |
Bytes |
CountStatistic |
The cumulative value of the bytes sent by each of the request processors. |
currentthreadcount |
Number |
CountStatistic |
The number of processing threads currently in the listener thread pool. |
currentthreadsbusy |
Number |
CountStatistic |
The number of request processing threads currently in use in the listener thread pool serving requests. |
errorcount |
Number |
CountStatistic |
The cumulative value of the error count, which represents the number of cases where the response code is greater than or equal to 400. |
maxsparethreads |
Number |
CountStatistic |
The maximum number of unused response processing threads that can exist. |
minsparethreads |
Number |
CountStatistic |
The minimum number of unused response processing threads that can exist. |
maxthreads |
Number |
CountStatistic |
The maximum number of request processing threads created by the listener. |
maxtime |
Milliseconds |
CountStatistic |
The maximum amount of time for processing threads. |
processing-time |
Milliseconds |
CountStatistic |
The cumulative value of the times taken to process each request. The processing time is the average of request processing times divided by the request count. |
request-count |
Number |
CountStatistic |
The total number of requests processed so far. |
Monitor JDBC resources to measure performance and capture resource usage at runtime. As the creation of JDBC connections are expensive and frequently cause performance bottlenecks in applications, it is crucial to monitor how a JDBC connection pool is releasing and creating new connections and how many threads are waiting to retrieve a connection from a particular pool.
The statistics available for the JDBC connection pool are shown in the following table.
Table 18–10 JDBC Connection Pool Statistics
Statistic |
Units |
Data Type |
Description |
---|---|---|---|
numconnfailedvalidation |
Number |
CountStatistic |
The total number of connections in the connection pool that failed validation from the start time until the last sample time. |
numconnused |
Number |
RangeStatistic |
Provides connection usage statistics. The total number of connections that are currently being used, as well as information about the maximum number of connections that were used (the high water mark). |
numconnfree |
Number |
CountStatistic |
The total number of free connections in the pool as of the last sampling. |
numconntimedout |
Number |
BoundedRangeStatistic |
The total number of connections in the pool that timed out between the start time and the last sample time. |
averageconnwaittime |
Number |
CountStatistic |
Indicates the average wait time of connections for successful connection request attempts to the connector connection pool. |
waitqueuelength |
Number |
CountStatistic |
Number of connection requests in the queue waiting to be serviced. |
connectionrequestwaittime |
RangeStatistic |
The longest and shortest wait times of connection requests. The current value indicates the wait time of the last request that was serviced by the pool. |
|
numconncreated |
Milliseconds |
CountStatistic |
The number of physical connections that were created since the last reset. |
numconndestroyed |
Number |
CountStatistic |
Number of physical connections that were destroyed since the last reset. |
numconnacquired |
Number |
CountStatistic |
Number of logical connections acquired from the pool. |
numconnreleased |
Number |
CountStatistic |
Number of logical connections released to the pool. |
The statistics available for the connector connection pools are shown in Table 18–11. Statistics for Connector Work Management are shown in Table 18–12.
Table 18–11 Connector Connection Pool Statistics
Statistic |
Units |
Data Type |
Description |
---|---|---|---|
numconnfailedvalidation |
Number |
CountStatistic |
The total number of connections in the connection pool that failed validation from the start time until the last sample time. |
numconnused |
Number |
RangeStatistic |
Provides connection usage statistics. The total number of connections that are currently being used, as well as information about the maximum number of connections that were used (the high water mark). |
numconnfree |
Number |
RangeStatistic |
The total number of free connections in the pool as of the last sampling. |
numconntimedout |
Number |
CountStatistic |
The total number of connections in the pool that timed out between the start time and the last sample time. |
averageconnwaittime |
Number |
CountStatistic |
Average wait time of connections before they are serviced by the connection pool. |
waitqueuelenght |
Number |
CountStatistic |
Number of connection requests in the queue waiting to be serviced. |
connectionrequestwaittime |
RangeStatistic |
The longest and shortest wait times of connection requests. The current value indicates the wait time of the last request that was serviced by the pool. |
|
numconncreated |
Milliseconds |
CountStatistic |
The number of physical connections that were created since the last reset. |
numconndestroyed |
Number |
CountStatistic |
Number of physical connections that were destroyed since the last reset. |
numconnacquired |
Number |
CountStatistic |
Number of logical connections acquired from the pool. |
numconnreleased |
Number |
CountStatistic |
Number of logical connections released to the pool. |
Statistics available for Connector Work Management are listed in the following table.
Table 18–12 Connector Work Management Statistics
Statistic |
Data Type |
Description |
---|---|---|
activeworkcount |
RangeStatistic |
Number of work objects executed by the connector. |
waitqueuelength |
RangeStatistic |
Number of work objects waiting in the queue before executing. |
workrequestwaittime |
RangeStatistic |
Longest and shortest wait of a work object before it gets executed. |
submittedworkcount |
CountStatistic |
Number of work objects submitted by a connector module. |
rejectedworkcount |
CountStatistic |
Number of work objects rejected by the Enterprise Server. |
completedworkcount |
CountStatistic |
Number of work objects that were completed. |
The statistics available for the connection manager in an ORB are listed in the following table.
Table 18–13 Connection Manager (in an ORB) Statistics
Statistic |
Units |
Data Type |
Description |
---|---|---|---|
connectionsidle |
Number |
CountStatistic |
Provides total number of connections that are idle to the ORB. |
connectionsinuse |
Number |
CountStatistic |
Provides total number of connections in use to the ORB. |
totalconnections |
Number |
BoundedRangeStatistic |
Total number of connections to the ORB. |
The statistics available for the thread pool are shown in the following table.
Table 18–14 Thread Pool Statistics
Statistic |
Units |
Data Type |
Description |
---|---|---|---|
averagetimeinqueue |
Milliseconds |
RangeStatistic |
The average amount of time in milliseconds a request waited in the queue before getting processed. |
averageworkcompletion-time |
Milliseconds |
RangeStatistic |
The average amount of time taken to complete an assignment, in milliseconds. |
currentnumberofthreads |
Number |
BoundedRangeStatistic |
Current number of request processing threads. |
numberofavailablethreads |
Number |
CountStatistic |
The number of threads that are available. |
numberofbusythreads |
Number |
CountStatistic |
The number of threads that are busy. |
totalworkitemsadded |
Number |
CountStatistic |
The total number of work items added so far to the work queue. |
The transaction service allows the client to freeze the transaction subsystem in order to roll back transactions and determine the transactions that are in process at the time of the freeze. The statistics available for the transaction service are shown in the following table.
Table 18–15 Transaction Service 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. |
committedcount |
CountStatistic |
Number of transactions that have been committed. |
rolledbackcount |
CountStatistic |
Number of transactions that have been rolled back. |
state |
StringStatistic |
Indicates whether or not the transaction has been frozen. |
The JVM has monitorable attributes that are always enabled. The statistics available for the JVM are shown in the following table.
Table 18–16 JVM Statistics
Statistic |
Data Type |
Description |
---|---|---|
heapsize |
BoundedRangeStatistic |
The resident memory footprint with the higher and lower bounds of the JVM’s memory heap size. |
uptime |
CountStatistic |
The amount of time the JVM has been running. |
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 on the additional monitoring features for Java SE is available in a document titled Monitoring and Management for the Java Platform, which is available from http://java.sun.com/javase/6/docs/technotes/guides/management/.
The Java SE monitoring tools are discussed at http://java.sun.com/javase/6/docs/technotes/tools/#manage.
The statistics available for class loading in the JVM in Java SE are shown in the following table.
Table 18–17 JVM Statistics for Java SE- Class Loading
Statistic |
Data Type |
Description |
---|---|---|
loadedclasscount |
CountStatistic |
Number of classes that are currently loaded in the JVM. |
totalloadedclasscount |
CountStatistic |
Total number of classes that have been loaded since the JVM began execution. |
unloadedclasscount |
CountStatistic |
Number of classes that have been unloaded from the JVM since the JVM began execution. |
The statistics available for compilation in the JVM in Java SE are shown in the following table.
Table 18–18 JVM Statistics for Java SE- Compilation
Statistic |
Data Type |
Description |
---|---|---|
totalcompilationtime |
CountStatistic |
Accumulated time (in milliseconds) spent in compilation. |
The statistics available for garbage collection in the JVM in Java SE are shown in the following table.
Table 18–19 JVM Statistics for Java SE- Garbage Collection
Statistic |
Data Type |
Description |
---|---|---|
collectioncount |
CountStatistic |
Total number of collections that have occurred. |
collectiontime |
CountStatistic |
Accumulated collection time (in milliseconds). |
The statistics available for memory in the JVM in Java SE are shown in the following table.
Table 18–20 JVM Statistics for Java SE- Memory
Statistic |
Data Type |
Description |
---|---|---|
objectpendingfinalizationcount |
CountStatistic |
Approximate number of objects that are pending finalization. |
initheapsize |
CountStatistic |
Size of the heap initially requested by the JVM. |
usedheapsize |
CountStatistic |
Size of the heap currently in use. |
maxheapsize |
CountStatistic |
Maximum amount of memory (in bytes) that can be used for memory management. |
committedheapsize |
CountStatistic |
Amount of memory (in bytes) that is committed for the JVM to use. |
initnonheapsize |
CountStatistic |
Size of the non-heap area initially requested by the JVM. |
usednonheapsize |
CountStatistic |
Size of the non-heap area currently in use. |
maxnonheapsize |
CountStatistic |
Maximum amount of memory (in bytes) that can be used for memory management. |
committednonheapsize |
CountStatistic |
Amount of memory (in bytes) that is committed for the JVM to use. |
The statistics available for the operating system in the JVM in Java SE are shown in the following table.
Table 18–21 JVM Statistics for Java SE - Operating System
Statistic |
Data Type |
Description |
---|---|---|
arch |
StringStatistic |
Operating system architecture. |
availableprocessors |
CountStatistic |
Number of processors available to the JVM. |
name |
StringStatistic |
Operating system name. |
version |
StringStatistic |
Operating system version. |
The statistics available for the runtime in the JVM in Java SE are shown in the following table.
Table 18–22 JVM Statistics for Java SE - Runtime
Statistic |
Data Type |
Description |
---|---|---|
name |
StringStatistic |
Name representing the running JVM |
vmname |
StringStatistic |
JVM implementation name. |
vmvendor |
StringStatistic |
JVM implementation vendor. |
vmversion |
StringStatistic |
JVM implementation version. |
specname |
StringStatistic |
JVM specification name. |
specvendor |
StringStatistic |
JVM specification vendor. |
specversion |
StringStatistic |
JVM specification version. |
managementspecversion |
StringStatistic |
Management spec. version implemented by the JVM. |
classpath |
StringStatistic |
Classpath that is used by the system class loader to search for class files. |
librarypath |
StringStatistic |
Java library path. |
bootclasspath |
StringStatistic |
Classpath that is used by the bootstrap class loader to search for class files. |
inputarguments |
StringStatistic |
Input arguments passed to the JVM. Does not include the arguments to the main method. |
uptime |
CountStatistic |
Uptime of the JVM (in milliseconds). |
The statistics available for ThreadInfo in the JVM in Java SE are shown in the following table.
Table 18–23 JVM Statistics for Java SE - Thread Info
Statistic |
Data Type |
Description |
---|---|---|
threadid |
CountStatistic |
ID of the thread. |
threadname |
StringStatistic |
Name of the thread. |
threadstate |
StringStatistic |
State of the thread. |
blockedtime |
CountStatistic |
Time elapsed (in milliseconds) since the thread entered the BLOCKED state. Returns -1 if thread contention monitoring is disabled. |
blockedcount |
CountStatistic |
Total number of times that the thread entered the BLOCKED state. |
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. |
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. |
The statistics available for threads in the JVM in Java SE are shown in the following table.
Table 18–24 JVM Statistics for Java SE - Threads
Statistic |
Data Type |
Description |
---|---|---|
threadcount |
CountStatistic |
Current number of live daemon and non-daemon threads. |
peakthreadcount |
CountStatistic |
Peak live thread count since the JVM started or the peak was reset. |
totalstartedthreadcount |
CountStatistic |
Total number of threads created and/or started since the JVM started. |
daemonthreadcount |
CountStatistic |
Current number of live daemon threads. |
allthreadids |
StringStatistic |
List of all live thread ids. |
currentthreadcputime |
CountStatistic |
CPU time for the current thread (in nanoseconds) if CPU time measurement is enabled. If CPU time measurement is disabled, returns -1. |
monitordeadlockedthreads |
StringStatistic |
List of thread ids that are monitor deadlocked. |
This section contains the following topics:
To configure monitoring in the Admin Console:
For the developer profile, go to Configuration -> Monitoring
For the cluster and enterprise profiles, go to Configurations -> Configuration -> Monitoring
By default, monitoring is turned off for all components and services. To turn monitoring on, select LOW or HIGH from the combo box. To turn monitoring off, select OFF from the combo box.
For details on configuring monitoring, see the online help available with the Admin Console.
Use the get command to find out what services and components currently have monitoring enabled.
asadmin> get --user admin-user server.monitoring-service.module-monitoring-levels.* |
Returns:
server.monitoring-service.module-monitoring-levels. connector-connection-pool = OFF server.monitoring-service.module-monitoring-levels. connector-service = OFF server.monitoring-service.module-monitoring-levels.ejb-container = OFF server.monitoring-service.module-monitoring-levels.http-service = OFF server.monitoring-service.module-monitoring-levels.sip-service = OFF server.monitoring-service.module-monitoring-levels.jdbc-connection-pool = OFF server.monitoring-service.module-monitoring-levels.jms-service = OFF server.monitoring-service.module-monitoring-levels.jvm = OFF server.monitoring-service.module-monitoring-levels.orb = OFF server.monitoring-service.module-monitoring-levels.thread-pool = OFF server.monitoring-service.module-monitoring-levels.transaction-service = OFF server.monitoring-service.module-monitoring-levels.web-container = OFF |
Use the set command to enable monitoring.
For example, to enable monitoring for the HTTP service:
asadmin> set --user admin-user server.monitoring-service.module-monitoring-levels.http-service=LOW |
To disable monitoring, use the set command and specify OFF for the monitoring level.
In the developer profile, to view monitoring data, go to Application Server -> Monitor.
In the cluster and enterprise profiles, to view monitoring data for a stand-alone instance, go to Stand-Alone Instances -> Instance -> Monitor. To view monitoring data for a clustered instance, go to Clusters -> Cluster -> Instance -> Monitor.
You can select and view monitoring data for JVM, server, applications, thread pools, HTTP service, transaction service, log statistics, and call flow statistics. See The Tree Structure of Monitorable Objects.
For details on viewing or configuring monitoring, see the online help available with the Admin Console.
For more information on the attributes for each component or service, refer to Statistics for Monitored Components and Services.
This section contains the following topics:
asadmin has two ways of viewing monitoring data. The first is to use the monitor command. This command prints out the commonly-monitored statistics, and has options for filtering out statistics and capture the output in a Comma Separated Values (CSV) file.
To view monitoring data, use the monitor command, and specify the type of monitoring data: httplistener, keepalive, filecache, connectionqueue, jdbcpool, jvm, threadpool, servlet, connection, connectorpool, endpoint, entitybean, messagedriven, statefulsession, statelesssession, httpservice, or webmodule.
For example, to view data for jvm on server, enter the following:
asadmin>monitor --type jvm --user adminuser server |
JVM Monitoring UpTime(ms) HeapSize(bytes) current min max low high count 327142979 0 531628032 0 45940736 45940736 |
To view monitoring data and send the output to a CSV file, use the filename option. For example:
asadmin> monitor --type jvm --filename myoutputfile --user adminuser server |
The monitor command is useful in most situations. However, it does not offer the complete list of all monitorable objects. To view all monitorable data using the asadmin tool, use the asadmin list and asadmin get commands followed by the dotted name of a monitorable object, as follows.
To view the names of the objects that can be monitored, use the asadmin list command.
For example, to view a list of application components and subsystems that have monitoring enable for the server instance, type the following command in a terminal window:
asadmin> list --user adminuser --monitor server |
The preceding command returns a list of application components and subsystems that have monitoring enabled, for example:
server.resources server.connector-service server.orb server.jms-service server.jvm server.applications server.http-service server.sip-service server.thread-pools |
For further examples using the list command, refer to Examples of the list and get Commands. For further information on the dotted names you can use with the list command, refer to Understanding and Specifying Dotted Names.
To display monitoring statistics for an application component or subsystem for which monitoring has been enabled, use the asadmin get command.
To get the statistics, type the asadmin get command in a terminal window, specifying a name displayed by the list command in the preceding step. The following example attempts to get all attributes from a subsystem for a specific object:
asadmin> get --user adminuser --monitor server.jvm.* |
The command returns the following attributes and data:
server.jvm.dotted-name = server.jvm server.jvm.heapsize-current = 21241856 server.jvm.heapsize-description = Provides statistical information about the JVM's memory heap size. server.jvm.heapsize-highwatermark = 21241856 server.jvm.heapsize-lastsampletime = 1080232913938 server.jvm.heapsize-lowerbound = 0 server.jvm.heapsize-lowwatermark = 0 server.jvm.heapsize-name = JvmHeapSize server.jvm.heapsize-starttime = 1080234457308 server.jvm.heapsize-unit = bytes server.jvm.heapsize-upperbound = 518979584 server.jvm.uptime-count = 1080234457308 server.jvm.uptime-description = Provides the amount of time the JVM has been running. server.jvm.uptime-lastsampletime = 1080234457308 server.jvm.uptime-name = JvmUpTime server.jvm.uptime-starttime = 1080232913928 server.jvm.uptime-unit = milliseconds |
For further examples using the get command, refer to Examples of the list and get Commands. For further information on the dotted names you can use with the get command, refer to Understanding and Specifying Dotted Names.
In the asadmin list and get commands, specify the dotted name of monitorable objects. All child objects are addressed using the dot (.) character as separator, thus these are referred to as dotted names. If a child node is of singleton type, then only the monitoring object type is needed to address the object, otherwise a name of the form type.name is needed to address the object.
For example, http-service is one of the valid monitorable object types and is a singleton. To address a singleton child node representing the http-service of instance server, the dotted name is:
server.http-service
Another example, application, is a valid monitorable object type and is not a singleton. To address a non-singleton child node representing, for example, the application PetStore, the dotted name is:
server.applications.petstore
The dotted names can also address specific attributes in monitorable objects. For example, http-service has a monitorable attribute called bytesreceived-lastsampletime. The following name addresses the bytesreceived attribute:
server.http-service.server.http-listener-1. bytesreceived-lastsampletime
The administrator is not expected to know the valid dotted names for asadmin list and get commands. The list command displays available monitorable objects, while the get command used with a wildcard parameter allows the inspection of all available attributes on any monitorable object.
The underlying assumptions for using the list and get commands with dotted names are:
Any list command that has a dotted name that is not followed by a wildcard (*) gets as its result the current node’s immediate children. For example, list --user adminuser --monitor server lists all immediate children belonging to the server node.
Any list command that has a dotted name followed by a wildcard of the form .* gets as its result a hierarchical tree of children nodes from the current node. For example, list --user adminuser --monitor server.applications.* lists all children of applications and their subsequent child nodes and so on.
Any list command that has a dotted name preceded or followed by a wildcard of the form *dottedname or dotted * name or dotted name * gets as its result all nodes and their children matching the regular expression created by the provided matching pattern.
A get command followed by a .* or a * gets as its result the set of attributes and their values belonging to the current node to be matched.
For more information, read Expected Output for list and get Commands at All Levels.
This section contains the following topics:
The list command provides information about the application components and subsystems currently being monitored for the specified server instance name. Using this command, you can see the monitorable components and subcomponents for a server instance. For a more complete listing of list examples, see Expected Output for list and get Commands at All Levels.
asadmin> list --user admin-user --monitor server |
The preceding command returns a list of application components and subsystems that have monitoring enabled, for example:
server.resources server.orb server.jvm server.jms-service server.connector-service server.applications server.http-service server.thread-pools |
It is also possible to list applications that are currently monitored in the specified server instance. This is useful when particular monitoring statistics are sought from an application using the get command.
asadmin> list --user admin-user --monitor server.applications
Returns:
server.applications.adminapp server.applications.admingui server.applications.myApp
For a more comprehensive example, see To Use the PetStore Example.
This command retrieves the following monitored information:
All attribute(s) monitored within a component or subsystem
Specific attribute monitored within a component or subsystem
When an attribute is requested that does not exist for a particular component or subsystem, an error is returned. Similarly, when a specific attribute is requested that is not active for a component or subsystem, an error is returned.
Refer to Expected Output for list and get Commands at All Levels for more information on the use of the get command.
Attempt to get all attributes from a subsystem for a specific object:
asadmin> get --user admin-user --monitor server.jvm.* |
Returns:
server.jvm.dotted-name= server.jvm server.jvm.heapsize-current = 21241856 server.jvm.heapsize-description = Provides statistical information about the JVM's memory heap size. server.jvm.heapsize-highwatermark = 21241856 server.jvm.heapsize-lastsampletime = 1080232913938 server.jvm.heapsize-lowerbound = 0 server.jvm.heapsize-lowwatermark = 0 server.jvm.heapsize-name = JvmHeapSize server.jvm.heapsize-starttime = 1080234457308 server.jvm.heapsize-unit = bytes server.jvm.heapsize-upperbound = 518979584 server.jvm.uptime-count = 1080234457308 server.jvm.uptime-description = Provides the amount of time the JVM has been running. server.jvm.uptime-lastsampletime = 1080234457308 server.jvm.uptime-name = JvmUpTime server.jvm.uptime-starttime = 1080232913928 server.jvm.uptime-unit = milliseconds |
Attempt to get all attributes from a Java EE application:
asadmin> get --user admin-user --monitor server.applications.myJavaEEApp.* |
Returns:
No matches resulted from the wildcard expression. CLI137 Command get failed. |
There are no monitorable attributes exposed at the Java-EE-application level, therefore this reply displays.
Attempt to get a specific attribute from a subsystem:
asadmin> get --user admin-user --monitor server.jvm.uptime-lastsampletime |
Returns:
server.jvm.uptime-lastsampletime = 1093215374813
Attempt to get an unknown attribute from within a subsystem attribute:
asadmin> get --user admin-user --monitor server.jvm.badname |
Returns:
No such attribute found from reflecting the corresponding Stats interface: [badname] CLI137 Command get failed. |
The following example illustrates how the asadmin tool might be used for monitoring purposes.
A user wants to inspect the number of calls made to a method in the sample PetStore application after it has been deployed onto the Enterprise Server. The instance onto which it has been deployed is named server. A combination of the list and get commands are used to access desired statistics on a method.
Start the Enterprise Server and the asadmin tool.
Set some useful environment variables to avoid entering them for every command:
asadmin> export AS_ADMIN_USER=admin AS_ADMIN_PASSWORD=admin123 asadmin>export AS_ADMIN_HOST=localhost AS_ADMIN_PORT=4848 |
List monitorable components for instance server:
asadmin> list --user adminuser --monitor server* |
Returns (output will be similar to):
server server.applications server.applications.CometEJB server.applications.ConverterApp server.applications.petstore server.http-service server.resources server.thread-pools |
The list of monitorable components includes thread-pools, http-service, resources, and all deployed (and enabled) applications.
List the monitorable subcomponents in the PetStore application (-m can be used instead of --monitor):
asadmin> list -m server.applications.petstore
Returns:
server.applications.petstore.signon-ejb_jar server.applications.petstore.catalog-ejb_jar server.applications.petstore.uidgen-ejb_jar server.applications.petstore.customer-ejb_jar server.applications.petstore.petstore-ejb_jar server.applications.petstore.petstore\.war server.applications.petstore.AsyncSenderJAR_jar server.applications.petstore.cart-ejb_jar |
List the monitorable subcomponents in the EJB module signon-ejb_jar of the PetStore application:
asadmin> list -m server.applications.petstore.signon-ejb_jar |
Returns:
server.applications.petstore.signon-ejb_jar.SignOnEJB server.applications.petstore.signon-ejb_jar.UserEJB |
List the monitorable subcomponents in the entity bean UserEJB for the EJB module signon-ejb_jar of the PetStore application:
asadmin> list -m server.applications.petstore.signon-ejb_jar.UserEJB |
Returns (with dotted name removed for space considerations):
server.applications.petstore.signon-ejb_jar.UserEJB.bean-cache server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods server.applications.petstore.signon-ejb_jar.UserEJB.bean-pool |
List the monitorable subcomponents in the method getUserName for the entity bean UserEJB in the EJB module signon-ejb_jar of the PetStore application:
asadmin> list -m server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.getUserName |
Returns:
Nothing to list at server.applications.petstore.signon-ejb_jar. UserEJB.bean-methods.getUserName. To get the valid names beginning with a string, use the wildcard "*" character. For example, to list all names that begin with "server", use "list server*". |
There are no monitorable subcomponents for methods. Get all monitorable statistics for the method getUserName.
asadmin> get -m server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.getUserName.* |
Returns:
server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.executiontime-count = 0 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.executiontime-description = Provides the time in milliseconds spent during the last successful/unsuccessful attempt to execute the operation. server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.executiontime-lastsampletime = 1079981809259 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.executiontime-name = ExecutionTime server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.executiontime-starttime = 1079980593137 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.executiontime-unit = count server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.methodstatistic-count = 0 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.methodstatistic-description = Provides the number of times an operation was called, the total time that was spent during the invocation and so on. server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.methodstatistic-lastsampletime = 1079980593137 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.methodstatistic-maxtime = 0 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.methodstatistic-mintime = 0 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.methodstatistic-name = ExecutionTime server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.methodstatistic-starttime = 1079980593137 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.methodstatistic-totaltime = 0 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.methodstatistic-unit = server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumerrors-count = 0 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumerrors-description = Provides the total number of errors that occured during invocation or execution of an operation. server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumerrors-lastsampletime = 1079981809273 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumerrors-name = TotalNumErrors server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumerrors-starttime = 1079980593137 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumerrors-unit = count server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumsuccess-count = 0 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumsuccess-description = Provides the total number of successful invocations of the method. server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumsuccess-lastsampletime = 1079981809255 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumsuccess-name = TotalNumSuccess server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumsuccess-starttime = 1079980593137 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.totalnumsuccess-unit = count |
To also get a specific statistic, such as execution time, use a command such as the following:
asadmin> get -m server.applications.petstore.signon-ejb_jar. UserEJB.bean-methods.getUserName.executiontime-count |
Returns:
server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods. getUserName.executiontime-count = 1 |
The following tables show the command, dotted name, and corresponding output at each level of the tree.
Table 18–25 Top Level
Command |
Dotted Name |
Output |
|
---|---|---|---|
list -m |
server |
|
|
list -m |
server.* |
Hierarchy of child nodes below this node. |
|
get -m |
server.* |
No output except a message saying there are no attributes at this node. |
The following table shows the command, dotted name, and corresponding output for the applications level.
Table 18–26 Applications Level
Command |
Dotted Name |
Output |
|
---|---|---|---|
list -m |
server.applications or *applications |
|
|
list -m |
server.applications.* or *applications.* |
Hierarchy of child nodes below this node. |
|
get -m |
server.applications.* or *applications.* |
No output except message saying there are no attributes at this node. |
The following table shows the command, dotted name, and corresponding output for stand-alone modules and enterprise applications at the applications level.
Table 18–27 Applications - Enterprise Applications and Standalone Modules
Command |
Dotted Name |
Output |
|
---|---|---|---|
list -m |
server.applications.app1 or *app1 Note: this level is only applicable if an enterprise application has been deployed. It is not applicable if a standalone module is deployed. |
ejb-module1_jarweb-module2_warejb-module3_jarweb-module3_war... |
|
list -m |
server.applications.app1.* or *app1.* |
Hierarchy of child nodes below this node. |
|
get -m |
server.applications.app1.* or *app1.* |
No output except message saying there are no attributes at this node. |
|
list -m |
server.applications.app1.ejb-module1_jar or *ejb-module1_jar or server.applications.ejb-module1_jar |
bean1bean2bean3... |
|
list -m |
server.applications.app1.ejb-module1_jar or *ejb-module1_jar or server.applications.ejb-module1_jar |
Hierarchy of child nodes below this node. |
|
get -m |
server.applications.app1.ejb-module1_jar.* or *ejb-module1_jar.* or server.applications.ejb-module1_jar.* |
No output except message saying there are no attributes at this node. |
|
list -m |
server.applications.app1.ejb-module1_jar.bean1 Note: In standalone modules, the node containing the application name (app1 in this example) will not appear. |
List of child nodes: bean-poolbean-cachebean-method |
|
list -m |
server.applications.app1.ejb-module1_jar.bean1 Note: In standalone modules, the node containing the application name (app1 in this example) will not appear. |
Hierarchy of child nodes and a list of all attributes for this node and for any subsequent child nodes. |
|
get -m |
server.applications.app1.ejb-module1_jar.bean1.* Note: In standalone modules, the node containing the application name (app1 in this example) does not appear. |
The following attributes and their associated values:
|
|
list -m |
server.applications.app1.ejb-module1_jar.bean1.bean-pool Note: In standalone modules, the node containing the application name (app1 in this example) will not appear. |
No attributes, but a message saying: Nothing to list at server.applications.appl.ejb-module1_jar.bean1-cache. To get the valid names beginning with a string, use the wildcard (*) character. For example, to list all names that begin with server, use list server*. |
|
get -m |
server.applications.app1.ejb-module1_jar.bean1.bean-pool.* Note: In standalone modules, the node containing the application name (app1 in this example) will not appear. |
List of attributes and values corresponding to EJB Pool attributes as described in Table 18–4. |
|
list -m |
server.applications.app1.ejb-module1_jar.bean1.bean-cache Note: In standalone modules, the node containing the application name (app1 in this example) will not appear. |
No attributes, but a message saying “Use get command with the --monitor option to view this node’s attributes and values.” |
|
get -m |
server.applications.app1.ejb-module1_jar.bean1.bean-cache.* Note: In standalone modules, the node containing the application name (app1 in this example) does not appear. |
List of attributes and values corresponding to EJB Cache attributes as described in Table 18–5. |
|
list -m |
server.applications.app1.ejb-module1_jar.bean1.bean-method.method1 Note: In standalone modules, the node containing the application name (app1 in this example) will not appear. |
No attributes, but a message saying “Use get command with the --monitor option to view this node’s attributes and values.” |
|
get -m |
server.applications.app1.ejb-module1_jar.bean1.bean-method.method1.* Note: In standalone modules, the node containing the application name (app1 in this example) will not appear. |
List of attributes and values corresponding to EJB Methods attributes as described in Table 18–2. |
|
list -m |
server.applications.app1.web-module1_war |
Displays the virtual server(s) assigned to the module. |
|
get -m |
server.applications.app1.web-module1_war.* |
No output except a message saying there are no attributes at this node. |
|
list -m |
server.applications.app1.web-module1_war.virtual_server |
Displays list of servlets registered. |
|
get -m |
server.applications.app1.web-module1_war.virtual_server.* |
No output except a message saying there are no attributes at this node. |
|
list -m |
server.applications.app1.web-module1_war.virtual_server.servlet1 |
No attributes, but a message saying “Use get command with the --monitor option to view this node’s attributes and values.” |
|
get -m |
server.applications.app1.web-module1_war.virtual_server.servlet1.* |
List of attributes and values corresponding to web container (Servlet) attributes as described in Table 18–7. |
The following table shows the command, dotted name, and corresponding output for the HTTP Service level.
Table 18–28 HTTP-Service Level
Command |
Dotted Name |
Output |
---|---|---|
list -m |
server.http-service |
List of virtual servers. |
get -m |
server.http-service.* |
No output except message saying there are no attributes at this node. |
list -m |
server.http-service.server |
List of HTTP Listeners. |
get -m |
server.http-service.server.* |
No output except message saying there are no attributes at this node. |
list -m |
server.http-service.server.http-listener1 |
No attributes, but a message saying “Use get command with the --monitor option to view this node’s attributes and values.” |
get -m |
server.http-service.server.* |
List of attributes and values corresponding to HTTP Service attributes as described in Table 18–9. |
The following table shows the command, dotted name, and corresponding output for the thread pools level.
Table 18–29 Thread-Pools Level
Command |
Dotted Name |
Output |
---|---|---|
list -m |
server.thread-pools |
List of thread-pool names. |
get -m |
server.thread-pools.* |
No output except message saying there are no attributes at this node. |
list -m |
server.thread-pools.orb\.threadpool\.thread-pool-1 |
No attributes, but a message saying “Use get command with the --monitor option to view this node’s attributes and values.” |
get -m |
server.thread-pools..orb\.threadpool\.thread-pool-1.* |
List of attributes and values corresponding to Thread Pool attributes as described in Table 18–14. |
The following table shows the command, dotted name, and corresponding output for the resources level.
Table 18–30 Resources Level
Command |
Dotted Name |
Output |
---|---|---|
list -m |
server.resources |
List of pool names. |
get -m |
server.resources.* |
No output except message saying there are no attributes at this node. |
list -m |
server.resources.jdbc-connection-pool-pool.connection-pool1 |
No attributes, but a message saying “Use get command with the --monitor option to view this node’s attributes and values.” |
get -m |
server.resources.jdbc-connection-pool-pool.connection-pool1.* |
List of attributes and values corresponding to Connection Pool attributes as described in Table 18–10. |
The following table shows the command, dotted name, and corresponding output for the transaction service level.
Table 18–31 Transaction-Service Level
Command |
Dotted Name |
Output |
---|---|---|
list -m |
server.transaction-service |
No attributes, but a message saying “Use get command with the --monitor option to view this node’s attributes and values.” |
get -m |
server.transaction-service.* |
List of attributes and values corresponding to Transaction Service attributes as described in Table 18–15. |
The following table shows the command, dotted name, and corresponding output for the ORB level.
Table 18–32 ORB Level
Command |
Dotted Name |
Output |
---|---|---|
list -m |
server.orb |
server-orb.connection-managers |
get -m |
server.orb.* |
No output except message saying there are no attributes at this node. |
list -m |
server.orb.connection-managers |
Name(s) of ORB connection managers. |
get -m |
server.orb.connection-managers.* |
No output except message saying there are no attributes at this node. |
list -m |
server.orb.connection-managers.orb\.Connections\.Inbound\.AcceptedConnections |
No attributes, but a message saying “Use get command with the --monitor option to view this node’s attributes and values.” |
get -m |
server.orb.connection-managers.orb\.Connections\.Inbound\.AcceptedConnections.* |
List of attributes and values corresponding to ORB Connection Manager attributes as described in Table 18–13. |
The following table shows the command, dotted name, and corresponding output for the JVM level.
Table 18–33 JVM Level
Command |
Dotted Name |
Output |
---|---|---|
list -m |
server.jvm |
No attributes, but a message saying “Use get command with the --monitor option to view this node’s attributes and values.” |
get -m |
server.jvm.* |
List of attributes and values corresponding to JVM attributes as described in Table 18–16. |
This section contains the following topics:
Administration (management and monitoring) of the Enterprise Server is based on JMX Technology. This means that the managed components are represented as MBeans in the MBeanServer running in the Enterprise Server's JVM.
Java SE 5 enhances management and monitoring of the JVM by including a Platform MBean Server and by including MBeans to configure the JVM. Enterprise Server leverages these enhancements and registers its MBeans with the Platform MBean Server. Thus a JMX Connector Client gets a unified view of JVM MBeans as well as Enterprise Server MBeans.
To view all the MBeans, Enterprise Server provides a configuration of the Standard JMX Connector Server called System JMX Connector Server. As part of Enterprise Server startup, an instance of this JMX Connector Server is started. Any compliant JMX connector client can connect to the server using this Connector Server.
Java SE also provides tools to connect to an MBean Server and view MBeans registered with it. JConsole is one such popular JMX Connector Client and is available as part of the standard Java SE distribution. For more information on JConsole, see http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html
When you configure JConsole with Enterprise Server, Enterprise Server becomes the JMX Connector's server end and JConsole becomes the JMX Connector's preferred client end. Connecting JConsole to Application Servershows how to make a successful connection .
There are subtle differences in how to connect to Enterprise Server, or any JMX Connector Server end, based on the transport layer security of the connection. If the server end is secure (guarantees transport layer security), there is a little more configuration to be performed on the client end.
By default, the developer profile of Enterprise Server is configured with a non-secure System JMX Connector Server.
By default, cluster and enterprise profiles of Enterprise Server are configured with a secure System JMX Connector Server.
The protocol used for communication is RMI/JRMP. If security is enabled for the JMX Connector, the protocol used is RMI/JRMP over SSL.
RMI over SSL does not provide additional checks to ensure that the client is talking to the intended server. Thus, there is always a possibility, while using JConsole, that you are sending the user name and password to a malicious host. It is completely up to the administrator to make sure that security is not compromised.
When you install a developer profile domain on a machine such as appserver.sun.com, you will see the following in the Domain Administration Server (DAS) domain.xml file:
<!- – The JSR 160 "system-jmx-connector" – –><jmx-connector accept-all="false" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false"/><!- – The JSR 160 "system-jmx-connector" – –>
The security-enabled flag for the JMX Connector is false. If you are running the cluster or enterprise profile, or if you have turned on security for the JMX Connector in the developer profile, this flag is set to true.
<!- – The JSR 160 "system-jmx-connector" – –><jmx-connector accept-all="false" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="true"/>...</jmx-connector><!- – The JSR 160 "system-jmx-connector" – –>
The JConsole setup has two parts: a server end and a client end. For this example, the Enterprise Server domain is installed on a machine called appserver.sun.com, which is a powerful Solaris server. This is the server end.
The client end also has an installation of Enterprise Server. Let us assume that the client end is a Windows machine with Java SE 6.0 and Enterprise Server installed.
The Enterprise Server installation is needed on the client end only when your Enterprise Server domain has security enabled on the remote machine (the default for cluster and enterprise profiles). If you just want to administer an Enterprise Server developer profile domain on the Solaris machine above, you do not need the Enterprise Server installation on this client machine.
If the server and client ends are on the same machine, you can use localhost to specify the host name.
This procedure describes connecting JConsole to Enterprise Server without security enabled on the JMX Connector. By default, security is not enabled on Enterprise Server for the developer profile.
Start the domain on appserver.sun.com.
Start JConsole by running JDK_HOME/bin/jconsole.
In the Connect to Agent tab of JConsole, enter user name, password, host name and port (8686, by default).
The user name refers to the administration user name and password refers to the administration password of the domain.
Click Connect.
In the JConsole window you will see all your MBeans, VM information etc., in various tabs.
This procedure describes how to connect JConsole to Enterprise Server with security enabled on the JMX Connector. By default, security is enabled on Enterprise Server cluster or enterprise profiles. Use this procedure if you have security enabled on the developer profile's JMX Connector.
Install Enterprise Server on the client machine (where JConsole is installed).
The only reason you need this is to let JConsole know where the server certificate of the Domain Administration Server that you trust is located. To obtain that certificate, invoke at least one remote asadmin command and to do that, you need the local installation of Enterprise Server.
Start the Enterprise Server on appserver.sun.com.
Since this is a cluster or enterprise domain, the system JMX Connector server is secure. To enable security on the developer profile JMX Connector, see the Admin Console online help.
From the local Enterprise Server installation, run install-dir\bin\asadmin list --user admin --secure=true --host appserver.sun.com --port 4848 (where 4848 is the server's administration port).
Though asadmin list command is chosen for this example, you can run any remote asadmin command. You are prompted to accept the certificate sent by the DAS of appserver.sun.com.
Press y to accept the certificate sent by the DAS on appserver.sun.com.
The server's certificate is stored in a file called .asadmintruststore in your home directory on the client machine.
This step is not required if your server machine and client machine is the same. That is, if you are running JConsole also on appserver.sun.com.
Let JConsole know the trust store location by using the following JConsole command:
JDK-dir\bin\jconsole.exe -J-Djavax.net.ssl.trustStore="C:\Documents and Settings\user\.asadmintruststore"
Start JConsole by running JDK_HOME/bin/jconsole
In the Connect to Agent tab of JConsole, enter user name, password, host name and port (8686, by default).
The user name refers to the administration user name and password refers to the administration password of the domain.
Click Connect.
In the JConsole window you will see all your MBeans, VM information etc., in various tabs.