Sun Java System Application Server 9.1 管理指南

第 18 章 監視元件和服務

本章包含有關使用 Application Server 管理主控台來監視元件的資訊。本章包括下列小節:

關於監視

監視 Application Server

使用監視功能可以觀察在 Application Server 的伺服器實例中所部署的各種元件和服務的執行階段狀態。利用有關執行階段元件和程式狀態的資訊,可以確定效能瓶頸以便進行調校、和容量規劃、預測故障、在發生故障時分析根本原因,以及確保一切執行正常。

啟用監視功能會因增加系統耗用而使效能降低。

也可以選擇在伺服器達到特定的效能臨界值時採取行動。如需更多資訊,請參閱第 19 章, 配置管理規則

監視概述

若要監視 Application Server,請執行以下步驟:

  1. 使用管理主控台或 asadmin 工具啟用對特定服務和元件的監視功能。

    如需有關此步驟的更多資訊,請參閱啟用與停用監視

  2. 使用管理主控台或 asadmin 工具檢視指定服務或元件的監視資料。

    如需有關此步驟的更多資訊,請參閱檢視監視資料

關於可監視物件的樹狀結構

Application Server 使用樹狀結構追蹤可監視物件。由於監視物件的樹是動態的,因此在實例中增加、更新或移除元件時該樹會相應地發生變更。樹狀結構中的根物件是伺服器實例名稱 (例如 server)。(在 Platform Edition 中,僅允許使用一個伺服器實例。)

以下指令顯示了樹的頂層:


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 容器統計資訊


範例 18–1 應用程式節點樹狀結構

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 服務統計資訊


範例 18–2 HTTP 服務圖解 (開發者設定檔版本)

http-service
         |--- virtual-server-1
              |--- http-listener-1 *
              |--- http-listener-2 *
         |--- virtual-server-2
              |--- http-listener-1 *
              |--- http-listener-2 *


範例 18–3 HTTP 服務圖解 (叢集和企業設定檔版本)

http-service *
             |---connection-queue *
             |---dns *
             |---file-cache *
             |---keep-alive *
             |---pwc-thread-pool *
             |---virtual-server-1*
             |        |--- request *
             |---virtual-server-2*
             |        |--- request *

資源樹

資源節點包含 JDBC 連線池和連接器連線池等池的可監視屬性。以下示意圖顯示了各種資源元件的頂層節點和子節點。具有可用的監視統計資訊的節點標有星號 (*)。請參閱JDBC 連線池統計資訊


範例 18–4 資源示意圖

resources
        |---connection-pool1(either connector-connection-pool or jdbc)*
        |---connection-pool2(either connector-connection-pool or jdbc)*

連接器服務樹

連接器服務節點包含連接器連線池等池的可監視屬性。以下示意圖顯示了各種連接器服務元件的頂層節點和子節點。具有可用的監視統計資訊的節點標有星號 (*)。請參閱JMS/連接器服務統計資訊


範例 18–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 服務元件的頂層節點和子節點。具有可用的監視統計資訊的節點標有星號 (*)。


範例 18–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 中連線管理程式的統計資訊


範例 18–7 ORB 示意圖

orb
        |--- connection-managers
        |        |--- connection-manager-1 *
        |        |--- connection-manager-1 *

執行緒池樹

執行緒池節點包含連線管理程式的可監視屬性。以下示意圖顯示了 ORB 元件的頂層節點和子節點。具有可用的監視統計資訊的節點標有星號 (*)。請參閱執行緒池統計資訊


範例 18–8 執行緒池示意圖

thread-pools
        |    |--- thread-pool-1 *
        |    |--- thread-pool-2 *

關於受監視的元件和服務的統計資訊

本小節描述可用的監視統計資訊:

EJB 容器統計資訊

以下表格說明了 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

時間統計資訊 

作業被呼叫的次數;呼叫期間所花費的總時間等資訊。 

totalnumerrors

計數統計資訊 

執行方法導致異常的次數。如果為 EJB 容器啟用了監視功能,則此統計資訊是為無狀態和有狀態階段作業 Bean 和實體 Bean 而收集的。 

totalnumsuccess

計數統計資訊 

方法成功執行的次數。如果為 EJB 容器啟用了監視功能,則此統計資訊是為無狀態和有狀態階段作業 Bean 和實體 Bean 收集的。 

executiontime

計數統計資訊 

上次成功/不成功嘗試執行方法作業所花費的時間 (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 池統計資訊

屬性名稱 

資料類型 

說明 

numbeansinpool

限制範圍統計資訊 

相關聯池中的 EJB 數,可提供有關池的變更方式的資訊。 

numthreadswaiting

限制範圍統計資訊 

等待自由 Bean 的執行緒數,指出請求可能擁塞。 

totalbeanscreated

計數統計資訊 

從開始收集資料以來相關聯池中所建立的 Bean的數目。 

totalbeansdestroyed

計數統計資訊 

自開始收集資料以來從相關聯池中銷毀的 Bean 的數目。 

jmsmaxmessagesload

計數統計資訊 

針對要服務的訊息驅動 Bean 而一次載入 JMS 階段作業的最大訊息數。預設值為 1。僅套用於訊息驅動 Bean 的池。 

下表中列出了 EJB 快取的可用統計資訊。

表 18–5 EJB 快取統計資訊

屬性名稱 

資料類型 

說明 

cachemisses

限制範圍統計資訊 

使用者請求未在快取中找到 Bean 的次數。 

cachehits

限制範圍統計資訊 

使用者請求找到快取記憶體中某個項目的次數。 

numbeansincache

限制範圍統計資訊 

快取記憶體中 Bean 的數目。這便是快取記憶體目前的大小。 

numpassivations

計數統計資訊 

鈍化 Bean 的數目。僅套用於有狀態階段作業 Bean。 

numpassivationerrors

計數統計資訊 

鈍化期間發生的錯誤數。僅套用於有狀態階段作業 Bean。 

numexpiredsessionsremoved

計數統計資訊 

清除執行緒所移除的過期階段作業數目。僅套用於有狀態階段作業 Bean。 

numpassivationsuccess

計數統計資訊 

鈍化成功完成的次數。僅套用於有狀態階段作業 Bean。 

下表中列出了計時器的可用統計資訊。

表 18–6 計時器統計資訊

統計資訊 

資料類型 

說明 

numtimerscreated

計數統計資訊 

系統中建立的計時器的數目。 

numtimersdelivered

計數統計資訊 

系統所傳送的計時器的數目。 

numtimersremoved

計數統計資訊 

從系統中移除的計時器的數目。 

Web 容器統計資訊

物件樹狀結構中包含了 Web 容器,如應用程式樹所示。系統為每個單獨的 Web 應用程式都顯示了 Web 容器統計資訊。Servlet 之 Web 容器的可用統計資訊列在表 18–7 中,Web 模組的可用統計資訊則顯示在表 18–8 中。

表 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 服務的可用統計資訊。如需其他設定檔的 HTTP 服務的統計資訊,請參閱生產 Web 容器 (PWC) 統計資訊

表 18–9 HTTP 服務統計資訊 (開發者設定檔)

統計資訊 

單位 

資料類型 

注釋 

bytesreceived

位元組 

計數統計資訊 

每個請求處理器接收到的位元組累積值。 

bytessent

位元組 

計數統計資訊 

每個請求處理器所傳送的位元組累積值。 

currentthreadcount

數目 

計數統計資訊 

目前位於偵聽程式執行緒池中的處理執行緒數。 

currentthreadsbusy

數目 

計數統計資訊 

處理請求的偵聽程式執行緒池中目前正在使用的請求處理執行緒的數目。 

errorcount

數目 

計數統計資訊 

錯誤計數的累積值,錯誤計數是指回應碼大於或等於 400 這類情況發生的次數。 

maxsparethreads

數目 

計數統計資訊 

可以存在的未使用回應處理執行緒的最大數目。 

minsparethreads

數目 

計數統計資訊 

可以存在的未使用回應處理執行緒的最小數目。 

maxthreads

數目 

計數統計資訊 

偵聽程式所建立的請求處理執行緒的最大數目。 

maxtime

毫秒 

計數統計資訊 

處理執行緒的最長時間。 

processing-time

毫秒 

計數統計資訊 

處理每個請求所花費時間的累積值。處理時間是總請求處理時間除以請求計數所得的平均值。 

request-count

數目 

計數統計資訊 

到目前為止所處理的請求總數。 

JDBC 連線池統計資訊

用於在執行階段監視 JDBC 資源,以測量效能並擷取資源使用情況。由於建立 JDBC 連線的成本很高並且常常會導致應用程式出現效能瓶頸問題,因此對 JDBC 連線池如何釋放和建立新連線以及正在等待從特定池中擷取連線的執行緒數的監視是至關重要的。

下表中列出了 JDBC 連線池的可用統計資訊。

表 18–10 JDBC 連線池統計資訊

統計資訊 

單位 

資料類型 

說明 

numconnfailedvalidation

數目 

計數統計資訊 

從開始時間到上次取樣時間為止在連線池中驗證失敗的連線總數。 

numconnused

數目 

範圍統計資訊 

提供連線使用統計資訊。目前正使用的連線總數,以及有關使用過的連線的最大數目的資訊 (高水印)。 

numconnfree

數目 

計數統計資訊 

上次取樣時池中的自由連線總數。 

numconntimedout

數目 

限制範圍統計資訊 

開始時間與上次取樣時間之間池中的逾時連線總數。 

averageconnwaittime

數目 

計數統計資訊 

指示嘗試與連接器連線池建立成功連線請求的平均等待時間。 

waitqueuelength

數目 

計數統計資訊 

佇列中正在等待處理的連線請求數。 

connectionrequestwaittime

 

範圍統計資訊 

連線請求的最長和最短等待時間。目前值表示上次由池處理的請求的等待時間。 

numconncreated

毫秒 

計數統計資訊 

自上次重設以來建立的實體連線數。 

numconndestroyed

數目 

計數統計資訊 

自上次重設以來已銷毀的實體連線數。 

numconnacquired

數目 

計數統計資訊 

從池中獲取的邏輯連線數。 

numconnreleased

數目 

計數統計資訊 

釋放到池中的邏輯連線數。 

JMS/連接器服務統計資訊

表 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 中連線管理程式的統計資訊

下表列出了 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

字串統計資訊 

指示作業事件是否已凍結。 

Java 虛擬機器 (JVM) 統計資訊

JVM 具有始終處於啟用狀態的可監視屬性。下表中列出了 JVM 的可用統計資訊。

表 18–16 JVM 統計資訊

統計資訊 

資料類型 

說明 

heapsize

限制範圍統計資訊 

包含 JVM 的記憶體堆疊大小上限和下限的常駐記憶體佔用空間。 

uptime

計數統計資訊 

JVM 已執行的時間。 

Java SE 中的 JVM 統計資訊

利用 Java SE,可從 JVM 取得額外的監視資訊。將監視層級設定為 [低] 以啟用這些附加資訊的顯示。將監視層級設定為 [高] 還可以檢視與系統中每個活性執行緒相關的資訊。如需有關 Java SE 的附加監視功能的更多資訊,請參閱 http://java.sun.com/javase/6/docs/technotes/guides/management/ 中標題為「Monitoring and Management for the Java Platform」的文件。

以下網頁討論 Java SE 監視工具:http://java.sun.com/javase/6/docs/technotes/tools/#manage

下表顯示 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 ThreadInfo 的可用統計資訊。

表 18–23 Java SE 的 JVM 統計資訊 - 執行緒資訊

統計資訊 

資料類型 

說明 

threadid

計數統計資訊 

執行緒 ID。 

threadname

字串統計資訊 

執行緒名稱。 

threadstate

字串統計資訊 

執行緒狀態。 

blockedtime

計數統計資訊 

執行緒進入 BLOCKED 狀態以來所經歷的時間 (以毫秒為單位)。如果已停用執行緒競爭狀態監視功能,則傳回 -1。

blockedcount

計數統計資訊 

執行緒進入 BLOCKED 狀態的總次數。

waitedtime

計數統計資訊 

執行緒處於 WAITING 狀態以來所經歷的時間 (以毫秒為單位)。如果已停用執行緒競爭狀態監視功能,則傳回 -1。

waitedcount

計數統計資訊 

執行緒處於 WAITINGTIMED_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 清單。 

生產 Web 容器 (PWC) 統計資訊

下表說明下列 PWC 元件和服務的可用統計資訊。


備註 –

這些統計資訊僅可供叢集和企業設定檔使用。


下表列出了 PWC 虛擬伺服器的統計資訊。

表 18–25 PWC 虛擬伺服器統計資訊

屬性名稱 

資料類型 

說明 

id

字串統計資訊 

虛擬伺服器的 ID。 

mode

字串統計資訊 

虛擬伺服器所處的模式。選項包括 unknownactive

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 位妝M 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 位妞d找的總數。 

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。 

啟用與停用監視

本小節包含下列主題:

使用管理主控台配置監視層級

在管理主控台中配置監視:

依預設,所有元件和服務的監視功能均處於關閉狀態。若要啟用監視功能,請在組合方塊中選取 [低] 或 [高]。若要關閉監視功能,請在組合方塊中選取 [關閉]。

如需配置監視的詳細資訊,請參閱管理主控台線上說明。

Procedure使用 asadmin 配置監視層級

  1. 使用 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
  2. 使用 set 指令可以啟用監視功能。

    例如,若要啟用對 HTTP 服務的監視功能,請輸入以下指令:


    asadmin> set --user admin-user 
    server.monitoring-service.module-monitoring-levels.http-service=LOW

    若要停用監視功能,請使用 set 指令並將監視層級指定為 OFF

檢視監視資料

在管理主控台中檢視監視資料

在開發者設定檔中,若要檢視監視資料,請移至 [Application Server] -> [監視]。

在叢集和企業設定檔中,若要檢視獨立實例的監視資料,請移至 [獨立實例] -> [實例] -> [監視]。若要檢視叢集實例的監視資料,請移至 [叢集] -> [叢集] -> [實例] -> [監視]。

您可以選取和檢視 JVM、伺服器、應用程式、執行緒池、HTTP 服務、作業事件服務、記錄統計資訊,以及呼叫流程統計資訊的監視資料。關於可監視物件的樹狀結構圖表說明這些元件和服務的組織方式。

如需有關檢視或配置監視的詳細資訊,請參閱管理主控台線上說明。

如需有關每個元件或服務之屬性的更多資訊,請參閱關於受監視的元件和服務的統計資訊

使用 asadmin 工具檢視監視資料

本小節包含下列主題:

Procedure使用 asadmin monitor 指令檢視監視資料

asadmin 具有兩種檢視監視資料的方法。第一種方法是使用 monitor 指令。此指令會列印經常監視的統計資訊,並可選擇篩選統計資訊,以及擷取輸出至「逗點分隔值 (CSV)」檔案。

  1. 若要檢視監視資料,請使用 monitor 指令,並指定監視資料的類型:httplistenerkeepalivefilecacheconnectionqueuejdbcpooljvmthreadpool servletconnectionconnectorpoolendpointentitybeanmessagedrivenstatefulsessionstatelesssessionhttpservicewebmodule

    例如,若要檢視 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  
  2. 若要檢視監視資料,並將輸出傳送給 CSV 檔案,請使用 filename 選項。例如︰


    asadmin> monitor --type jvm --filename myoutputfile --user adminuser server

Procedure使用 asadmin get 和 list 指令檢視監視資料

monitor 指令在大多數情況下都很有用。不過,它並未提供所有可監視物件的完整清單。若要使用 asadmin 工具檢視所有可監視資料,請使用 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

    如需有關使用 list 指令的更多範例,請參閱list 和 get 指令的範例。如需有關可與 list 指令配合使用之帶點名稱的更多資訊,請參閱瞭解和指定含點名稱

  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

    如需有關使用 get 指令的更多範例,請參閱list 和 get 指令的範例。如需有關可與 get 指令配合使用之帶點名稱的更多資訊,請參閱瞭解和指定含點名稱

瞭解和指定含點名稱

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 指令的基本假設為:

如需更多資訊,請參閱list 和 get 指令在所有層級上的預期輸出

list 和 get 指令的範例

本小節包含下列主題:

list --user admin-user --monitor 指令的範例

list 指令可針對指定的伺服器實例名稱,提供有關目前正在監視之應用程式元件與子系統的資訊。使用此指令,您可以查看伺服器實例的可監視元件與子元件。如需 list 範例的更完整清單,請參閱list 和 get 指令在所有層級上的預期輸出

範例 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

如需更完整的範例,請參閱使用 PetStore 範例

get --user admin-user --monitor 指令的範例

指令可擷取以下受監視的資訊:

範例 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

嘗試從 Java EE 應用程式中取得所有屬性:


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

傳回:


No matches resulted from the wildcard expression.
CLI137 Command get failed.

該 Java-EE 應用程式層級上沒有可監視的屬性,因此顯示此回覆。

範例 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

傳回:


No such attribute found from reflecting the corresponding Stats 
interface: [badname]
CLI137 Command get failed.

Procedure使用 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=4848
  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. 列出實體 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*".
  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

list 和 get 指令在所有層級上的預期輸出

下表顯示了樹的各個層級的指令、含點名稱及相應的輸出。

表 18–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.*

無輸出,但顯示一條訊息,說明此節點上沒有屬性。 

下表列出了應用程式層級的指令、帶點名稱及對應的輸出。

表 18–34 應用程式層級

指令 

含點名稱 

輸出 

list -m

server.applications

或 

*applications


appl1app2web-module1_warejb-module2_jar...

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) 的節點。

以下屬性及其關聯值: 


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 池屬性對應的屬性和值清單,如表 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 中所示。

使用 JConsole

本小節包含下列主題:

Application Server 的管理 (管理與監視) 是以 JMX 技術為基礎的。這表示受管理的元件會以 Application Server 之 JVM 中執行的 MBeanServer 之 MBean 表示。

Java SE 5 增強 JVM 管理與監視功能的方法,是加入 Platform MBean Server 以及加入 MBean 來配置 VM。Application Server 會利用這些增強功能,並使用 Platform MBean Server 註冊其 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

當您配置 JConsole 搭配 Application Server 使用時,Application Server 會成為 JMX 連接器的伺服器端,而 JConsole 會成為 JMX 連接器慣用的用戶端。將 JConsole 連線至 Application Servershows how to make a successful connection .

保護 JConsole 與 Application Server 間連線的安全

對 Application Server 或任何 JMX 連接器伺服器端的連線方式,會因連線的傳輸層安全性而有些許差異。若伺服器端是安全的 (保證傳輸層安全性),則必須在客戶機端進行一些額外配置。

當您在例如 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 的必要條件

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 來指定主機名稱。

Procedure將 JConsole 連線至 Application Server

此程序說明未在 JMX 連接器上啟用安全性的情況下,如何將 JConsole 連線至 Application Server。依預設,不會在 Application Server 上針對開發者設定檔啟用安全性。

  1. 啟動 appserver.sun.com 上的網域。

  2. 執行 JDK_HOME/bin/jconsole 以啟動 JConsole。

  3. 在 JConsole 的 [連線至代理程式] 標籤中,輸入使用者名稱、密碼、主機名稱與連接埠 (預設為 8686)。

    使用者名稱指的是網域管理使用者名稱,密碼指的是網域管理密碼。

  4. 按一下 [連線]。

    在 JConsole 視窗中,您將會在不同標籤中看到所有 MBean 與 VM 資訊等。

Procedure以安全的方式將 JConsole 連線至 Application Server

此程序說明在 JMX 連接器上啟用了安全性的情況下,如何將 JConsole 連線至 Application Server。依預設,會在 Application Server 叢集或企業設定檔上啟用安全性。若已在開發者設定檔的 JMX 連接器上啟用安全性,請使用此程序。

  1. 在用戶端機器 (安裝 JConsole 的機器) 上安裝 Application Server。

    只有在需要讓 JConsole 知道您信任之 Domain Administration Server 的伺服器憑證位置時,才需要執行此步驟。若要取得該憑證,請呼叫至少一個 remote asadmin 指令 (為呼叫此指令,您必須在本機安裝 Application Server)。

  2. appserver.sun.com 上啟動 Application Server。

    由於這是叢集或企業網域,所以系統 JMX 連接器伺服器是安全的。若要在開發者設定檔 JMX 連接器上啟用安全性,請參閱管理主控台線上說明。

  3. 從本機 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 所傳送的憑證。

  4. 按下 y 接受 appserver.sun.com 之 DAS 所傳送的憑證。

    伺服器憑證會儲存在名為 .asadmintruststore 的檔案中 (此檔案位於用戶端機器的主目錄中)。


    備註 –

    若您的伺服器機器與用戶端機器是同一部 (也就是說,您也在 appserver.sun.com 上執行 JConsole),則不需要執行此步驟。


  5. 使用以下 JConsole 指令,讓 JConsole 知道信任清單存放區位置:

    JDK-dir\bin\jconsole.exe -J-Djavax.net.ssl.trustStore="C:\Documents and Settings\user\.asadmintruststore"

  6. 執行 JDK_HOME/bin/jconsole 以啟動 JConsole

  7. 在 JConsole 的 [連線至代理程式] 標籤中,輸入使用者名稱、密碼、主機名稱與連接埠 (預設為 8686)。

    使用者名稱指的是網域管理使用者名稱,密碼指的是網域管理密碼。

  8. 按一下 [連線]。

    在 JConsole 視窗中,您將會在不同標籤中看到所有 MBean 與 VM 資訊等。