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
)。(在 Platform Editon 中,僅允許使用一個伺服器實例。)以下指令顯示了樹的頂層:
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
| | |--- ejb1 *
| | |--- 快取 (用於實體/sfsb) *
| | |--- 池 (用於 slsb/mdb/實體) *
| | |--- 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 *
|--- application2HTTP 服務樹
以下示意圖顯示了 HTTP 服務的節點。具有可用的監視資訊的節點標有星號 (*)。請參閱 HTTP 服務樹。
圖 21-2 HTTP 服務示意圖 (PE 版)
http-service
|--- virtual-server-1
|--- http-listener-1 *
|--- http-listener-2 *
|--- virtual-server-2
|--- http-listener-1 *
|--- http-listener-2 *圖 21-3 HTTP 服務示意圖 (EE 版)
http-service *
|---connection-queue *
|---dns *
|---file-cache *
|---keep-alive *
|---pwc-thread-pool *
|---virtual-server-1*
| |--- request *
|---virtual-server-2*
| |--- request *資源樹
資源節點包含 JDBC 連線池和連接器連線池等池的可監視屬性。以下示意圖顯示了各種資源元件的頂層節點和子節點。具有可用的監視統計資訊的節點標有星號 (*)。請參閱 JDBC 連線池統計資訊和 JMS/連接器服務統計資訊。
圖 21-4 資源示意圖
resources
|---connection-pool1(either connector-connection-pool or jdbc)*
|---connection-pool2(either connector-connection-pool or jdbc)*連接器服務樹
連接器服務節點包含連接器連線池等池的可監視屬性。以下示意圖顯示了各種連接器服務元件的頂層節點和子節點。具有可用的監視統計資訊的節點標有星號 (*)。請參閱 JMS/連接器服務統計資訊。
圖 21-5 連接器服務示意圖
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 服務元件的頂層節點和子節點。具有可用的監視統計資訊的節點標有星號 (*)。
圖 21-6 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 中連線管理程式的統計資訊。
圖 21-7 ORB 示意圖
orb
|--- connection-managers
||--- connection-manager-1 *
||--- connection-manager-1 *執行緒池樹
執行緒池節點包含連線管理程式的可監視屬性。以下示意圖顯示了 ORB 元件的頂層節點和子節點。具有可用的監視統計資訊的節點標有星號 (*)。請參閱執行緒池統計資訊。
圖 21-8 執行緒池示意圖
thread-pools
||--- thread-pool-1 *
||--- thread-pool-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 服務的統計資訊。這些統計資訊僅適用於 Platform Edition。如需有關企業版上的 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 的 Enterprise Edition (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 服務 ─ 將此選項的監視層級設定為 LOW 以監視所有 HTTP 偵聽程式和虛擬伺服器。
- 作業事件服務 ─ 將此選項的監視層級設定為 LOW 以監視任意作業事件子系統。
- JMS/連接器服務 ─ 將此選項的監視層級設定為 LOW 以監視任意 Java 訊息服務 (JMS)。
- ORB ─ 將此選項的監視層級設定為 LOW 以監視 Application Server 核心及其連線管理程式使用的系統 ORB。
- Web 容器 ─ 將此選項的監視層級設定為 LOW 以監視所有部署的 Servlet。
- EJB 容器 ─ 將此選項的監視層級設定為 LOW 以監視所有部署的 EJB、EJB 池和 EJB 快取。將此方法設定為 HIGH 還可以監視 EJB 商業方法。
- JDBC 連線池 ─ 將此選項的監視層級設定為 LOW 以監視所有 JDBC 連線池。
- 執行緒池 ─ 將此選項的監視層級設定為 LOW 以監視所有執行緒池。
- 按一下 [儲存]。
此版本中沒有 [附加監視服務特性],因此請忽略 [附加特性] 表。
等效的
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 服務和作業事件服務的監視功能,則可以在此頁面中檢視這些元件和服務的監視資料。關於可監視物件的樹狀結構中顯示了說明這些元件和服務的組織方式的圖解。
- 如果在此清單中沒有看到要監視的元件或服務,請選取 [配置監視] 連結來啟用和停用所選取元件和服務的監視功能。選取 [關閉] 以停用對元件或服務的監視功能。選取 [LOW] 或 [HIGH] 以啟用對元件或服務的監視功能。
如需有關啟用和停用監視功能的更多資訊,請參閱使用管理主控台配置監視層級或使用 asadmin 工具配置監視功能。
- 選取 [監視] 頁面的 [應用程式]標籤可以檢視已部署到伺服器實例並已為其啟用了監視功能的應用程式元件的監視資料。從 [應用程式] 清單中選取應用程式。從 [元件] 清單中選取特定元件。
如果未顯示應用程式或元件的監視資料,請選取 [配置監視] 連結來啟用或停用元件或服務的監視功能。若要監視應用程式,請開啟執行這些應用程式的容器:例如,對於 Web 應用程式的 Web 容器和/或對於 EJB 應用程式的 EJB 容器,請選取 [Low] 或 [High]。
如果未顯示應用程式的監視資料,則該應用程式很可能不存在或未運行。僅當應用程式存在、其監視功能已啟用且正在運行時,應用程式監視資料才可用。執行了應用程式後,將在監視註冊中註冊該應用程式並顯示其監視資料。
使用管理主控台監視遠端應用程式和實例。遠端實例必須正在執行並已設定配置才能執行此操作。
所選取元件的監視資料顯示在所選取元件下面。如需有關可監視特性的描述,請參閱關於受監視的元件和服務的統計資訊。可以在關於可監視物件的樹狀結構中檢視到用於說明這些元件和服務如何針對應用程式進行組織的圖解。
- 選取 [資源] 頁面可以檢視已部署到伺服器實例中並已對其啟用監視功能的資源的監視資料。從 [檢視] 清單中選取資源。如果未顯示您要檢視其監視資料的資源,請選取 [配置監視] 連結來啟用或停用資源的監視功能。
如果未顯示資源的監視資料,則該資源很可能不存在或未運行。僅當資源存在、其監視功能已在 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 指令的範例
該指令擷取下列受監視資訊:
當特定元件或子系統所請求的屬性不存在時,便會傳回錯誤。同樣,當元件或子系統所請求的特定屬性不在作用中時,也會傳回錯誤。
請參閱 list 和 get 指令在所有層級上的預期輸出,以取得有關使用
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 的任何配置。