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

查看监视数据

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

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

要使用命令行实用程序查看监视数据,请使用 asadmin listasadmin get 命令,后跟可监视对象的带点名称,如下所示:

  1. 要查看可监视对象的名称,请使用 asadmin list 命令。

    例如,要查看应用程序组件和子系统(已启用对服务器实例上的这些组件和子系统的监视功能)的列表,请在终端窗口中键入以下命令:


    asadmin> list --user adminuser --monitor server

    上述命令将返回已启用监视功能的应用程序组件和子系统的列表,例如:


    server.resources
    server.connector-service
    server.orb
    server.jms-service
    server.jvm
    server.applications
    server.http-service
    server.thread-pools
  2. 要显示已启用监视功能的应用程序组件或子系统的监视统计信息,请使用 asadmin get 命令。

    要获得统计信息,请在终端窗口中键入 asadmin get 命令,并指定在先前步骤中由 list 命令显示的名称。以下示例尝试获取某个特定对象的子系统的所有属性:


    asadmin> get --user adminuser --monitor server.jvm.*

    此命令返回以下属性和数据:


    server.jvm.dotted-name = server.jvm
    server.jvm.heapsize-current = 21241856
    server.jvm.heapsize-description = Provides statistical information about 
       the JVM's memory heap size.
    server.jvm.heapsize-highwatermark = 21241856
    server.jvm.heapsize-lastsampletime = 1080232913938
    server.jvm.heapsize-lowerbound = 0
    server.jvm.heapsize-lowwatermark = 0
    server.jvm.heapsize-name = JvmHeapSize
    server.jvm.heapsize-starttime = 1080234457308
    server.jvm.heapsize-unit = bytes
    server.jvm.heapsize-upperbound = 518979584
    server.jvm.uptime-count = 1080234457308
    server.jvm.uptime-description = Provides the amount of time the JVM has 
       been running.
    server.jvm.uptime-lastsampletime = 1080234457308
    server.jvm.uptime-name = JvmUpTime
    server.jvm.uptime-starttime = 1080232913928
    server.jvm.uptime-unit = milliseconds

了解和指定带点名称

asadmin listget 命令中,指定可监视对象的带点名称。所有子对象都是使用点字符 (.) 作为分隔符来寻址的,因此它们被称为带点名称。如果子节点是单元素类型,则只需要使用监视对象类型对对象进行寻址;否则,需要使用 type.name 名称格式对对象进行寻址。

例如,http-service 就是其中一种有效的可监视对象类型,并且是单元素类型。要对表示实例 serverhttp-service 的单元素类型子节点进行寻址,则带点名称为:

server.http-service

再比如,application 是一种有效的可监视对象类型,并且是非单元素类型。要对表示应用程序 PetStore 的非单元素类型子节点进行寻址,则带点名称为:

server.applications.petstore

带点名称还可以指定可监视对象中的特定属性。例如,http-service 具有一个名为 bytesreceived-lastsampletime 的可监视属性。以下名称可对 bytesreceived 属性进行寻址:

server.http-service.server.http-listener-1.
  bytesreceived-lastsampletime

管理员不需要知道 asadmin listget 命令的有效带点名称。使用 list 命令可以显示可用的可监视对象,而使用带有通配符参数的 get 命令可以检查任意可监视对象的所有可用属性。

使用具有带点名称的 listget 命令的基本假设为:

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

list 命令示例

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

示例 1


asadmin> list --user admin-user --monitor server

上述命令将返回已启用监视功能的应用程序组件和子系统的列表,例如:


server.resources
server.orb
server.jvm
server.jms-service
server.connector-service
server.applications
server.http-service
server.thread-pools

还可以列出指定的服务器实例中当前所监视的应用程序。当使用 get 命令从某个应用程序中获取特定的监视统计信息时,这会很有用。

示例 2

asadmin> list --user admin-user --monitor server.applications

返回:

server.applications.adminapp
 server.applications.admingui
server.applications.myApp

get 命令示例

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

示例 1

尝试从某个子系统中获取某个特定对象的所有属性:


asadmin> get --user admin-user --monitor server.jvm.*

返回:


server.jvm.dotted-name= server.jvm
server.jvm.heapsize-current = 21241856
server.jvm.heapsize-description = Provides statistical information about 
   the JVM's memory heap size.
server.jvm.heapsize-highwatermark = 21241856
server.jvm.heapsize-lastsampletime = 1080232913938
server.jvm.heapsize-lowerbound = 0
server.jvm.heapsize-lowwatermark = 0
server.jvm.heapsize-name = JvmHeapSize
server.jvm.heapsize-starttime = 1080234457308
server.jvm.heapsize-unit = bytes
server.jvm.heapsize-upperbound = 518979584
server.jvm.uptime-count = 1080234457308
server.jvm.uptime-description = Provides the amount of time the JVM has 
   been running.
server.jvm.uptime-lastsampletime = 1080234457308
server.jvm.uptime-name = JvmUpTime
server.jvm.uptime-starttime = 1080232913928
server.jvm.uptime-unit = milliseconds

示例 2

尝试获取某个 J2EE 应用程序的所有属性:


asadmin> get --user admin-user --monitor server.applications.myJ2eeApp.*

返回:


没有与通配符表达式一致的匹配项。CLI137 命令失败。

该 J2EE 应用程序级别上没有暴露可监视的属性,因而显示此回复。

示例 3

尝试获取某个子系统的某个特定属性:


asadmin> get --user admin-user --monitor server.jvm.uptime-lastsampletime

返回:

server.jvm.uptime-lastsampletime = 1093215374813

示例 4

尝试获取某个子系统属性中的某个未知属性:


asadmin> get --user admin-user --monitor server.jvm.badname

返回:


通过反映相应的统计信息接口 [badname] 没有找到此类属性,CLI137 命令失败。

PetStore 使用示例

下例说明了如何将 asadmin 工具用于监视目的。

用户要检查将样例 PetStore 应用程序部署到 Application Server 之后在该应用程序中调用某个方法的次数。部署该应用程序的实例名称为 server。结合使用 listget 命令即可访问所需的方法统计信息。

  1. 启动 Application Server 和 asadmin 工具。

  2. 设置一些有用的环境变量,以避免使用每个命令时都输入这些变量:


    asadmin> export AS_ADMIN_USER=admin AS_ADMIN_PASSWORD=admin123
    asadmin>export AS_ADMIN_HOST=localhost AS_ADMIN_PORT=4849
  3. 列出实例 server 的可监视组件:


    asadmin> list --user adminuser --monitor server*

    返回结果(输出类似于以下内容):


    server
    server.applications
    server.applications.CometEJB
    server.applications.ConverterApp
    server.applications.petstore
    server.http-service
    server.resources
    server.thread-pools

    可监视组件列表包括 thread-poolshttp-serviceresources 以及所有已部署(并已启用)的 applications

  4. 列出 PetStore 应用程序中的可监视子组件(可以用 -m 代替 --monitor):

    asadmin> list -m server.applications.petstore

    返回:


    server.applications.petstore.signon-ejb_jar
    server.applications.petstore.catalog-ejb_jar
    server.applications.petstore.uidgen-ejb_jar
    server.applications.petstore.customer-ejb_jar
    server.applications.petstore.petstore-ejb_jar
    server.applications.petstore.petstore\.war
    server.applications.petstore.AsyncSenderJAR_jar
    server.applications.petstore.cart-ejb_jar
  5. 列出 PetStore 应用程序的 EJB 模块 signon-ejb_jar 中的可监视子组件:


    asadmin> list -m server.applications.petstore.signon-ejb_jar

    返回:


    server.applications.petstore.signon-ejb_jar.SignOnEJB
    server.applications.petstore.signon-ejb_jar.UserEJB
  6. 列出 PetStore 应用程序的 EJB 模块 signon-ejb_jar 的实体 Bean UserEJB 中的可监视子组件:


    asadmin> list -m server.applications.petstore.signon-ejb_jar.UserEJB

    返回(出于空间考虑,删除了带点名称):


    server.applications.petstore.signon-ejb_jar.UserEJB.bean-cache
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-pool
  7. 列出 PetStore 应用程序的 EJB 模块 signon-ejb_jar 的实体 Bean UserEJB 所用方法 getUserName 中的可监视子组件:


    asadmin> list -m 
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.getUserName

    返回:


    在 server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.getUserName 没有内容可以列出。要获得以某个字符串开头的有效名称,请使用通配符 "*" 字符。例如,要列出以 "server" 开头的所有名称,请使用 "list server*"。
  8. 该方法没有可监视的子组件。获取方法 getUserName 的所有可监视统计信息。


    asadmin> get -m 
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.getUserName.*

    返回:


    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.executiontime-count = 0
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.executiontime-description = Provides the time in milliseconds 
       spent during the last successful/unsuccessful attempt to execute the 
       operation.
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.executiontime-lastsampletime = 1079981809259
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.executiontime-name = ExecutionTime
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.executiontime-starttime = 1079980593137
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.executiontime-unit = count
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.methodstatistic-count = 0
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.methodstatistic-description = Provides the number of times an 
       operation was called, the total time that was spent during the 
       invocation and so on.
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.methodstatistic-lastsampletime = 1079980593137
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.methodstatistic-maxtime = 0
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.methodstatistic-mintime = 0
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.methodstatistic-name = ExecutionTime
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.methodstatistic-starttime = 1079980593137
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.methodstatistic-totaltime = 0
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.methodstatistic-unit =
     server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumerrors-count = 0
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumerrors-description = Provides the total number of errors 
       that occured during invocation or execution of an operation.
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumerrors-lastsampletime = 1079981809273
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumerrors-name = TotalNumErrors
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumerrors-starttime = 1079980593137
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumerrors-unit = count
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumsuccess-count = 0
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumsuccess-description = Provides the total number of 
       successful invocations of the method.
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumsuccess-lastsampletime = 1079981809255
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumsuccess-name = TotalNumSuccess
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumsuccess-starttime = 1079980593137
    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.totalnumsuccess-unit = count
  9. 如果还需要获取执行时间等特定统计信息,请使用如下命令:


    asadmin> get -m server.applications.petstore.signon-ejb_jar.
    UserEJB.bean-methods.getUserName.executiontime-count

    返回:


    server.applications.petstore.signon-ejb_jar.UserEJB.bean-methods.
    getUserName.executiontime-count = 1

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

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

表 16–33 顶层

命令 

带点名称 

输出 

list -m

server


server.applicationsserver.thread-poolsserver.
resourcesserver.http-serviceserver.transaction-
serviceserver.orb.connection-managersserver.orb.
connection-managers.orb\.Connections\.Inbound\.
AcceptedConnectionsserver.jvm

list -m

server.*

此节点下的子节点的分层结构。 

get -m

server.*

仅显示一条消息,说明此节点上没有属性。 

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

表 16–34 应用程序级别

命令 

带点名称 

输出 

list -m

server.applications

或 

*applications


appl1app2web-module1_warejb-module2_jar...

list -m

server.applications.*

或 

*applications.*

此节点下的子节点的分层结构。 

get -m

server.applications.*

或 

*applications.*

仅显示一条消息,说明此节点上没有属性。 

下表显示了应用程序级别的独立模块和企业应用程序的命令、带点名称以及相应的输出。

表 16–35 应用程序- -企业应用程序和独立模块

命令 

带点名称 

输出 

list -m

server.applications.app1

或 

*app1

注:仅当已部署了企业应用程序时,此级别才可用。如果部署了独立模块,则此级别不可用。 

ejb-module1_jarweb-module2_warejb -module3_jarweb-module3_war...

list -m

server.applications.app1.*

或 

*app1.*

此节点下的子节点的分层结构。 

get -m

server.applications.app1.*

或 

*app1.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.applications.app1.ejb-module1_jar

或 

*ejb-module1_jar

或 

server.applications.ejb-module1_jar

bean1bean2bean3...

list -m

server.applications.app1.ejb-module1_jar

或 

*ejb-module1_jar

或 

server.applications.ejb-module1_jar

此节点下的子节点的分层结构。 

get -m

server.applications.app1.ejb-module1_jar.*

或 

*ejb-module1_jar.*

或 

server.applications.ejb-module1_jar.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.applications.app1.ejb -module1_jar.bean1

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

子节点列表: 

bean-poolbean-cachebean-method

list -m

server.applications.app1.ejb -module1_jar.bean1

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

子节点的分层结构及该节点和所有后续子节点的所有属性的列表。 

get -m

server.applications.app1.ejb -module1_jar.bean1.*

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

以下属性及其关联值: 


CreateCount_CountCreateCount_
DescriptionCreateCount_
LastSampleTimeCreateCount_
NameCreateCount_
StartTimeCreateCount_
UnitMethodReadyCount_
CurrentMethodReadyCount_
DescriptionMethodReadyCount_
HighWaterMarkMethodReadyCount_
LastSampleTimeMethodReadyCount_
LowWaterMarkMethodReadyCount_
NameMethodReadyCount_
StartTimeMethodReadyCount_
UnitRemoveCount_CountRemoveCount_
DescriptionRemoveCount_
LastSampleTimeRemoveCount_
NameRemoveCount_StartTimeAttribute 
RemoveCount_Unit

list -m

server.applications.app1.ejb -module1_jar.bean1.bean-pool

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

没有属性,但会显示一条消息,说明:在 server.applications.appl.ejb-module1_jar.bean1-cache 没有内容可以列出。要获得以某个字符串开头的有效名称,请使用通配符 (*) 字符。例如, 要列出以 server 开头的所有名称,请使用 list server*

get -m

server.applications.app1.ejb -module1_jar.bean1.bean-pool.*

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

与 EJB 池属性对应的属性和值的列表(如表 1-4 所示)。 

list -m

server.applications.app1.ejb -module1_jar.bean1.bean-cache

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

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

get -m

server.applications.app1.ejb -module1_jar.bean1.bean-cache.*

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

与 EJB 高速缓存属性对应的属性和值的列表(如表 1-5 所示)。 

list -m

server.applications.app1.ejb -module1_jar.bean1.bean -method.method1

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

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

get -m

server.applications.app1.ejb -module1_jar.bean1.bean -method.method1.*

注:在独立模块中,将不显示包含应用程序名称(本例中为 app1)的节点。

与 EJB 模块属性对应的属性和值的列表(如表 1-2 所示)。 

list -m

server.applications.app1.web -module1_war

显示分配给模块的虚拟服务器。 

get -m

server.applications.app1.web -module1_war.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.applications.app1.web -module1_war.virtual_server

显示已登记的 servlet 的列表。 

get -m

server.applications.app1.web -module1_war.virtual_server.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.applications.app1.web -module1_war.virtual _server.servlet1

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

get -m

server.applications.app1.web -module1_war.virtual _server.servlet1.*

与 Web 容器 (Servlet) 属性对应的属性和值的列表(如表 1-7 所示)。 

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

表 16–36 HTTP 服务级别

命令 

带点名称 

输出 

list -m

server.http-service

虚拟服务器列表。 

get -m

server.http-service.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.http-service.server

HTTP 侦听器列表。 

get -m

server.http-service.server.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.http-service.server .http-listener1

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

get -m

server.http-service.server.*

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

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

表 16–37 线程池级别

命令 

带点名称 

输出 

list -m

server.thread-pools

thread-pool 名称列表。

get -m

server.thread-pools.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.thread-pools.orb \.threadpool\.thread-pool-1

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

get -m

server.thread-pools..orb \.threadpool\.thread-pool-1.*

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

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

表 16–38 资源级别

命令 

带点名称 

输出 

list -m

server.resources

池名称列表。 

get -m

server.resources.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.resources.jdbc-connection -pool-pool.connection-pool1

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

get -m

server.resources.jdbc-connection -pool-pool.connection-pool1.*

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

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

表 16–39 事务服务级别

命令 

带点名称 

输出 

list -m

server.transaction-service

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

get -m

server.transaction-service.*

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

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

表 16–40 ORB 级别

命令 

带点名称 

输出 

list -m

server.orb

server-orb.connection-managers

get -m

server.orb.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.orb.connection-managers

ORB 连接管理器的名称。 

get -m

server.orb.connection-managers.*

仅显示一条消息,说明此节点上没有属性。 

list -m

server.orb.connection-managers.orb \.Connections\.Inbound \.AcceptedConnections

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

get -m

server.orb.connection-managers.orb \.Connections\.Inbound \.AcceptedConnections.*

与 ORB 连接管理器属性对应的属性和值的列表。 

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

表 16–41 JVM 级别

命令 

带点名称 

输出 

list -m

server.jvm

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

get -m

server.jvm.*

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