在管理控制台中,可以通过以下方式查看监视数据:导航到独立服务器实例的“监视”页面,然后选择已部署到启用了监视功能的服务器实例上的组件或服务。选定的组件或服务的监视数据显示在“查看”字段下,并附有对可监视属性的说明。
使用管理控制台监视远程应用程序和实例。远程实例必须正在运行并已设置配置才能执行此操作。有关查看监视数据的详细步骤,请查阅管理控制台联机帮助。
要使用命令行实用程序查看监视数据,请使用 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 |
要显示已启用监视功能的应用程序组件或子系统的监视统计信息,请使用 asadmin get 命令。
要获得统计信息,请在终端窗口中键入 asadmin get 命令,并指定在先前步骤中由 list 命令显示的名称。以下示例尝试获取某个特定对象的子系统的所有属性:
asadmin> get --user adminuser --monitor server.jvm.* |
此命令返回以下属性和数据:
server.jvm.dotted-name = server.jvm server.jvm.heapsize-current = 21241856 server.jvm.heapsize-description = Provides statistical information about the JVM's memory heap size. server.jvm.heapsize-highwatermark = 21241856 server.jvm.heapsize-lastsampletime = 1080232913938 server.jvm.heapsize-lowerbound = 0 server.jvm.heapsize-lowwatermark = 0 server.jvm.heapsize-name = JvmHeapSize server.jvm.heapsize-starttime = 1080234457308 server.jvm.heapsize-unit = bytes server.jvm.heapsize-upperbound = 518979584 server.jvm.uptime-count = 1080234457308 server.jvm.uptime-description = Provides the amount of time the JVM has been running. server.jvm.uptime-lastsampletime = 1080234457308 server.jvm.uptime-name = JvmUpTime server.jvm.uptime-starttime = 1080232913928 server.jvm.uptime-unit = milliseconds |
在 asadmin 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
组件或子系统中监视的所有属性
组件或子系统中监视的特定属性
如果特定组件或子系统中不存在所请求的属性,将返回一个错误。类似地,如果组件或子系统中所请求的特定属性处于非活动状态,也会返回一个错误。
有关使用 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 服务属性对应的属性和值的列表。 |
下表显示了线程池级别的命令、带点名称以及相应的输出。
表 16–37 线程池级别
命令 |
带点名称 |
输出 |
---|---|---|
list -m |
server.thread-pools |
thread-pool 名称列表。 |
get -m |
server.thread-pools.* |
仅显示一条消息,说明此节点上没有属性。 |
list -m |
server.thread-pools.orb \.threadpool\.thread-pool-1 |
没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 |
get -m |
server.thread-pools..orb \.threadpool\.thread-pool-1.* |
与线程池属性对应的属性和值的列表。 |
下表显示了资源级别的命令、带点名称以及相应的输出。
表 16–38 资源级别
命令 |
带点名称 |
输出 |
---|---|---|
list -m |
server.resources |
池名称列表。 |
get -m |
server.resources.* |
仅显示一条消息,说明此节点上没有属性。 |
list -m |
server.resources.jdbc-connection -pool-pool.connection-pool1 |
没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 |
get -m |
server.resources.jdbc-connection -pool-pool.connection-pool1.* |
与连接池属性对应的属性和值的列表。 |
下表显示了事务服务级别的命令、带点名称以及相应的输出。
表 16–39 事务服务级别
命令 |
带点名称 |
输出 |
---|---|---|
list -m |
server.transaction-service |
没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 |
get -m |
server.transaction-service.* |
与事务服务属性对应的属性和值的列表。 |
下表显示了 ORB 级别的命令、带点名称以及相应的输出。
表 16–40 ORB 级别
命令 |
带点名称 |
输出 |
---|---|---|
list -m |
server.orb |
server-orb.connection-managers |
get -m |
server.orb.* |
仅显示一条消息,说明此节点上没有属性。 |
list -m |
server.orb.connection-managers |
ORB 连接管理器的名称。 |
get -m |
server.orb.connection-managers.* |
仅显示一条消息,说明此节点上没有属性。 |
list -m |
server.orb.connection-managers.orb \.Connections\.Inbound \.AcceptedConnections |
没有属性,但会显示一条消息,说明“使用带有 --monitor 选项的 get 命令可查看该节点的属性和值”。 |
get -m |
server.orb.connection-managers.orb \.Connections\.Inbound \.AcceptedConnections.* |
与 ORB 连接管理器属性对应的属性和值的列表。 |
下表显示了 JVM 级别的命令、带点名称以及相应的输出。
表 16–41 JVM 级别
命令 |
带点名称 |
输出 |
---|---|---|
list -m |
server.jvm |
没有属性,但会显示一条类似于以下内容的消息:使用带有 --monitor 选项的 get 命令可查看该节点的属性和值。 |
get -m |
server.jvm.* |
与 JVM 属性对应的属性和值的列表。 |