利用 StatsFactory 建立自訂 PMI
您可以更新應用程式來呼叫利用 Stats/PMI 範本(效能監視基礎架構)、資源軟體組、Stats/PMI 模組和方法定義的方法來更新自訂統計資料。
關於這項作業
您可以更新應用程式來呼叫利用 Stats/PMI 範本、資源軟體組、Stats/PMI 模組和方法定義的方法來更新自訂統計資料。
以下是利用自訂 PMI 來檢測元件的必要程序:
- 定義 Stats/PMI 範本(XML 檔)。
- 定義資源軟體組(內容檔)。
- 定義 Stats/PMI 模組,並利用 StatsFactory 來建立 Stats/PMI 物件。
- 定義應用程式將用來更新自訂統計資料的方法。
- 更新應用程式,以適當呼叫方法(先前步驟所定義)。
- 存取應用程式。
- 連接至「Tivoli 效能檢視器 (TPV)」及檢視「自訂 PMI」統計資料。
程序
- 定義 Stats/PMI 範本。 StatsFactory 可供執行時期元件利用 XML 範本來建立自訂 Stats/PMI 模組。
這個範本應該遵循 DTD com/ibm/websphere/pmi/xml/stats.dtd。
以下是範例應用程式中所用範本的範例。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Stats SYSTEM "stats.dtd"> <Stats type="com.stats.MyStats"> <description>MyStats.desc</description> <resourceBundle>com.stats.MyStatsResourceBundle</resourceBundle> <CountStatistic ID="1" name="MyStats.NumRequests"> <level>low</level> <unit>MyStats.unit.none</unit> <description>MyStats.NumRequests.desc</description> <statisticSet>basic</statisticSet> </CountStatistic> <BoundedRangeStatistic ID="2" name="MyStats.expensiveStat "> <level>high</level> <unit>MyStats.unit.none</unit> <description>MyStats.expensiveStat.desc</description> <updateOnRequest>true</updateOnRequest> </BoundedRangeStatistic> </Stats>
- 定義資源軟體組 資源軟體組可讓您以適當的語言/用語來定義統計資料的名稱及其說明。
範例資源軟體組看起來如下:
MyStats.desc=My View PMI Module MyStats.NumRequests=Request Count MyStats.NumRequests.desc=Total number of My view requests served. MyStats.unit.none=None MyStats.expensiveStat = Expensive Stat MyStats. expensiveStat.desc = Number of Expensive stats MyStats.Group= My Group MyStats.Instance=My Instance
- 定義 Stats/PMI 模組,並利用 StatsFactory 來建立 Stats/PMI 物件。
- 建立一個繼承 StatisticActions 的類別
public class MyStatisticsModule extends StatisticActions
- 宣告類型為 SPI* 的計數變數,例如 SPICountStatistc 和 SPIBoundedRangeStatistic。
private SPICountStatistic numReqs; private SPIBoundedRangeStatistic expensiveStat;
- 建立類型為 StatsGroup 的 StatsGroup 以及類型為 StatsInstance 的 StatsInstance。
template 是應用程式中 XML 檔所在的路徑;例如:private static StatsGroup stocksStatisticsGroup = null; private StatsInstance stocksStatistics = null; MyStatisticsGroup = StatsFactory.createStatsGroup("MyStats.Group", template, null); MyStatistics = StatsFactory.createStatsInstance("MyStats.Instance”,MyStatisticGroup,null,this);
String template = "/com/stats/MyStats.xml";
- 建立一個繼承 StatisticActions 的類別
- 在 StatsInstance 中建立統計資料之後,會呼叫 statisticCreated 來指出已在 Stats 實例中建立統計資料。
您可以將先前宣告的統計資料指派給適當的統計資料;例如:
public void statisticCreated (SPIStatistic s) { // Called when the Statistics are created in the Stats Instance if (s.getId() == MyStats.NUMREQS) { numReqs = (SPICountStatistic)s; // Assign Statistic } }
- 定義應用程式將用來更新自訂統計資料的方法。
public void onRequestArrival(){ if (numReqs != null) { numReqs.increment(); // Increment/Decrement Statistic as per Req } }
- 您也可以實作 updateStaisticRequest 方法來更新用戶端或任何其他監視應用程式之特定要求的相關統計資料。
在先前的範例中,dataId 是要更新的統計資料的 ID。public void updateStatisticOnRequest (int dataId) { if (dataId == MyStats.expensiveStat) { expensiveStat.set(xxxxx); } }
- 更新應用程式,以適當呼叫方法(先前步驟所定義)。
- 存取應用程式。
- 連接「Tivoli 效能檢視器」,並檢視自訂 PMI 統計資料。
避免困難: 在網路部署環境中實作自訂 PMI 時,您可能無法檢視自訂 PMI 計數器,因為 WebSphere Application Server 類別載入器看不到 Stats/PMI xml 檔和資源軟體組內容檔。 Stats/PMI.xml 檔和資源軟體組內容檔是在應用程式內部。 如果要能夠檢視自訂 PMI 計數器,您需要將 Stats/PMI.xml 檔和資源軟體組內容檔案放在類別路徑中。
您可以建立含有 Stats/PMI.xml 檔和資源軟體組內容檔的下列檔案結構的 jar,將它們放在 WAS_HOME\lib\ext 資料夾中,使自訂 PMI 計數器成為可見。 之後,類別載入器就能看到自訂 PMI 計數器。gotchacom/ibm/app/temp/tempstats.xml --- path of the Stats/PMI.xml com/ibm/app/temp/resourcebundle.props --- path of the resource bundle property file


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprf_stats_pmi
檔名:tprf_stats_pmi.html