本章包含有关使用 Application Server 管理控制台监视组件的信息。本章包括以下几个部分:
使用监视功能可以观察 Application Server 的服务器实例中所部署的各种组件和服务的运行状态。利用有关运行时组件和进程状态的信息,可以确定性能瓶颈以便进行优化、有助于进行容量规划、预测故障、在发生故障时分析根本原因,以及确保一切运行正常。
启用监视功能会因增加系统开销而使性能降低。
要监视 Application Server,请执行以下步骤:
使用管理控制台或 asadmin 工具来启用对特定服务和组件的监视功能。
有关此步骤的更多信息,请参阅用于启用和禁用监视功能的管理控制台任务。
使用管理控制台或 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 容器统计信息。
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-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 * |---pwc-thread-pool * |---virtual-server-1* | |--- request * |---virtual-server-2* | |--- request *
资源节点保存 JDBC 连接池、连接器连接池等池的可监视属性。以下示意图显示了各种资源组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见JDBC 连接池统计信息。
resources |---connection-pool1(either connector-connection-pool or jdbc)* |---connection-pool2(either connector-connection-pool or jdbc)*
连接器服务节点保存连接器连接池等池的可监视属性。以下示意图显示了各种连接器服务组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见JMS 连接器服务统计信息。
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-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 |--- connection-managers | |--- connection-manager-1 * | |--- connection-manager-1 *
线程池节点保存连接管理器的可监视属性。以下示意图显示了 ORB 组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见线程池统计信息。
thread-pools | |--- thread-pool-1 * | |--- thread-pool-2 *
本节介绍了可用的监视统计信息:
下表中介绍了 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 池统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
已绑定范围统计信息 |
相关池中的 EJB 数,决定了该池的更改方式。 |
|
已绑定范围统计信息 |
等待空闲 Bean 的线程数,指出可能的请求拥塞。 |
|
计数统计信息 |
自开始收集数据以来相关池中所创建的 Bean的数目。 |
|
计数统计信息 |
自开始收集数据以来从相关池中销毁的 Bean 的数目。 |
|
计数统计信息 |
为使消息驱动的 Bean 提供服务而一次加载到 JMS 会话中的最大消息数。默认值为 1。仅适用于消息驱动的 Bean 的池。 |
下表中列出了有关 EJB 高速缓存的可用的统计信息。
表 16–5 EJB 高速缓存统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
已绑定范围统计信息 |
用户请求未在高速缓存中找到 Bean 的次数。 |
|
已绑定范围统计信息 |
用户请求在高速缓存中找到某条目的次数。 |
|
numbeansincache |
已绑定范围统计信息 |
高速缓存中 Bean 的数目。这是高速缓存的当前大小。 |
计数统计信息 |
钝化的 Bean 数。仅适用于状态会话 Bean。 |
|
计数统计信息 |
挂起时的错误数。仅适用于状态会话 Bean。 |
|
计数统计信息 |
清除线程删除的过期会话数。仅适用于状态会话 Bean。 |
|
计数统计信息 |
成功完成挂起的次数。仅适用于状态会话 Bean。 |
下表中列出了有关计时器的可用的统计信息。
表 16–6 计时器统计信息
统计信息 |
数据类型 |
说明 |
---|---|---|
numtimerscreated |
计数统计信息 |
系统中创建的计时器的数目。 |
numtimersdelivered |
计数统计信息 |
系统所发送的计时器的数目。 |
numtimersremoved |
计数统计信息 |
从系统中删除的计时器的数目。 |
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 服务的可用的统计信息。这些统计信息仅适用于平台版。有关 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 连接池的可用的统计信息。
表 16–10 JDBC 连接池统计信息
统计信息 |
单位 |
数据类型 |
说明 |
---|---|---|---|
numconnfailedvalidation |
个 |
计数统计信息 |
从开始时间到上次抽样时间为止在连接池中验证失败的连接总数。 |
numconnused |
个 |
范围统计信息 |
提供连接使用情况统计信息。当前正被使用的连接的总数,以及有关使用过的连接的最大数目的信息(高水印)。 |
numconnfree |
个 |
范围统计信息 |
上次抽样时池中的空闲连接的总数。 |
numconntimedout |
个 |
已绑定范围统计信息 |
开始时间与上次抽样时间之间池中的超时连接总数。 |
averageconnwaittime |
个 |
计数统计信息 |
指示尝试与连接器连接池建立连接成功的连接请求的平均等待时间。 |
waitqueuelength |
个 |
计数统计信息 |
队列中正在等待处理的连接请求数。 |
connectionrequestwaittime |
范围统计信息 |
连接请求的最长和最短等待时间。当前值表示连接池处理的上一个请求的等待时间。 |
|
numconncreated |
毫秒 |
计数统计信息 |
自上次复位以来创建的物理连接数。 |
numconndestroyed |
个 |
计数统计信息 |
自上次复位以来销毁的物理连接数。 |
numconnacquired |
个 |
计数统计信息 |
从池中获取的逻辑连接数。 |
numconnreleased |
个 |
计数统计信息 |
释放到池中的逻辑连接数。 |
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 中的连接管理器的可用的统计信息。
表 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 |
字符串统计信息 |
表示事务是否已被冻结。 |
JVM 具有始终处于启用状态的可监视属性。下表中显示了有关 JVM 的可用的统计信息。
表 16–16 JVM 统计信息
统计信息 |
数据类型 |
说明 |
---|---|---|
heapsize |
已绑定范围统计信息 |
JVM 内存堆大小的下限或上限驻留内存轨迹。 |
uptime |
计数统计信息 |
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 |
计数统计信息 |
线程处于 WAITING 或 TIMED_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 列表。 |
给出了有关 Application Server 企业版 (Enterprise Edition, EE) 中的以下 PWC 组件和服务的可用的统计信息:
生产 Web 容器 (PWC) 统计信息,PWC 虚拟服务器
生产 Web 容器 (PWC) 统计信息,PWC 请求
生产 Web 容器 (PWC) 统计信息,PWC 文件高速缓存
生产 Web 容器 (PWC) 统计信息,PWC 保持活动
生产 Web 容器 (PWC) 统计信息,PWC DNS
有关侦听器和 JMX 连接器的管理控制台任务,PWC 线程池
生产 Web 容器 (PWC) 统计信息,PWC 连接队列
生产 Web 容器 (PWC) 统计信息,PWC HTTP 服务
生产 Web 容器 (PWC) 统计信息中列出了有关 PWC 虚拟服务器的统计信息。
表 16–25 PWC 虚拟服务器统计信息(仅限于 EE)
属性名称 |
数据类型 |
说明 |
---|---|---|
id |
字符串统计信息 |
虚拟服务器的 ID。 |
mode |
字符串统计信息 |
虚拟服务器所处的模式。选项包括 unknown 或 active。 |
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。 |
访问“监视服务”页面。要完成此操作,请执行以下步骤:
在“监视服务”页面中,从要更改其监视级别的组件或服务对应的组合框中选择适当的值。
默认情况下,所有组件和服务的监视功能均处于禁用状态。要启用监视功能,请在组合框中选择“低”或“高”。要禁用监视功能,请在组合框中选择“关闭”。可以启用或禁用以下组件和服务的监视功能:
JVM-将此选项的监视级别设置为“低”以监视 Java 虚拟机。
HTTP 服务-将此选项的监视级别设置为“低”以监视所有 HTTP 侦听器和虚拟服务器。
事务服务-将此选项的监视级别设置为“低”以监视任一事务子系统。
JMS/连接器服务-将此选项的监视级别设置为“低”以监视任一 Java 消息服务 (Java Message Service, JMS)。
ORB-将此选项的监视级别设置为“低”以监视由 Application Server 内核及其连接管理器使用的系统 ORB。
Web 容器-将此选项的监视级别设置为“低”以监视所有已部署的 Servlet。
EJB 容器-将此选项的监视级别设置为“低”以监视所有已部署的 EJB 组件、EJB 池和 EJB 高速缓存。将此方法设置为“高”还可以监视 EJB 商业方法。
JDBC 连接池-将此选项的监视级别设置为“低”以监视所有 JDBC 连接池。
线程池-将此选项的监视级别设置为“低”以监视所有线程池。
单击“保存”。
此版本中没有“其他监视服务属性”,因此请忽略“其他属性”表。
set
例如,要启用对 HTTP 服务的监视功能,请使用以下 asadmin 命令:
asadmin> set --user admin-user server.monitoring-service.module-monitoring-levels.http-service=LOW
要禁用监视功能或设置某个组件或服务的监视级别,请使用管理控制台,如使用管理控制台配置监视级别的步骤中所述。
使用 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 |
使用 set 命令启用监视功能。
例如,要启用对 HTTP 服务的监视,请输入以下命令:
asadmin> set --user admin-user server.monitoring-service.module-monitoring-levels.http-service=LOW |
要禁用监视功能,请使用 set 命令并将监视级别指定为 OFF。
有关每个组件或服务的属性的更多信息,请参阅关于受监视的组件和服务的统计信息。
访问“监视”页面。要完成此操作,请执行以下步骤:
在“查看”列表中,选择已部署到服务器实例并已为其启用了监视功能的组件或服务。
选定组件或服务的监视数据显示在“查看”字段下。有关可监视属性的说明,请参阅关于受监视的组件和服务的统计信息。
如果已启用 JVM、服务器、线程池、HTTP 服务和事务服务的监视功能,则可以在此页面中查看这些组件和服务的监视数据。关于可监视对象的树结构中显示了用于说明这些组件和服务的组织方式的图。
如果在此列表中没有看到要监视的组件或服务,请选择“配置监视”链接来启用和禁用选定组件和服务的监视功能。
选择“关闭”以禁用对组件或服务的监视。选择“低”或“高”以启用对组件或服务的监视。
有关启用和禁用监视功能的更多信息,请参阅使用管理控制台配置监视级别的步骤或使用 asadmin 工具配置监视功能的步骤。
选择“监视器”页面的“应用程序”选项卡来查看已部署到服务器实例上且已启用了监视功能的应用程序组件的监视数据。从“应用程序”列表中选择应用程序。从“组件”列表中选择特定组件。
如果未显示应用程序或组件的监视数据,请选择“配置监视”链接来启用或禁用组件或服务的监视功能。要监视应用程序,请打开执行这些应用程序的容器。例如,对于 Web 应用程序的 Web 容器和/或 EJB 应用程序的 EJB 容器,选择“低”或“高”。
如果未显示应用程序的监视数据,则该应用程序很可能不存在或未运行。仅当应用程序存在、已启用对该程序的监视功能且应用程序正在运行时,应用程序监视数据才可用。一旦执行应用程序,则将在监视注册表登记该应用程序并显示其监视数据。
使用管理控制台监视远程应用程序和实例。远程实例必须正在运行并已设置配置才能执行此操作。
选定组件的监视数据显示在选定组件下面。有关可监视属性的说明,请参阅关于受监视的组件和服务的统计信息。关于可监视对象的树结构中显示了用于说明应用程序的这些组件和服务的组织方式的图。
选择“资源”页面可以查看资源的监视数据,这些资源已被部署到服务器实例中并且已启用对这些资源的监视功能。从“查看”列表中选择资源。
如果未显示您要查看其监视数据的资源,请选择“配置监视”链接来启用或禁用资源的监视功能。
如果未显示资源的监视数据,则该资源很可能不存在或未运行。仅当资源存在、已在 HIGH 级别启用该资源的监视功能并且该资源正在运行的情况下,资源监视数据才可用。例如,如果您创建了一个 JDBC 连接器服务,但使用该连接器服务的应用程序尚未从服务请求连接器,则尚未创建该服务。因而,不存在任何服务,也没有任何可用的监视数据。一旦执行 JDBC 应用程序且该应用程序从服务请求连接器,则将在监视注册表中注册该应用程序并显示其监视数据。
选定组件或服务的监视数据显示在“查看”字段下。有关可监视属性的说明,请参阅关于受监视的组件和服务的统计信息。关于可监视对象的树结构中显示了用于说明资源的这些组件和服务的组织方式的图。
选择“事务”页面以冻结事务子系统,进而回滚事务并确定冻结时正在进行的事务。
要启用事务服务的监视功能,请选择“配置监视”链接并确保将“事务服务”设置为“低”。
要冻结事务服务以回滚事务,请选择“冻结”。要回滚事务,请选中事务旁边的复选框并单击“回滚”。
get --monitor
例如,要查看 JVM 的监视数据,请使用以下 asadmin 命令:
asadmin> get --user adminuser --monitor server.jvm.*
要使用 asadmin 工具查看监视数据,请使用 asadmin list 和 asadmin get 命令,后跟可监视对象的带点名称,如下所示。
要查看可监视对象的名称,请使用 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 命令一起使用的带点名称的详细信息,请参阅了解和指定带点的名称。
要显示已启用监视功能的应用程序组件或子系统的监视统计信息,请使用 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 list 和 get 命令中,指定可监视对象的带点名称。所有子对象都是使用点字符 (.) 作为分隔符来寻址的,因此它们被称为带点名称。如果子节点是单元素类型,则只需要使用监视对象类型对对象进行寻址;否则,需要使用 type.name 名称格式对对象进行寻址。
例如,http-service 就是其中一种有效的可监视对象类型,并且是单元素类型。要对表示实例 server 的 http-service 的单元素类型子节点进行寻址,则带点名称为:
server.http-service
再比如,application 是一种有效的可监视对象类型,并且是非单元素类型。要对表示应用程序 PetStore 的非单元素类型子节点进行寻址,则带点名称为:
server.applications.petstore
带点的名称还可以指定可监视对象中的特定属性。例如,http-service 具有一个名为 bytesreceived-lastsampletime 的可监视属性。以下名称可对 bytesreceived 属性进行寻址:
server.http-service.server.http-listener-1. bytesreceived-lastsampletime
管理员不需要知道 asadmin list 和 get 命令的有效带点名称。使用 list 命令可以显示可用的可监视对象,而使用带有通配符参数的 get 命令可以检查任意可监视对象的所有可用属性。
使用具有带点名称的 list 和 get 命令的基本假设为:
如果使用任何具有带点名称且后面不跟通配符 (*) 的 list 命令,则得到的结果为当前节点的直接子节点。例如,list --user adminuser --monitor server 列出了所有属于 server 节点的直接子节点。
如果使用任何具有带点名称且后面跟有 .* 形式的通配符的 list 命令,则得到的结果为当前节点的子节点分层树。例如,list --user adminuser --monitor server.applications.* 可列出 applications 的所有子节点及其后续子节点等。
如果使用任何具有带点名称并且前面或后面带有 *dottedname、dotted * name 或 dotted name * 形式的通配符的 list 命令,则得到的结果为与所提供的匹配模式创建的正则表达式相匹配的所有节点及其子节点。
如果使用后跟 .* 或 * 的 get 命令,则得到的结果为属于要匹配的当前节点的属性集及其值。
有关更多信息,请参见list 和 get 命令在所有级别上的预期输出。
本节包括以下主题:
list 命令可针对指定的服务器实例名称提供有关当前正在监视的应用程序组件和子系统的信息。使用此命令可以查看某个服务器实例的可监视组件和子组件。有关 list 示例的更完整列表,请参见list 和 get 命令在所有级别上的预期输出。
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 命令从某个应用程序中获取特定的监视统计信息时,这会很有用。
asadmin> list --user admin-user --monitor server.applications
返回:
server.applications.adminapp server.applications.admingui server.applications.myApp
有关更综合的示例,请参见使用 PetStore 示例。
组件或子系统中监视的所有属性
组件或子系统中监视的特定属性
如果特定组件或子系统中不存在所请求的属性,将返回一个错误。类似地,如果组件或子系统中所请求的特定属性处于非活动状态,也会返回一个错误。
有关使用 get 命令的更多信息,请参阅list 和 get 命令在所有级别上的预期输出。
尝试从某个子系统中获取某个特定对象的所有属性:
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 |
尝试获取某个 J2EE 应用程序的所有属性:
asadmin> get --user admin-user --monitor server.applications.myJ2eeApp.* |
返回:
没有与通配符表达式一致的匹配项。CLI137 命令失败。 |
该 J2EE 应用程序级别上没有暴露可监视的属性,因而显示此回复。
尝试获取某个子系统的某个特定属性:
asadmin> get --user admin-user --monitor server.jvm.uptime-lastsampletime |
返回:
server.jvm.uptime-lastsampletime = 1093215374813
尝试获取某个子系统属性中的某个未知属性:
asadmin> get --user admin-user --monitor server.jvm.badname |
返回:
通过反映相应的统计信息接口 [badname] 没有找到此类属性,CLI137 命令失败。 |
下例说明了如何将 asadmin 工具用于监视目的。
用户要检查将样例 PetStore 应用程序部署到 Application Server 之后在该应用程序中调用某个方法的次数。部署该应用程序的实例名称为 server。结合使用 list 和 get 命令即可访问所需的方法统计信息。
启动 Application Server 和 asadmin 工具。
设置一些有用的环境变量,以避免使用每个命令时都输入这些变量:
asadmin> export AS_ADMIN_USER=admin AS_ADMIN_PASSWORD=admin123 asadmin>export AS_ADMIN_HOST=localhost AS_ADMIN_PORT=4849 |
列出实例 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-pools、http-service、resources 以及所有已部署(并已启用)的 applications。
列出 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 |
列出 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 |
列出 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 |
列出 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*"。 |
该方法没有可监视的子组件。获取方法 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 |
如果还需要获取执行时间等特定统计信息,请使用如下命令:
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 |
下表显示了树的各个级别的命令、带点的名称及相应的输出。
表 16–33 顶层
命令 |
带点的名称 |
输出 |
|
---|---|---|---|
list -m |
server |
|
|
list -m |
server.* |
此节点下的子节点的分层结构。 |
|
get -m |
server.* |
仅显示一条消息,说明此节点上没有属性。 |
下表显示了应用程序级别的命令、带点名称以及相应的输出。
表 16–34 应用程序级别
命令 |
带点的名称 |
输出 |
|
---|---|---|---|
list -m |
server.applications 或 *applications |
|
|
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)的节点。 |
以下属性及其关联值:
|
|
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 能够与 Application Server 一起使用,必须禁用 JMX 连接器的安全性。默认情况下,当前版本(SE/EE 版本)的 Application Server 将启用安全性。
使用管理控制台禁用 JMX 连接器的安全性。要通过管理控制台执行此操作,请执行以下步骤:
使用 asadmin 禁用 JMX 连接器的安全性。要从终端窗口或命令提示符执行此操作,请执行以下步骤:
启动 JConsole,并在“高级”选项卡中输入 JMX URL、用户名和密码以便登录。JMX URL 的格式为:
service:jmx:rmi:///jndi/rmi://<your machine name >:<port>/management/rmi-jmx-connector
注:如果要搜索 message ADM1501,您可以从管理 server.log 文件中获得确切的 JMX URL。