本章包含有关使用 Application Server 管理控制台监视组件的信息。本章包括以下几个部分:
使用监视功能可以观察 Application Server 的服务器实例中所部署的各种组件和服务的运行状态。利用有关运行时组件和进程状态的信息,可以确定性能瓶颈以便进行优化、有助于进行容量规划、预测故障、在发生故障时分析根本原因,以及确保一切运行正常。
启用监视功能会因增加系统开销而使性能降低。
还可以使用管理规则来获取服务器潜在问题的警告,并在服务器达到特定的性能阈值时采取措施(可选)。有关更多信息,请参阅第 19 章,配置管理规则。
要监视 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 容器统计信息:
下表中介绍了 EJB 统计信息。
表 18–1 EJB 统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
createcount |
计数统计信息 |
调用 EJB 的 create 方法的次数。 |
removecount |
计数统计信息 |
调用 EJB 的 remove 方法的次数。 |
pooledcount |
范围统计信息 |
处于汇集状态的实体 Bean 的数目。 |
readycount |
范围统计信息 |
处于就绪状态的实体 Bean 的数目。 |
messagecount |
计数统计信息 |
消息驱动 Bean 收到的消息数。 |
methodreadycount |
范围统计信息 |
处于 MethodReady 状态的有状态或无状态会话 Bean 的数目。 |
passivecount |
范围统计信息 |
处于 Passive 状态的有状态会话 Bean 的数目。 |
下表中列出了有关 EJB 方法调用的可用的统计信息。
表 18–2 EJB 方法统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
methodstatistic |
时间统计信息 |
操作被调用的次数;调用期间所花费的总时间等信息。 |
计数统计信息 |
方法执行时出现异常的次数。如果为 EJB 容器启用了监视功能,则此统计信息是为无状态和有状态会话 Bean 和实体 Bean 而收集的。 |
|
计数统计信息 |
方法成功执行的次数。如果为 EJB 容器启用了监视功能,则此统计信息是为无状态和有状态会话 Bean 和实体 Bean 收集的统计信息。 |
|
计数统计信息 |
上次成功/不成功尝试执行方法操作所花费的时间 (ms)。如果在 EJB 容器中启用了监视功能,则此统计信息是为无状态和有状态会话 Bean 和实体 Bean 收集的统计信息。 |
下表中列出了有关 EJB 会话存储的统计信息。
表 18–3 EJB 会话存储统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
currentSize |
范围统计信息 |
当前位于存储中的钝化会话数或检查点会话数。 |
activationCount |
计数统计信息 |
从存储中激活的会话数。 |
activationSuccessCount |
计数统计信息 |
从存储中成功激活的会话数。 |
activationErrorCount |
计数统计信息 |
上次成功/不成功尝试执行方法操作所花费的时间 (ms)。如果在 EJB 容器中启用了监视功能,则此统计信息是为无状态和有状态会话 Bean 和实体 Bean 收集的统计信息。 |
passivationCount |
计数统计信息 |
使用此存储钝化(取消激活)的会话数。 |
passivationSuccessCount |
计数统计信息 |
使用此存储成功钝化的会话数。 |
passivationErrorCount |
计数统计信息 |
无法使用此存储钝化的会话数。 |
expiredSessionCount |
计数统计信息 |
此存储删除的过期会话数。 |
passivatedBeanSize |
计数统计信息 |
由此存储钝化的总字节数,包括总数、最小值和最大值。 |
passivationTime |
计数统计信息 |
将 Bean 钝化到存储所花费的时间,包括总时间值、最小值和最大值。 |
checkpointCount(仅限于企业配置文件) |
计数统计信息 |
使用此存储进行会话检查点操作的会话数。 |
checkpointSuccessCount(仅限于企业配置文件) |
计数统计信息 |
成功进行检查点操作的会话数。 |
checkpointErrorCount(仅限于企业配置文件) |
计数统计信息 |
无法进行检查点操作的会话数。 |
checkpointedBeanSize(仅限于企业配置文件) |
值统计信息 |
由该存储进行检查点操作的字节的总数。 |
checkpointTime(仅限于企业配置文件) |
时间统计信息 |
通过检查点操作将 Bean 放入存储中所花费的时间。 |
下表中列出了有关 EJB 池的可用的统计信息。
表 18–4 EJB 池统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
已绑定范围统计信息 |
相关池中的 EJB 数,决定了该池的更改方式。 |
|
已绑定范围统计信息 |
等待空闲 Bean 的线程数,指出可能的请求拥塞。 |
|
计数统计信息 |
自开始收集数据以来相关池中所创建的 Bean的数目。 |
|
计数统计信息 |
自开始收集数据以来从相关池中销毁的 Bean 的数目。 |
|
计数统计信息 |
为使消息驱动的 Bean 提供服务而一次加载到 JMS 会话中的最大消息数。默认值为 1。仅适用于消息驱动的 Bean 的池。 |
下表中列出了有关 EJB 高速缓存的可用的统计信息。
表 18–5 EJB 高速缓存统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
已绑定范围统计信息 |
用户请求未在高速缓存中找到 Bean 的次数。 |
|
已绑定范围统计信息 |
用户请求在高速缓存中找到某条目的次数。 |
|
numbeansincache |
已绑定范围统计信息 |
高速缓存中 Bean 的数目。这是高速缓存的当前大小。 |
计数统计信息 |
钝化的 Bean 数。仅适用于状态会话 Bean。 |
|
计数统计信息 |
挂起时的错误数。仅适用于状态会话 Bean。 |
|
计数统计信息 |
清除线程删除的过期会话数。仅适用于状态会话 Bean。 |
|
计数统计信息 |
成功完成挂起的次数。仅适用于状态会话 Bean。 |
下表中列出了有关计时器的可用的统计信息。
表 18–6 计时器统计信息
统计信息 |
数据类型 |
说明 |
---|---|---|
numtimerscreated |
计数统计信息 |
系统中创建的计时器的数目。 |
numtimersdelivered |
计数统计信息 |
系统所发送的计时器的数目。 |
numtimersremoved |
计数统计信息 |
从系统中删除的计时器的数目。 |
Web 容器包含在应用程序树所示的对象树中。系统为每个单独的 Web 应用程序都显示了 Web 容器统计信息。表 18–7 中显示了 Servlet 的 Web 容器的可用统计信息,表 18–8 中显示了 Web 模块的可用统计信息。
表 18–7 Web 容器 (Servlet) 统计信息
统计信息 |
单位 |
数据类型 |
说明 |
---|---|---|---|
errorcount |
个 |
计数统计信息 |
响应代码大于或等于 400 的情况的累积次数。 |
maxtime |
毫秒 |
计数统计信息 |
Web 容器等待请求的最长时间。 |
processingtime |
毫秒 |
计数统计信息 |
处理每个请求所需时间的累积值。处理时间是总请求处理时间除以请求计数所得的平均值。 |
requestcount |
个 |
计数统计信息 |
到目前为止所处理的请求总数。 |
Web 容器统计信息中显示了有关 Web 模块的可用的统计信息。
表 18–8 Web 容器(Web 模块)统计信息
统计信息 |
数据类型 |
说明 |
---|---|---|
jspcount |
计数统计信息 |
已装入 Web 模块的 JSP 页面的数目。 |
jspreloadcount |
计数统计信息 |
已重新装入 Web 模块的 JSP 页面的数目。 |
sessionstotal |
计数统计信息 |
已为 Web 模块创建的会话总数。 |
activesessionscurrent |
计数统计信息 |
Web 模块的当前处于活动状态的会话数。 |
activesessionshigh |
计数统计信息 |
Web 模块的同时处于活动状态的会话最大数。 |
rejectedsessionstotal |
计数统计信息 |
Web 模块的被拒绝的会话总数。是指由于允许处于活动状态的会话数已达到最大值而未被创建的会话数。 |
expiredsessionstotal |
计数统计信息 |
Web 模块的已过期会话的总数。 |
sessionsize |
平均范围统计信息 |
Web 模块的会话大小。值可以为大、小或平均值,或以字节为单位(用于序列化会话)。 |
sessionpersisttime |
平均范围统计信息 |
将 HTTP 会话状态保持到 Web 模块的后端存储中所花费的时间(以 ms 为单位,短、长或平均值)。 |
cachedsessionscurrent |
计数统计信息 |
高速缓存在内存中用于 Web 模块的当前会话数。 |
passivatedsessionscurrent |
计数统计信息 |
用于 Web 模块的已钝化会话的当前数目。 |
下表中显示了适用于开发者配置文件的 HTTP 服务的可用统计信息。有关适用于其他配置文件的 HTTP 服务的统计信息,请参见生产 Web 容器 (PWC) 统计信息。
表 18–9 HTTP 服务统计信息(开发者配置文件)
统计信息 |
单位 |
数据类型 |
说明 |
---|---|---|---|
bytesreceived |
字节 |
计数统计信息 |
每个请求处理器接收到的字节累积值。 |
bytessent |
字节 |
计数统计信息 |
每个请求处理器所发送的字节累积值。 |
currentthreadcount |
个 |
计数统计信息 |
当前位于侦听器线程池中的处理线程数。 |
currentthreadsbusy |
个 |
计数统计信息 |
处理请求的侦听器线程池中当前正在使用的请求处理线程的数目。 |
errorcount |
个 |
计数统计信息 |
错误计数的累积值,错误计数是指响应代码大于或等于 400 这类情况发生的次数。 |
maxsparethreads |
个 |
计数统计信息 |
可以存在的未使用响应处理线程的最大数目。 |
minsparethreads |
个 |
计数统计信息 |
可以存在的未使用响应处理线程的最小数目。 |
maxthreads |
个 |
计数统计信息 |
侦听器所创建的请求处理线程的最大数目。 |
maxtime |
毫秒 |
计数统计信息 |
处理线程的最长时间。 |
processing-time |
毫秒 |
计数统计信息 |
处理每个请求所花费时间的累积值。处理时间是总请求处理时间除以请求计数所得的平均值。 |
request-count |
个 |
计数统计信息 |
到目前为止所处理的请求总数。 |
用于在运行时监视 JDBC 资源,以测量性能并捕获资源使用情况。由于创建 JDBC 连接的成本很高并且常常会导致应用程序出现性能瓶颈问题,因此对 JDBC 连接池释放和创建新连接的方法以及正在等待从特定池中检索连接的线程数的监视是至关重要的。
下表中显示了有关 JDBC 连接池的可用的统计信息。
表 18–10 JDBC 连接池统计信息
统计信息 |
单位 |
数据类型 |
说明 |
---|---|---|---|
numconnfailedvalidation |
个 |
计数统计信息 |
从开始时间到上次抽样时间为止在连接池中验证失败的连接总数。 |
numconnused |
个 |
范围统计信息 |
提供连接使用情况统计信息。当前正被使用的连接的总数,以及有关使用过的连接的最大数目的信息(高水印)。 |
numconnfree |
个 |
计数统计信息 |
上次抽样时池中的空闲连接的总数。 |
numconntimedout |
个 |
已绑定范围统计信息 |
开始时间与上次抽样时间之间池中的超时连接总数。 |
averageconnwaittime |
个 |
计数统计信息 |
指示尝试与连接器连接池建立连接成功的连接请求的平均等待时间。 |
waitqueuelength |
个 |
计数统计信息 |
队列中正在等待处理的连接请求数。 |
connectionrequestwaittime |
范围统计信息 |
连接请求的最长和最短等待时间。当前值表示连接池处理的上一个请求的等待时间。 |
|
numconncreated |
毫秒 |
计数统计信息 |
自上次复位以来创建的物理连接数。 |
numconndestroyed |
个 |
计数统计信息 |
自上次复位以来销毁的物理连接数。 |
numconnacquired |
个 |
计数统计信息 |
从池中获取的逻辑连接数。 |
numconnreleased |
个 |
计数统计信息 |
释放到池中的逻辑连接数。 |
表 18–11 中显示了连接器连接池的可用统计信息。表 18–12 中显示了连接器工作管理的统计信息。
表 18–11 连接器连接池统计信息
统计信息 |
单位 |
数据类型 |
说明 |
---|---|---|---|
numconnfailedvalidation |
个 |
计数统计信息 |
从开始时间到上次抽样时间为止在连接池中验证失败的连接总数。 |
numconnused |
个 |
范围统计信息 |
提供连接使用情况统计信息。当前正被使用的连接的总数,以及有关使用过的连接的最大数目的信息(高水印)。 |
numconnfree |
个 |
范围统计信息 |
上次抽样时池中的空闲连接的总数。 |
numconntimedout |
个 |
计数统计信息 |
开始时间与上次抽样时间之间池中的超时连接总数。 |
averageconnwaittime |
个 |
计数统计信息 |
连接池处理连接之前这些连接的平均等待时间。 |
waitqueuelenght |
个 |
计数统计信息 |
队列中正在等待处理的连接请求数。 |
connectionrequestwaittime |
范围统计信息 |
连接请求的最长和最短等待时间。当前值表示连接池处理的上一个请求的等待时间。 |
|
numconncreated |
毫秒 |
计数统计信息 |
自上次复位以来创建的物理连接数。 |
numconndestroyed |
个 |
计数统计信息 |
自上次复位以来销毁的物理连接数。 |
numconnacquired |
个 |
计数统计信息 |
从池中获取的逻辑连接数。 |
numconnreleased |
个 |
计数统计信息 |
释放到池中的逻辑连接数。 |
下表中列出了连接器工作管理的可用统计信息。
表 18–12 连接器工作管理统计信息
统计信息 |
数据类型 |
说明 |
---|---|---|
activeworkcount |
范围统计信息 |
由连接器执行的工作对象数。 |
waitqueuelength |
范围统计信息 |
执行前在队列中等待的工作对象数。 |
workrequestwaittime |
范围统计信息 |
工作对象在被执行前所等待的最长和最短时间。 |
submittedworkcount |
计数统计信息 |
由连接器模块提交的工作对象数。 |
rejectedworkcount |
计数统计信息 |
Application Server 拒绝的工作对象数。 |
completedworkcount |
计数统计信息 |
完成的工作对象数。 |
下表中列出了 ORB 中的连接管理器的可用统计信息。
表 18–13 ORB 中连接管理器的统计信息
统计信息 |
单位 |
数据类型 |
说明 |
---|---|---|---|
connectionsidle |
个 |
计数统计信息 |
提供与 ORB 的空闲连接的总数。 |
connectionsinuse |
个 |
计数统计信息 |
提供与 ORB 的正在使用的连接总数。 |
totalconnections |
个 |
已绑定范围统计信息 |
与 ORB 的连接总数。 |
下表中显示了有关线程池的可用的统计信息。
表 18–14 线程池统计信息
统计信息 |
单位 |
数据类型 |
说明 |
---|---|---|---|
averagetimeinqueue |
毫秒 |
范围统计信息 |
在被处理之前请求在队列中等待的平均时间(以毫秒为单位)。 |
averageworkcompletion-time |
毫秒 |
范围统计信息 |
完成分配所花费的平均时间(以毫秒为单位)。 |
currentnumberofthreads |
个 |
已绑定范围统计信息 |
当前的请求处理线程数。 |
numberofavailablethreads |
个 |
计数统计信息 |
可用的线程数。 |
numberofbusythreads |
个 |
计数统计信息 |
处于忙碌状态的线程数。 |
totalworkitemsadded |
个 |
计数统计信息 |
到目前为止添加到工作队列中的工作项目总数。 |
事务服务允许客户机冻结事务子系统,以回滚事务并确定冻结时正在进行的事务。下表中显示了有关事务服务的可用的统计信息。
表 18–15 事务服务统计信息
统计信息 |
数据类型 |
说明 |
---|---|---|
activecount |
计数统计信息 |
当前处于活动状态的事务数。 |
activeids |
字符串统计信息 |
当前处于活动状态的事务的 ID。冻结事务服务后,可以回滚所有此类事务。 |
committedcount |
计数统计信息 |
已提交的事务数。 |
rolledbackcount |
计数统计信息 |
已回滚的事务数。 |
state |
字符串统计信息 |
表示事务是否已被冻结。 |
JVM 具有始终处于启用状态的可监视属性。下表中显示了有关 JVM 的可用的统计信息。
表 18–16 JVM 统计信息
统计信息 |
数据类型 |
说明 |
---|---|---|
heapsize |
已绑定范围统计信息 |
JVM 内存堆大小的下限或上限驻留内存轨迹。 |
uptime |
计数统计信息 |
JVM 已运行的时间。 |
使用 Java SE,可以从 JVM 中获取其他监视信息。将监视级别设置为“低”以启用这些附加信息的显示。将监视级别设置为“高”还可以查看与系统中每个活动线程相关的信息。有关 Java SE 的其他监视功能的更多信息,请参见标题为 "Monitoring and Management for the Java Platform" 的文档,可从 http://java.sun.com/javase/6/docs/technotes/guides/management/ 获取该文档。
http://java.sun.com/javase/6/docs/technotes/tools/#manage 中讨论了 Java SE 监视工具。
下表中显示了 Java SE 的 JVM 中类装入的可用统计信息。
表 18–17 Java SE 的 JVM 统计信息-类装入
统计信息 |
数据类型 |
说明 |
---|---|---|
loadedclasscount |
计数统计信息 |
当前装入 JVM 的类的数目。 |
totalloadedclasscount |
计数统计信息 |
自 JVM 开始执行以来已装入的类的总数。 |
unloadedclasscount |
计数统计信息 |
自 JVM 开始执行以来已从 JVM 中卸载的类的数目。 |
下表中显示了 Java SE 的 JVM 中编译的可用统计信息。
表 18–18 Java SE 的 JVM 统计信息-编译
统计信息 |
数据类型 |
说明 |
---|---|---|
totalcompilationtime |
计数统计信息 |
编译所花费的累积时间(以毫秒为单位)。 |
下表中显示了 Java SE 的 JVM 中垃圾收集的可用统计信息。
表 18–19 Java SE 的 JVM 统计信息-垃圾收集
统计信息 |
数据类型 |
说明 |
---|---|---|
collectioncount |
计数统计信息 |
已发生的收集的总数。 |
collectiontime |
计数统计信息 |
累积的收集时间(以毫秒为单位)。 |
下表中显示了 Java SE 的 JVM 中内存的可用统计信息。
表 18–20 Java SE 的 JVM 统计信息-内存
统计信息 |
数据类型 |
说明 |
---|---|---|
objectpendingfinalizationcount |
计数统计信息 |
暂挂结束操作的对象的大约数目。 |
initheapsize |
计数统计信息 |
最初由 JVM 请求的堆的大小。 |
usedheapsize |
计数统计信息 |
当前正在使用的堆的大小。 |
maxheapsize |
计数统计信息 |
可用于内存管理的最大内存容量(以字节为单位)。 |
committedheapsize |
计数统计信息 |
确认可由 JVM 使用的内存容量(以字节为单位)。 |
initnonheapsize |
计数统计信息 |
最初由 JVM 请求的非堆区域的大小。 |
usednonheapsize |
计数统计信息 |
当前正在使用的非堆区域的大小。 |
maxnonheapsize |
计数统计信息 |
可用于内存管理的最大内存容量(以字节为单位)。 |
committednonheapsize |
计数统计信息 |
确认可由 JVM 使用的内存容量(以字节为单位)。 |
下表中显示了Java SE 的 JVM 中操作系统的可用统计信息。
表 18–21 Java SE 的 JVM 统计信息-操作系统
统计信息 |
数据类型 |
说明 |
---|---|---|
arch |
字符串统计信息 |
操作系统体系结构。 |
availableprocessors |
计数统计信息 |
可用于 JVM 的处理器的数目。 |
name |
字符串统计信息 |
操作系统名称。 |
version |
字符串统计信息 |
操作系统版本。 |
下表中显示了 Java SE 的 JVM 中运行时的可用统计信息。
表 18–22 Java SE 的 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 的正常运行时间(以毫秒为单位)。 |
下表中显示了 Java SE 的 JVM 中线程信息的可用统计信息。
表 18–23 Java SE 的 JVM 统计信息-线程信息
统计信息 |
数据类型 |
说明 |
---|---|---|
threadid |
计数统计信息 |
线程 ID。 |
threadname |
字符串统计信息 |
线程名称。 |
threadstate |
字符串统计信息 |
线程状态。 |
blockedtime |
计数统计信息 |
线程进入 BLOCKED 状态以来所经历的时间(以毫秒为单位)。如果已禁用线程争用监视,则返回 -1。 |
blockedcount |
计数统计信息 |
线程进入 BLOCKED 状态的总次数。 |
waitedtime |
计数统计信息 |
线程处于 WAITING 状态所经历的时间(以毫秒为单位)。如果已禁用线程争用监视,则返回 -1。 |
waitedcount |
计数统计信息 |
线程处于 WAITING 或 TIMED_WAITING 状态的总次数。 |
lockname |
字符串统计信息 |
一种监视锁的字符串表示形式,该监视锁表明线程被阻塞而无法进入或者正等待通过 Object.wait 方法接收通知。 |
lockownerid |
计数统计信息 |
保存某个对象的监视锁的线程 ID,该线程在该对象上发生阻塞。 |
lockownername |
字符串统计信息 |
保存某个对象的监视锁的线程名称,该线程在该对象上发生阻塞。 |
stacktrace |
字符串统计信息 |
与该线程相关的堆栈追踪。 |
下表中显示了 Java SE 的 JVM 中线程的可用统计信息。
表 18–24 Java SE 的 JVM 统计信息-线程
统计信息 |
数据类型 |
说明 |
---|---|---|
threadcount |
计数统计信息 |
当前的活动守护线程和非守护线程数。 |
peakthreadcount |
计数统计信息 |
自 JVM 启动或峰复位以来的峰活动线程计数。 |
totalstartedthreadcount |
计数统计信息 |
自 JVM 启动以来创建和/或启动的线程总数。 |
daemonthreadcount |
计数统计信息 |
当前的活动守护线程数。 |
allthreadids |
字符串统计信息 |
所有活动线程 ID 列表。 |
currentthreadcputime |
计数统计信息 |
如果已启用 CPU 时间测量,则表示当前线程的 CPU 时间(以纳秒为单位)。如果已禁用 CPU 时间测量,则返回 -1。 |
monitordeadlockedthreads |
字符串统计信息 |
处于监视死锁状态的线程 ID 列表。 |
提供了以下各表中介绍的 PWC 组件和服务的统计信息。
这些统计信息只能用于群集和企业配置文件。
下表中列出了 PWC 虚拟服务器的统计信息。
表 18–25 PWC 虚拟服务器统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
id |
字符串统计信息 |
虚拟服务器的 ID。 |
mode |
字符串统计信息 |
虚拟服务器所处的模式。选项包括 unknown 或 active。 |
hosts |
字符串统计信息 |
由该虚拟服务器提供服务的主机的名称。 |
interfaces |
字符串统计信息 |
配置了虚拟服务器的接口(侦听器)的类型。 |
下表中列出了有关 PWC 请求的可用的统计信息。
表 18–26 PWC 请求统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
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 文件高速缓存的统计信息。
表 18–27 PWC 文件高速缓存统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
flagenabled |
计数统计信息 |
指示是否启用了文件高速缓存。禁用时有效值为 0;启用时有效值为 1。 |
secondsmaxage |
计数统计信息 |
有效高速缓存条目的最长生存期(以秒为单位)。 |
countentries |
计数统计信息 |
当前的高速缓存条目数。一个高速缓存条目代表一个 URI。 |
maxentries |
计数统计信息 |
并发高速缓存条目的最大数目。 |
countopenentries |
计数统计信息 |
与打开的文件关联的条目数。 |
maxopenentries |
计数统计信息 |
与打开的文件关联的并发高速缓存条目的最大数目。 |
sizeheapcache |
计数统计信息 |
用于高速缓存内容的堆空间。 |
maxheapcachesize |
计数统计信息 |
用于高速缓存文件内容的最大堆空间。 |
sizemmapcache |
计数统计信息 |
内存映射的文件内容所使用的地址空间大小。 |
maxmmapcachesize |
计数统计信息 |
文件高速缓存用于内存映射的文件内容的最大地址空间大小。 |
counthits |
计数统计信息 |
高速缓存查找成功的次数。 |
countmisses |
计数统计信息 |
高速缓存查找失败的次数。 |
countinfohits |
计数统计信息 |
文件信息查找成功的次数。 |
countinfomisses |
计数统计信息 |
高速缓存的文件信息丢失的数目。 |
countcontenthits |
计数统计信息 |
高速缓存的文件内容的命中次数。 |
countcontentmisses |
计数统计信息 |
文件信息查找失败的次数。 |
本节提供了有关服务器的 HTTP 级保持活动的系统的信息。下表中列出了有关 PWC 保持活动的可用的统计信息。
表 18–28 PWC 保持活动统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
countconnections |
计数统计信息 |
处于保持活动模式的连接数。 |
maxconnections |
计数统计信息 |
允许同时处于保持活动模式的最大连接数。 |
counthits |
计数统计信息 |
处于保持活动模式的连接随后进行了有效请求的总次数。 |
countflushes |
计数统计信息 |
服务器关闭保持活动的连接的次数。 |
countrefusals |
计数统计信息 |
服务器可能由于有太多的持久性连接而无法将连接传递到保持活动线程的次数。 |
counttimeouts |
计数统计信息 |
服务器因客户机连接超时且没有任何活动而终止保持活动连接的次数。 |
secondstimeout |
计数统计信息 |
关闭空闲保持活动连接之前经历的时间(以秒为单位)。 |
DNS 高速缓存高速缓存 IP 地址和 DNS 名称。默认情况下,服务器的 DNS 高速缓存处于禁用状态。一个高速缓存条目代表一个 IP 地址或 DNS 名称查找。下表中列出了有关 PWC DNS 的可用的统计信息。
表 18–29 PWC DNS 统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
flagcacheenabled |
计数统计信息 |
指示是否启用了 DNS 高速缓存。禁用时为 0;启用时为 1。 |
countcacheentries |
计数统计信息 |
当前位于高速缓存中的 DNS 条目数。 |
maxcacheentries |
计数统计信息 |
高速缓存中可容纳的 DNS 条目的最大数目。 |
countcachehits |
计数统计信息 |
DNS 高速缓存查找成功的次数。 |
countcachemisses |
计数统计信息 |
DNS 高速缓存查找失败的次数。 |
flagasyncenabled |
计数统计信息 |
指示是否启用了异步 DNS 查找。禁用时为 0;启用时为 1。 |
countasyncnamelookups |
计数统计信息 |
异步 DNS 名称查找的总数。 |
countasyncaddrlookups |
计数统计信息 |
异步 DNS 地址查找的总数。 |
countasynclookupsinprogress |
计数统计信息 |
正在进行的异步查找的数目。 |
下表中列出了有关 PWC 线程池的统计信息。
表 18–30 PWC 线程池统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
id |
字符串统计信息 |
线程池 ID。 |
countthreadsidle |
计数统计信息 |
当前处于空闲状态的请求处理线程数。 |
countthreads |
计数统计信息 |
当前的请求处理线程的数目。 |
maxthreads |
计数统计信息 |
可同时存在的请求处理线程的最大数目。 |
countqueued |
计数统计信息 |
排队等候此线程池处理的请求数。 |
peakqueued |
计数统计信息 |
队列中同时容纳的最大请求数。 |
maxqueued |
计数统计信息 |
队列一次可容纳的最大请求数。 |
连接队列是指请求被处理前容纳这些请求的队列。连接队列的统计信息显示队列中的会话数以及连接被接受前的平均延迟时间。下表中列出了有关 PWC 连接队列的统计信息。
表 18–31 PWC 连接队列统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
id |
字符串统计信息 |
连接队列的 ID。 |
counttotalconnections |
计数统计信息 |
已接受的连接总数。 |
countqueued |
计数统计信息 |
当前位于队列中的连接数。 |
peakqueued |
计数统计信息 |
队列中同时容纳的最大连接数。 |
maxqueued |
计数统计信息 |
连接队列的最大大小。 |
countoverflows |
计数统计信息 |
队列太满而无法容纳更多连接的次数。 |
counttotalqueued |
计数统计信息 |
排队等候的连接总数。由于给定连接可能被多次排队,因此 counttotalqueued 可能会大于或等于 counttotalconnections。 |
tickstotalqueued |
计数统计信息 |
连接在队列中所花费的周期总数。周期是由系统决定的时间单位。 |
countqueued1minuteaverage |
计数统计信息 |
前 1 分钟内处于排队状态的平均连接数。 |
countqueued5minuteaverage |
计数统计信息 |
前 5 分钟内处于排队状态的平均连接数。 |
countqueued15minuteaverage |
计数统计信息 |
前 15 分钟内处于排队状态的平均连接数。 |
下表中列出了有关 PWC HTTP 服务的统计信息。
表 18–32 PWC HTTP 服务统计信息
属性名称 |
数据类型 |
说明 |
---|---|---|
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。 |
本节包括以下主题:
在管理控制台中配置监视:
对于开发者配置文件,转至“配置”->“监视”
对于群集和企业配置文件,请转至“配置”->“配置”->“监视”
默认情况下,所有组件和服务的监视功能均处于禁用状态。要启用监视功能,请在组合框中选择“低”或“高”。要禁用监视功能,请在组合框中选择“关闭”。
有关配置监视的详细信息,请参见管理控制台中的联机帮助。
使用 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 有两种方法查看监视数据。第一种是使用 monitor 命令。该命令可以输出通常被监视的统计信息,并具有用于过滤统计信息和将输出捕获到逗号分隔值 (Comma Separated Value, CSV) 文件中的选项。
要查看监视数据,请使用 monitor 命令并指定监视数据的类型:httplistener、keepalive、filecache、connectionqueue、jdbcpool、jvm、threadpool 、servlet、connection、connectorpool、endpoint、entitybean、messagedriven、statefulsession、statelesssession、httpservice 或 webmodule。
例如,要查看 server 上的 jvm 数据,请输入以下内容:
asadmin>monitor --type jvm --user adminuser server |
JVM Monitoring UpTime(ms) HeapSize(bytes) current min max low high count 327142979 0 531628032 0 45940736 45940736 |
要查看监视数据并将输出发送到 CSV 文件,请使用 filename 选项。例如:
asadmin> monitor --type jvm --filename myoutputfile --user adminuser server |
大多数情况下 monitor 命令都是有用的。但是,它不会提供所有可监视对象的完整列表。要使用 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 |
尝试获取某个 Java EE 应用程序的所有属性:
asadmin> get --user admin-user --monitor server.applications.myJavaEEApp.* |
返回:
没有与通配符表达式一致的匹配项。CLI137 命令失败。 |
该 Java EE 应用程序级别上没有暴露可监视的属性,因而显示此回复。
尝试获取某个子系统的某个特定属性:
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=4848 |
列出实例 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 |
返回:
Nothing to list at server.applications.petstore.signon-ejb_jar. UserEJB.bean-methods.getUserName. To get the valid names beginning with a string, use the wildcard "*" character. For example, to list all names that begin with "server", use "list server*". |
该方法没有可监视的子组件。获取方法 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 |
下表显示了树的各个级别的命令、带点的名称及相应的输出。
表 18–33 顶层
命令 |
带点的名称 |
输出 |
|
---|---|---|---|
list -m |
server |
|
|
list -m |
server.* |
此节点下的子节点的分层结构。 |
|
get -m |
server.* |
仅显示一条消息,说明此节点上没有属性。 |
下表显示了应用程序级别的命令、带点名称以及相应的输出。
表 18–34 应用程序级别
命令 |
带点的名称 |
输出 |
|
---|---|---|---|
list -m |
server.applications 或 *applications |
|
|
list -m |
server.applications.* 或 *applications.* |
此节点下的子节点的分层结构。 |
|
get -m |
server.applications.* 或 *applications.* |
仅显示一条消息,说明此节点上没有属性。 |
下表显示了应用程序级别的独立模块和企业应用程序的命令、带点名称以及相应的输出。
表 18–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 池属性对应的属性和值的列表(如表 18–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 高速缓存属性对应的属性和值的列表(如表 18–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 方法属性对应的属性和值的列表(如表 18–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) 属性对应的属性和值的列表(如表 18–7 中所示)。 |
下表显示了 HTTP 服务级别的命令、带点名称以及相应的输出。
表 18–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 服务属性对应的属性和值的列表(如表 18–9 中所示)。 |
下表显示了线程池级别的命令、带点名称以及相应的输出。
表 18–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.* |
与线程池属性对应的属性和值的列表(如 表 18–14 中所示)。 |
下表显示了资源级别的命令、带点名称以及相应的输出。
表 18–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.* |
与连接池属性对应的属性和值的列表(如表 18–10 中所示)。 |
下表显示了事务服务级别的命令、带点名称以及相应的输出。
表 18–39 事务服务级别
命令 |
带点的名称 |
输出 |
---|---|---|
list -m |
server.transaction-service |
没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值” |
get -m |
server.transaction-service.* |
与事务服务属性对应的属性和值的列表(如表 18–15 中所示)。 |
下表显示了 ORB 级别的命令、带点名称以及相应的输出。
表 18–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 连接管理器属性对应的属性和值的列表(如表 18–13 中所示)。 |
下表显示了 JVM 级别的命令、带点名称以及相应的输出。
表 18–41 JVM 级别
命令 |
带点的名称 |
输出 |
---|---|---|
list -m |
server.jvm |
没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 |
get -m |
server.jvm.* |
与 JVM 属性对应的属性和值的列表(如表 18–16 中所示)。 |
本节包括以下主题:
Application Server 的管理(管理和监视)基于 JMX 技术。这意味着受管理的组件表示为在 Application Server 的 JVM 中运行的 MBeanServer 中的 MBean。
Java SE 5 通过包含平台 MBean 服务器和包含 MBean 以配置 JVM 来增强 JVM 的管理和监视功能。Application Server 利用这些增强功能并在平台 MBean 服务器上注册其 MBean。这样 JMX 连接器客户机就能够获得 JVM MBean 和 Application Server MBean 的统一视图。
为了查看所有 MBean,Application Server 提供了一种称为系统 JMX 连接器服务器的标准 JMX 连接器服务器配置。在 Application Server 启动的过程中,会启动该 JMX 连接器服务器的一个实例。任何兼容的 JMX 连接器客户机都可以使用此连接器服务器连接到服务器。
Java SE 还提供用于连接到 MBean 服务器并查看在其中进行注册的 MBean 的工具。JConsole 正是这样一种常见的 JMX 连接器客户机,它作为标准 Java SE 分发的一部分进行提供。有关 JConsole 的更多信息,请访问 http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html。
为 Application Server 配置 JConsole 时,Application Server 将成为 JMX 连接器的服务器端,JConsole 将成为 JMX 连接器的首选客户机端。将 JConsole 连接到 Application Server显示了如何实现成功连接。
在如何基于连接的传输层安全性连接到 Application Server 或任何 JMX 连接器服务器端方面,存在细微的差别。如果服务器端是安全的(保证传输层安全性),则只需在客户机端执行较少的配置。
默认情况下,使用非安全的系统 JMX 连接器服务器配置 Application Server 的开发者配置文件。
默认情况下,使用安全的系统 JMX 连接器服务器配置 Application Server 的群集和企业配置文件。
通信所使用的协议为 RMI/JRMP。如果为 JMX 连接器启用安全性,则使用的协议为基于 SSL 的 RMI/JRMP。
基于 SSL 的 RMI 不提供其他检查以确保客户机正在与预定服务器进行通信。因此,使用 JConsole 时,始终有可能将用户名和密码发送到恶意主机。能否确保安全性不会降低完全取决于管理员。
当在诸如 appserver.sun.com 之类的计算机上安装开发者配置文件域时,您将在域管理服务器 (Domain Administration Server, DAS) 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 域安装在名为 appserver.sun.com 的计算机中,这是一个功能强大的 Solaris 服务器。这是服务器端。
客户机端也安装有 Application Server。假设客户机端是安装有 Java SE 6.0 和 Application Server 的 Windows 计算机。
仅当对远程计算机上的 Application Server 域启用了安全性(群集和企业配置文件的默认设置)时,才需要在客户机端安装 Application Server。如果仅希望管理上述 Solaris 计算机中的 Application Server 开发者配置文件域,则无需在此客户机上安装 Application Server。
如果服务器端和客户机端位于同一台计算机上,则可以使用 localhost 指定主机名。
本过程介绍如何在未对 JMX 连接器启用安全性的情况下将 JConsole 连接到 Application Server。默认情况下,Application Server 不会对开发者配置文件启用安全性。
在 appserver.sun.com 上启动域。
通过运行 JDK_HOME/bin/jconsole 来启动 JConsole。
在 JConsole 的“连接到代理”选项卡中,输入用户名、密码、主机名和端口(默认为 8686)。
用户名是指域的管理用户名,密码是指域的管理密码。
单击“连接”。
在 JConsole 窗口的各个选项卡中,将显示所有的 MBean、虚拟机信息等。
本过程介绍如何在对 JMX 连接器启用安全性的情况下将 JConsole 连接到 Application Server。默认情况下,对 Application Server 群集或企业配置文件启用安全性。如果已对开发者配置文件的 JMX 连接器启用了安全性,请执行此过程。
在客户机(安装有 JConsole)上安装 Application Server。
需要执行此操作的唯一原因是让 JConsole 知道您所信任的域管理服务器的服务器证书位于何处。要获取此证书,请至少调用一次远程 asadmin 命令;要实现此调用,需要在本地安装 Application Server。
在 appserver.sun.com 上启动 Application Server。
由于这是群集或企业域,因此系统 JMX 连接器服务器是安全的。要对开发者配置文件 JMX 连接器启用安全性,请参见管理控制台联机帮助。
在本地 Application Server 安装中,运行 install-dir\bin\asadmin list --user admin --secure=true --host appserver.sun.com --port 4848(其中 4848 是服务器的管理端口)。
虽然示例选择了 asadmin list 命令,但是您可以运行任何远程 asadmin 命令。系统将提示您接受 appserver.sun.com 的 DAS 所发送的证书。
按 Y 键接受 appserver.sun.com 的 DAS 所发送的证书。
在客户机上,服务器证书存储在主目录下名为 .asadmintruststore 的文件中。
如果服务器与客户机相同,则不需要执行此步骤。换句话说,如果也在 appserver.sun.com 上运行 JConsole。
通过使用以下 JConsole 命令使 JConsole 知道信任存储位置:
JDK-dir\bin\jconsole.exe -J-Djavax.net.ssl.trustStore="C:\Documents and Settings\user\.asadmintruststore"
通过运行 JDK_HOME/bin/jconsole 来启动 JConsole。
在 JConsole 的“连接到代理”选项卡中,输入用户名、密码、主机名和端口(默认为 8686)。
用户名是指域的管理用户名,密码是指域的管理密码。
单击“连接”。
在 JConsole 窗口的各个选项卡中,将显示所有的 MBean、虚拟机信息等。