Sun Java System Application Server Enterprise Edition 8.1 2005Q2 管理指南

第 16 章 监视组件和服务

本章包含有关使用 Application Server 管理控制台监视组件的信息。本章包括以下几个部分:

关于监视

Application Server 中的监视功能

使用监视功能可以观察 Application Server 的服务器实例中所部署的各种组件和服务的运行状态。利用有关运行时组件和进程状态的信息,可以确定性能瓶颈以便进行优化、有助于进行容量规划、预测故障、在发生故障时分析根本原因,以及确保一切运行正常。

启用监视功能会因增加系统开销而使性能降低。

监视概述

要监视 Application Server,请执行以下步骤:

  1. 使用管理控制台或 asadmin 工具来启用对特定服务和组件的监视功能。

    有关此步骤的更多信息,请参阅用于启用和禁用监视功能的管理控制台任务

  2. 使用管理控制台或 asadmin 工具来查看指定服务或组件的监视数据。

    有关此步骤的更多信息,请参阅用于查看监视数据的管理控制台任务

关于可监视对象的树结构

Application Server 使用树结构来跟踪可监视对象。由于监视对象的树是动态的,因此在实例中添加、更新或删除组件时该树会相应地发生变化。树的根对象为服务器实例名称,例如 server。(在平台版中,仅允许使用一个服务器实例。)

以下命令显示了树的顶层:


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

以下各节介绍了这些子树:

应用程序树

以下示意图显示了企业应用程序的各种组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。有关更多信息,请参阅EJB 容器统计信息


示例 16–1 应用程序节点树结构

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

HTTP 服务树

以下示意图显示了 HTTP 服务的节点。具有可用的监视信息的节点标有星号 (*)。请参见HTTP 服务统计信息


示例 16–2 HTTP 服务示意图(平台版)

http-service
         |--- virtual-server-1
              |--- http-listener-1 *
              |--- http-listener-2 *
         |--- virtual-server-2
              |--- http-listener-1 *
              |--- http-listener-2 *


示例 16–3 HTTP 服务示意图(企业版)

http-service *
             |---connection-queue *
             |---dns *
             |---file-cache *
             |---keep-alive *
             |---pwc-thread-pool *
             |---virtual-server-1*
             |        |--- request *
             |---virtual-server-2*
             |        |--- request *

资源树

资源节点保存 JDBC 连接池、连接器连接池等池的可监视属性。以下示意图显示了各种资源组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见JDBC 连接池统计信息


示例 16–4 资源示意图

resources
        |---connection-pool1(either connector-connection-pool or jdbc)*
        |---connection-pool2(either connector-connection-pool or jdbc)*

连接器服务树

连接器服务节点保存连接器连接池等池的可监视属性。以下示意图显示了各种连接器服务组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见JMS 连接器服务统计信息


示例 16–5 连接器服务示意图

connector-service
        |--- resource-adapter-1
        |        |-- connection-pools
        |        |        |-- pool-1 (All pool stats for this pool)
        |        |-- work-management (All work mgmt stats for this RA)

JMS 服务树

JMS 服务节点保存连接器连接池等池的可监视属性。以下示意图显示了各种 JMS 服务组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。


示例 16–6 JMS 服务示意图

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)

ORB 树

ORB 节点保存连接管理器的可监视属性。以下示意图显示了 ORB 组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见ORB 中连接管理器的统计信息


示例 16–7 ORB 示意图

orb
        |--- connection-managers
        |        |--- connection-manager-1 *
        |        |--- connection-manager-1 *

线程池树

线程池节点保存连接管理器的可监视属性。以下示意图显示了 ORB 组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见线程池统计信息


示例 16–8 线程池示意图

thread-pools
        |    |--- thread-pool-1 *
        |    |--- thread-pool-2 *

关于受监视的组件和服务的统计信息

本节介绍了可用的监视统计信息:

EJB 容器统计信息

下表中介绍了 EJB 统计信息。

表 16–1 EJB 统计信息

属性名称 

数据类型 

说明 

createcount

计数统计信息 

调用 EJB 的 create 方法的次数。

removecount

计数统计信息 

调用 EJB 的 remove 方法的次数。

pooledcount

范围统计信息 

处于汇集状态的实体 Bean 的数目。 

readycount

范围统计信息 

处于就绪状态的实体 Bean 的数目。 

messagecount

计数统计信息 

消息驱动 Bean 收到的消息数。 

methodreadycount

范围统计信息 

处于 MethodReady 状态的有状态或无状态会话 Bean 的数目。

passivecount

范围统计信息 

处于 Passive 状态的有状态会话 Bean 的数目。

下表中列出了有关 EJB 方法调用的可用的统计信息。

表 16–2 EJB 方法统计信息

属性名称 

数据类型 

说明 

methodstatistic

时间统计信息 

操作被调用的次数;调用期间所花费的总时间等信息。 

错误总数

计数统计信息 

方法执行时出现异常的次数。如果为 EJB 容器启用了监视功能,则此统计信息是为无状态和有状态会话 Bean 和实体 Bean 而收集的。 

成功总数

计数统计信息 

方法成功执行的次数。如果为 EJB 容器启用了监视功能,则此统计信息是为无状态和有状态会话 Bean 和实体 Bean 收集的统计信息。 

执行时间

计数统计信息 

上次成功/不成功尝试执行方法操作所花费的时间 (ms)。如果在 EJB 容器中启用了监视功能,则此统计信息是为无状态和有状态会话 Bean 和实体 Bean 收集的统计信息。 

下表中列出了有关 EJB 会话存储的统计信息。

表 16–3 EJB 会话存储统计信息

属性名称 

数据类型 

说明 

currentSize

范围统计信息 

当前位于存储中的钝化会话数或检查点会话数。 

activationCount

计数统计信息 

从存储中激活的会话数。 

activationSuccessCount

计数统计信息 

从存储中成功激活的会话数。 

activationErrorCount

计数统计信息 

上次成功/不成功尝试执行方法操作所花费的时间 (ms)。如果在 EJB 容器中启用了监视功能,则此统计信息是为无状态和有状态会话 Bean 和实体 Bean 收集的统计信息。 

passivationCount

计数统计信息 

使用此存储钝化(取消激活)的会话数。 

passivationSuccessCount

计数统计信息 

使用此存储成功钝化的会话数。 

passivationErrorCount

计数统计信息 

无法使用此存储钝化的会话数。 

expiredSessionCount

计数统计信息 

此存储删除的过期会话数。 

passivatedBeanSize

计数统计信息 

由此存储钝化的总字节数,包括总数、最小值和最大值。 

passivationTime

计数统计信息 

将 Bean 钝化到存储所花费的时间,包括总时间值、最小值和最大值。 

checkpointCount(仅限于 EE)

计数统计信息 

使用此存储进行会话检查点操作的会话数。 

checkpointSuccessCount(仅限于 EE)

计数统计信息 

成功进行检查点操作的会话数。 

checkpointErrorCount(仅限于 EE)

计数统计信息 

无法进行检查点操作的会话数。 

checkpointedBeanSize(仅限于 EE)

值统计信息 

由该存储进行检查点操作的 Bean 的总数。 

checkpointTime(仅限于EE)

时间统计信息 

通过检查点操作将 Bean 放入存储中所花费的时间。 

下表中列出了有关 EJB 池的可用的统计信息。

表 16–4 EJB 池统计信息

属性名称 

数据类型 

说明 

numbeansinpool

已绑定范围统计信息 

相关池中的 EJB 数,决定了该池的更改方式。 

numthreadswaiting

已绑定范围统计信息 

等待空闲 Bean 的线程数,指出可能的请求拥塞。 

totalbeanscreated

计数统计信息 

自开始收集数据以来相关池中所创建的 Bean的数目。 

totalbeansdestroyed

计数统计信息 

自开始收集数据以来从相关池中销毁的 Bean 的数目。 

jmsmaxmessagesload

计数统计信息 

为使消息驱动的 Bean 提供服务而一次加载到 JMS 会话中的最大消息数。默认值为 1。仅适用于消息驱动的 Bean 的池。 

下表中列出了有关 EJB 高速缓存的可用的统计信息。

表 16–5 EJB 高速缓存统计信息

属性名称 

数据类型 

说明 

cachemisses

已绑定范围统计信息 

用户请求未在高速缓存中找到 Bean 的次数。 

cachehits

已绑定范围统计信息 

用户请求在高速缓存中找到某条目的次数。 

numbeansincache

已绑定范围统计信息 

高速缓存中 Bean 的数目。这是高速缓存的当前大小。 

numpassivations

计数统计信息 

钝化的 Bean 数。仅适用于状态会话 Bean。 

numpassivationerrors

计数统计信息 

挂起时的错误数。仅适用于状态会话 Bean。 

numexpiredsessionsremoved

计数统计信息 

清除线程删除的过期会话数。仅适用于状态会话 Bean。 

numpassivationsuccess

计数统计信息 

成功完成挂起的次数。仅适用于状态会话 Bean。 

下表中列出了有关计时器的可用的统计信息。

表 16–6 计时器统计信息

统计信息 

数据类型 

说明 

numtimerscreated

计数统计信息 

系统中创建的计时器的数目。 

numtimersdelivered

计数统计信息 

系统所发送的计时器的数目。 

numtimersremoved

计数统计信息 

从系统中删除的计时器的数目。 

Web 容器统计信息

Web 容器包含在应用程序树所示的对象树中。系统为每个单独的 Web 应用程序都显示了 Web 容器统计信息。Web 容器统计信息中显示了有关 Servlet Web 容器的可用的统计信息,Web 容器统计信息中显示了有关 Web 模块的可用的统计信息。

表 16–7 Web 容器 (Servlet) 统计信息

统计信息 

单位 

数据类型 

说明 

errorcount

个 

计数统计信息 

响应代码大于或等于 400 的情况的累积次数。 

maxtime

毫秒 

计数统计信息 

Web 容器等待请求的最长时间。 

processingtime

毫秒 

计数统计信息 

处理每个请求所需时间的累积值。处理时间是总请求处理时间除以请求计数所得的平均值。 

requestcount

个 

计数统计信息 

到目前为止所处理的请求总数。 

Web 容器统计信息中显示了有关 Web 模块的可用的统计信息。

表 16–8 Web 容器(Web 模块)统计信息

统计信息 

数据类型 

说明 

jspcount

计数统计信息 

已装入 Web 模块的 JSP 页面的数目。 

jspreloadcount

计数统计信息 

已重新装入 Web 模块的 JSP 页面的数目。 

sessionstotal

计数统计信息 

已为 Web 模块创建的会话总数。 

activesessionscurrent

计数统计信息 

Web 模块的当前处于活动状态的会话数。 

activesessionshigh

计数统计信息 

Web 模块的同时处于活动状态的会话最大数。 

rejectedsessionstotal

计数统计信息 

Web 模块的被拒绝的会话总数。是指由于允许处于活动状态的会话数已达到最大值而未被创建的会话数。 

expiredsessionstotal

计数统计信息 

Web 模块的已过期会话的总数。 

sessionsize(仅限于 EE)

平均范围统计信息 

Web 模块的会话大小。值可以为大、小或平均值,或以字节为单位(用于序列化会话)。 

containerlatency(仅限于 EE)

平均范围统计信息 

全部请求等待时间中 Web 容器所占的等待时间。值可以是长、短或平均值。 

sessionpersisttime(仅限于 EE)

平均范围统计信息 

将 HTTP 会话状态保持到 Web 模块的后端存储中所花费的时间(以 ms 为单位,短、长或平均值)。 

cachedsessionscurrent(仅限于 EE)

计数统计信息 

高速缓存在内存中用于 Web 模块的当前会话数。 

passivatedsessionscurrent(仅限于 EE)

计数统计信息 

用于 Web 模块的已钝化会话的当前数目。 

HTTP 服务统计信息

HTTP 服务统计信息中显示了有关 HTTP 服务的可用的统计信息。这些统计信息仅适用于平台版。有关 Enterprise Edition 上的HTTP 服务的统计信息,请参见生产 Web 容器 (PWC) 统计信息

表 16–9 HTTP 服务统计信息(仅适用于平台版)

统计信息 

单位 

数据类型 

说明 

bytesreceived

字节 

计数统计信息 

每个请求处理器接收到的字节累积值。 

bytessent

字节 

计数统计信息 

每个请求处理器所发送的字节累积值。 

currentthreadcount

个 

计数统计信息 

当前位于侦听器线程池中的处理线程数。 

currentthreadsbusy

个 

计数统计信息 

处理请求的侦听器线程池中当前正在使用的请求处理线程的数目。 

errorcount

个 

计数统计信息 

错误计数的累积值,错误计数是指响应代码大于或等于 400 这类情况发生的次数。 

maxsparethreads

个 

计数统计信息 

可以存在的未使用响应处理线程的最大数目。 

minsparethreads

个 

计数统计信息 

可以存在的未使用响应处理线程的最小数目。 

maxthreads

个 

计数统计信息 

侦听器所创建的请求处理线程的最大数目。 

maxtime

毫秒 

计数统计信息 

处理线程的最长时间。 

processing-time

毫秒 

计数统计信息 

处理每个请求所花费时间的累积值。处理时间是总请求处理时间除以请求计数所得的平均值。 

request-count

个 

计数统计信息 

到目前为止所处理的请求总数。 

JDBC 连接池统计信息

用于在运行时监视 JDBC 资源,以测量性能并捕获资源使用情况。由于创建 JDBC 连接的成本很高并且常常会导致应用程序出现性能瓶颈问题,因此对 JDBC 连接池释放和创建新连接的方法以及正在等待从特定池中检索连接的线程数的监视是至关重要的。

下表中显示了有关 JDBC 连接池的可用的统计信息。

表 16–10 JDBC 连接池统计信息

统计信息 

单位 

数据类型 

说明 

numconnfailedvalidation

个 

计数统计信息 

从开始时间到上次抽样时间为止在连接池中验证失败的连接总数。 

numconnused

个 

范围统计信息 

提供连接使用情况统计信息。当前正被使用的连接的总数,以及有关使用过的连接的最大数目的信息(高水印)。 

numconnfree

个 

范围统计信息 

上次抽样时池中的空闲连接的总数。 

numconntimedout

个 

已绑定范围统计信息 

开始时间与上次抽样时间之间池中的超时连接总数。 

averageconnwaittime

个 

计数统计信息 

指示尝试与连接器连接池建立连接成功的连接请求的平均等待时间。 

waitqueuelength

个 

计数统计信息 

队列中正在等待处理的连接请求数。 

connectionrequestwaittime

 

范围统计信息 

连接请求的最长和最短等待时间。当前值表示连接池处理的上一个请求的等待时间。 

numconncreated

毫秒 

计数统计信息 

自上次复位以来创建的物理连接数。 

numconndestroyed

个 

计数统计信息 

自上次复位以来销毁的物理连接数。 

numconnacquired

个 

计数统计信息 

从池中获取的逻辑连接数。 

numconnreleased

个 

计数统计信息 

释放到池中的逻辑连接数。 

JMS 连接器服务统计信息

JMS 连接器服务统计信息中显示了有关连接器连接池的可用的统计信息。JMS 连接器服务统计信息中显示了连接器工作管理统计信息。

表 16–11 连接器连接池统计信息

统计信息 

单位 

数据类型 

说明 

numconnfailedvalidation

个 

计数统计信息 

从开始时间到上次抽样时间为止在连接池中验证失败的连接总数。 

numconnused

个 

范围统计信息 

提供连接使用情况统计信息。当前正被使用的连接的总数,以及有关使用过的连接的最大数目的信息(高水印)。 

numconnfree

个 

范围统计信息 

上次抽样时池中的空闲连接的总数。 

numconntimedout

个 

计数统计信息 

开始时间与上次抽样时间之间池中的超时连接总数。 

averageconnwaittime

个 

计数统计信息 

连接池处理连接之前这些连接的平均等待时间。 

waitqueuelenght

个 

计数统计信息 

队列中正在等待处理的连接请求数。 

connectionrequestwaittime

 

范围统计信息 

连接请求的最长和最短等待时间。当前值表示连接池处理的上一个请求的等待时间。 

numconncreated

毫秒 

计数统计信息 

自上次复位以来创建的物理连接数。 

numconndestroyed

个 

计数统计信息 

自上次复位以来销毁的物理连接数。 

numconnacquired

个 

计数统计信息 

从池中获取的逻辑连接数。 

numconnreleased

个 

计数统计信息 

释放到池中的逻辑连接数。 

JMS 连接器服务统计信息中列出了有关连接器工作管理的可用的统计信息。

表 16–12 连接器工作管理统计信息

统计信息 

数据类型 

说明 

activeworkcount

范围统计信息 

由连接器执行的工作对象数。 

waitqueuelength

范围统计信息 

执行前在队列中等待的工作对象数。 

workrequestwaittime

范围统计信息 

工作对象在被执行前所等待的最长和最短时间。 

submittedworkcount

计数统计信息 

由连接器模块提交的工作对象数。 

rejectedworkcount

计数统计信息 

Application Server 拒绝的工作对象数。 

completedworkcount

计数统计信息 

完成的工作对象数。 

ORB 中连接管理器的统计信息

ORB 中连接管理器的统计信息中列出了有关 ORB 中的连接管理器的可用的统计信息。

表 16–13 ORB 中连接管理器的统计信息

统计信息 

单位 

数据类型 

说明 

connectionsidle

个 

计数统计信息 

提供与 ORB 的空闲连接的总数。 

connectionsinuse

个 

计数统计信息 

提供与 ORB 的正在使用的连接总数。 

totalconnections

个 

已绑定范围统计信息 

与 ORB 的连接总数。 

线程池统计信息

下表中显示了有关线程池的可用的统计信息。

表 16–14 线程池统计信息

统计信息 

单位 

数据类型 

说明 

averagetimeinqueue

毫秒 

范围统计信息 

在被处理之前请求在队列中等待的平均时间(以毫秒为单位)。 

averageworkcompletion-time

毫秒 

范围统计信息 

完成分配所花费的平均时间(以毫秒为单位)。 

currentnumberofthreads

个 

已绑定范围统计信息 

当前的请求处理线程数。 

numberofavailablethreads

个 

计数统计信息 

可用的线程数。 

numberofbusythreads

个 

计数统计信息 

处于忙碌状态的线程数。 

totalworkitemsadded

个 

计数统计信息 

到目前为止添加到工作队列中的工作项目总数。 

事务服务统计信息

事务服务允许客户机冻结事务子系统,以回滚事务并确定冻结时正在进行的事务。下表中显示了有关事务服务的可用的统计信息。

表 16–15 事务服务统计信息

统计信息 

数据类型 

说明 

activecount

计数统计信息 

当前处于活动状态的事务数。 

activeids

字符串统计信息 

当前处于活动状态的事务的 ID。冻结事务服务后,可以回滚所有此类事务。 

committedcount

计数统计信息 

已提交的事务数。 

rolledbackcount

计数统计信息 

已回滚的事务数。 

state

字符串统计信息 

表示事务是否已被冻结。 

Java 虚拟机 (JVM) 统计信息

JVM 具有始终处于启用状态的可监视属性。下表中显示了有关 JVM 的可用的统计信息。

表 16–16 JVM 统计信息

统计信息 

数据类型 

说明 

heapsize

已绑定范围统计信息 

JVM 内存堆大小的下限或上限驻留内存轨迹。 

uptime

计数统计信息 

JVM 已运行的时间。 

J2SE 5.0 中的 JVM 统计信息

如果 Application Server 被配置为在 J2SE 5.0 或更高版本上运行,则可以从 JVM 中获得其他监视信息。将监视级别设置为“低”以启用这些附加信息的显示。将监视级别设置为“高”还可以查看与系统中每个活动线程相关的信息。有关 J2SE 5.0 中可用的其他监视功能的详细信息,请参见http://java.sun.com/j2se/1.5.0/docs/guide/management/中标题为 "Monitoring and Management for the Java Platform" 的文档。

http://java.sun.com/j2se/1.5.0/docs/tooldocs/#manage 中讨论了 J2SE 5.0 监视工具。

J2SE 5.0 中的 JVM 统计信息中显示了有关 J2SE 5.0 中的 JVM 类装入的可用的统计信息。

表 16–17 J2SE 5.0 的 JVM 统计信息- -类装入

统计信息 

数据类型 

说明 

loadedclasscount

计数统计信息 

当前装入 JVM 的类的数目。 

totalloadedclasscount

计数统计信息 

自 JVM 开始执行以来已装入的类的总数。 

unloadedclasscount

计数统计信息 

自 JVM 开始执行以来已从 JVM 中卸载的类的数目。 

J2SE 5.0 中的 JVM 统计信息中显示了有关 J2SE 5.0 中的 JVM 编译的可用的统计信息。

表 16–18 J2SE 5.0 的 JVM 统计信息- - 编译

统计信息 

数据类型 

说明 

totalcompilationtime

计数统计信息 

编译所花费的累积时间(以毫秒为单位)。 

J2SE 5.0 中的 JVM 统计信息中显示了有关 J2SE 5.0 中的 JVM 垃圾回收的可用的统计信息。

表 16–19 J2SE 5.0 的 JVM 统计信息—垃圾收集

统计信息 

数据类型 

说明 

collectioncount

计数统计信息 

已发生的收集的总数。 

collectiontime

计数统计信息 

累积的收集时间(以毫秒为单位)。 

J2SE 5.0 中的 JVM 统计信息中显示了有关 J2SE 5.0 中的 JVM 内存的可用的统计信息。

表 16–20 J2SE 5.0 的 JVM 统计信息- -内存

统计信息 

数据类型 

说明 

objectpendingfinalizationcount

计数统计信息 

暂挂结束操作的对象的大约数目。 

initheapsize

计数统计信息 

最初由 JVM 请求的堆的大小。 

usedheapsize

计数统计信息 

当前正在使用的堆的大小。 

maxheapsize

计数统计信息 

可用于内存管理的最大内存容量(以字节为单位)。 

committedheapsize

计数统计信息 

确认可由 JVM 使用的内存容量(以字节为单位)。 

initnonheapsize

计数统计信息 

最初由 JVM 请求的非堆区域的大小。 

usednonheapsize

计数统计信息 

当前正在使用的非堆区域的大小。 

maxnonheapsize

计数统计信息 

可用于内存管理的最大内存容量(以字节为单位)。 

committednonheapsize

计数统计信息 

确认可由 JVM 使用的内存容量(以字节为单位)。 

J2SE 5.0 中的 JVM 统计信息中显示了有关 J2SE 5.0 中的 JVM 操作系统的可用的统计信息。

表 16–21 J2SE 5.0 的 JVM 统计信息- -操作系统

统计信息 

数据类型 

说明 

arch

字符串统计信息 

操作系统体系结构。 

availableprocessors

计数统计信息 

可用于 JVM 的处理器的数目。 

name

字符串统计信息 

操作系统名称。 

version

字符串统计信息 

操作系统版本。 

J2SE 5.0 中的 JVM 统计信息中显示了有关 J2SE 5.0 中的 JVM 运行的可用的统计信息。

表 16–22 J2SE 5.0 的 JVM 统计信息- -运行

统计信息 

数据类型 

说明 

name

字符串统计信息 

代表正在运行的 JVM 的名称 

vmname

字符串统计信息 

JVM 实现名称。 

vmvendor

字符串统计信息 

JVM 实现供应商。 

vmversion

字符串统计信息 

JVM 实现版本。 

specname

字符串统计信息 

JVM 规范名称。 

specvendor

字符串统计信息 

JVM 规范供应商。 

specversion

字符串统计信息 

JVM 规范版本。 

managementspecversion

字符串统计信息 

由 JVM 实现的管理规范版本 

classpath

字符串统计信息 

系统类加载器搜索类文件时所使用的类路径。 

librarypath

字符串统计信息 

Java 库路径。 

bootclasspath

字符串统计信息 

引导类加载器搜索类文件时所使用的类路径。 

inputarguments

字符串统计信息 

传递给 JVM 的输入参数。不包括 main 方法的参数。

uptime

计数统计信息 

JVM 的正常运行时间(以毫秒为单位)。 

J2SE 5.0 中的 JVM 统计信息中显示了有关 J2SE 5.0 中的 JVM ThreadInfo 的可用的统计信息。

表 16–23 J2SE 5.0 的 JVM 统计信息—线程信息

统计信息 

数据类型 

说明 

threadid

计数统计信息 

线程 ID。 

threadname

字符串统计信息 

线程名称。 

threadstate

字符串统计信息 

线程状态。 

blockedtime

计数统计信息 

线程进入 BLOCKED 状态以来所经历的时间(以毫秒为单位)。如果已禁用线程争用监视,则返回 -1。

blockedcount

计数统计信息 

线程进入 BLOCKED 状态的总次数。

waitedtime

计数统计信息 

线程处于 WAITING 状态所经历的时间(以毫秒为单位)。如果已禁用线程争用监视,则返回 -1。

waitedcount

计数统计信息 

线程处于 WAITINGTIMED_WAITING 状态的总次数。

lockname

字符串统计信息 

一种监视锁的字符串表示形式,该监视锁表明线程被阻塞而无法进入或者正等待通过 Object.wait 方法接收通知。

lockownerid

计数统计信息 

保存某个对象的监视锁的线程 ID,该线程在该对象上发生阻塞。 

lockownername

字符串统计信息 

保存某个对象的监视锁的线程名称,该线程在该对象上发生阻塞。 

stacktrace

字符串统计信息 

与该线程相关的堆栈追踪。 

J2SE 5.0 中的 JVM 统计信息中显示了有关 J2SE 5.0 中的 JVM 线程的可用的统计信息。

表 16–24 J2SE 5.0 的 JVM 统计信息- -线程

统计信息 

数据类型 

说明 

threadcount

计数统计信息 

当前的活动守护线程和非守护线程数。 

peakthreadcount

计数统计信息 

自 JVM 启动或峰复位以来的峰活动线程计数。 

totalstartedthreadcount

计数统计信息 

自 JVM 启动以来创建和/或启动的线程总数。 

daemonthreadcount

计数统计信息 

当前的活动守护线程数。 

allthreadids

字符串统计信息 

所有活动线程 ID 列表。 

currentthreadcputime

计数统计信息 

如果已启用 CPU 时间测量,则表示当前线程的 CPU 时间(以纳秒为单位)。如果已禁用 CPU 时间测量,则返回 -1。 

monitordeadlockedthreads

字符串统计信息 

处于监视死锁状态的线程 ID 列表。 

生产 Web 容器 (PWC) 统计信息

给出了有关 Application Server 企业版 (Enterprise Edition, EE) 中的以下 PWC 组件和服务的可用的统计信息:

生产 Web 容器 (PWC) 统计信息中列出了有关 PWC 虚拟服务器的统计信息。

表 16–25 PWC 虚拟服务器统计信息(仅限于 EE)

属性名称 

数据类型 

说明 

id

字符串统计信息 

虚拟服务器的 ID。 

mode

字符串统计信息 

虚拟服务器所处的模式。选项包括 unknownactive

hosts

字符串统计信息 

由该虚拟服务器提供服务的主机的名称。 

interfaces

字符串统计信息 

配置了虚拟服务器的接口(侦听器)的类型。 

下表中列出了有关 PWC 请求的可用的统计信息。

表 16–26 PWC 请求统计信息(仅限于 EE)

属性名称 

数据类型 

说明 

method

字符串统计信息 

用于请求的方法。 

uri

字符串统计信息 

处理的上一个 URI。 

countrequests

计数统计信息 

已处理的请求数。 

countbytestransmitted

计数统计信息 

传输的字节数;如果此信息不可用,则值为 0。 

countbytesreceived

计数统计信息 

收到的字节数;如果此信息不可用,则值为 0。 

ratebytesreceived

计数统计信息 

在某段服务器定义的时间间隔内数据的接收速率;如果此信息不可用,则值为 0。 

maxbytestransmissionrate

计数统计信息 

在某段服务器定义的时间间隔内数据的最大传输速率;如果此信息不可用,则值为 0。 

countopenconnections

计数统计信息 

当前打开的连接数;如果此信息不可用,则值为 0。 

maxopenconnections

计数统计信息 

同时打开的连接的最大数目;如果此信息不可用,则值为 0。 

count2xx

计数统计信息 

代码为 2XX 的响应的总数。 

count3xx

计数统计信息 

代码为 3XX 的响应的总数。 

count4xx

计数统计信息 

代码为 4XX 的响应的总数。 

count5xx

计数统计信息 

代码为 5XX 的响应的总数。 

countother

计数统计信息 

具有其他响应代码的响应总数。 

count200

计数统计信息 

代码为 200 的响应的总数。 

count302

计数统计信息 

代码为 302 的响应的总数。 

count304

计数统计信息 

代码为 304 的响应的总数。 

count400

计数统计信息 

代码为 400 的响应的总数。 

count401

计数统计信息 

代码为 401 的响应的总数。 

count403

计数统计信息 

代码为 403 的响应的总数。 

count404

计数统计信息 

代码为 404 的响应的总数。 

count503

计数统计信息 

代码为 503 的响应的总数。 

高速缓存信息部分提供了有关文件高速缓存当前的使用方式的信息。下表中列出了有关 PWC 文件高速缓存的统计信息。

表 16–27 PWC 文件高速缓存统计信息(仅限于 EE)

属性名称 

数据类型 

说明 

flagenabled

计数统计信息 

指示是否启用了文件高速缓存。禁用时有效值为 0;启用时有效值为 1。 

secondsmaxage

计数统计信息 

有效高速缓存条目的最长生存期(以秒为单位)。 

countentries

计数统计信息 

当前的高速缓存条目数。一个高速缓存条目代表一个 URI。 

maxentries

计数统计信息 

并发高速缓存条目的最大数目。 

countopenentries

计数统计信息 

与打开的文件关联的条目数。 

maxopenentries

计数统计信息 

与打开的文件关联的并发高速缓存条目的最大数目。 

sizeheapcache

计数统计信息 

用于高速缓存内容的堆空间。 

maxheapcachesize

计数统计信息 

用于高速缓存文件内容的最大堆空间。 

sizemmapcache

计数统计信息 

内存映射的文件内容所使用的地址空间大小。 

maxmmapcachesize

计数统计信息 

文件高速缓存用于内存映射的文件内容的最大地址空间大小。 

counthits

计数统计信息 

高速缓存查找成功的次数。 

countmisses

计数统计信息 

高速缓存查找失败的次数。 

countinfohits

计数统计信息 

文件信息查找成功的次数。 

countinfomisses

计数统计信息 

高速缓存的文件信息丢失的数目。 

countcontenthits

计数统计信息 

高速缓存的文件内容的命中次数。 

countcontentmisses

计数统计信息 

文件信息查找失败的次数。 

本节提供了有关服务器的 HTTP 级保持活动的系统的信息。下表中列出了有关 PWC 保持活动的可用的统计信息。

表 16–28 PWC 保持活动统计信息(仅限于 EE)

属性名称 

数据类型 

说明 

countconnections

计数统计信息 

处于保持活动模式的连接数。 

maxconnections

计数统计信息 

允许同时处于保持活动模式的最大连接数。 

counthits

计数统计信息 

处于保持活动模式的连接随后进行了有效请求的总次数。 

countflushes

计数统计信息 

服务器关闭保持活动的连接的次数。 

countrefusals

计数统计信息 

服务器可能由于有太多的持久性连接而无法将连接传递到保持活动线程的次数。 

counttimeouts

计数统计信息 

服务器因客户机连接超时且没有任何活动而终止保持活动连接的次数。 

secondstimeout

计数统计信息 

关闭空闲保持活动连接之前经历的时间(以秒为单位)。 

DNS 高速缓存高速缓存 IP 地址和 DNS 名称。默认情况下,服务器的 DNS 高速缓存处于禁用状态。一个高速缓存条目代表一个 IP 地址或 DNS 名称查找。下表中列出了有关 PWC DNS 的可用的统计信息。

表 16–29 PWC DNS 统计信息(仅限于 EE)

属性名称 

数据类型 

说明 

flagcacheenabled

计数统计信息 

指示是否启用了 DNS 高速缓存。禁用时为 0;启用时为 1。 

countcacheentries

计数统计信息 

当前位于高速缓存中的 DNS 条目数。 

maxcacheentries

计数统计信息 

高速缓存中可容纳的 DNS 条目的最大数目。 

countcachehits

计数统计信息 

DNS 高速缓存查找成功的次数。 

countcachemisses

计数统计信息 

DNS 高速缓存查找失败的次数。 

flagasyncenabled

计数统计信息 

指示是否启用了异步 DNS 查找。禁用时为 0;启用时为 1。 

countasyncnamelookups

计数统计信息 

异步 DNS 名称查找的总数。 

countasyncaddrlookups

计数统计信息 

异步 DNS 地址查找的总数。 

countasynclookupsinprogress

计数统计信息 

正在进行的异步查找的数目。 

下表中列出了有关 PWC 线程池的统计信息。

表 16–30 PWC 线程池统计信息(仅限于 EE)

属性名称 

数据类型 

说明 

id

字符串统计信息 

线程池 ID。 

countthreadsidle

计数统计信息 

当前处于空闲状态的请求处理线程数。 

countthreads

计数统计信息 

当前的请求处理线程的数目。 

maxthreads

计数统计信息 

可同时存在的请求处理线程的最大数目。 

countqueued

计数统计信息 

排队等候此线程池处理的请求数。 

peakqueued

计数统计信息 

队列中同时容纳的最大请求数。 

maxqueued

计数统计信息 

队列一次可容纳的最大请求数。 

连接队列是指请求被处理前容纳这些请求的队列。连接队列的统计信息显示队列中的会话数以及连接被接受前的平均延迟时间。下表中列出了有关 PWC 连接队列的统计信息。

表 16–31 PWC 连接队列统计信息(仅限于 EE)

属性名称 

数据类型 

说明 

id

字符串统计信息 

连接队列的 ID。 

counttotalconnections

计数统计信息 

已接受的连接总数。 

countqueued

计数统计信息 

当前位于队列中的连接数。 

peakqueued

计数统计信息 

队列中同时容纳的最大连接数。 

maxqueued

计数统计信息 

连接队列的最大大小。 

countoverflows

计数统计信息 

队列太满而无法容纳更多连接的次数。 

counttotalqueued

计数统计信息 

排队等候的连接总数。由于给定连接可能被多次排队,因此 counttotalqueued 可能会大于或等于 counttotalconnections

tickstotalqueued

计数统计信息 

连接在队列中所花费的周期总数。周期是由系统决定的时间单位。 

countqueued1minuteaverage

计数统计信息 

前 1 分钟内处于排队状态的平均连接数。 

countqueued5minuteaverage

计数统计信息 

前 5 分钟内处于排队状态的平均连接数。 

countqueued15minuteaverage

计数统计信息 

前 15 分钟内处于排队状态的平均连接数。 

下表中列出了有关 PWC HTTP 服务的统计信息。

表 16–32 PWC HTTP 服务统计信息(仅限于 EE)

属性名称 

数据类型 

说明 

id

字符串统计信息 

HTTP 服务的实例名称。 

versionserver

字符串统计信息 

HTTP 服务的版本号。 

timestarted

字符串统计信息 

启动 HTTP 服务的时间 (GMT)。 

secondsrunning

计数统计信息 

HTTP 服务启动以来所经历的时间(以秒为单位)。 

maxthreads

计数统计信息 

每个实例中的最大工作线程数。 

maxvirtualservers

计数统计信息 

每个实例中可以配置的最大虚拟服务器数目。 

flagprofilingenabled

计数统计信息 

是否启用了 HTTP 服务性能探查。有效值为 0 或 1。 

flagvirtualserveroverflow

计数统计信息 

指示配置的虚拟服务器数目是否超过为 maxvirtualservers 所指定的值。如果此属性设置为 1,则无法对所有虚拟服务器的统计信息进行跟踪。

load1minuteaverage

计数统计信息 

前 1 分钟内请求的平均负载。 

load5minuteaverage

计数统计信息 

前 5 分钟内请求的平均负载。 

load15minuteaverage

计数统计信息 

前 15 分钟内请求的平均负载。 

ratebytestransmitted

计数统计信息 

在某个服务器定义的时间间隔内数据的传输速率。如果此信息不可用,则结果为 0。 

ratebytesreceived

计数统计信息 

在某个服务器定义的时间间隔内数据的接收速率。如果此信息不可用,则结果为 0。 

用于启用和禁用监视功能的管理控制台任务

Procedure使用管理控制台配置监视级别的步骤

  1. 访问“监视服务”页面。要完成此操作,请执行以下步骤:

    1. 在树组件中,展开“配置”节点。

    2. 在树中,展开要配置为用于监视的服务器实例的节点,例如 server-config

    3. 在树中,选择“监视”。

  2. 在“监视服务”页面中,从要更改其监视级别的组件或服务对应的组合框中选择适当的值。

    默认情况下,所有组件和服务的监视功能均处于禁用状态。要启用监视功能,请在组合框中选择“低”或“高”。要禁用监视功能,请在组合框中选择“关闭”。可以启用或禁用以下组件和服务的监视功能:

    • JVM-将此选项的监视级别设置为“低”以监视 Java 虚拟机。

    • HTTP 服务-将此选项的监视级别设置为“低”以监视所有 HTTP 侦听器和虚拟服务器。

    • 事务服务-将此选项的监视级别设置为“低”以监视任一事务子系统。

    • JMS/连接器服务-将此选项的监视级别设置为“低”以监视任一 Java 消息服务 (Java Message Service, JMS)。

    • ORB-将此选项的监视级别设置为“低”以监视由 Application Server 内核及其连接管理器使用的系统 ORB。

    • Web 容器-将此选项的监视级别设置为“低”以监视所有已部署的 Servlet。

    • EJB 容器-将此选项的监视级别设置为“低”以监视所有已部署的 EJB 组件、EJB 池和 EJB 高速缓存。将此方法设置为“高”还可以监视 EJB 商业方法。

    • JDBC 连接池-将此选项的监视级别设置为“低”以监视所有 JDBC 连接池。

    • 线程池-将此选项的监视级别设置为“低”以监视所有线程池。

  3. 单击“保存”。

    此版本中没有“其他监视服务属性”,因此请忽略“其他属性”表。

等效的 asadmin 命令

set

例如,要启用对 HTTP 服务的监视功能,请使用以下 asadmin 命令:

asadmin> set --user admin-user server.monitoring-service.module-monitoring-levels.http-service=LOW

Procedure使用 asadmin 工具配置监视功能的步骤

要禁用监视功能或设置某个组件或服务的监视级别,请使用管理控制台,如使用管理控制台配置监视级别的步骤中所述。

  1. 使用 get 命令查找当前已对哪些服务和组件启用监视功能。


    asadmin> get --user admin-user server.monitoring-service.module-monitoring-levels.*

    返回:


    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.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
  2. 使用 set 命令启用监视功能。

    例如,要启用对 HTTP 服务的监视,请输入以下命令:


    asadmin> set --user admin-user 
    server.monitoring-service.module-monitoring-levels.http-service=LOW

    要禁用监视功能,请使用 set 命令并将监视级别指定为 OFF

用于查看监视数据的管理控制台任务

Procedure在管理控制台中查看监视数据的步骤

有关每个组件或服务的属性的更多信息,请参阅关于受监视的组件和服务的统计信息

  1. 访问“监视”页面。要完成此操作,请执行以下步骤:

    1. 在树组件中,展开“独立实例”节点。

    2. 从列表中选择一个独立服务器实例,例如 server (Admin Server)。

    3. 选择“监视”页面。

    4. 在“监视”页面上选择“监视”选项卡。

  2. 在“查看”列表中,选择已部署到服务器实例并已为其启用了监视功能的组件或服务。

    选定组件或服务的监视数据显示在“查看”字段下。有关可监视属性的说明,请参阅关于受监视的组件和服务的统计信息

    如果已启用 JVM、服务器、线程池、HTTP 服务和事务服务的监视功能,则可以在此页面中查看这些组件和服务的监视数据。关于可监视对象的树结构中显示了用于说明这些组件和服务的组织方式的图。

  3. 如果在此列表中没有看到要监视的组件或服务,请选择“配置监视”链接来启用和禁用选定组件和服务的监视功能。

    选择“关闭”以禁用对组件或服务的监视。选择“低”或“高”以启用对组件或服务的监视。

    有关启用和禁用监视功能的更多信息,请参阅使用管理控制台配置监视级别的步骤使用 asadmin 工具配置监视功能的步骤

  4. 选择“监视器”页面的“应用程序”选项卡来查看已部署到服务器实例上且已启用了监视功能的应用程序组件的监视数据。从“应用程序”列表中选择应用程序。从“组件”列表中选择特定组件。

    如果未显示应用程序或组件的监视数据,请选择“配置监视”链接来启用或禁用组件或服务的监视功能。要监视应用程序,请打开执行这些应用程序的容器。例如,对于 Web 应用程序的 Web 容器和/或 EJB 应用程序的 EJB 容器,选择“低”或“高”。

    如果未显示应用程序的监视数据,则该应用程序很可能不存在或未运行。仅当应用程序存在、已启用对该程序的监视功能且应用程序正在运行时,应用程序监视数据才可用。一旦执行应用程序,则将在监视注册表登记该应用程序并显示其监视数据。

    使用管理控制台监视远程应用程序和实例。远程实例必须正在运行并已设置配置才能执行此操作。

    选定组件的监视数据显示在选定组件下面。有关可监视属性的说明,请参阅关于受监视的组件和服务的统计信息关于可监视对象的树结构中显示了用于说明应用程序的这些组件和服务的组织方式的图。

  5. 选择“资源”页面可以查看资源的监视数据,这些资源已被部署到服务器实例中并且已启用对这些资源的监视功能。从“查看”列表中选择资源。

    如果未显示您要查看其监视数据的资源,请选择“配置监视”链接来启用或禁用资源的监视功能。

    如果未显示资源的监视数据,则该资源很可能不存在或未运行。仅当资源存在、已在 HIGH 级别启用该资源的监视功能并且该资源正在运行的情况下,资源监视数据才可用。例如,如果您创建了一个 JDBC 连接器服务,但使用该连接器服务的应用程序尚未从服务请求连接器,则尚未创建该服务。因而,不存在任何服务,也没有任何可用的监视数据。一旦执行 JDBC 应用程序且该应用程序从服务请求连接器,则将在监视注册表中注册该应用程序并显示其监视数据。

    选定组件或服务的监视数据显示在“查看”字段下。有关可监视属性的说明,请参阅关于受监视的组件和服务的统计信息关于可监视对象的树结构中显示了用于说明资源的这些组件和服务的组织方式的图。

  6. 选择“事务”页面以冻结事务子系统,进而回滚事务并确定冻结时正在进行的事务。

  7. 要启用事务服务的监视功能,请选择“配置监视”链接并确保将“事务服务”设置为“低”。

    要冻结事务服务以回滚事务,请选择“冻结”。要回滚事务,请选中事务旁边的复选框并单击“回滚”。

等效的 asadmin 命令

get --monitor

例如,要查看 JVM 的监视数据,请使用以下 asadmin 命令:

asadmin> get --user adminuser --monitor server.jvm.*

使用 asadmin 工具查看监视数据

Procedure使用 asadmin 工具查看监视数据

要使用 asadmin 工具查看监视数据,请使用 asadmin listasadmin get 命令,后跟可监视对象的带点名称,如下所示。

  1. 要查看可监视对象的名称,请使用 asadmin list 命令。

    例如,要查看应用程序组件和子系统(已启用对服务器实例上的这些组件和子系统的监视功能)的列表,请在终端窗口中键入以下命令:


    asadmin> list --user adminuser --monitor server

    上述命令将返回已启用监视功能的应用程序组件和子系统的列表,例如:


    server.resources
    server.connector-service
    server.orb
    server.jms-service
    server.jvm
    server.applications
    server.http-service
    server.thread-pools

    有关使用 list 命令的更多示例,请参阅list 和 get 命令的示例。有关可以和 list 命令一起使用的带点名称的详细信息,请参阅了解和指定带点的名称

  2. 要显示已启用监视功能的应用程序组件或子系统的监视统计信息,请使用 asadmin get 命令。

    要获得统计信息,请在终端窗口中键入 asadmin get 命令,并指定在先前步骤中由 list 命令显示的名称。以下示例尝试获取某个特定对象的子系统的所有属性:


    asadmin> get --user adminuser --monitor server.jvm.*

    此命令返回以下属性和数据:


    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

    有关使用 get 命令的更多示例,请参阅list 和 get 命令的示例。有关可以和 get 命令一起使用的带点名称的详细信息,请参阅了解和指定带点的名称

了解和指定带点的名称

asadmin listget 命令中,指定可监视对象的带点名称。所有子对象都是使用点字符 (.) 作为分隔符来寻址的,因此它们被称为带点名称。如果子节点是单元素类型,则只需要使用监视对象类型对对象进行寻址;否则,需要使用 type.name 名称格式对对象进行寻址。

例如,http-service 就是其中一种有效的可监视对象类型,并且是单元素类型。要对表示实例 serverhttp-service 的单元素类型子节点进行寻址,则带点名称为:

server.http-service

再比如,application 是一种有效的可监视对象类型,并且是非单元素类型。要对表示应用程序 PetStore 的非单元素类型子节点进行寻址,则带点名称为:

server.applications.petstore

带点的名称还可以指定可监视对象中的特定属性。例如,http-service 具有一个名为 bytesreceived-lastsampletime 的可监视属性。以下名称可对 bytesreceived 属性进行寻址:

server.http-service.server.http-listener-1.
  bytesreceived-lastsampletime

管理员不需要知道 asadmin listget 命令的有效带点名称。使用 list 命令可以显示可用的可监视对象,而使用带有通配符参数的 get 命令可以检查任意可监视对象的所有可用属性。

使用具有带点名称的 listget 命令的基本假设为:

有关更多信息,请参见list 和 get 命令在所有级别上的预期输出

list 和 get 命令的示例

本节包括以下主题:

list --user admin-user --monitor 命令的示例

list 命令可针对指定的服务器实例名称提供有关当前正在监视的应用程序组件和子系统的信息。使用此命令可以查看某个服务器实例的可监视组件和子组件。有关 list 示例的更完整列表,请参见list 和 get 命令在所有级别上的预期输出

示例 1


asadmin> list --user admin-user --monitor server

上述命令将返回已启用监视功能的应用程序组件和子系统的列表,例如:


server.resources
server.orb
server.jvm
server.jms-service
server.connector-service
server.applications
server.http-service
server.thread-pools

还可以列出指定的服务器实例中当前所监视的应用程序。当使用 get 命令从某个应用程序中获取特定的监视统计信息时,这会很有用。

示例 2

asadmin> list --user admin-user --monitor server.applications

返回:

server.applications.adminapp
 server.applications.admingui
server.applications.myApp

有关更综合的示例,请参见使用 PetStore 示例

get --user admin-user --monitor 命令的示例

命令将检索以下受监视的信息:

示例 1

尝试从某个子系统中获取某个特定对象的所有属性:


asadmin> get --user admin-user --monitor server.jvm.*

返回:


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

示例 2

尝试获取某个 J2EE 应用程序的所有属性:


asadmin> get --user admin-user --monitor server.applications.myJ2eeApp.*

返回:


没有与通配符表达式一致的匹配项。CLI137 命令失败。

该 J2EE 应用程序级别上没有暴露可监视的属性,因而显示此回复。

示例 3

尝试获取某个子系统的某个特定属性:


asadmin> get --user admin-user --monitor server.jvm.uptime-lastsampletime

返回:

server.jvm.uptime-lastsampletime = 1093215374813

示例 4

尝试获取某个子系统属性中的某个未知属性:


asadmin> get --user admin-user --monitor server.jvm.badname

返回:


通过反映相应的统计信息接口 [badname] 没有找到此类属性,CLI137 命令失败。

Procedure使用 PetStore 示例

下例说明了如何将 asadmin 工具用于监视目的。

用户要检查将样例 PetStore 应用程序部署到 Application Server 之后在该应用程序中调用某个方法的次数。部署该应用程序的实例名称为 server。结合使用 listget 命令即可访问所需的方法统计信息。

  1. 启动 Application Server 和 asadmin 工具。

  2. 设置一些有用的环境变量,以避免使用每个命令时都输入这些变量:


    asadmin> export AS_ADMIN_USER=admin AS_ADMIN_PASSWORD=admin123
    asadmin>export AS_ADMIN_HOST=localhost AS_ADMIN_PORT=4849
  3. 列出实例 server 的可监视组件:


    asadmin> list --user adminuser --monitor server*

    返回结果(输出类似于以下内容):


    server
    server.applications
    server.applications.CometEJB
    server.applications.ConverterApp
    server.applications.petstore
    server.http-service
    server.resources
    server.thread-pools

    可监视组件列表包括 thread-poolshttp-serviceresources 以及所有已部署(并已启用)的 applications

  4. 列出 PetStore 应用程序中的可监视子组件(可以用 -m 代替 --monitor):

    asadmin> list -m server.applications.petstore

    返回:


    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
  5. 列出 PetStore 应用程序的 EJB 模块 signon-ejb_jar 中的可监视子组件:


    asadmin> list -m server.applications.petstore.signon-ejb_jar

    返回:


    server.applications.petstore.signon-ejb_jar.SignOnEJB
    server.applications.petstore.signon-ejb_jar.UserEJB
  6. 列出 PetStore 应用程序的 EJB 模块 signon-ejb_jar 的实体 Bean UserEJB 中的可监视子组件:


    asadmin> list -m server.applications.petstore.signon-ejb_jar.UserEJB

    返回(出于空间考虑,删除了带点的名称):


    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
  7. 列出 PetStore 应用程序的 EJB 模块 signon-ejb_jar 的实体 Bean UserEJB 所用方法 getUserName 中的可监视子组件:


    asadmin> list -m 
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.getUserName

    返回:


    在 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.getUserName 没有内容可以列出。要获得以某个字符串开头的有效名称,请使用通配符 "*" 字符。例如,要列出以 "server" 开头的所有名称,请使用 "list server*"。
  8. 该方法没有可监视的子组件。获取方法 getUserName 的所有可监视统计信息。


    asadmin> get -m 
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.getUserName.*

    返回:


    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
  9. 如果还需要获取执行时间等特定统计信息,请使用如下命令:


    asadmin> get -m server.applications.petstore.signon-ejb_jar.
    UserEJB.bean-methods.getUserName.executiontime-count

    返回:


    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.executiontime-count = 1

list 和 get 命令在所有级别上的预期输出

下表显示了树的各个级别的命令、带点的名称及相应的输出。

表 16–33 顶层

命令 

带点的名称 

输出 

list -m

server


server.applicationsserver.thread-poolsserver.
resourcesserver.http-serviceserver.transaction-
serviceserver.orb.connection-managersserver.orb.
connection-managers.orb\.Connections\.Inbound\.
AcceptedConnectionsserver.jvm

list -m

server.*

此节点下的子节点的分层结构。 

get -m

server.*

仅显示一条消息,说明此节点上没有属性。 

下表显示了应用程序级别的命令、带点名称以及相应的输出。

表 16–34 应用程序级别

命令 

带点的名称 

输出 

list -m

server.applications

或 

*applications


appl1app2web-module1_warejb-module2_jar...

list -m

server.applications.*

或 

*applications.*

此节点下的子节点的分层结构。 

get -m

server.applications.*

或 

*applications.*

仅显示一条消息,说明此节点上没有属性。 

下表显示了应用程序级别的独立模块和企业应用程序的命令、带点名称以及相应的输出。

表 16–35 应用程序- -企业应用程序和独立模块

命令 

带点的名称 

输出 

list -m

server.applications.app1

或 

*app1

注:仅当已部署了企业应用程序时,此级别才可用。如果部署了独立模块,则此级别不可用。 

ejb-module1_jarweb-module2_warejb-module3_jarweb-module3_war...

list -m

server.applications.app1.*

或 

*app1.*

此节点下的子节点的分层结构。 

get -m

server.applications.app1.*

或 

*app1.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.applications.app1.ejb-module1_jar

或 

*ejb-module1_jar

或 

server.applications.ejb-module1_jar

bean1bean2bean3...

list -m

server.applications.app1.ejb-module1_jar

或 

*ejb-module1_jar

或 

server.applications.ejb-module1_jar

此节点下的子节点的分层结构。 

get -m

server.applications.app1.ejb-module1_jar.*

或 

*ejb-module1_jar.*

或 

server.applications.ejb-module1_jar.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.applications.app1.ejb-module1_jar.bean1

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

子节点列表: 

bean-poolbean-cachebean-method

list -m

server.applications.app1.ejb-module1_jar.bean1

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

子节点的分层结构及该节点和所有后续子节点的所有属性的列表。 

get -m

server.applications.app1.ejb-module1_jar.bean1.*

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

以下属性及其关联值: 


CreateCount_CountCreateCount_
DescriptionCreateCount_
LastSampleTimeCreateCount_
NameCreateCount_
StartTimeCreateCount_
UnitMethodReadyCount_
CurrentMethodReadyCount_
DescriptionMethodReadyCount_
HighWaterMarkMethodReadyCount_
LastSampleTimeMethodReadyCount_
LowWaterMarkMethodReadyCount_
NameMethodReadyCount_
StartTimeMethodReadyCount_
UnitRemoveCount_CountRemoveCount_
DescriptionRemoveCount_
LastSampleTimeRemoveCount_
NameRemoveCount_StartTimeAttribute 
RemoveCount_Unit

list -m

server.applications.app1.ejb-module1_jar.bean1.bean-pool

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

没有属性,但会显示一条消息,说明:在 server.applications.appl.ejb-module1_jar.bean1-cache 没有内容可以列出。要获得以某个字符串开头的有效名称,请使用通配符 (*) 字符。例如, 要列出以 server 开头的所有名称,请使用 list server*

get -m

server.applications.app1.ejb-module1_jar.bean1.bean-pool.*

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

与 EJB 池属性对应的属性和值的列表(如表 1-4 所示)。 

list -m

server.applications.app1.ejb-module1_jar.bean1.bean-cache

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 

get -m

server.applications.app1.ejb-module1_jar.bean1.bean-cache.*

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

与 EJB 高速缓存属性对应的属性和值的列表(如表 1-5 所示)。 

list -m

server.applications.app1.ejb-module1_jar.bean1.bean-method.method1

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 

get -m

server.applications.app1.ejb-module1_jar.bean1.bean-method.method1.*

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

与 EJB 模块属性对应的属性和值的列表(如表 1-2 所示)。 

list -m

server.applications.app1.web -module1_war

显示分配给模块的虚拟服务器。 

get -m

server.applications.app1.web-module1_war.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.applications.app1.web-module1_war.virtual_server

显示已登记的 servlet 的列表。 

get -m

server.applications.app1.web-module1_war.virtual_server.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.applications.app1.web-module1_war.virtual_server.servlet1

没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 

get -m

server.applications.app1.web-module1_war.virtual_server.servlet1.*

与 Web 容器 (Servlet) 属性对应的属性和值的列表(如表 1-7 所示)。 

下表显示了 HTTP 服务级别的命令、带点名称以及相应的输出。

表 16–36 HTTP 服务级别

命令 

带点的名称 

输出 

list -m

server.http-service

虚拟服务器列表。 

get -m

server.http-service.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.http-service.server

HTTP 侦听器列表。 

get -m

server.http-service.server.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.http-service.server .http-listener1

没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 

get -m

server.http-service.server.*

与 HTTP 服务属性对应的属性和值的列表(如表 1-9 所示)。 

下表显示了线程池级别的命令、带点名称以及相应的输出。

表 16–37 线程池级别

命令 

带点的名称 

输出 

list -m

server.thread-pools

线程池名称列表。 

get -m

server.thread-pools.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.thread-pools.orb\.threadpool\.thread-pool-1

没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 

get -m

server.thread-pools..orb\.threadpool\.thread-pool-1.*

与线程池属性对应的属性和值的列表(如表 1-14 所示)。 

下表显示了资源级别的命令、带点名称以及相应的输出。

表 16–38 资源级别

命令 

带点的名称 

输出 

list -m

server.resources

池名称列表。 

get -m

server.resources.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.resources.jdbc-connection-pool-pool.connection-pool1

没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 

get -m

server.resources.jdbc-connection-pool-pool.connection-pool1.*

与连接池属性对应的属性和值的列表(如表 1-10 所示)。 

下表显示了事务服务级别的命令、带点名称以及相应的输出。

表 16–39 事务服务级别

命令 

带点的名称 

输出 

list -m

server.transaction-service

没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 

get -m

server.transaction-service.*

与事务服务属性对应的属性和值的列表(如表 1-15 所示)。 

下表显示了 ORB 级别的命令、带点名称以及相应的输出。

表 16–40 ORB 级别

命令 

带点的名称 

输出 

list -m

server.orb

server-orb.connection-managers

get -m

server.orb.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.orb.connection-managers

ORB 连接管理器的名称。 

get -m

server.orb.connection-managers.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.orb.connection-managers.orb\.Connections\.Inbound\.AcceptedConnections

没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 

get -m

server.orb.connection-managers.orb\.Connections\.Inbound\.AcceptedConnections.*

与 ORB 连接管理器属性对应的属性和值的列表(如表 1-13 所示)。 

下表显示了 JVM 级别的命令、带点名称以及相应的输出。

表 16–41 JVM 级别

命令 

带点的名称 

输出 

list -m

server.jvm

没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。

get -m

server.jvm.*

与 JVM 属性对应的属性和值的列表(如表 1-16 所示)。 

使用 JConsole

要使 JConsole 能够与 Application Server 一起使用,必须禁用 JMX 连接器的安全性。默认情况下,当前版本(SE/EE 版本)的 Application Server 将启用安全性。

Procedure禁用 JMX 连接器的安全性

  1. 使用管理控制台禁用 JMX 连接器的安全性。要通过管理控制台执行此操作,请执行以下步骤:

    1. 展开节点代理。

    2. 选择节点代理。

    3. 取消选择 "JMX" 选项卡中的 "SSL3" 和 "TLS"。

    4. 选择“保存”。

  2. 使用 asadmin 禁用 JMX 连接器的安全性。要从终端窗口或命令提示符执行此操作,请执行以下步骤:

    1. 输入以下命令:


      asadmin set server.admin-service.jmx-connector.system.security-enabled=false
    2. 重新启动域应用程序服务器 (DAS)。

      在 Platform Edition 版本中,默认情况下将禁用 JMX 连接器,因此不需要更改 Platform Edition 的配置。

  3. 启动 JConsole,并在“高级”选项卡中输入 JMX URL、用户名和密码以便登录。JMX URL 的格式为:

    service:jmx:rmi:///jndi/rmi://<your machine name >:<port>/management/rmi-jmx-connector

    注:如果要搜索 message ADM1501,您可以从管理 server.log 文件中获得确切的 JMX URL。