以獨立模式側寫應用程式
您可以採取獨立模式來側寫應用程式(亦即從指令行),不必安裝「測試和效能工具平台」。
不過,您需要將 Agent Controller 安裝在要側寫的應用程式所在的機器上。
您可以呼叫 Java 側寫代理程式,以獨立模式側寫應用程式,
它是一個與 Java 虛擬機器 (JMV) 連接的程式庫,目的在擷取和記錄 Java 應用程式的行為。
代理程式的輸出格式是 XML 片段。
請利用 -Xrun Java 選項來呼叫 Java 側寫代理程式:
-XrunpiAgent:agent_parm[,agent_parm]*
比方說,如果要利用 myFilters.txt 檔中定義的過濾器,將側寫階段作業的資料導向名為 PEProfilingData 的檔案中,
以此來側寫 PerformanceExample.java,您要在指令行中輸入下列指令:
java
-XrunpiAgent:server=standalone,filters=myFilters.txt,file=PEProfilingData.trcxml
PerformanceExample
- 附註:如果您要在側寫模式下從指令行啟動 WebSphere
Application Server 第 6 版 (WAS),您必須執行下列步驟:
- 切換至 <profile root>/config/cells/<nodename>Cell/nodes/<nodename>/servers/server1
- 編輯 server.xml 檔案中的 jvmEntries 元素。在此元素中,有一個屬性稱為 genericJvmArguments。請在此屬性值後面附加
-XrunpiAgent:server=enabled。
- 重新啟動 WAS。
-
- 藉由增加 -XrunpiAgent 參數,您可以指定數種不同的模式來執行側寫代理程式。agent_parm 參數可以採用下列其中一個值:
- server=[standalone | enabled | controlled | application]
- standalone
- 側寫代理程式是在無標題模式下執行的,這表示您不可能從工作台與它交談。
配置資訊是由配置檔來提供的,側寫代理程式會將側寫資料直接儲存在檔案中。
之後,可以在未來將側寫檔匯入工作台中。
- Java 側寫代理程式是以手動方式來連接至 JVM 實例,且會在輸出檔中產生側寫資料。
預設輸出檔稱為 trace.trcxml,但您可以利用 file=filename 參數來指定不同的檔案名稱。
當選取這個選項時,Java 側寫代理程式會產生用來含括的 traceRoot 元素,以形成完整而有效的 XML 文件。
- enabled(這是預設值。)
- 側寫代理程式是在 JVM 背景中執行的,它要等到工作台連接它並要求開始監視之後,才會開始耗用資源。
資料將在代理程式的資料通道上流動,由工作台使用。
也就是說,這會載入 Java 側寫代理程式,讓應用程式能夠正常執行,但在用戶端連接到代理程式以提供指示之前,不會產生任何側寫資料。
當選取這個選項時,Java 側寫代理程式只會產生 XML 片段,不會產生完整的 XML 文件。
- controlled
- 側寫代理程式會從起始設定開始先佔 JVM(載入代理程式,但代理程式會阻止應用程式的執行),直到工作台連接它,且用戶端提供開始監視的指令為止。
也就是說,當側寫代理程式採控制 (controlled) 模式來啟動時,它會表現出懸置 JVM 的情況,直到要求它開始監視為止,它只會產生 XML 片段,不會產生完整的 XML 文件。
- application
- 這會載入 Java 側寫代理程式,讓它在背景中執行,使應用程式能夠如同在啟用 (enabled) 模式中正常執行。
- 它只會在符合兩個條件時,才產生側寫資料。首先,應用程式必須已利用 org.eclipse.hyades.collection.profiler.Profiler 來要求側寫代理程式開始進行側寫;其次,工作台的測試用戶端必須已連接至 Java 側寫代理程式,且已開始監視。
- 附註:所有側寫都是應用程式利用 org.eclipse.hyades.collection.profiler.Profiler 類別來控制的。
- profile=profile file
這個選項只能在 server=standalone 時使用。
該檔會指定您希望以獨立模式執行側寫程式所用的選項。
該檔所指定的選項,通常是使用者從工作台啟動 Java 程序時,在側寫配置視窗中所設定,
使用該檔相當於以獨立模式執行時指定選項。
該檔可以用下列一種方式載入。
如果需要側寫檔的有效選項清單,
請參閱獨立式側寫過濾選項。
- filters=filename
只有在指定了 server=standalone 時才使用。
指定側寫階段作業期間要用的起始類別過濾器定義所在的檔案名稱。
預設檔案名稱是現行目錄中的 filters.txt。
請參閱下文,以取得檔案格式的相關資訊。
- file=filename
只有在指定了 server=standalone 時才使用。
指定側寫資料要寫入其中的檔案名稱。
預設值是現行目錄中的 trace.trcxml。
- help
在 STDOUT 上顯示可用的代理程式選項清單。
類別過濾器檔案的格式
過濾檔案必須指定三個欄位:package/class、method 及 mode,格式如下:
package/class method mode
其中:
- package/class
- 這個欄位用來指定套件或類別名稱的型樣。
型樣必須指定為不含空格的字串。字串的開頭或尾端可包含一個星號 (*),例如 *.mypackage 或 org.mycompany.*。
* 會比對零個或多個字元,可以使型樣成為一般的字首或字尾型樣。
您也可以指定單獨一個 * 來代表所有字串。
- 方法 (method)
- 這個欄位用來指定方法名稱的型樣。
型樣必須指定為不含空格的字串,且規格規則同於 class 欄位。
- mode
- 這個欄位指定在側寫中是否包含或排除符合型樣的套件或類別。mode 的值可以是 INCLUDE 或 EXCLUDE。
過濾器型樣會依指定的次序來處理,直到第一個 型樣找到相符者為止。如果類別名稱不符合任何指定的過濾器型樣,預設值就是併入 (INCLUDE) 類別。
Java 側寫代理程式控制項
當設定 server=enabled 或 server=controlled 參數來啟動 Java 側寫代理程式時,與代理程式的通訊是透過主機中的 Agent Controller,利用用戶端工作台來進行的。
附註:
- 如果您沒有在指令行中指定過濾器定義檔名稱,Java 側寫代理程式會試圖從現行目錄的 filters.txt 檔中讀取過濾器。
如果 filters.txt 檔不存在,
則在側寫階段作業期間不會使用過濾器。
如果您有指名過濾器檔案 filters.txt 並將它放在現行目錄中,則不需要在指令
行為側寫代理程式要使用的過濾器指定過濾器參數。
- 如果您未指定側寫資料的輸出檔,它將儲存在 trace.trcxml 檔。
- 您不必指定輸出檔的副檔名。它會自動取得副檔名 .trcxml
- 您不必指定 Java 應用程式的副檔名。它可以是 .class 檔。
相關概念
側寫工具概觀
側寫資源
相關作業
在 AS/400 以獨立模式側寫應用程式
啟動或連接 Java 程序
使用「側寫監視器」視圖
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.