Sun Java System Application Server Enterprise Edition 8.2 管理指南

第 16 章 监视组件和服务

使用监视功能可以观察 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。 

启用和禁用监视功能

在管理控制台中,可以通过选择“配置”节点 >“服务器实例”节点 >“监视”页面来配置监视级别,并为要更改监视级别的服务选择值。默认情况下,所有组件和服务的监视功能均处于禁用状态。

有关如何配置监视级别的详细步骤,请查阅管理控制台联机帮助。

在命令行中,使用 asadmin set 对各种 Application Server 组件启用监视功能。例如,运行以下命令对 HTTP 服务启用监视功能:

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

使用 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 = HIGH
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

使用 set 命令禁用监视功能。

例如,运行以下命令对 HTTP 服务禁用监视功能:


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

同样,要对其他组件禁用监视功能,请使用 set 命令并将监视级别指定为 OFF

查看监视数据

在管理控制台中,可以通过以下方式查看监视数据:导航到独立服务器实例的“监视”页面,然后选择已部署到启用了监视功能的服务器实例上的组件或服务。选定的组件或服务的监视数据显示在“查看”字段下,并附有对可监视属性的说明。

使用管理控制台监视远程应用程序和实例。远程实例必须正在运行并已设置配置才能执行此操作。有关查看监视数据的详细步骤,请查阅管理控制台联机帮助。

要使用命令行实用程序查看监视数据,请使用 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
  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

了解和指定带点名称

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 命令的基本假设为:

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

list 命令示例

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

示例 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

get 命令示例

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

示例 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 命令失败。

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

listget 命令在所有级别上的预期输出

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

表 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 服务属性对应的属性和值的列表。 

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

表 16–37 线程池级别

命令 

带点名称 

输出 

list -m

server.thread-pools

thread-pool 名称列表。

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.*

与线程池属性对应的属性和值的列表。 

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

表 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.*

与连接池属性对应的属性和值的列表。 

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

表 16–39 事务服务级别

命令 

带点名称 

输出 

list -m

server.transaction-service

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

get -m

server.transaction-service.*

与事务服务属性对应的属性和值的列表。 

下表显示了 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 连接管理器属性对应的属性和值的列表。 

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

表 16–41 JVM 级别

命令 

带点名称 

输出 

list -m

server.jvm

没有属性,但会显示一条类似于以下内容的消息:使用带有 --monitor 选项的 get 命令可查看该节点的属性和值。

get -m

server.jvm.*

与 JVM 属性对应的属性和值的列表。 

使用 JConsole

本节包括以下主题:

Application Server 的管理(管理和监视)基于 JMX。这意味着被管理组件被表示为 MBean。使用 Java 2 Standard Edition (J2SE) 5.0 可以监视 JVM 并查看 JVM MBean,从而了解其运行情况。为了公开此程序设备,Application Server 提供了一种称为系统 JMX 连接器服务器的标准 JMX 连接器服务器配置。启动 Application Server 时,将启动此 JMX 连接器服务器的一个实例,从而向受信客户机公开此程序配置。

Java 监视和管理控制台 (JConsole) 是一种常用的 JMX 连接器,可用于管理 JMX 后端。JConsole (http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jconsole.html) 作为从 J2SE 5.0 开始的标准 JDK 分发的一部分提供。有关 JConsole 的更多信息,请参见http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html

为 Application Server 配置 JConsole 时,Application Server 将成为 JMX 连接器的服务器端,JConsole 将成为 JMX 连接器的首选客户机端。

保护 JConsole 与 Application Server 之间的连接

在如何基于连接的传输层安全性连接到 Application Server 或任何 JMX 连接器服务器端方面,存在细微的差别。如果服务器端是安全的(保证传输层安全性),则只需在客户机端执行较少的配置。

当您在计算机(例如 appserver.sun.com)上安装平台版域时,将会在 DAS(Domain Administration Server,域管理服务器,即管理服务器或简称域)的 domain.xml 中显示以下内容:

<!- – 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" – –>

JMX 连接器的 security-enabled 标志为 false。如果运行的是企业版,或者在平台版中为 JMX 连接器启用安全性,则此标志被设置为 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" – –>

将 JConsole 连接到 Application Server 的先决条件

JConsole 设置包含两部分:服务器端和客户机端。Application Server 域安装在名为 appserver.sun.com 的计算机中,这是一个功能强大的 Solaris 服务器。这是服务器端。

客户机端也安装有 Application Server。假设客户机端是安装有 Java SE 5.0 和 Application Server 的 Windows 计算机。


注 –

仅当对远程计算机上的 Application Server 域启用了安全性(企业版的默认设置)时,才需要在客户机端安装 Application Server。如果仅希望管理上述 Solaris 计算机中的 Application Server 平台版域,则不需要在此客户机上安装 Application Server。


如果服务器端和客户机端位于同一台计算机上,则可以使用 localhost 指定主机名。

将 JConsole 连接到 Application Server

本节介绍如何在未对 JMX 连接器启用安全性的情况下将 JConsole 连接到 Application Server。默认情况下,没有在 Application Server 平台版上启用安全性。

  1. appserver.sun.com 上启动域。

  2. 通过运行 JDK_HOME/bin/jconsole 来启动 JConsole。

  3. 在 JConsole 的“连接到代理”选项卡中,输入用户名、密码、主机名和端口(默认为 8686)。

    用户名是指域的管理用户名,密码是指域的管理密码。

  4. 单击“连接”。

    在 JConsole 窗口的各个选项卡中,将显示所有的 MBean、虚拟机信息等。

将 JConsole 安全连接到 Application Server

本节介绍如何在对 JMX 连接器启用安全性的情况下将 JConsole 连接到 Application Server。默认情况下,在 Application Server 企业版上启用了安全性。如果已对平台版的 JMX 连接器启用了安全性,请执行此过程。

  1. 在客户机(安装有 JConsole)上安装 Application Server。

    需要执行此操作的唯一原因是让 JConsole 知道您所信任的域管理服务器的服务器证书位于何处。要获取此证书,请至少调用一次远程 asadmin 命令;要实现此调用,需要在本地安装 Application Server。

  2. appserver.sun.com 上启动 Application Server 企业版。

    由于这是企业版域,因此系统 JMX 连接器服务器是安全的。

  3. 在本地 Application Server 安装中,运行 install-dir/bin/asadmin list --user admin --secure=true --host appserver.sun.com --port 4849(其中 4849 是服务器的管理端口)。

    虽然示例选择了 asadmin list 命令,但是您可以运行任何远程 asadmin 命令。现在,系统将提示您接受 appserver.sun.com 的 DAS 所发送的证书。

  4. y 以接受 appserver.sun.com 上的域管理服务器所发送的证书。

    在客户机上,服务器证书存储在主目录下名为 .asadmintruststore 的文件中。


    注 –

    如果服务器与客户机相同,则不需要执行此步骤。换句话说,如果也在 appserver.sun.com 上运行 JConsole。


  5. 通过使用以下 JConsole 命令使 JConsole 知道 DAS 的信任存储位置:

    JDK-dir/bin/jconsole.exe -J-Djavax.net.ssl.trustStore="C:/Documents and Settings/user/.asadmintruststore"

    现在,此证书自动得到 JConsole 的信任。

  6. 通过运行 JDK_HOME/bin/jconsole 来启动 JConsole。

  7. 在 JConsole 的“连接到代理”选项卡中,输入用户名、密码、主机名和端口(默认为 8686)。

    用户名是指域的管理用户名,密码是指域的管理密码。

  8. 单击“连接”。

    在 JConsole 窗口的各个选项卡中,将显示所有的 MBean、虚拟机信息等。