Sun Java System Application Server Enterprise Edition 8.1 管理指南 2005Q1 |
第 21 章
监视组件和服务本章包含有关使用 Application Server 管理控制台监视组件的信息。本章包含以下几节:
关于监视监视 Application Server
使用监视功能可以观察 Sun Java System Application Server Enterprise Edition 8.1 2005Q1 的服务器实例中部署的各种组件和服务的运行时状态。利用有关运行时组件和进程状态的信息,可以确定性能瓶颈以便进行优化、有助于进行容量规划、预测故障、在发生故障时分析根本原因,以及确保一切运行正常。
启用监视功能会因增加系统开销而使性能降低。
监视概述
要监视 Application Server,请执行以下步骤:
- 使用管理控制台或
asadmin
工具来启用对特定服务和组件的监视功能。有关此步骤的更多信息,请参阅有关启用和禁用监视功能的管理控制台任务。
- 使用管理控制台或
asadmin
工具来查看指定服务或组件的监视数据。有关此步骤的更多信息,请参阅有关查看监视数据的管理控制台任务。
关于可监视对象的树结构
Application Server 使用树结构来跟踪可监视对象。由于监视对象的树是动态的,因此在实例中添加、更新或删除组件时该树会相应地发生变化。树中的根对象为服务器实例名称(例如
server
)。(在平台版中,仅允许使用一个服务器实例。)以下命令显示了树的顶层:
asadmin> list --monitor server
server.applications
server.http-service
server.connector-service
server.jms-service
server.jvm
server.orb
server.resources
server.thread-pools以下各节介绍了这些子树:
应用程序树
以下示意图显示了企业应用程序的各种组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。有关更多信息,请参阅EJB 容器统计信息和Web 容器统计信息。
图 21-1 应用程序节点树结构
应用程序
|--- 应用程序 1
| |--- ejb 模块 1
| | |--- ejb 1 *
| | |--- 高速缓存(用于实体/sfsb)*
| | |--- 池(用于 slsb/mdb/实体)*
| | |--- 方法
| | |---方法 1 *
| | |---方法 2 *
| | |--- 有状态会话存储(用于 sfsb)*
| | |--- 计时器(用于 s1sb/实体/mdb)*
| |--- Web 模块 1
| | |--- 虚拟服务器 1 *
| | |---servlet 1 *
| | |---servlet 2 *
|--- 独立 Web 模块 1
| | |----- 虚拟服务器 2 *
| | |---servlet 3 *
| | |---servlet 4 *
| | |----- 虚拟服务器 3 *
| | |---servlet 3 *(不同虚拟服务器上相同的 servlet)
| | |---servlet 5 *
|--- 独立 ejb 模块 1
| | |--- ejb 2 *
| | |--- 高速缓存(用于实体/sfsb)*
| | |--- 池(用于 slsb/mdb/实体)*
| | |--- 方法
| | |--- 方法 1 *
| | |--- 方法 2 *
|--- 应用程序 2HTTP 服务树
以下示意图显示了 HTTP 服务的节点。具有可用的监视信息的节点标有星号 (*)。请参见HTTP 服务树。
图 21-2 HTTP 服务示意图(PE 版)
http 服务
|--- 虚拟服务器 1
|--- http 侦听器 1 *
|--- http 侦听器 2 *
|--- 虚拟服务器 2
|--- http 侦听器 1 *
|--- http 侦听器 2 *图 21-3 HTTP 服务示意图(EE 版)
http 服务 *
|--- 连接队列 *
|--- dns *
|--- 文件高速缓存 *
|--- 保持活动 *
|--- pwc 线程池 *
|--- 虚拟服务器 1 *
| |--- 请求 *
|---虚拟服务器 2 *
| |--- 请求 *资源树
资源节点保存 JDBC 连接池、连接器连接池等池的可监视属性。以下示意图显示了各种资源组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见JDBC 连接池统计信息和JMS 连接器服务统计信息。
图 21-4 资源示意图
资源
|--- 连接池 1(连接器连接池或 jdbc)*
|--- 连接池 2(连接器连接池或 jdbc)*连接器服务树
连接器服务节点保存连接器连接池等池的可监视属性。以下示意图显示了各种连接器服务组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见JMS 连接器服务统计信息。
图 21-5 连接器服务示意图
连接器服务
|--- 资源适配器 1
| |-- 连接池
| | |-- 池 1(该池的所有池统计信息)
| |-- 工作管理(该 RA 的所有工作管理统计信息)JMS 服务树
JMS 服务节点保存连接器连接池等池的可监视属性。以下示意图显示了各种 JMS 服务组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。
图 21-6 JMS 服务示意图
jms 服务
|-- 连接工厂 [RA 域中的 AKA 连接池]
| |-- 连接工厂 1(此 CF 的所有 CF 统计信息)
|-- 工作管理(MQ-RA 的所有工作管理统计信息)ORB 树
ORB 节点保存连接管理器的可监视属性。以下示意图显示了 ORB 组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见ORB 中连接管理器的统计信息。
图 21-7 ORB 示意图
orb
|--- 连接管理器
| |--- 连接管理器 1 *
| |--- 连接管理器 1 *线程池树
线程池节点保存连接管理器的可监视属性。以下示意图显示了 ORB 组件的顶层节点和子节点。具有可用的监视统计信息的节点标有星号 (*)。请参见线程池统计信息。
图 21-8 线程池示意图
线程池
| |--- 线程池 1 *
| |--- 线程池 2 *关于受监视的组件和服务的统计信息
本节介绍了可用的监视统计信息:
EJB 容器统计信息
表 21-1 中介绍了 EJB 统计信息。
表 21-2 中列出了可用于 EJB 方法调用的统计信息。
表 21-3 中列出了 EJB 会话存储的统计信息。
表 21-4 中列出了可用于 EJB 池的统计信息。
表 21-5 中列出了可用于 EJB 高速缓存的统计信息。
表 21-6 中列出了可用于计时器的统计信息。
表 21-6 计时器统计信息
统计信息
数据类型
说明
numtimerscreated
计数统计信息
系统中创建的计时器的数目。
numtimersdelivered
计数统计信息
系统所发送的计时器的数目。
numtimersremoved
计数统计信息
从系统中删除的计时器的数目。
Web 容器统计信息
图 21-1 中所示的对象树中包含了 Web 容器。系统为每个单独的 Web 应用程序都显示了 Web 容器统计信息。表 21-7 中显示了可用于 Servlet 的 Web 容器的统计信息,表 21-8 中显示了可用于 Web 模块的统计信息。
表 21-8 中显示了可用于 Web 模块的统计信息。
HTTP 服务统计信息
表 21-9 中显示了可用于 HTTP 服务的统计信息。这些统计信息仅适用于平台版。有关企业版上的 HTTP 服务的统计信息,请参见表 21-32。
JDBC 连接池统计信息
用于在运行时监视 JDBC 资源,以测量性能并捕获资源使用情况。由于创建 JDBC 连接的成本很高并且常常会导致应用程序出现性能瓶颈问题,因此对 JDBC 连接池释放和创建新连接的方法以及正在等待从特定池中检索连接的线程数的监视是至关重要的。
表 21-10 中显示了可用于 JDBC 连接池的统计信息。
JMS 连接器服务统计信息
表 21-11 中显示了可用于连接器连接池的统计信息。表 21-12 中显示了连接器工作管理的统计信息。
表 21-12 中列出了可用于连接器工作管理的统计信息。
ORB 中连接管理器的统计信息
表 21-13 中列出了可用于 ORB 中连接管理器的统计信息。
表 21-13 ORB 中连接管理器的统计信息
统计信息
单位
数据类型
说明
connectionsidle
个
计数统计信息
提供与 ORB 的空闲连接的总数。
connectionsinuse
个
计数统计信息
提供与 ORB 的正在使用的连接总数。
totalconnections
个
绑定范围统计信息
与 ORB 的连接总数。
线程池统计信息
表 21-14 中显示了可用于线程池的统计信息。
事务服务统计信息
事务服务允许客户机冻结事务子系统,以回滚事务并确定冻结时正在进行的事务。表 21-15 中显示了可用于事务服务的统计信息。
Java 虚拟机 (JVM) 统计信息
JVM 具有始终处于启用状态的可监视属性。表 21-16 中显示了可用于 JVM 的统计信息。
表 21-16 JVM 统计信息
统计信息
数据类型
说明
heapsize
绑定范围统计信息
具有 JVM 的内存堆大小的较高和较低绑定的驻留内存轨迹。
uptime
计数统计信息
JVM 已运行的时间。
J2SE 5.0 中的 JVM 统计信息
如果 Application Server 被配置为运行 J2SE 5.0 版或更高版本,则可以从 JVM 中获得附加监视信息。将监视级别设置为“低”以启用这些附加信息的显示。将监视级别设置为“高”还可以查看与系统中每个活动线程相关的信息。有关 J2SE 5.0 中可用的附加监视功能的更多信息,请参见以下 URL 中标题为《Monitoring and Management for the Java Platform》的文档:
http://java.sun.com/j2se/1.5.0/docs/guide/management/
在以下位置讨论了 J2SE 5.0 监视工具:
http://java.sun.com/j2se/1.5.0/docs/tooldocs/#manage
表 21-17 中显示了可用于在 J2SE 5.0 的 JVM 中进行类装入的统计信息。
表 21-17 J2SE 5.0 的 JVM 统计信息类装入
统计信息
数据类型
说明
loadedclasscount
计数统计信息
当前装入 JVM 的类的数目。
totalloadedclasscount
计数统计信息
自 JVM 开始执行以来已装入的类的总数。
unloadedclasscount
计数统计信息
自 JVM 开始执行以来已从 JVM 中卸载的类的数目。
表 21-18 中显示了可用于在 J2SE 5.0 的 JVM 中进行编译的统计信息。
表 21-19 中显示了可用于在 J2SE 5.0 的 JVM 中进行垃圾收集的统计信息。
表 21-19 J2SE 5.0 的 JVM 统计信息垃圾收集
统计信息
数据类型
说明
collectioncount
计数统计信息
已发生的收集的总数。
collectiontime
计数统计信息
累积的收集时间(以毫秒为单位)。
表 21-20 中显示了可用于 J2SE 5.0 的 JVM 中内存的统计信息。
表 21-21 中显示了可用于 J2SE 5.0 的 JVM 中操作系统的统计信息。
表 21-21 J2SE 5.0 的 JVM 统计信息操作系统
统计信息
数据类型
说明
arch
字符串统计信息
操作系统体系结构。
availableprocessors
计数统计信息
可用于 JVM 的处理器的数目。
name
字符串统计信息
操作系统名称。
version
字符串统计信息
操作系统版本。
表 21-22 中显示了可用于 J2SE 5.0 的 JVM 中运行的统计信息。
表 21-23 中显示了可用于 J2SE 5.0 的 JVM 中
ThreadInfo
的统计信息。
表 21-24 中显示了可用于 J2SE 5.0 的 JVM 中线程的统计信息。
生产 Web 容器 (PWC) 统计信息
可用于 Application Server 的企业版 (EE) 上的以下 PWC 组件和服务的统计信息:
表 21-25 中列出了 PWC 虚拟服务器的统计信息。
表 21-25 PWC 虚拟服务器统计信息(仅限于 EE)
属性名称
数据类型
说明
id
字符串统计信息
虚拟服务器的 ID。
mode
字符串统计信息
虚拟服务器所处的模式。选项包括
unknown
或active
。
hosts
字符串统计信息
由该虚拟服务器提供服务的主机的名称。
interfaces
字符串统计信息
配置了虚拟服务器的接口(侦听器)的类型。
表 21-26 中列出了可用于 PWC 请求的统计信息。
高速缓存信息部分提供了有关文件高速缓存当前的使用方式的信息。表 21-27 中列出了 PWC 文件高速缓存的统计信息。
本节提供了有关服务器的 HTTP 级保持活动的系统的信息。表 21-28 中列出了可用于 PWC 保持活动的统计信息。
DNS 高速缓存高速缓存 IP 地址和 DNS 名称。默认情况下,服务器的 DNS 高速缓存处于禁用状态。一个高速缓存条目代表一个 IP 地址或 DNS 名称查找。表 21-29 中列出了可用于 PWC DNS 的统计信息。
表 21-30 中列出了 PWC 线程池的统计信息。
连接队列是指请求被处理前容纳这些请求的队列。连接队列的统计信息显示队列中的会话数以及连接被接受前的平均延迟时间。表 21-31 中列出了 PWC 连接队列的统计信息。
表 21-32 中列出了 PWC HTTP 服务的统计信息。
有关启用和禁用监视功能的管理控制台任务使用管理控制台配置监视级别
- 访问“监视服务”页面。要完成此操作,请执行以下步骤:
- 在“监视服务”页面中,从要更改其监视级别的组件或服务对应的组合框中选择适当的值。
默认情况下,除了始终可监视的 Java 虚拟机 (JVM) 以外,对于其他所有组件和服务的监视功能都是禁用的。要启用监视功能,请在组合框中选择“低”或“高”。要禁用监视功能,请在组合框中选择“关闭”。可以启用或禁用以下组件和服务的监视功能:
- JVM——将此选项的监视级别设置为“低”以监视 Java 虚拟机。
- HTTP 服务——将此选项的监视级别设置为“低”以监视所有 HTTP 侦听器和虚拟服务器。
- 事务服务——将此选项的监视级别设置为“低”以监视任一事务子系统。
- JMS/连接器服务——将此选项的监视级别设置为“低”以监视任一 Java 消息服务 (JMS)。
- ORB——将此选项的监视级别设置为“低”以监视由 Application Server 内核及其连接管理器使用的系统 ORB。
- Web 容器——将此选项的监视级别设置为“低”以监视所有已部署的 Servlet。
- EJB 容器——将此选项的监视级别设置为“低”以监视所有已部署的 EJB、EJB 池和 EJB 高速缓存。将此方法设置为“高”还可以监视 EJB 商业方法。
- JDBC 连接池——将此选项的监视级别设置为“低”以监视所有 JDBC 连接池。
- 线程池——将此选项的监视级别设置为“低”以监视所有线程池。
- 单击“保存”。
此版本中没有“其他监视服务属性”,因此请忽略“其他属性”表。
等效的
asadmin
命令为:set
,例如,要启用对 HTTP 服务的监视功能,请使用以下asadmin
命令:asadmin> set --user admin_user server.monitoring-service.module-monitoring-levels.http-service=LOW
使用 asadmin 工具配置监视
要关闭监视,或设置监视组件或服务的级别,您可以按照使用管理控制台配置监视级别中的说明使用管理控制台,也可以按照本节中的说明使用
asadmin
工具。
- 使用
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
。
有关查看监视数据的管理控制台任务在管理控制台中查看监视数据
要使用 Application Server 管理控制台查看服务器实例中部署的组件或服务的监视数据,请执行以下步骤。有关每个组件或服务的属性的更多说明,请参阅关于受监视的组件和服务的统计信息。
- 访问“监视”页面。要完成此操作,请执行以下步骤:
- 在“查看”列表中,选择已部署到服务器实例并已为其启用了监视功能的组件或服务。
选定组件或服务的监视数据显示在“查看”字段下。有关可监视属性的说明,请参阅关于受监视的组件和服务的统计信息。
如果已启用 JVM、服务器、线程池、HTTP 服务和事务服务的监视功能,则可以在此页面中查看这些组件和服务的监视数据。关于可监视对象的树结构中显示了说明这些组件和服务的组织方式的图表。
- 如果在此列表中没有看到要监视的组件或服务,请选择“配置监视”链接来启用和禁用选定组件和服务的监视功能。选择“关闭”以禁用对组件或服务的监视。选择“低”或“高”以启用对组件或服务的监视。
有关启用和禁用监视功能的更多信息,请参阅使用管理控制台配置监视级别或使用 asadmin 工具配置监视。
- 选择“监视”页面的“应用程序”选项卡可以查看已部署到服务器实例并已为其启用了监视功能的应用程序组件的监视数据。从“应用程序”列表中选择应用程序。从“组件”列表中选择特定组件。
如果未显示应用程序或组件的监视数据,请选择“配置监视”链接来启用或禁用组件或服务的监视功能。要监视应用程序,请打开执行这些应用程序的容器:例如,对于 Web 应用程序的 Web 容器和/或 EJB 应用程序的 EJB 容器,请选择“低”或“高”。
如果未显示应用程序的监视数据,则该应用程序很可能不存在或未运行。仅当应用程序存在、已启用对该程序的监视功能且应用程序正在运行时,应用程序监视数据才可用。一旦执行应用程序,则将在监视注册表登记该应用程序并显示其监视数据。
使用管理控制台监视远程应用程序和实例。远程实例必须正在运行并已设置配置才能执行此操作。
选定组件的监视数据显示在选定组件下面。有关可监视属性的说明,请参阅关于受监视的组件和服务的统计信息。可以在关于可监视对象的树结构中查看说明这些组件和服务如何针对应用程序进行组织的图表。
- 选择“资源”页面可以查看资源的监视数据,这些资源已被部署到服务器实例中并且已启用对这些资源的监视功能。从“查看”列表中选择资源。如果未显示您要查看其监视数据的资源,请选择“配置监视”链接来启用或禁用资源的监视功能。
如果未显示资源的监视数据,则该资源很可能不存在或未运行。仅当资源存在、已在 HIGH 级别启用该资源的监视功能并且该资源正在运行的情况下,资源监视数据才可用。例如,如果您创建了一个 JDBC 连接器服务,但使用该连接器服务的应用程序尚未从服务请求连接器,则尚未创建该服务。因而,不存在任何服务,也没有任何可用的监视数据。一旦执行 JDBC 应用程序且该应用程序从服务请求连接器,则将在监视注册表中注册该应用程序并显示其监视数据。
选定组件或服务的监视数据显示在“查看”字段下。有关可监视属性的说明,请参阅关于受监视的组件和服务的统计信息。可以在关于可监视对象的树结构中查看说明这些组件和服务如何针对资源进行组织的图表。
- 选择“事务”页面以冻结事务子系统,进而回滚事务并确定冻结时正在进行的事务。要启用事务服务的监视功能,请选择“配置监视”链接并确保将“事务服务”设置为 LOW。要冻结事务服务以回滚事务,请选择“冻结”。要回滚事务,请选中事务旁边的复选框并单击“回滚”。
等效的
asadmin
命令为:get --monitor
,例如,要查看 JVM 的监视数据,请使用以下asadmin
命令:asadmin> get --monitor server.jvm.*
使用 asadmin 工具查看监视数据
使用 asadmin 工具查看监视数据
要使用
asadmin
工具查看监视数据,请使用后跟可监视对象的点式名称的asadmin
list
和asadmin
get
命令。使用asadmin
工具查看监视数据的常规步骤如下:
- 要查看可监视对象的名称,请使用
asadmin
list
命令。例如,要查看应用程序组件和子系统(已启用对服务器实例上的这些组件和子系统的监视功能)的列表,请在终端窗口中键入以下命令:asadmin> list --monitor server
上述命令将返回已启用监视功能的应用程序组件和子系统的列表,例如:
server.resources
server.connector-service
server.orb
server.jms-service
server.jvm
server.applications
server.http-service
server.thread-poolsSun Java System Application Server Enterprise Edition 8.1 2005Q1有关使用
list
命令的详细示例,请参阅list 和 get 命令的示例。有关可与list
命令一起使用的带点的名称的详细信息,请参阅了解和指定带点的名称。- 要显示已启用监视功能的应用程序组件或子系统的监视统计信息,请使用
asadmin
get
命令。要获得统计信息,请在终端窗口中键入asadmin
get
命令,并指定在先前步骤中由list
命令显示的名称。以下示例尝试获取某个特定对象的子系统的所有属性:asadmin> get --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 = millisecondsSun Java System Application Server Enterprise Edition 8.1 2005Q1有关使用
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
--monitor
server
列出了属于server
节点的所有直接子节点。- 使用任何具有带点名称且后面跟有
.*
形式的通配符的list
命令,得到的结果为当前节点的子节点分层树。例如,list --monitor server.applications.*
列出了applications
的所有子节点及其后续子节点等。- 使用任何具有带点名称并且前面或后面带有 *dottedname 或 dotted * name 或 dotted name * 形式的通配符的
list
命令,得到的结果为所有节点以及符合提供的匹配模式所创建的常规表现的子节点。- 使用后跟
.*
或*
的get
命令,得到的结果为属于要匹配的当前节点的属性集及其值。有关更多信息,请参阅list 和 get 命令在所有级别上的预期输出。
list 和 get 命令的示例
本节包括以下主题:
list --monitor 命令的示例
list
命令提供有关当前监视的指定服务器实例名称的应用程序组件和子系统的信息。使用此命令,您可以查看某个服务器实例的可监视组件和子组件。有关list
示例的更完整的列表,请参见list 和 get 命令在所有级别上的预期输出。示例 1
asadmin> list --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 --monitor server.applications
返回:
server.applications.adminapp
server.applications.admingui
server.applications.myApp有关更复杂的示例,请参见Petstore 示例。
get --monitor 命令的示例
此命令检索以下监视信息:
如果特定组件或子系统中不存在所请求的属性,将返回一个错误。类似地,如果组件或子系统中所请求的特定属性处于非活动状态,也会返回一个错误。
有关使用
get
命令的详细信息,请参见list 和 get 命令在所有级别上的预期输出。示例 1
尝试从某个子系统中获取某个特定对象的所有属性:
asadmin> get --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 --monitor server.applications.myJ2eeApp.*
返回:
No matches resulted from the wildcard expression.
CLI137 Command get failed.该 J2EE 应用程序级别上没有暴露可监视的属性,因而显示此回复。
示例 3
尝试获取某个子系统的某个特定属性:
asadmin> get --monitor
server.jvm.uptime-lastsampletime返回:
server.jvm.uptime-lastsampletime = 1093215374813
示例 4
尝试获取某个子系统属性中的某个未知属性:
asadmin> get --monitor server.jvm.badname
返回:
No such attribute found from reflecting the corresponding Stats interface: [badname]
CLI137 Command get failed.Petstore 示例
下例说明了如何将
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 --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
的实体 BeanUserEJB
中的可监视子组件: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- 列出实体 Bean
UserEJB
(位于 Petstore 应用程序的 EJB 模块signon-ejb_jar
中)的方法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 = 1list 和 get 命令在所有级别上的预期输出
下表显示了树的各个级别的命令、带点的名称及相应的输出。
表 21-34 显示了应用程序级别的命令、带点的名称及相应的输出。
表 21-35 显示了应用程序级别的独立模块和企业应用程序的命令、带点的名称及相应的输出。
表 21-36 显示了 HTTP 服务级别的命令、带点的名称及相应的输出。
表 21-37 显示了线程池级别的命令、带点的名称及相应的输出。
表 21-38 显示了资源级别的命令、带点的名称及相应的输出。
表 21-39 显示了事务服务级别的命令、带点的名称及相应的输出。
表 21-39 事务服务级别
命令
带点的名称
输出
list -m
server.transaction-service
没有属性,但显示一条消息,说明“使用带有 --monitor 选项的 get 命令可以查看该节点的属性和值”。
get -m
server.transaction-service.*
与事务服务属性对应的属性和值的列表(如表 1-15 所示)。
表 21-40 显示了 ORB 级别的命令、带点的名称及相应的输出。
表 21-34 显示了 JVM 级别的命令、带点的名称及相应的输出。
表 21-41 JVM 级别
命令
带点的名称
输出
list -m
server.jvm
没有属性,但显示一条消息,说明“使用带有 --monitor 选项的 get 命令可以查看该节点的属性和值”。
get -m
server.jvm.*
与 JVM 属性对应的属性和值的列表(如表 1-16 所示)。
使用 JConsole要使 JConsole 能够与 Application Server 一起使用,必须禁用 JMX 连接器的安全性。默认情况下,当前版本的 Application Server(SE/EE 版)已启用安全性。
要禁用 JMX 连接器的安全性,请使用以下方法之一:
对于 PE 版,JMX 连接器在默认情况下处于禁用状态,因此无需更改 PE 的任何配置。