ヘッダーをスキップ
Oracle® Enterprise Manager拡張ガイド
11gリリース1(11.1.0.1)
B61026-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

6 WebサービスおよびJMXを使用した監視

Enterprise Manager Grid Controlを拡張して、クリティカル・イベント、パフォーマンスの問題、エラー状態および統計について、WebサービスおよびJMXインスツルメント処理されたアプリケーションを監視できます。

WSDLおよびJMX対応のターゲットを監視するEnterprise Managerの機能により、監視操作と管理操作を統合できます。Enterprise Managerフレームワークに追加された場合、通知、ジョブ、レポート作成などのEnterprise Manager機能がこれらのターゲットに自動的に拡張されます。

この章の内容は次のとおりです。


注意:

この章では、管理プラグインおよび必要なターゲット定義ファイルに関する知識を前提としています。管理プラグインの概念、または管理プラグインの開発およびデプロイに関する情報は、第1章「監視の拡張」および第2章「管理プラグインの開発」を参照してください。

概要

Enterprise Managerを使用して、Webサービス管理インタフェース、JMXインスツルメント処理されたアプリケーションおよびサーバーを公開するターゲット、そしてスタンドアロンJava仮想マシン(JVM)ターゲットを監視すると、管理プラグインを介して新しいターゲット・タイプを定義することになります。

新規管理プラグインの作成は、4つの基本手順から構成されます。

  1. 管理プラグインに追加するターゲット・メタデータ・ファイルおよびデフォルトの収集ファイルを生成します。

  2. 1つ以上の管理プラグインのターゲット定義ファイルを含む管理プラグイン・アーカイブを作成します。単一のアーカイブに複数の管理プラグインが含まれる場合があります。

  3. Enterprise Managerに管理プラグインをインポートします。

  4. 適切な管理エージェントに管理プラグインをデプロイします。

ターゲット監視の手順は、次の各項で説明しています。

「Oracle Application ServerにデプロイされたJMXアプリケーションの監視」および「JMXインスツルメント処理されたスタンドアロンのJavaアプリケーションまたはJava仮想マシン(JVM)ターゲットの監視」では、JMX対応のカスタム・アプリケーション用にメータデータ・ファイルおよびデフォルトの収集ファイルを生成する方法について説明します。データ収集の対象となるMBeanの説明、およびMBeanをEnterprise Managerでメトリックとして定義するのに役立つ情報が記載されています。スタンドアロンJavaアプリケーションがJMXによってインスツルメント処理されていない場合でも、アプリケーションが稼働しているJVMを監視できます。これを行うには、「スタンドアロンJavaアプリケーションまたはJVMターゲットの構成」で定義されているように、組込みJVMターゲット・インスタンスを直接作成します。

メタデータ・ファイルおよびデフォルトの収集ファイルを作成したら、通常の管理プラグイン・メカニズムに従ってプラグインをデプロイし、「管理プラグイン・アーカイブの作成」から「ターゲット・インスタンスの追加」までの説明に従ってJavaアプリケーション・ターゲット・タイプのターゲット・インスタンスを作成できます。

Enterprise ManagerでのWebサービスを使用した監視

Webサービスは、疎結合されたソフトウェア・コンポーネントであり、Webサービス定義言語(WSDL)を介して外部インタフェースを公開します。これらのコンポーネントは、Simple Object Access Protocol(SOAP)と呼ばれる標準メッセージング・プロトコルを使用してネットワーク上で通信します。管理エージェントのJMX/SOAP fetchletによってSOAP通信がサポートされます。


注意:

Webサービス標準の詳細は、World Wide Web Consortium(W3C)のWebサイトを参照してください。

HTTP://www.w3.org


前提条件

メタデータ・ファイルおよびデフォルトの収集ファイルの作成

Webサービス・インタフェースを介して監視するターゲット・タイプを定義すると、WSDLインタフェースをサポートするリソースからメトリックを収集するのに必要なターゲット定義ファイルを作成することになります。

  • ターゲット・メタデータ

  • デフォルト収集

Enterprise Managerには、使いやすいWebサービスwsperfcliコマンドライン・ツールが用意されています。このツールは、必要なファイルを自動生成することで、新しい管理プラグインの作成を単純に行えるようにします。情報の取得は、管理エージェントと統合されているSOAP/JMX fetchletを介して実行されます。

コマンドライン・ツールは、すべての操作について指定されたWSDLファイルを解析することで動作し、起動する1つ以上の操作を選択できるようにします。WSDLファイルに複数のポート・タイプが指定されている場合、ツールにはいずれか1つのポート・タイプの選択を求めるプロンプトが表示されます。操作は、パラメータとともにリストされます。Webサービスの操作は、次の4つのタイプのいずれかです。

  • 一方向

  • リクエスト・レスポンス

  • 請求レスポンス

  • 通知

リクエスト・レスポンス操作タイプは特に便利です。選択した操作は、プリミティブまたは複合パラメータおよび結果を持つことがあります。Webサービス起動の結果は表に表示されます(ツールにより、表の列のラベルの指定を求めるプロンプトが表示されます)。Xpath式を指定することにより、結果の属性をフィルタ処理することもできます(例6-3で、生成されたターゲット・メタデータのcolumnOrderプロパティを参照してください)。フィルタ属性は、複合戻り型のうち少数の属性のみが必要な場合に便利です。

Webサービス・コマンドライン・ツールでは、次のバインディングおよびエンコーディング・スタイルのWebサービスがサポートされます。

  • DOC/literal

  • RPC/encoded

Webサービス・コマンドライン・ツールの構文

Webサービス・コマンドライン・ツールの構文は次のとおりです。

wsperfcli [OPTIONS] < WSDL File | URL to WSDL>

wsperfcliコマンドは、次のオプションを受け入れます。

  • -useSOAP11: デフォルトの1.2ではなくSOAPバージョン1.1を使用します。

  • -useWSIF: SOAP型配列のあるWSDLに役立ちます。

  • -usePROXY: Webサービスへの接続にプロキシを使用します。

  • -useSSL: Webサービスとの通信にSSLを使用します。

コマンドライン・ツールは、WebサービスのWSDLを特定するためにWSDLファイル名またはURLをオプションで受け入れます。たとえば、card-service WebサービスのWSDL URLは次のようになります。

http://localhost:44861/card-service/card?WSDL

コマンド・ツール・スクリプトを実行するには、Enterprise Managerホーム・ディレクトリ(EM_HOME)にアクセスする必要があります。ツールのデフォルトはORACLE_HOMEです。ホーム・ディレクトリ設定は、コマンドライン引数-DEM_HOMEを使用して設定できます。たとえば、-DEM_HOME=/myEMHomeなどです。その他のオプションの引数は、-DSOAP11および-DuseSSLです。これにより、古いバージョンのSOAPプロトコルおよびSSLを使用してWebサービスと通信するためのメタデータを生成できます。オプション-useWSIFは、古いSOAPスタイルの配列(rpc/encoded Webサービス)を使用するWSDLに使用されます。

ツールは、すべてのポート・タイプおよびバインディング(HTTP get/post、SOAPなどのサポートされているプロトコル)に対して指定されたWSDLを解析して、すべての操作をリストします。WSDLに複数のポート・タイプがある場合は、最初にポート・タイプを選択するプロンプトが表示されます。

Webサービス・コマンドライン・ツールのセキュリティ

コマンドライン・ツールでは、Webサービスは起動されません。Enterprise ManagerがWSDLファイルを介したターゲット監視の目的で必要とするメタデータが生成されます。このツールを実行する際には、WSDLファイルまたはURLに対する読取り権限、および生成されたファイルを適切なディレクトリに保存する権限のみが必要です。

ファイルの生成

例6–1に、ターゲット・メタデータ・ファイルおよび収集ファイルを生成するためにコマンドライン・ツールに渡されるサンプルWSDLファイルを示します。

例6-1 サンプルWSDLファイルTargetWithWSMgmtInterface

<?xml version="1.0" encoding="UTF-8" ?>
<definitions
     name="TargetWithWSMgmtInterface"
     targetNamespace="http://tempuri.org"
     xmlns="http://schemas.xmlsoap.org/wsdl/"
     xmlns:tns="http://tempuri.org"
     xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
     xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
     xmlns:ns1="http://mypackage3/MyProdMgmtInterface.wsdl/types"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    >
    <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://tempuri.org" elementFormDefault="qualified"
             xmlns:tns="http://tempuri.org"
 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"/>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://mypackage3/MyProdMgmtInterface.wsdl/types"
             elementFormDefault="qualified" xmlns:tns="http://mypackage3/MyProdMgmtInterface.wsdl/types"
             xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/">
            <complexType name="ArrayOfstring">
                <complexContent>
                    <restriction base="soap11-enc:Array">
                        <attribute ref="soap11-enc:arrayType" wsdl:arrayType="string[]"/>
                    </restriction>
                </complexContent>
            </complexType>
        </schema>
    </types>
    <message name="TargetWithWSMgmtInterfaceSEI1_getNumActiveThreads"/>
    <message name="TargetWithWSMgmtInterfaceSEI1_getUserSessionID">
        <part name="user" type="xsd:string"/>
    </message>
    <message name="TargetWithWSMgmtInterfaceSEI1_getUserSessionIDResponse">
        <part name="result" type="xsd:string"/>
    </message>
    <message name="TargetWithWSMgmtInterfaceSEI1_getNumActiveThreadsResponse">
        <part name="result" type="xsd:long"/>
    </message>
    <message name="TargetWithWSMgmtInterfaceSEI1_getActiveUsers"/>
    <message name="TargetWithWSMgmtInterfaceSEI1_getActiveUsersResponse">
        <part name="result" type="ns1:ArrayOfstring"/>
    </message>
    <portType name="ManagementInterfaceWS">
        <operation name="getActiveUsers">
            <input message="tns:TargetWithWSMgmtInterfaceSEI1_getActiveUsers"/>
            <output message="tns:TargetWithWSMgmtInterfaceSEI1_getActiveUsersResponse"/>
        </operation>
        <operation name="getNumActiveThreads">
            <input message="tns:TargetWithWSMgmtInterfaceSEI1_getNumActiveThreads"/>
            <output message="tns:TargetWithWSMgmtInterfaceSEI1_getNumActiveThreadsResponse"/>
        </operation>
        <operation name="getUserSessionID" parameterOrder="user">
            <input message="tns:TargetWithWSMgmtInterfaceSEI1_getUserSessionID"/>
            <output message="tns:TargetWithWSMgmtInterfaceSEI1_getUserSessionIDResponse"/>
        </operation>
    </portType>
    <binding name="TargetWithWSMgmtInterfaceSoapHttp" type="tns:ManagementInterfaceWS">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="getActiveUsers">
            <soap:operation soapAction="http://tempuri.org:getActiveUsers"/>
            <input>
                <soap:body use="encoded" namespace="http://tempuri.org" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     parts=""/>
            </input>
            <output>
                <soap:body use="encoded" namespace="http://tempuri.org" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     parts="result"/>
            </output>
        </operation>
        <operation name="getNumActiveThreads">
            <soap:operation soapAction="http://tempuri.org:getNumActiveThreads"/>
            <input>
                <soap:body use="encoded" namespace="http://tempuri.org" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     parts=""/>
            </input>
            <output>
                <soap:body use="encoded" namespace="http://tempuri.org" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     parts="result"/>
            </output>
        </operation>
        <operation name="getUserSessionID">
            <soap:operation soapAction="http://tempuri.org:getUserSessionID"/>
            <input>
                <soap:body use="encoded" namespace="http://tempuri.org" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     parts="user"/>
            </input>
            <output>
                <soap:body use="encoded" namespace="http://tempuri.org" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     parts="result"/>
            </output>
        </operation>
    </binding>
    <service name="ManagementInterfaceWS">
        <port name="TargetWithWSMgmtInterfacePort" binding="tns:TargetWithWSMgmtInterfaceSoapHttp">
            <soap:address location="http://144.25.119.190:8989/WS-MyProdMgmtIntf-context-root/ManagementInterfaceWS"/>
        </port>
    </service>
</definitions>

例6–2では、例6-1で示したWSDLファイルが使用されます。最初にツールは、すべてのポート・タイプおよびバインディング(HTTP get/post、SOAPなどのサポートされているプロトコル)に対してWSDLを解析して、すべての操作をリストします。WSDLに複数のポート・タイプがある場合は、最初にポート・タイプを選択するプロンプトが表示されます。

例6-2 サンプルWebサービス・コマンドライン・ツール・セッション

All port types for specified WSDL:
0 TargetWithWSMgmtInterfacePort
All operations for specified port type:
0   long getNumActiveThreads()
1   string getUserSessionID(string user)
2   string [] getActiveUsers()
>> Enter the index of operation to select.: 0

次に、ツールでは、メトリックに追加する属性を戻り型から選択するよう求めるプロンプトが表示されます。

Return value(s) for operation:
0 /tns:TargetWithWSMgmtInterfaceSEI1_getNumActiveThreadsResponse/result <long>
>> Enter the name for this metric column: ActiveThreads
>> Enter the label for this metric : ActiveThreadsLabel
>> Is this column a key <y/n> [n]: y
>> Do you want to add another metric <y/n>? [n] :
>> Enter value(s) for operation arguments:
>> Is this metric for periodic collection <y/n>? [n] : y
>> Enter the frequency of collections in seconds:12
>> Do you want to pick another operation to add <y/n>? [n] :n
>> Enter the metadata file name (metadata/TargetWithWSMgmtInterface.xml).:

コマンドライン・ツールは、例6-3に示すように、ターゲット・タイプTargetWithWSMgmtInterfaceの監視に必要なメタデータを生成します。

例6-3 TargetWithWSMgmtInterfaceターゲット・メタデータ・ファイル

<?xml version='1.0'?><!DOCTYPE TargetMetadata SYSTEM "../dtds/TargetMetadata.dtd"><TargetMetadata META_VER="1.0" TYPE="TargetWithWSMgmtInterface" CATEGORY_PROPERTIES="versionCategory">
<Display>
<Label NLSID="TargetWithWSMgmtInterface">TargetWithWSMgmtInterface</Label>
<ShortName NLSID="TargetWithWSMgmtInterface">TargetWithWSMgmtInterface</ShortName>
<Description NLSID="TargetWithWSMgmtInterface">TargetWithWSMgmtInterface</Description>
</Display>
<Metric NAME="Threads" TYPE="TABLE">
<Display>
<Label NLSID="Threads">Threads</Label>
</Display>
<TableDescriptor>
<ColumnDescriptor NAME="activeThreads" TYPE="NUMBER">
<Display>
<Label NLSID="ActiveThreads">ActiveThreads</Label>
</Display>
</ColumnDescriptor>
</TableDescriptor>
<QueryDescriptor FETCHLET_ID="OJMX">
<Property NAME="machine" SCOPE="INSTANCE">HTTPMachine</Property>
<Property NAME="port" SCOPE="INSTANCE">HTTPPort</Property>
<Property NAME="metricType" SCOPE="GLOBAL" OPTIONAL="TRUE">GWS</Property>
<Property NAME="metric" SCOPE="GLOBAL">getNumActiveThreads</Property>
<Property NAME="requestBodyElement" SCOPE="GLOBAL" OPTIONAL="TRUE">tns:getNumActiveThreads</Property>
<Property NAME="authuser" SCOPE="INSTANCE" OPTIONAL="TRUE">authUser</Property>
<Property NAME="authpwd" SCOPE="INSTANCE" OPTIONAL="TRUE">authPasswd</Property>
<Property NAME="documentType" SCOPE="GLOBAL" OPTIONAL="TRUE">rpc/encoded</Property>
<Property NAME="soapVersion" SCOPE="GLOBAL" OPTIONAL="TRUE">SOAP1.1</Property>
<Property NAME="targetNamespace" SCOPE="GLOBAL" OPTIONAL="TRUE"><![CDATA[<namespace prefix="tns" uri="http://tempuri.org" />]]></Property>
<Property NAME="columnOrder" SCOPE="GLOBAL">/tns:getNumActiveThreadsResponse/result</Property>
<Property NAME="additionalNamespaces" SCOPE="GLOBAL" OPTIONAL="TRUE"><![CDATA[<namespaces><namespace prefix="tns" uri="http://tempuri.org" /><namespace prefix="mime" uri="http://schemas.xmlsoap.org/wsdl/mime/" /><namespace prefix="soap12" uri="http://schemas.xmlsoap.org/wsdl/soap12/" /><namespace prefix="ns1" uri="http://mypackage3/MyProdMgmtInterface.wsdl/types" /><namespace prefix="xsd" uri="http://www.w3.org/2001/XMLSchema" /><namespace prefix="soap" uri="http://schemas.xmlsoap.org/wsdl/soap/" /></namespaces>]]></Property>
<Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
<Property NAME="URI" SCOPE="GLOBAL">/WS-MyProdMgmtIntf-context-root/ManagementInterfaceWS</Property>
<Property NAME="soapAction" SCOPE="GLOBAL" OPTIONAL="TRUE">http://tempuri.org:getNumActiveThreads</Property>
<Property NAME="name" SCOPE="GLOBAL">getNumActiveThreads</Property>
<Property NAME="returnType" SCOPE="GLOBAL">long</Property>
<Property NAME="arguments" SCOPE="GLOBAL"><![CDATA[<arguments></arguments>]]></Property>
</QueryDescriptor>
</Metric>
<InstanceProperties>
<InstanceProperty NAME="HTTPMachine"><Display>
<Label NLSID="dms_HTTPMachine_iprop">Machine name</Label>
<ShortName NLSID="dms_HTTPMachine_iprop">Machine name</ShortName>
</Display>
</InstanceProperty>
<InstanceProperty NAME="HTTPPort"><Display>
<Label NLSID="dms_HTTPPort_iprop">Port</Label>
<ShortName NLSID="dms_HTTPPort_iprop">Port</ShortName>
</Display>
</InstanceProperty>
<InstanceProperty NAME="version" OPTIONAL="TRUE"><Display>
<Label NLSID="oc4j_version_iprop">Version of TargetWithWSMgmtInterface</Label>
<ShortName NLSID="oc4j_version_iprop">Version of TargetWithWSMgmtInterface</ShortName>
</Display>
</InstanceProperty>
<InstanceProperty NAME="authUser" OPTIONAL="TRUE"><Display>
<Label NLSID="dms_authUser_iprop">Username for basic authorization</Label>
<ShortName NLSID="dms_authUser_iprop">Username for basic authorization</ShortName>
</Display>
</InstanceProperty>
<InstanceProperty NAME="authPasswd" OPTIONAL="TRUE" CREDENTIAL="TRUE"><Display>
<Label NLSID="dms_authPasswd_iprop">Password for basic authorization</Label>
<ShortName NLSID="dms_authPasswd_iprop">Password for basic authorization</ShortName>
</Display>
</InstanceProperty>
</InstanceProperties>
</TargetMetadata>

コマンドライン・ツールは、例6-4に示すように、必要な収集ファイルも生成します。

例6-4 デフォルトの収集ファイルTargetWithWSMgmtInterface

<!DOCTYPE TargetMetadata SYSTEM "../dtds/TargetCollection.dtd"><!-- This file is generated by Collector at 2006-01-24 14:00:10 -->

<TargetCollection TYPE="TargetWithWSMgmtInterface" NAME="TargetWithWSMgmtInterface" INCLUDE_DEFAULT="TRUE">
        <CollectionItem NAME="Threads" UPLOAD="5">
                <Schedule>
                        <IntervalSchedule INTERVAL="12" TIME_UNIT="Sec"/>
                </Schedule>
        </CollectionItem>

</TargetCollection>

ツールによってターゲット・メタデータ・ファイルおよび収集ファイルが生成されたら、管理プラグイン・アーカイブを作成できます。「管理プラグイン・アーカイブの作成」を参照してください。

Oracle Application ServerにデプロイされたJMXアプリケーションの監視

Java Management Extensions(JMX)フレームワークは、ユーザーが内部動作を確認できるようにすることで、JMXインスツルメント処理されたアプリケーションの管理性を向上します。アプリケーションおよびインフラストラクチャの内部動作は、Managed Bean(MBean)と呼ばれるモジュール形式のプラグインを通じて確認できます。MBeanは、アプリケーション、コンポーネント(Enterprise Java-Beanなど)またはその他のリソースと統合され、属性(値)および操作を公開します。

10.2の管理エージェントに付属するOJMX fetchletを使用すると、Oracle Application Server 10.1.3以上にデプロイされたJMXインスツルメント処理されたアプリケーションで主要なメトリックを監視できます。fetchletは、JMXを介した監視機能を、J2EE(OC4J)サーバー自体のJ2EE 1.4準拠Oracleコンテナに拡張します。

JMXインスツルメント処理されたアプリケーション/サーバーをEnterprise Managerで監視すると、Enterprise Managerが管理プラグインを介して監視できる新しいターゲット・タイプを定義することになります。Webサービスwsperfcliコマンドライン・ツールと同様に、Enterprise Managerには、ターゲット・メタデータ・ファイルおよび収集ファイルの生成を自動化するためのemjmxcliコマンドライン・ツールが用意されています。

前提条件

既知の制限事項

メタデータ・ファイルおよびデフォルトの収集ファイルの作成

Webサービスと同様に、JMXコマンドライン・ツール(emjmxcli)は、必要なターゲット定義ファイル(メタデータ・ファイルおよびデフォルトの収集ファイル)の作成を簡略化します。このツールは、MBeanServerに接続して使用可能なMBeanを参照できるようにする、オフライン構成ユーティリティです。後続のツール起動時にファイルの既存のセットにメトリックを追加することもできます。

コマンドライン・ツール・セッション中に、特定のMBeanを選択し、続いてEnterprise Managerがこれらの値を収集するためにこれらのMBeanに対して定期的に取得または起動する必要のある目的の属性/統計値または操作を選択します。ツールは、1つ以上のEnterprise Managerメトリック(列あり)としてのこれらの収集された値のパッケージ化の定義を支援し、またメトリック収集間隔を指定できるようにします。

JMXコマンドライン・ツールの構文

OC4J上にあるJMX対応ターゲットのJMXコマンドライン・ツールの構文は次のとおりです。

emjmxcli <TARGET_HOME>
                [  -h <hostname>
                   -p <port>
                   -u <username>
                   -c <credential/password>
                   -w <work directory>
                   -e <true/false>
                   [-m <MBeanName> | -d <jmx_domain> | -s <mBeanPattern>]
                ]

<TARGET_HOME>は、Oracleホーム・ディレクトリ10.1.3以上のOracle Application Server Container for J2EE(OC4J)です。

emjmxcliコマンドは、次のオプションを受け入れます。

  • -h: OC4Jのホスト名。デフォルト: localhost。

  • -p: OC4JのRMI/RMISポート。デフォルト: 23791。アプリケーション・サーバー10.1.3.0以上のインスタンスのORACLE_HOME/opmn/binディレクトリからopmnctl status -1を実行し、MBeanのデプロイ対象となったOC4JのRMIポートを突き止めます。

  • -u: OC4Jの有効なユーザー名。デフォルト: oc4jadmin。

  • -c: -uオプションで指定されたOC4Jユーザーに関連付けられているパスワード。デフォルト: なし。パスワードを指定しない場合、パスワードの入力を求められます。

  • -w: JMXコマンドライン・ツールで作成されたメタデータ・ファイルおよびデフォルトの収集ファイルが置かれるディレクトリ。デフォルト: 現在のディレクトリ。コマンドライン・ツールを起動する場合は、サブディレクトリを作成してファイルを追加するために、このディレクトリに対する書込み権限が必要です。メタデータ・ファイルおよびデフォルトの収集ファイルがそのディレクトリにすでに存在する場合は、元のファイルに追加するか元のファイルを上書きするかを選択できます。

  • -e: OC4JへのRMIS接続が有効になっているかどうか(trueまたはfalse)。デフォルト: false。

3つのパラメータ(-m-dまたは-s)のいずれかを指定して、MBeanServerで使用可能なMBeanのサブセットを取得することもできます。デフォルトでは、これらの3つのパラメータのいずれも指定されていない場合は、MBeanServer上のすべてのMBeanが表示され、そこから選択できます。

  • -m: 取得して検証する必要のある必須のMBeanのMBean ObjectName。これが複数のMBeanと一致するObjectNameパターンの場合は、パターンと一致するすべてのMBeanのリストが表示され、処理するMBeanを一度に1つずつ選択できます。

  • -d: MBeanを取得して検証する必要のある必須アプリケーションのMBeanドメイン。たとえば、アプリケーション(myApp)のすべてのMBeanを参照するとします。このアプリケーションのMBeanは、JMXドメインmyAppで使用できます。

  • -s: メトリックの定義の基にするMBeanの既存のセットと一致するMBeanパターン。-sパラメータを使用すると、類似するタイプの複数のMbeanからJMX属性/統計を一括して取得することができます。

    -sパラメータを指定した場合、このemjmxcliセッション中に作成された結果のメトリックはEnterprise Managerコンソールに表として表示されます。この表には複数の行があり、1行が指定のパターンと一致する各MBeanを表し、MBean ObjectNameがキー列として使用されます。たとえば、-s 'oc4j:j2eeType=Servlet,*'と指定した場合、結果のメトリックには複数の行があり、ObjectNameパターンと一致するサーブレットごとに1行が存在します。MBean ObjectName列以外の列は、emjmxcliセッション中に選択された操作の戻りオブジェクトからの属性またはフィールドになります。

ファイルの生成

JMXコマンドライン・ツールを開始するには、次のようにします。

  1. $AGENT_HOME/binディレクトリに移動します。

  2. 次のコマンドを実行します。

    emjmxcli <Oracle Home of the target 10.1.3 or greater OC4J> [OPTIONS]
    

    起動後に、コマンドライン・インタフェースは、例6-6に示すように必要な情報を求めるプロンプトを自動的に表示します。JMXコマンドライン・ツール・セッションを中断する必要がある場合は、任意の時点で[Ctrl]+[C]を押して終了できます。セッション情報は保存されません。

    例6-5 サンプルのEMJMXCLI起動

    ./emjmxcli /scratch/shiphomes/oc4j/1013_SOA_M1/ -h localhost -p 12404 -m 'oc4j:J2EEApplication=orabpel,name=\"ServerBean\",*'
    

例6-6 サンプルのEMJMXCLIセッション

oracleHome=/ade/sparmesw_10202_ssm/oracle
targetHome=/scratch/shiphomes/oc4j/1013_SOA_M1/
The Port is 12404

Connecting to server: localhost:12404
Connecting as user: oc4jadmin
Enter the password:         

Obtained 1 MBeans matching pattern oc4j:J2EEApplication=orabpel,name="ServerBean",*. 

Enter the target type for this metric: [myJ2EEApp] myBPELApp

これは、Enterprise Manager内に表示される新規J2EEアプリケーションのターゲット・タイプです。

Enter the target version: [1.0] 

Enter the target metadata file: [./metadata/myBPELApp.xml] 

これは、emjmxcliによって生成されるメタデータ・ファイルの場所です。ターゲット・メタデータ・ファイルおよびデフォルトの収集ファイルが作成されるディレクトリに対する書込み権限が必要です。

Enter the default collections file: [./default_collection/myBPELApp.xml] 
The file ./metadata/myBPELApp.xml already exists. 
Do you want to overwrite the existing file, append to it, or quit <o/a/q>? [a] a
Appending to existing file: ./metadata/myBPELApp.xml.
The available targets are: 
0: Identifies a deployed stateless session bean
        (oc4j:EJBModule="ejb_ob_engine",J2EEApplication=orabpel,J2EEServer=standalone,j2eeType=StatelessSessionBean,name="ServerBean")

Enter the index of target/MBean you wish to monitor or press <Ctrl-C> to quit: 0

emjmxcliの起動時に複数のMBeanが指定された-m <MBean pattern>と一致した場合は、コマンドライン・セッションのこの部分でパターンと一致するすべてのMBean ObjectNameがリストされます。この時点で、リストから1つを選択できます。最初のMBeanに対するメトリックを作成した後で、このemjmxcliセッションを終了せずに別のMBeanを前述リストから選択できます。

前述の-mパターンと一致しない別のMBeanからメトリックを追加する場合は、emjmxcliセッションを終了し、後者のMBeanのMBean ObjectName/Patternで別のemjmxcliセッションを開始し、前のemjmxcliセッションから元のターゲット・メタデータ・ファイルおよびデフォルトの収集ファイルに追加されるメトリックをこのMBeanから作成します。この方法で、複数のemjmxcliセッションから作成されたメトリックを必要に応じて同じターゲット・メタデータ・ファイルおよびデフォルトの収集ファイルに追加できます。

Following metric source types are available for selected target(s):
        0: JMX Attributes
        1: JMX Operations
        2: J2EE Statistics
Enter the index of your choice or press <Ctrl-C> to quit: 2

Statistics are: 
        0: CreateCount
        1: ejbCreate()ClientActive
        2: ejbCreate()ClientTime
        3: ejbRemove()ClientActive
        4: ejbRemove()ClientTime
        5: MethodReadyCount
        6: RemoveCount
        7: setSessionContext(javax.ejb.SessionContext)ClientActive
        8: setSessionContext(javax.ejb.SessionContext)ClientTime
Select one or more items as comma-separated indices: 0,6

JavaBean is : CreateCount
        0: count
        1: description
        2: lastSampleTime
        3: name
        4: startTime
        5: unit

これは、統計コールCreateCountが単純なデータ型ではなく、前述のプロパティを持つJavaBeanパターンであることを示します(これらのプロパティを指定します)。

Select one or more items as comma-separated indices: 0
JavaBean is : RemoveCount
        0: count
        1: description
        2: lastSampleTime
        3: name
        4: startTime
        5: unit
Select one or more items as comma-separated indices: 0
Number of possible columns in the resultant metric are 2.

Enter the name for this metric column at index=0 : [countOfCreateCount] createCount

任意の有意の名前をここで指定できます。名前を指定しない場合、JMXコマンドライン・ツールでは、すべての場合に適しているとはかぎらないデフォルト名が生成されます。

Is this column a KEY Column <y/n>? [n] 

属性または操作の戻り値がTabularDataである場合のように複数行が返される状況では、選択したメトリックの1つ以上をキー列として指定する必要があります。

Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [createCount] 
Enter the NLSID for column: [createCount] 
Enter the UNIT for column "createCount": [count] 
Do you want to create a threshold for this column <y/n>? [n] y
Creating threshold!!
Following operators are available for creating thresholds: 
 0: GT
 1: EQ
 2: LT
 3: LE
 4: GE
 5: CONTAINS
 6: NE
 7: MATCH

この列に対してしきい値を作成するには、演算子を指定してから、クリティカルまたは警告アラートのトリガーとなる値を指定します。

Enter the index of your choice or press <Ctrl-C> to quit: 0
Enter the CRITICAL threshold: [NotDefined] 100
Enter the WARNING threshold: [NotDefined] 85
Enter the number of occurrences that trigger threshold: [6] 3

これは、アラートのトリガーとなる前述のクリティカルまたは警告値の連続発生数です。

Enter the message to be used when threshold is triggered: [createCount is %value%
and has crossed warning (%warning_threshold%) or critical (%critical_threshold%) threshold.] 
Enter NLSID for the message used when threshold is triggered: [createCount_cond] 
Enter the name for this metric column at index=1 : [countOfRemoveCount] removeCount
Is this column a KEY Column <y/n>? [n] 
Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [removeCount] 
Enter the NLSID for column: [removeCount] 
Enter the UNIT for column "removeCount": [count] 
Do you want to create a threshold for this column <y/n>? [n] 
Enter the name of this metric: ServerBeanStats
Enter the label for this metric: [ServerBeanStats] 

Do you want periodic collection for this metric <y/n>? [n] y

リアルタイムのみのメトリックの場合のようにメトリックを定期的に収集する必要がない場合は、noを指定できます。

Enter the collection interval in seconds: 60
Periodic collection interval is: 60 seconds.

Do you want to create another metric <y/n>? [n] y
The available targets are: 
0: Identifies a deployed stateless session bean
        (oc4j:EJBModule="ejb_ob_engine",J2EEApplication=orabpel,J2EEServer=standalone,j2eeType=StatelessSessionBean,name="ServerBean")

Enter the index of target/MBean you wish to monitor or press <Ctrl-C> to quit: 0

複数のMBeanが(emjmxcliの起動時に指定された)-mオプションのMBeanパターンと一致する場合は、このコマンドライン・セッションの次の反復のために前述のリストから別のMBeanを選択できます。

Following metric source types are available for selected target(s):
        0: JMX Attributes
        1: JMX Operations
        2: J2EE Statistics

Enter the index of your choice or press <Ctrl-C> to quit: 0

Attributes are:         0: activeInstances       Return Value: int
        1: activeInstancesHighWaterMark  Return Value: int
        2: eventProvider         Return Value: boolean
        3: maxInstances  Return Value: int
        4: minInstances  Return Value: int
        5: ObjectName    Return Value: javax.management.ObjectName
        6: stateManageable       Return Value: boolean
        7: statisticsProvider    Return Value: boolean
        8: stats         Return Value: javax.management.j2ee.statistics.Stats
        9: transactionTimeout    Return Value: int
Select one or more items as comma-separated indices: 0,3,4

Number of possible columns in the resultant metric are 3.
Enter the name for this metric column at index=0 : [activeInstances] 
Is this column a KEY Column <y/n>? [n] 
Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [activeInstances] 
Enter the NLSID for column: [activeInstances] 
Enter the UNIT for column "activeInstances": [millisec, kb etc.. ] Do you want to create a threshold for this column <y/n>? [n] 
Enter the name for this metric column at index=1 : [maxInstances] 
Is this column a KEY Column <y/n>? [n] 
Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [maxInstances] 
Enter the NLSID for column: [maxInstances] 
Enter the UNIT for column "maxInstances": [millisec, kb etc.. ] 
Do you want to create a threshold for this column <y/n>? [n] 

Enter the name for this metric column at index=2 : [minInstances] 
Is this column a KEY Column <y/n>? [n] 
Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [minInstances] 
Enter the NLSID for column: [minInstances] 
Enter the UNIT for column "minInstances": [millisec, kb etc.. ] 
Do you want to create a threshold for this column <y/n>? [n] 

Enter the name of this metric: ServerBeanCount
Enter the label for this metric: [ServerBeanCount] 

Do you want periodic collection for this metric <y/n>? [n] y
Enter the collection interval in seconds: 300
Periodic collection interval is: 300 seconds.

Do you want to create another metric <y/n>? [n] n
Written the metadata xml file: ./metadata/myBPELApp.xml.
Updated the default collection file for myBPELApp at location ./default_collection/myBPELApp.xml.
Exiting...

JMXコマンドライン・ツールによってターゲット・メタデータ・ファイルおよび収集ファイルが生成されたら、管理プラグイン・アーカイブを作成できます。「管理プラグイン・アーカイブの作成」を参照してください。前述のコマンドライン・ツール・セッションから生成された各ファイルのサンプルを、例6–7および例6–8に示します。

例6-7 生成されたターゲット・メタデータ・ファイル

<!DOCTYPE TargetMetadata SYSTEM "../dtds/TargetMetadata.dtd">
<TargetMetadata META_VER="1.0" TYPE="myBPELApp" CATEGORY
_PROPERTIES="VersionCategory">
   <Display>
      <Label NLSID="myBPELAppNLSID">myBPELApp</Label>
      <ShortName NLSID="myBPELAppShortName">myBPELApp</ShortName>
      <Description NLSID="myBPELAppDescription">myBPELApp</Description>
   </Display>

   <Metric NAME="ServerBeanStats" TYPE="TABLE">
      <Display>
         <Label NLSID="ServerBeanStats">ServerBeanStats</Label>
      </Display>
      <TableDescriptor>
         <ColumnDescriptor NAME="createCount" TYPE="NUMBER">
            <Display>
               <Label NLSID="createCount">createCount</Label>
               <Unit NLSID="count">count</Unit>
            </Display>
         </ColumnDescriptor>
         <ColumnDescriptor NAME="removeCount" TYPE="NUMBER">
            <Display>
               <Label NLSID="removeCount">removeCount</Label>
               <Unit NLSID="count">count</Unit>
            </Display>
         </ColumnDescriptor>
      </TableDescriptor>
      <QueryDescriptor FETCHLET_ID="OJMX">
         <Property NAME="machine" SCOPE="INSTANCE">HTTPMachine</Property>
         <Property NAME="OracleHome" SCOPE="INSTANCE">OracleHome</Property>
         <Property NAME="oc4jInstanceName" SCOPE="INSTANCE"  OPTIONAL="TRUE">OC4JInstanceName</Property>
         <Property NAME="jvmId" SCOPE="INSTANCE" OPTIONAL="TRUE">JVMId</Property>
         <Property NAME="mgmtWebSite" SCOPE="INSTANCE" OPTIONAL="TRUE">MgmtWebSite</Property>
         <Property NAME="authuser" SCOPE="INSTANCE" OPTIONAL="TRUE">authUser</Property>
         <Property NAME="authpwd" SCOPE="INSTANCE" OPTIONAL="TRUE">authPasswd</Property>
         <Property NAME="metric" SCOPE="GLOBAL">ServerBeanStats</Property>
         <Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
         <Property NAME="name" SCOPE="GLOBAL">getStatistics</Property>
         <Property NAME="signature" SCOPE="GLOBAL">objectName,statNames,languageCode,countryCode</Property>
<Property NAME="returnType" SCOPE="GLOBAL">arrayOfComplexObjectBean</Property>
         <Property NAME="dontAddDefaultRowKey" SCOPE="GLOBAL">true</Property>
         <Property NAME="columnOrder" SCOPE="GLOBAL">/CreateCount/count,/RemoveCount/count</Property>
         <Property NAME="arguments" SCOPE="GLOBAL">
            <![CDATA[<arguments>
   <argument>
      <value>oc4j:EJBModule="ejb_ob_engine",J2EEApplication=orabpel,J2EEServer=standalone,j2eeType=StatelessSessionBean,name="ServerBean"</value>
   </argument>
   <argument>
      <value>CreateCount</value>
      <value>RemoveCount</value>
   </argument>
   <argument>
      <value>en</value>
   </argument>
   <argument>
      <value>US</value>
   </argument>
</arguments>]]>
         </Property>
      </QueryDescriptor>
   </Metric>

<Metric NAME="ServerBeanCount" TYPE="TABLE">
      <Display>
         <Label NLSID="ServerBeanCount">ServerBeanCount</Label>
      </Display>
      <TableDescriptor>
         <ColumnDescriptor NAME="activeInstances" TYPE="NUMBER">
            <Display>
               <Label NLSID="activeInstances">activeInstances</Label>
            </Display>
         </ColumnDescriptor>
         <ColumnDescriptor NAME="maxInstances" TYPE="NUMBER">
            <Display>
               <Label NLSID="maxInstances">maxInstances</Label>
            </Display>
         </ColumnDescriptor>
         <ColumnDescriptor NAME="minInstances" TYPE="NUMBER">
            <Display>
               <Label NLSID="minInstances">minInstances</Label>
            </Display>
         </ColumnDescriptor>
      </TableDescriptor>
      <QueryDescriptor FETCHLET_ID="OJMX">
         <Property NAME="machine" SCOPE="INSTANCE">HTTPMachine</Property>
         <Property NAME="OracleHome" SCOPE="INSTANCE">OracleHome</Property>
         <Property NAME="oc4jInstanceName" SCOPE="INSTANCE" OPTIONAL="TRUE">OC4JInstanceName</Property>
         <Property NAME="jvmId" SCOPE="INSTANCE" OPTIONAL="TRUE">JVMId</Property>
         <Property NAME="mgmtWebSite" SCOPE="INSTANCE" OPTIONAL="TRUE">MgmtWebSite</Property>
         <Property NAME="authuser" SCOPE="INSTANCE" OPTIONAL="TRUE">authUser</Property>
         <Property NAME="authpwd" SCOPE="INSTANCE" OPTIONAL="TRUE">authPasswd</Property>
         <Property NAME="metric" SCOPE="GLOBAL">ServerBeanCount</Property>
         <Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
         <Property NAME="name" SCOPE="GLOBAL">getAttributes</Property>
         <Property NAME="signature" SCOPE="GLOBAL">objectName,attributeNames,languageCode,countryCode</Property>
         <Property NAME="returnType" SCOPE="GLOBAL">arrayOfComplexObjectBean</Property>
         <Property NAME="dontAddDefaultRowKey" SCOPE="GLOBAL">true</Property>
         <Property NAME="columnOrder" SCOPE="GLOBAL">/activeInstances,/maxInstances,/minInstances</Property>
<Property NAME="arguments" SCOPE="GLOBAL">
            <![CDATA[<arguments>
   <argument>      <value>oc4j:EJBModule="ejb_ob_engine",J2EEApplication=orabpel,J2EEServer=standalone,j2eeType=StatelessSessionBean,name="ServerBean"</value>
   </argument>
   <argument>
      <value>activeInstances</value>
      <value>maxInstances</value>
      <value>minInstances</value>
   </argument>
   <argument>
      <value>en</value>
   </argument>
   <argument>
      <value>US</value>
   </argument>
</arguments>]]>
         </Property>
      </QueryDescriptor>
   </Metric>

<Metric NAME="Response" TYPE="TABLE">
      <Display>
         <Label NLSID="Response">Response</Label>
      </Display>
      <TableDescriptor>
         <ColumnDescriptor NAME="Status" TYPE="NUMBER">
            <Display>
               <Label NLSID="Status">Status</Label>
            </Display>
         </ColumnDescriptor>
      </TableDescriptor>
      <QueryDescriptor FETCHLET_ID="OJMX">
         <Property NAME="machine" SCOPE="INSTANCE">HTTPMachine</Property>
         <Property NAME="OracleHome" SCOPE="INSTANCE">OracleHome</Property>
         <Property NAME="oc4jInstanceName" SCOPE="INSTANCE" OPTIONAL="TRUE">OC4JInstanceName</Property>
         <Property NAME="jvmId" SCOPE="INSTANCE" OPTIONAL="TRUE">JVMId</Property>
         <Property NAME="mgmtWebSite" SCOPE="INSTANCE" OPTIONAL="TRUE">MgmtWebSite</Property>
         <Property NAME="authuser" SCOPE="INSTANCE" OPTIONAL="TRUE">authUser</Property>
         <Property NAME="authpwd" SCOPE="INSTANCE" OPTIONAL="TRUE">authPasswd</Property>
         <Property NAME="metric" SCOPE="GLOBAL">Response</Property>
         <Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
         <Property NAME="name" SCOPE="GLOBAL">getAttributes</Property>
         <Property NAME="signature" SCOPE="GLOBAL">objectName,attributeNames,languageCode,countryCode</Property>
         <Property NAME="returnType" SCOPE="GLOBAL">arrayOfComplexObjectBean</Property>
         <Property NAME="dontAddDefaultRowKey" SCOPE="GLOBAL">true</Property>
         <Property NAME="columnOrder" SCOPE="GLOBAL">/state</Property>
         <Property NAME="arguments" SCOPE="GLOBAL">
            <![CDATA[<arguments>
   <argument>
      <value>oc4j:J2EEServer=standalone,j2eeType=J2EEApplication,name=orabpel</value>
   </argument>
   <argument>
      <value>state</value>
   </argument>
   <argument>
      <value>en</value>
   </argument>
   <argument>
      <value>US</value>
   </argument>
</arguments>]]>
         </Property>
      </QueryDescriptor>
   </Metric>

   <InstanceProperties>
      <InstanceProperty NAME="HTTPMachine">
         <Display>
            <Label NLSID="dms_HTTPMachine_iprop">Machine name</Label>
         </Display>
      </InstanceProperty>
      <InstanceProperty NAME="OracleHome">
         <Display>
            <Label NLSID="dms_OracleHome_iprop">Oracle home path</Label>
         </Display>
      </InstanceProperty>
<InstanceProperty NAME="OC4JInstanceName" OPTIONAL="TRUE"><Display><Label NLSID="OC4JInstanceNameiprop">OC4JInstanceName</Label></Display>home</InstanceProperty>
      <InstanceProperty NAME="JVMId" OPTIONAL="TRUE"><Display><Label NLSID="JVMId_iprop">JVMId</Label></Display>1</InstanceProperty>
      <InstanceProperty NAME="MgmtWebSite" OPTIONAL="TRUE"><Display><Label NLSID="MgmtWebSite_iprop">MgmtWebSite</Label></Display>default-web-site</InstanceProperty>
      <InstanceProperty NAME="URI" OPTIONAL="TRUE"><Display><Label NLSID="URI">URI</Label></Display>/JMXSoapAdapter/JMXSoapAdapter</InstanceProperty>
      <InstanceProperty NAME="authUser" OPTIONAL="TRUE">
         <Display>
            <Label NLSID="dms_authUser_iprop">Username for Basic authorization</Label>
         </Display>
      </InstanceProperty>
      <InstanceProperty NAME="authPasswd" OPTIONAL="TRUE" CREDENTIAL="TRUE">
         <Display>
            <Label NLSID="dms_authPasswd_iprop">Password for Basic authorization</Label>
         </Display>
      </InstanceProperty>
      <InstanceProperty NAME="Version" OPTIONAL="TRUE"><Display><Label NLSID="oc4j_version_iprop">Version of myBPELApp</Label></Display>1.0</InstanceProperty>
   </InstanceProperties>
</TargetMetadata>

例6-8 生成されたメトリック収集ファイル

<!DOCTYPE TargetCollection SYSTEM "../dtds/TargetCollection.dtd">
<!-- This file is generated by Collector at 2006-04-28 12:11:55 -->

<TargetCollection TYPE="myBPELApp" INCLUDE_DEFAULT="TRUE">
        <CollectionItem NAME="ServerBeanStats" UPLOAD="YES">
                <Schedule>
                        <IntervalSchedule INTERVAL="60" TIME_UNIT="Sec"/>
                </Schedule>
                <MetricColl NAME="ServerBeanStats">
                        <Condition COLUMN_NAME="createCount" CRITICAL="100"           WARNING="85" OPERATOR="GT" OCCURRENCES="3" MESSAGE="createCount is %value% and has crossed warning (%warning_threshold%) or critical (%critical_threshold%) threshold." MESSAGE_NLSID="createCount_cond"/>
                </MetricColl>
        </CollectionItem>
        <CollectionItem NAME="ServerBeanCount" UPLOAD="YES">
                <Schedule>
                        <IntervalSchedule INTERVAL="300" TIME_UNIT="Sec"/>
                </Schedule>
                <MetricColl NAME="ServerBeanCount">
                </MetricColl>
        </CollectionItem>

        <CollectionItem NAME="Response" UPLOAD="YES">
                <Schedule>
                        <IntervalSchedule INTERVAL="30" TIME_UNIT="Sec"/>
                </Schedule>
                <MetricColl NAME="Response">
                        <Condition COLUMN_NAME="Status" CRITICAL="1" WARNING="NotDefined" OPERATOR="NE" OCCURRENCES="2" MESSAGE="Status is %value% and has crossed warning (%warning_threshold%) or critical (%critical_threshold%) threshold." MESSAGE_NLSID="Status_cond"/>
                </MetricColl>
        </CollectionItem>
</TargetCollection>

ターゲット・ステータス情報の表示

ターゲットのステータス情報がEnterprise Managerコンソールに正しく表示されるためには、クリティカルしきい値が設定された「ステータス」という名前の列を持つ「レスポンス」というメトリックを定義する必要があります。メトリック値がクリティカルしきい値を下回っている場合、このタイプのターゲット・インスタンスのステータスはコンソールに「稼働中」(使用可能)として表示されます。しきい値を超えている場合、ターゲット・ステータスはコンソールに「停止中」として表示されます。

「レスポンス」メトリックは別のemjmxcliセッションで作成できます(以前のセッションで作成されたメタデータ・ファイルおよび収集ファイルにメトリックを追加します。例6–9に、以前に生成されたメタデータ・ファイルおよび収集ファイルに新しいコマンドライン・セッションから「レスポンス」メトリックを追加する方法を示します。

例6-9 「レスポンス」メトリックの追加

./emjmxcli /scratch/shiphomes
//oc4j/1013_PRODUCTION/ -p 12403 -c welcome1 -m 'oc4j:j2eeType=J2EEApplication,n
ame=orabpel,*'

oracleHome=/ade/sparmesw_10202_ssm/oracle
targetHome=/scratch/shiphomes//oc4j/1013_PRODUCTION/
The Port is 12403

Connecting to server: localhost:12403
Connecting as user: oc4jadmin

Obtained 1 MBeans matching pattern oc4j:j2eeType=J2EEApplication,name=orabpel,*.

Enter the target type for this metric: [myJ2EEApp] myBPELApp

Enter the target version: [1.0]

Enter the target metadata file: [./metadata/myBPELApp.xml]

Enter the default collections file: [./default_collection/myBPELApp.xml]
The file ./metadata/myBPELApp.xml already exists.

Do you want to overwrite the existing file, append to it, or quit <o/a/q>? [a] a
Appending to existing file: ./metadata/myBPELApp.xml.
The available targets are:
0: Identifies a J2EE application EAR that has been deployed
        (oc4j:J2EEServer=standalone,j2eeType=J2EEApplication,name=orabpel)

Enter the index of target/MBean you wish to monitor or press <Ctrl-C> to quit: 0
Following metric source types are available for selected target(s):
        0: JMX Attributes
        1: JMX Operations

Enter the index of your choice or press <Ctrl-C> to quit: 0

Attributes are:
        0: allAccessibleGroups   Return Value: java.util.Set
        1: allAccessibleUsers    Return Value: java.util.Set
        2: applicationRootDirectoryPath  Return Value: java.lang.String
        3: archivePath   Return Value: java.lang.String
        4: childApplicationNames         Return Value: [Ljava.lang.String;
        5: childApplications     Return Value: [Ljavax.management.ObjectName;
        6: dataSourcesDescriptor         Return Value: java.lang.String
        7: deploymentDescriptor  Return Value: java.lang.String
        8: ejbClassLoaderPath    Return Value: java.lang.String
        9: eventProvider         Return Value: boolean
        10: groups       Return Value: java.util.Set
        11: iiopStubs    Return Value: [B
        12: metricRulesDescriptor        Return Value: java.lang.String
        13: Modules      Return Value: [Ljavax.management.ObjectName;
        14: objectName   Return Value: java.lang.String
        15: ohsRouting   Return Value: boolean
        16: parentApplication    Return Value: javax.management.ObjectName
        17: parentApplicationName        Return Value: java.lang.String
        18: properties   Return Value: java.util.Properties
        19: proprietaryDeploymentDescriptor      Return Value: java.lang.String
        20: proxyInterfaceSQLObjects     Return Value: [Ljava.lang.String;
        21: routingId    Return Value: java.lang.String
        22: Server       Return Value: javax.management.ObjectName
        23: sharedLibraryImports   Return Value: [Loracle.oc4j.admin.management.shared.SharedLibraryImport;
        24: startTime    Return Value: long
        25: state        Return Value: int
        26: stateManageable      Return Value: boolean
        27: statisticsProvider   Return Value: boolean
        28: syntheticWebModules  Return Value: oracle.oc4j.admin.management.shared.WebModule
        29: users        Return Value: java.util.Set
        30: webSite      Return Value: java.lang.String
        31: webSiteBindings      Return Value: java.util.Map
Select one or more items as comma-separated indices: 25

Number of possible columns in the resultant metric are 1.

Enter the name for this metric column at index=0 : [state] Status
Is this column a KEY Column <y/n>? [n]
Is this column for SUMMARY_UI <y/n>? [n]
Enter the label for column: [Status]
Enter the NLSID for column: [Status]
Enter the UNIT for column "Status": [millisec, kb etc.. ]
Do you want to create a threshold for this column <y/n>? [n] y
Creating threshold!!
Following operators are available for creating thresholds:
 0: GT
 1: EQ
 2: LT
 3: LE
 4: GE
 5: CONTAINS
 6: NE
 7: MATCH
Enter the index of your choice or press <Ctrl-C> to quit: 6
Enter the CRITICAL threshold: [NotDefined] 1
Enter the WARNING threshold: [NotDefined]
Enter the number of occurrences that trigger threshold: [6] 2
Enter the message to be used when threshold is triggered: [Status is %value% and has crossed warning (%warning_threshold%) or critical (%critical_threshold%) threshold.]
Enter NLSID for the message used when threshold is triggered: [Status_cond]

Enter the name of this metric: Response
Enter the label for this metric: [Response]

Do you want periodic collection for this metric <y/n>? [n] y
Enter the collection interval in seconds: 30
Periodic collection interval is: 30 seconds.

Do you want to create another metric <y/n>? [n] n
Written the metadata xml file: ./metadata/myBPELApp.xml.
Updated the default collection file for myBPELApp at location ./default_collecti
on/myBPELApp.xml.
Exiting...

Please note that the Response metric collected in this emjmxcli session would be appended to the metadata and default_collection file created in an earlier session of the tool. (User can chose to overwrite the earlier file as well if they specific  the "o" option to the following prompt)

Do you want to overwrite the existing file, append to it, or quit <o/a/q>? [a] a

JMXインスツルメント処理されたスタンドアロンのJavaアプリケーションまたはJava仮想マシン(JVM)ターゲットの監視


注意:

JMXインスツルメント処理されていないJavaアプリケーションが稼働するJ2SE 5.0 JVMを監視する場合は、直接「スタンドアロンJavaアプリケーションまたはJVMターゲットの構成」に移動してタイプJVMのターゲット・インスタンスを作成してください。これにより、Enterprise Managerエージェント(JVMと同じホストにインストールすることを推奨)から、Enterprise Manager Grid ControlでこれらのJVMを監視できるようになります。ただし、後述する前提条件および既知の制限事項が適用されます。

Enterprise Managerには、即時利用可能なJVMターゲット・タイプが用意されています。これを使用することで、Enterprise Manager Grid Controlバージョン10.2.0.3以上でリモート管理に使用できるスタンドアロンJ2SE1.5 JVMのメトリックを追加および構成できます。

Oracle Container for J2EEにデプロイされたJ2EEアプリケーションに関して、使用するスタンドアロンJavaアプリケーションではJMX MBeanを介してデータが公開される場合は、JMXコマンドライン・ツールを使用して、このようなアプリケーションをEnterprise Managerターゲット・タイプとして定義し、このターゲット・タイプのメタデータ・ファイルおよびデフォルトの収集ファイルを生成できます。Enterprise Managerエージェント(JVMと同じホストにインストールすることを推奨)からスタンドアロン・アプリケーション・ターゲットを監視できます。そのホストで実行されている複数のJVMを、同じEnterprise Managerエージェントで監視できます。

(J2SE1.5ベースの)スタンドアロンJVMでユーザー定義のMBeanからメトリックを収集し、JMX fetchletを使用してEnterprise Manager Grid Control内に配置できます。fetchletは、引数および戻り値としてJMX OpenTypeを使用するユーザー定義のMBeanを含む、スタンドアロンのSun J2SE1.5(またはそれ以上)ベースのJVM用に設計されています。

前提条件

既知の制限事項

メタデータ・ファイルおよびデフォルトの収集ファイルの生成

OC4J上のWebサービスおよびJ2EEアプリケーションと同様に、コマンドライン・ツール(emjmxcli)は、必要なターゲット定義ファイルの作成を簡略化します。これらのファイルは、JMXインスツルメント処理されたスタンドアロンのJavaアプリケーション用のメタデータ・ファイルおよびデフォルトの収集ファイルです。このツールは、J2SE1.5以上のJVM上にあるMBeanServerに接続して使用可能なMBeanを参照できるようにする、オフライン構成ユーティリティです。後続のツール起動時にファイルの既存のセットにメトリックを追加することもできます。

コマンドライン・ツール・セッション中に、特定のMBeanを選択し、続いてEnterprise Managerがこれらの値を収集するためにこれらのMBeanに対して定期的に取得または起動する必要のある目的の属性/統計値または操作を選択します。ツールは、1つ以上のEnterprise Managerメトリック(列あり)としてのこれらの収集された値のパッケージ化の定義を支援し、またメトリック収集間隔を指定できるようにします。

JMXコマンドライン・ツールの構文

JMXコマンドライン・ツールの構文は次のとおりです。

emjmxcli -t JVM
                [  -l <JMXServiceURL>
                   -h <hostname>
                   -p <port>
                   -u <username>
                   -c <credential/password>
                   -w <work directory>
                   -e <true/false>
                   [-m <MBeanName> | -d <jmx_domain> | -s <mBeanPattern>]
                ]

emjmxcliコマンドは、次のオプションを受け入れます。

  • -t JVM: MBeanServerがスタンドアロンのJVM上にあることを示します。

  • -l: ターゲットJVMのJMXServiceURL。

  • -h: JVMのホスト名。デフォルト: localhost(-lオプションが指定されていない場合)。

  • -p: JVMのRMI/RMISポート。デフォルト: 23791(-lオプションが指定されていない場合)。アプリケーション・サーバー10.1.3.0以上のインスタンスのORACLE_HOME/opmn/binディレクトリからopmnctl status -1を実行し、MBeanのデプロイ対象となったOC4JのRMIポートを突き止めます。

  • -u: JVMの有効なユーザー名。デフォルト: なし。

  • -c: 前述のユーザーのパスワード。デフォルト: なし。このパスワードはデータの取得のみに使用されるもので、どこにも格納されません。

  • -w: メタデータ・ファイルおよびデフォルトの収集ファイルが作成される作業ディレクトリ。デフォルト: 現在のディレクトリ。コマンドライン・ツールを起動する場合は、サブディレクトリを作成してファイルを追加するために、このディレクトリに対する書込み権限が必要です。メタデータ・ファイルおよびデフォルトの収集ファイルがそのディレクトリにすでに存在する場合は、元のファイルに追加するか元のファイルを上書きするかを選択できます。

  • -e: JVMへのSSL接続を有効にする場合はtrueに設定します。デフォルト: false。

3つのパラメータ(-m-dまたは-s)のいずれかを指定して、MBeanServerで使用可能なMBeanのサブセットを取得することもできます。デフォルトでは、これらの3つのパラメータのいずれも指定されていない場合は、MBeanServer上のすべてのMBeanが表示され、そこから選択できます。

  • -m: 取得して検証する必要のある必須のMBeanのMBean ObjectName。これが複数のMBeanと一致するObjectNameパターンの場合は、パターンと一致するすべてのMBeanのリストが表示され、処理するMBeanを一度に1つずつ選択できます。

  • -d: MBeanを取得して検証する必要のある必須アプリケーションのMBeanドメイン。たとえば、アプリケーション(myApp)のすべてのMBeanを参照するとします。このアプリケーションのMBeanは、JMXドメインmyAppで使用できます。

  • -s: メトリックの定義の基にするMBeanのセットと一致するMBeanパターン。-sパラメータを使用すると、類似するタイプの複数のMbeanからJMX属性/統計を一括して取得することができます。

    -sパラメータを指定した場合、このemjmxcliセッション中に作成された結果のメトリックはEnterprise Managerコンソールに表として表示されます。この表には複数の行があり、1行が指定のパターンと一致する各MBeanを表し、MBean ObjectNameがキー列として使用されます。たとえば、-s 'oc4j:j2eeType=Servlet,*'と指定した場合、結果のメトリックには複数の行があり、ObjectNameパターンと一致するサーブレットごとに1行が存在します。MBean ObjectName列以外の列は、emjmxcliセッション中に選択された操作の戻りオブジェクトからの属性またはフィールドになります。

ファイルの生成

次の手順は、JMXコマンドライン・ツールでファイルを生成するための準備およびツールの使用方法を説明しています。

  1. MBeanがあるスタンドアロンJVMインスタンスを起動します。次の例はJVMの起動を示しています。

    JDK15/bin/java -Dcom.sun.management.jmxremote
    -Dcom.sun.management.jmxremote.port=6789 
    -Dcom.sun.management.jmxremote 
    -Dcom.sun.management.jmxremote.authenticate=false
    -Dcom.sun.management.jmxremote.ssl=false MyJMXEnabledApp $*
    

    emjmxcli fetchletは、このポート番号にJSR-160クライアントとして接続します。

  2. バージョン10.2.0.3以上のEnterprise Managerエージェントの$ORACLE_HOME/binディレクトリに移動します。

  3. 環境変数を次のように設定します。

    setenv USER_JARS /myAppHome/<myJar1.jar>;/myAppHome/<myJar2.jar>
    

    ターゲットMBeanServerに登録されているいずれかのMBeanの属性または操作、もしくはその両方でカスタム・クラスが戻される場合は、この手順を行う必要があります。Enterprise Managerエージェント(fetchlet)は、JMX OpenTypeを戻す属性または操作、もしくはその両方を効率的に監視できますが、任意のカスタム・クラスのJava Beanプロパティを(getterおよびsetterを介して)処理することもできます。


    注意:

    アプリケーション定義のMBeanによってカスタム・クラスが戻される場合は、さらに、このアプリケーションを監視するEnterprise ManagerエージェントのCLASSPATHで、対応するユーザーのjarファイルを設定する必要があります。これを行うには、このjarファイルの場所をEnterprise Managerエージェントの$ORACLE_HOME/sysman/config/classpath.lstファイルに手動で挿入し、エージェントを再起動します。

  4. 次のコマンドを実行します。

    ./emjmxcli –t JVM –h localhost –p 6789 u <user> -c <password>
    

    詳細は次のとおりです。

    • -t JVM: MBeanServerが標準のJVM上で稼働していることを示します。

    • -h: JVMが稼働するホストの名前。

    • -p: JSR-160リモート・アクセス用にJVMを有効化するポート番号。

    -h <host>および-p <port>の各オプションのかわりに-l <JMXServiceURL>オプションを指定することもできます。

    -w <work directory>オプションを使用してemjmxcliを起動し、指定された作業ディレクトリにメタデータ・ファイルおよびデフォルトの収集ファイルを作成できます。emjmxcliの起動時に-wを指定しない場合は、デフォルトで現在のディレクトリ(emjmxcliを起動するディレクトリ)が使用されます。

起動後は、例6–10に示すように、コマンドライン・インタフェースによって必要な情報を求めるプロンプトが自動的に表示されます。ほとんどのプロンプトでは、デフォルトを使用するために[Enter]キーを押すだけで構いません。JMXコマンドライン・ツール・セッションを中断する必要がある場合は、任意の時点で[Ctrl]+[C]を押して終了できます。セッション情報は保存されません。

終了後にセッションが終わると、その結果がmetadata/myJ2EEApp.xmlのようなmyJ2EEApp.xmlファイル(または指定したターゲット・タイプ)になります。また、定期的な収集を指定した場合はdefault_collection/myJ2EEApp.xmlファイルになります。

サンプルのEMJMXCLI起動

次のサンプルは、リモートMBeanServerのすべてのMBeanを参照できるようにします。

./emjmxcli –t JVM –p 6789 (the host defaults to “localhost”)

次のサンプルは、コマンドライン・インタフェースを起動し、-mオプションの引数として指定されたMBeanPatternに基づいてMBeanをフィルタ処理します。

./emjmxcli –t JVM –p 6789 –m “java.lang:*”

例6-10 サンプルのEMJMXCLIセッション

oracleHome=/ade/sparmesw_emas_ml/oracle
userJars=
 
Connecting to server: localhost:6789
Connecting without authentication. For specifying username and password use
the 
-u and -c options.
 
Obtained 14 MBeans matching pattern java.lang:*. 
 
Enter the target type for this metric: [myJ2EEApp] myJavaApp
 
Enter the target version: [1.0] 
 
Enter the target metadata file: [./metadata/myJavaApp.xml] 
 
Enter the default collections file: [./default_collection/myJavaApp.xml] 
 
Enter a label for this target type: [myJavaApp] 
 
Enter a description for this target type: [myJavaApp] 
The available targets are: 
0: sun.management.CompilationImpl
        (java.lang:type=Compilation)1: sun.management.MemoryManagerImpl        (java.lang:name=CodeCacheManager,type=MemoryManager)2: sun.management.GarbageCollectorImpl        (java.lang:name=Copy,type=GarbageCollector)3: sun.management.MemoryPoolImpl        (java.lang:name=Eden Space,type=MemoryPool)4: sun.management.RuntimeImpl        (java.lang:type=Runtime)5: sun.management.ClassLoadingImpl        (java.lang:type=ClassLoading)6: sun.management.MemoryPoolImpl        (java.lang:name=Survivor Space,type=MemoryPool)7: sun.management.ThreadImpl        (java.lang:type=Threading)

8: sun.management.GarbageCollectorImpl        (java.lang:name=MarkSweepCompact,type=GarbageCollector)9: com.sun.management.UnixOperatingSystem        (java.lang:type=OperatingSystem)10: sun.management.MemoryImpl        (java.lang:type=Memory)11: sun.management.MemoryPoolImpl        (java.lang:name=Code Cache,type=MemoryPool)12: sun.management.MemoryPoolImpl        (java.lang:name=Tenured Gen,type=MemoryPool)13: sun.management.MemoryPoolImpl        (java.lang:name=Perm Gen,type=MemoryPool)Enter the index of target/MBean you wish to monitor or press <Ctrl-C> to quit: 4Following metric source types are available for selected target(s):        0: JMX AttributesEnter the index of your choice or press <Ctrl-C> to quit: 0Attributes are:         0: BootClassPath         Return Value: java.lang.String        1: BootClassPathSupported        Return Value: boolean        2: ClassPath     Return Value: java.lang.String        3: InputArguments        Return Value: [Ljava.lang.String;        4: LibraryPath   Return Value: java.lang.String        5: ManagementSpecVersion         Return Value: java.lang.String        6: Name  Return Value: java.lang.String        7: SpecName      Return Value: java.lang.String        8: SpecVendor    Return Value: java.lang.String        9: SpecVersion   Return Value: java.lang.String        10: StartTime    Return Value: long        11: SystemProperties     Return Value:javax.management.openmbean.TabularData        12: Uptime       Return Value: long        13: VmName       Return Value: java.lang.String        14: VmVendor     Return Value: java.lang.String        15: VmVersion    Return Value: java.lang.StringSelect one or more items as comma-separated indices: 6,7,8

Number of possible columns in the resultant metric are 3.Enter the name for this metric column at index=0 : [Name] Is this column a KEY Column <y/n>? [n] yIs this column for SUMMARY_UI <y/n>? [n] Enter the label for column: [Name] Enter the NLSID for column: [Name] Enter the UNIT for column "Name": [millisec, kb etc.. ] Enter the name for this metric column at index=1 : [SpecName] Is this column a KEY Column <y/n>? [n] Is this column for SUMMARY_UI <y/n>? [n] Enter the label for column: [SpecName] Enter the NLSID for column: [SpecName] Enter the UNIT for column "SpecName": [millisec, kb etc.. ] Do you want to create a threshold for this column <y/n>? [n] Enter the name for this metric column at index=2 : [SpecVendor] Is this column a KEY Column <y/n>? [n] Is this column for SUMMARY_UI <y/n>? [n] Enter the label for column: [SpecVendor] Enter the NLSID for column: [SpecVendor] Enter the UNIT for column "SpecVendor": [millisec, kb etc.. ] Do you want to create a threshold for this column <y/n>? [n]

Enter the name of this metric: RuntimeMetricEnter the label for this metric: [RuntimeMetric] Do you want periodic collection for this metric <y/n>? [n] yEnter the collection interval in seconds: 300Periodic collection interval is: 300 seconds.Do you want to create another metric <y/n>? [n] Written the metadata xml file: ./metadata/myJavaApp.xml.Creating new file: ./default_collection/myJavaApp.xml.Updated the default collection file for myJavaApp at location./default_collection/myJavaApp.xml.Exiting...

メタデータ・ファイルおよびデフォルトの収集ファイルの使用方法

<currentDir>/metadataディレクトリおよびcurrentDir/default_collectionディレクトリで(先に指定したターゲット・タイプの)myTarget.xmlファイルを探します。

これらのファイルは、次のように使用できます。

  • ファイルを管理プラグイン・アーカイブ(MPA)に変換して、OMSからエージェントおよびOMSから作成されたターゲット・インスタンスへプッシュします。「管理プラグイン・アーカイブの作成」および「スタンドアロンJavaアプリケーションまたはJVMターゲットの構成」を参照してください。

  • ファイルを編集し、メトリック定義およびQueryDescriptorsを抽出して他のメタデータ・ファイルおよびデフォルトの収集ファイルへ移し、必要に応じてExecutionDescriptorsを作成して後処理を行います。

ターゲットのステータス情報をEnterprise Managerコンソールに正しく表示するには、レスポンス・メトリックを定義する必要があります。詳細は、「ターゲット・ステータス情報の表示」を参照してください。

Oracle Weblogic Application ServerにデプロイされたJMXアプリケーションの監視

11.1の管理エージェントに付属するJMX fetchletを使用すると、Oracle WebLogic Application Server 9.x以上にデプロイされたJMXインスツルメント処理されたアプリケーションで主要なメトリックを監視できます。JMXインスツルメント処理されたアプリケーションをEnterprise Managerで監視すると、Enterprise Managerが管理プラグインを介して監視できる新しいターゲット・タイプを定義することになります。Webサービスwsperfcliコマンドライン・ツールと同様に(そしてOracle Application Server(OC4J)に対して可能であったように)、Enterprise Managerには、weblogicサーバーでJMXインスツルメント処理されたカスタム・アプリケーションに対する、ターゲット・メタデータ・ファイルおよび収集ファイルの生成を自動化するためのemjmxcliコマンドライン・ツールが用意されています。

前提条件

emjmxcliを使用したメタデータ・ファイルおよびデフォルトの収集ファイルの作成

Webサービスと同様に、JMXコマンドライン・ツール(emjmxcli)は、必要なターゲット定義ファイル(メタデータ・ファイルおよびデフォルトの収集ファイル)の作成を簡略化します。このツールは、MBeanServerに接続して使用可能なMBeanを参照できるようにする、オフライン構成ユーティリティです。後続のツール起動時に既存のファイルにメトリックを追加することもできます。コマンドライン・ツール・セッション中に、特定のMBeanを選択し、続いてEnterprise Managerが取得する必要のある目的のJMX属性/統計値を選択するか、またはこれらの値を収集するためにこれらのMBeanで定期的に起動が必要なJMX操作を選択します。ツールは、1つ以上のEnterprise Managerメトリック(列あり)としてのこれらの収集された値のパッケージ化の定義を支援し、またメトリック収集間隔および列のしきい値を指定できるようにします。

JMXコマンドライン・ツールの構文

Oracle Weblogic Application Server上にあるJMX対応ターゲットのJMXコマンドライン・ツールの構文は次のとおりです。

emjmxcli -t WebLogic [help|options]
  where options are:           [  -l <JMX ServiceURL>              
              -u <username>
              -c <credential/password>
              -w <work directory>              
              [-m <MBeanName> | -d <jmx_domain> | -s mBeanPattern>]
                ]

emjmxcliコマンドは、次のオプションを受け入れます。

  • l: カスタムMBeanをフォームでホスティングするWeblogic管理対象サーバーへのJMXServiceURL

    service:jmx:t3://<host:t3port>/jndi/weblogic.management.mbeanservers.runtime
    
  • u: Weblogicドメインの有効なユーザー名。デフォルト: "weblogic"

  • c: -uオプションで指定されたユーザーに関連付けられているパスワード。デフォルト: なし。パスワードを指定しない場合、パスワードの入力を求められます。

  • w: JMXコマンドライン・ツールで作成されたメタデータ・ファイルおよびデフォルトの収集ファイルが置かれるディレクトリ。デフォルト: 現在のディレクトリ。

    コマンドライン・ツールを起動する場合は、サブディレクトリを作成してファイルを追加するために、このディレクトリに対する書込み権限が必要です。メタデータ・ファイルおよびデフォルトの収集ファイルがそのディレクトリにすでに存在する場合は、元のファイルに追加するか元のファイルを上書きするかを選択できます。

3つのパラメータ(-m、-dまたは-s)のいずれかを指定して、MBeanServerで使用可能なMBeanのサブセットを取得することもできます。デフォルトでは、これらの3つのパラメータのいずれも指定されていない場合は、MBeanServer上のすべてのMBeanが表示され、そこから選択できます。

  • m: 取得して検証する必要のある必須のMBeanのMBean ObjectName。これが複数のMBeanと一致するObjectNameパターンの場合は、パターンと一致するすべてのMBeanのリストが表示され、処理するMBeanを一度に1つずつ選択できます。

  • d: MBeanを取得して検証する必要のある必須アプリケーションのMBeanドメイン。たとえば、アプリケーション(myApp)のすべてのMBeanを参照するとします。このアプリケーションのMBeanは、JMXドメインmyAppで使用できます。

  • s: メトリックの定義の基にするMBeanの既存のセットと一致するMBeanパターン。-sパラメータを使用すると、類似するタイプの複数のMBeanからJMX属性/統計を1つのメトリック内に取得することができます。

    -sパラメータを指定した場合、このemjmxcliセッション中に作成された結果のメトリックはEnterprise Managerコンソールに表として表示されます。この表には複数の行があり、1行が指定のパターンと一致する各MBeanを表します(定義されているキー列が他にない場合はMBean ObjectNameがキー列として使用されます)。たとえば、-s 'com.bea:Type=ServletRuntime,*'と指定した場合、結果のメトリックには複数の行があり、ObjectNameパターンと一致するサーブレットごとに1行が存在します。MBean ObjectNameキー列以外の列は、emjmxcliセッション中に選択された操作の戻りオブジェクトからの属性またはフィールドになります。

ファイルの生成

JMXコマンドライン・ツールを開始するには、次のようにします。

  1. $AGENT_HOME/binディレクトリに移動します。

  2. 次のコマンドを実行します。

    emjmxcli -t WebLogic [OPTIONS]

起動後に、コマンドライン・インタフェースは、次の例に示すように必要な情報を求めるプロンプトを自動的に表示します。JMXコマンドライン・ツール・セッションを中断する必要がある場合は、任意の時点で[Ctrl]+[C]を押して終了できます。セッション情報は保存されません。

次の例は、emjmxcliセッションのサンプルです。

例6-11 emjmxcliセッション

ade:[ sparmesw_egcli ] [sparmesw@stacc20 bin]$ ./emjmxcli -t WebLogic -l "service:jmx:t3://stbct14:22048/jndi/weblogic.management.mbeanservers.runtime" -u weblogic -c welcome1 -s "*:type=soainfra_bpel_requests,*"

注意1: 前述の-sオプションでは、emagentでメトリックが収集されるたびに、指定されたObjectNameパターンに一致するMBeansの数と同じ行数を持つメトリックが生成されます。常に特定のMBeanから収集する必要がある場合は、-m <ObjectName>オプションを、前述の例で使用されている-s <Mbean pattern>のかわりに使用してください。

注意2: t3sを使用してweblogicサーバーに接続する必要がある場合は次の環境変数を、emjmxcliを起動する前に設定します。

setenv USER_JAVA_PROPS=-Dweblogic.security.TrustKeyStore=CustomTrust
 -Dweblogic.security.CustomTrustKeyStoreFileName=$ORACLE_HOME/sysman/config/montrust/AgentTrust.jks
 -Dweblogic.security.SSL.enforceConstraints=off
 -Dweblogic.security.SSL.ignoreHostnameVerification=true
 -Djavax.net.ssl.trustStore=$ORACLE_HOME/sysman/config/montrust/AgentTrust.jks  (or set USER_JAVA_PROP= … equivalent on win32)
setenv USER_JARS  <; separated list of jars needed in classpath if custom authentication modules are involved in SSL connection>

セミコロンがjarファイルのリストのデリミタとして使用されます。

例: setenv USER_JARS "jar1;jar2;jar3"

MBeanがカスタムweblogicオブジェクトをMBeanInfoで返すようなケースでは、emjmxcliを起動する前に、weblogic.jarを前述の環境変数に設定することが必要な場合があります。

例: setenv USER_JARS $BEA_HOME/server/lib/weblogic.jar

oracleHome=/ade/sparmesw_egcli/oracle/work/middleware/oms
userJars=
Connecting to server:
 service:jmx:t3://stbct14:22048/jndi/weblogic.management.mbeanservers.runtime
Connecting as user: weblogic
Obtained 3 MBeans matching pattern *:type=soainfra_bpel_requests,*. 

Enter the target type for this metric: [myJ2EEApp] myCustomWLApp
Enter the target version: [1.0] 
Enter the target metadata file: [./metadata/myCustomWLApp.xml] 
Enter the default collections file: [./default_collection/myCustomWLApp.xml] 
Enter a label for this target type: [myCustomWLApp] 
Enter a description for this target type: [myCustomWLApp] 
The available targets are: 
0: DMS metric mbean
        (oracle.dms:name=/soainfra/engines/bpel/requests/engine,type=soainfra_bpel_requests)
1: DMS metric mbean
        (oracle.dms:name=/soainfra/engines/bpel/requests/system,type=soainfra_bpel_requests)
2: DMS metric mbean
        (oracle.dms:name=/soainfra/engines/bpel/requests/invoke,type=soainfra_bpel_requests)
Following metric source types are available for selected target(s):
        0: JMX Attributes
Enter the index of your choice or press <Ctrl-C> to quit: 0
Attributes are: 
        0: active_count  Return Value: java.lang.Integer
        1: active_maxValue       Return Value: java.lang.Integer
        2: active_minValue       Return Value: java.lang.Integer
        3: active_value  Return Value: java.lang.Integer
        4: Name  Return Value: java.lang.String
        5: Parent        Return Value: java.lang.String
        6: scheduled_count       Return Value: java.lang.Integer
        7: scheduled_maxValue    Return Value: java.lang.Integer
        8: scheduled_minValue    Return Value: java.lang.Integer
        9: scheduled_value       Return Value: java.lang.Integer
        10: threadCount_count    Return Value: java.lang.Integer
        11: threadCount_maxValue         Return Value: java.lang.Integer
        12: threadCount_minValue         Return Value: java.lang.Integer
        13: threadCount_value    Return Value: java.lang.Integer

Select one or more items as comma separated indices: 4,0,1,2
Number of possible columns in the resultant metric are 4.

Enter the name for this metric column at index=0 : [Name] 
Is this column a KEY Column <y/n>? [n] y

"y"を指定すると、複数の行が返されるような場合にこの列の値が一意であることが示されます。

Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [Name] 
Enter the NLSID for column: [Name] 
Enter the UNIT for column "Name": [millisec, kb etc.. ] 

Enter the name for this metric column at index=1 : [active_count] 
Is this column a KEY Column <y/n>? [n] 
Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [active_count] 
Enter the NLSID for column: [active_count] 
Enter the UNIT for column "active_count": [millisec, kb etc.. ] 
Do you want to create a threshold for this column <y/n>? [n] y
Creating threshold!!
Following operators are available for creating thresholds: 
 0: GT
 1: EQ
 2: LT
 3: LE
 4: GE
 5: CONTAINS
 6: NE
 7: MATCH

Enter the index of your choice or press <Ctrl-C> to quit: 0
Enter the CRITICAL threshold: [NotDefined] 50
Enter the WARNING threshold: [NotDefined] 45
Enter the number of occurrences that trigger threshold: [6] 3
Enter the message to be used when threshold is triggered: [active_count is %value% and has crossed warning (%warning_threshold%) or critical (%critical_threshold%) threshold.] 
Enter NLSID for the message used when threshold is triggered: [active_count_cond] Enter the name for this metric column at index=2 : [active_maxValue] 
Is this column a KEY Column <y/n>? [n] 
Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [active_maxValue] 
Enter the NLSID for column: [active_maxValue] 
Enter the UNIT for column "active_maxValue": [millisec, kb etc.. ] 
Do you want to create a threshold for this column <y/n>? [n] 

Enter the name for this metric column at index=3 : [active_minValue] 
Is this column a KEY Column <y/n>? [n] 
Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [active_minValue] 
Enter the NLSID for column: [active_minValue] 
Enter the UNIT for column "active_minValue": [millisec, kb etc.. ] 
Do you want to create a threshold for this column <y/n>? [n] 

Enter the name of this metric: bpel_requests
Enter the label for this metric: [bpel_requests] 

Do you want periodic collection for this metric <y/n>? [n] y
Enter the collection interval in seconds: 300
Periodic collection interval is: 300 seconds.

Do you want to create another metric <y/n>? [n]  
Written the metadata xml file: ./metadata/myCustomWLApp.xml.
Creating new file: ./default_collection/myCustomWLApp.xml.
Updated the default collection file for myCustomWLApp at location ./default_collection/myCustomWLApp.xml.
Exiting...

例6-12 サンプルのemjmxcli起動(-mを使用し、複数のMBeanからの複数のメトリックを1つのemjmxcliセッションで定義)

$ ./emjmxcli -t WebLogic -l "service:jmx:t3://stbct14:22048/jndi/weblogic.management.mbeanservers.runtime" -u weblogic -c welcome1 -m "com.bea:ApplicationRuntime=soa-infra,WebAppComponentRuntime=soa_server1_/b2b,*"

oracleHome=/ade/sparmesw_egcli/oracle/work/middleware/oms
userJars=
Connecting to server: service:jmx:t3://stbct14:22048/jndi/weblogic.management.mbeanservers.runtime
Connecting as user: weblogic
Obtained 8 MBeans matching pattern com.bea:ApplicationRuntime=soa-infra,WebAppComponentRuntime=soa_server1_/b2b,*. 

Enter the target type for this metric: [myJ2EEApp] myCustomWLApp

Enter the target version: [1.0] 

Enter the target metadata file: [./metadata/myCustomWLApp.xml] 

Enter the default collections file: [./default_collection/myCustomWLApp.xml] 
The file ./metadata/myCustomWLApp.xml already exists. 

Do you want to overwrite the existing file, append to it, or quit <o/a/q>? [a] 

注意: ファイルがすでに存在するため、これは追加されます。

Appending to existing file: ./metadata/myCustomWLApp.xml.The available targets are: 0: (com.bea:ApplicationRuntime=soa-infra,Name=JspServlet,ServerRuntime=soa_server1,Type=ServletRuntime,WebAppComponentRuntime=soa_server1_/b2b)1: (com.bea:ApplicationRuntime=soa-infra,Name=transportServlet,ServerRuntime=soa_server1,Type=ServletRuntime,WebAppComponentRuntime=soa_server1_/b2b)2: (com.bea:ApplicationRuntime=soa-infra,Name=transportServletV,ServerRuntime=soa_server1,Type=ServletRuntime,WebAppComponentRuntime=soa_server1_/b2b)3: (com.bea:ApplicationRuntime=soa-infra,Name=b2b_starter_wls,ServerRuntime=soa_server1,Type=ServletRuntime,WebAppComponentRuntime=soa_server1_/b2b)4: (com.bea:ApplicationRuntime=soa-infra,Name=soa_server1_soa_server1_/b2b,ServerRuntime=soa_server1,Type=PageFlowsRuntime,WebAppComponentRuntime=soa_server1_/b2b)5 (com.bea:ApplicationRuntime=soa-infra,Name=WebServiceServlet,ServerRuntime=soa_server1,Type=ServletRuntime,WebAppComponentRuntime=soa_server1_/b2b)6: (com.bea:ApplicationRuntime=soa-infra,Name=RedirectUIServlet,ServerRuntime=soa_server1,Type=ServletRuntime,WebAppComponentRuntime=soa_server1_/b2b)7: (com.bea:ApplicationRuntime=soa-infra,Name=FileServlet,ServerRuntime=soa_server1,Type=ServletRuntime,WebAppComponentRuntime=soa_server1_/b2b)Enter the index of target/MBean you wish to monitor or press <Ctrl-C> to quit: 4Following metric source types are available for selected target(s):        0: JMX Attributes        1: JMX OperationsEnter the index of your choice or press <Ctrl-C> to quit: 0Attributes are:         0: AppName       Return Value: java.lang.String        1: ContextPath   Return Value: java.lang.String        2: HttpServerName        Return Value: java.lang.String        3: Name  Return Value: java.lang.String        4: PageFlows     Return Value: [Ljavax.management.ObjectName;        5: Parent        Return Value: javax.management.ObjectName        6: ServerName    Return Value: java.lang.String        7: Type  Return Value: java.lang.StringSelect one or more items as comma separated indices: 3,0,1Number of possible columns in the resultant metric are 3.Enter the name for this metric column at index=0 : [Name] Is this column a KEY Column <y/n>? [n] yIs this column for SUMMARY_UI <y/n>? [n] Enter the label for column: [Name] Enter the NLSID for column: [Name] Enter the UNIT for column "Name": [millisec, kb etc.. ] Enter the name for this metric column at index=1 : [AppName] Is this column a KEY Column <y/n>? [n] Is this column for SUMMARY_UI <y/n>? [n] Enter the label for column: [AppName] Enter the NLSID for column: [AppName] Enter the UNIT for column "AppName": [millisec, kb etc.. ] Do you want to create a threshold for this column <y/n>? [n] Enter the name for this metric column at index=2 : [ContextPath] Is this column a KEY Column <y/n>? [n] Is this column for SUMMARY_UI <y/n>? [n] Enter the label for column: [ContextPath] Enter the NLSID for column: [ContextPath] Enter the UNIT for column "ContextPath": [millisec, kb etc.. ] Do you want to create a threshold for this column <y/n>? [n] Enter the name of this metric: PageFlowsRuntimeEnter the label for this metric: [PageFlowsRuntime] Do you want periodic collection for this metric <y/n>? [n] yEnter the collection interval in seconds: 3600Periodic collection interval is: 3600 seconds.Do you want to create another metric <y/n>? [n] y    

これは、このemjmxcliセッションでさらにメトリックを作成する必要があることを示しています。このプロセスは、ユーザーが質問に"n"と答えるまで繰り返されます。

Do you want to create another metric <y/n>? [n] Written the metadata xml file: ./metadata/myCustomWLApp.xml.Updated the default collection file for myCustomWLApp at location ./default_collection/myCustomWLApp.xml.Exiting...

JMXコマンドライン・ツールによってターゲット・メタデータ・ファイルおよび収集ファイルが生成されたら、管理プラグイン・アーカイブを作成できます。

ターゲット・ステータス情報の表示

ターゲットのステータス情報がEnterprise Managerコンソールに正しく表示されるためには、クリティカルしきい値が設定された「ステータス」という名前の列を持つ「レスポンス」というメトリックを定義する必要があります。メトリック値がクリティカルしきい値を下回っている場合、このタイプのターゲット・インスタンスのステータスはコンソールに「稼働中」(使用可能)として表示されます。しきい値を超えている場合、ターゲット・ステータスはコンソールに「停止中」として表示されます。「レスポンス」メトリックは別のemjmxcliセッションで作成できます(以前のセッションで作成されたメタデータ・ファイルおよび収集ファイルにメトリックを追加します。

例6-13 「レスポンス」メトリックの追加

setenv USER_JARS $T_WORK/middleware/wlserver_10.3/server/lib/weblogic.jar

これは、JMXクライアント(emjmxcli)がそのクラスパス内で必要とするWeblogic固有クラスを、MBeanが返す場合に必要になります。

$ ./emjmxcli -t WebLogic -l "service:jmx:t3://stbct14:22048/jndi/weblogic.management.mbeanservers.runtime" -u weblogic -c welcome1 -m com.bea:Type=ApplicationRuntime,Name=soa-infra,*"

WeblogicにデプロイされたJ2EEアプリケーションに対して、アプリケーションのデプロイに対応するApplicationRuntime MBeanのActiveVersionState JMX属性を、Status列として作成することが適切な場合があります。ただし、アプリケーションに関連するその他のMBeanのその他すべての属性も使用される可能性があります。

oracleHome=/ade/sparmesw_egcli/oracle/work/middleware/oms
userJars=
Connecting to server: service:jmx:t3://stbct14:22048/jndi/weblogic.management.mbeanservers.runtime
Connecting as user: weblogic
Obtained 1 MBeans matching pattern
 com.bea:Type=ApplicationRuntime,Name=soa-infra,*. 
Enter the target type for this metric: [myJ2EEApp] myCustomWLApp
Enter the target version: [1.0] 
Enter the target metadata file: [./metadata/myCustomWLApp.xml] 
Enter the default collections file: [./default_collection/myCustomWLApp.xml] 
The file ./metadata/myCustomWLApp.xml already exists. 

Do you want to overwrite the existing file, append to it, or quit <o/a/q>? [a] 
Appending to existing file: ./metadata/myCustomWLApp.xml.
The available targets are: 
0: (com.bea:Name=soa-infra,ServerRuntime=soa_server1,Type=ApplicationRuntime)
Enter the index of target/MBean you wish to monitor or press <Ctrl-C> to quit: 0
Following metric source types are available for selected target(s):
        0: JMX Attributes
        1: JMX Operations
Enter the index of your choice or press <Ctrl-C> to quit: 0
Attributes are: 
        0: ActiveVersionState    Return Value: java.lang.Integer
        1: ApplicationName       Return Value: java.lang.String
        2: ApplicationVersion    Return Value: java.lang.String
        3: ClassRedefinitionRuntime      Return Value: javax.management.ObjectName        4: ComponentRuntimes     Return Value: [Ljavax.management.ObjectName;
        5: EAR   Return Value: java.lang.Boolean
        6: HealthState   Return Value: weblogic.health.HealthState
        7: KodoPersistenceUnitRuntimes   Return Value: [Ljavax.management.ObjectName;        8: LibraryRuntimes       Return Value: [Ljavax.management.ObjectName;
        9: MaxThreadsConstraintRuntimes  Return Value: [Ljavax.management.ObjectName;
        10: MinThreadsConstraintRuntimes         Return Value: [Ljavax.management.ObjectName;
        11: Name         Return Value: java.lang.String
        12: OptionalPackageRuntimes      Return Value: [Ljavax.management.ObjectName;
        13: Parent       Return Value: javax.management.ObjectName
        14: QueryCacheRuntimes   Return Value: [Ljavax.management.ObjectName;
        15: RequestClassRuntimes         Return Value: [Ljavax.management.ObjectName;
        16: Type         Return Value: java.lang.String
        17: WorkManagerRuntimes  Return Value: [Ljavax.management.ObjectName;
        18: WseeRuntimes         Return Value: [Ljavax.management.ObjectName;

Select one or more items as comma separated indices: 0

Number of possible columns in the resultant metric are 1.

Enter the name for this metric column at index=0 : [ActiveVersionState] Status

注意: 列名は"Status"にしてください。

Is this column a KEY Column <y/n>? [n] 
Is this column for SUMMARY_UI <y/n>? [n] 
Enter the label for column: [Status] 
Enter the NLSID for column: [Status] 
Enter the UNIT for column "Status": [millisec, kb etc.. ] 
Do you want to create a threshold for this column <y/n>? [n] y
Creating threshold!!
Following operators are available for creating thresholds: 
 0: GT
 1: EQ
 2: LT
 3: LE
 4: GE
 5: CONTAINS
 6: NE
 7: MATCH

Enter the index of your choice or press <Ctrl-C> to quit: 6
Enter the CRITICAL threshold: [NotDefined] 2

レスポンス・メトリックのStatus列でCRITICAL THRESHOLDがトリガーされると、ターゲットのステータスが停止中としてマークされます。このケースでは値 != ACTIVATED(つまり、!= 2)の場合です。

Enter the WARNING threshold: [NotDefined] 
Enter the number of occurrences that trigger threshold: [6] 1
Enter the message to be used when threshold is triggered: [Status is %value% and has crossed warning (%warning_threshold%) or critical (%critical_threshold%) threshold.] 
Enter NLSID for the message used when threshold is triggered: [Status_cond] 

Enter the name of this metric: Response

注意: メトリック名は"Response"にしてください。

Enter the label for this metric: [Response] 

Do you want periodic collection for this metric <y/n>? [n] y
Enter the collection interval in seconds: 30
Periodic collection interval is: 30 seconds.

Do you want to create another metric <y/n>? [n] 
Written the metadata xml file: ./metadata/myCustomWLApp.xml.
Updated the default collection file for myCustomWLApp at location ./default_collection/myCustomWLApp.xml.
Exiting...

メタデータ・ファイルおよびデフォルトの収集ファイルの使用方法

<currentDir>/metadataディレクトリおよびcurrentDir/default_collectionディレクトリで(先に指定したターゲット・タイプの)myTarget.xmlファイルを探します。

これらのファイルは、次のように使用できます。

ターゲットのステータス情報をEnterprise Managerコンソールに正しく表示するには、レスポンス・メトリックを定義する必要があります。詳細は、「ターゲット・ステータス情報の表示」を参照してください。

管理プラグイン・アーカイブの作成


注意:

管理プラグインの作成プロセスは、Webサービス、JMXインスツルメント処理およびスタンドアロンJVMのターゲット・タイプに適用されます。「JMXインスツルメント処理されたスタンドアロンのJavaアプリケーションまたはJava仮想マシン(JVM)ターゲットの監視」から「管理エージェントへの管理プラグインのデプロイ」までの項では、Webサービスを例として使用します。

Enterprise Managerコマンドライン・インタフェース(EM CLI)を使用して、次の例に示すように管理プラグイン・アーカイブを作成します。

>./emcli add_mp_to_mpa -mpa=TargetWithWSMgmtInterface.jar -mp_version="1.0" -ttd="{META_FILE} -dc="${DC_FILE}"

META_FILEおよびDC_FILEは、Webサービス・コマンドライン・ツールによって生成されたターゲット・メタデータ・ファイルおよびデフォルトの収集ファイルを表します。EM CLIの詳細は、Oracle Enterprise Managerコマンドライン・インタフェース・ガイドを参照してください。

アーカイブjarファイルが作成されると、アーカイブをEnterprise Managerにアップロードし、管理プラグインをインポートできます。管理プラグイン・アーカイブの詳細は、第2章「管理プラグインの開発」を参照してください。

管理プラグインのインポート

次の手順は、アーカイブ・ファイルからの管理プラグインのインポートです。この操作は、Enterprise Managerコンソールから実行します。

  1. Enterprise Managerコンソールで、「設定」をクリックします。

  2. 左側のナビゲーション・バーで、「管理プラグイン」をクリックします。

  3. 「インポート」をクリックします。

  4. 「インポート」ページで、管理プラグイン・アーカイブ・ファイルを指定し、「リスト・アーカイブ」をクリックします。アーカイブに含まれるすべての管理プラグインが表示されます。

  5. リストからWebサービス管理プラグインを選択し、「OK」をクリックします。Enterprise Managerにより、Webサービス固有のプラグインがリストに追加された「管理プラグイン」ページに戻ります。

図6-1 TargetWithWSMgmtInterface管理プラグインのインポート

図6-1の説明が続きます
「図6-1 TargetWithWSMgmtInterface管理プラグインのインポート」の説明

管理エージェントへの管理プラグインのデプロイ

管理プラグインがEnterprise Managerにインポートされると、プラグインを任意の数の管理エージェントにデプロイできます。エージェントに管理プラグインをデプロイすると、エージェントはWebサービス管理インタフェースを公開しているターゲットを監視できます。

  1. 管理プラグインのメイン・ページで、デプロイする管理プラグインの「デプロイ」アイコンをクリックします。次の図に示すように、「管理プラグインのデプロイ: ターゲットの選択」ページが表示されます。

    図6-2 管理エージェントへの管理プラグインのデプロイ

    図6-2の説明が続きます
    「図6-2 管理エージェントへの管理プラグインのデプロイ」の説明

  2. 「エージェントの追加」をクリックします。「検索と選択: エージェント」ページが表示されます。

  3. 目的の管理エージェントを選択します。適切な検索パラメータを使用して、目的のエージェントを検索します。

  4. 「選択」をクリックします。Enterprise Managerにより、「管理プラグインのデプロイ: ターゲットの選択」ページに戻ります。選択したエージェントがデプロイ・リストに表示されます。

    1つ以上の選択したエージェントについてデプロイの問題が検出された場合は、「デプロイの検証」ページが表示されます。問題が検出されたエージェントのみがこのページの表に表示されます。詳細は、オンライン・ヘルプを参照してください。

  5. 「次」をクリックして、「確認」ページに進みます。管理プラグインの名前とバージョンが表示されます。このページには、デプロイ・プロセスに関連する重要な情報が含まれています。先に進む前に、情報を理解してください。

  6. 「終了」をクリックします。

ターゲット・インスタンスの追加

管理プラグインが適切なエージェントにデプロイされたため、管理プラグインで定義されたターゲット・タイプの監視を開始する準備ができます。異なるターゲット・タイプ・プロパティがあるため、すべてのターゲット・タイプを追加する個々の手順を説明します。

Webサービス・ターゲット・インスタンスの追加

管理プラグインが適切なエージェントにデプロイされたため、管理プラグインで定義されたWebサービス管理インタフェースを公開するターゲットの監視を開始できます。

  1. 管理エージェントのホームページの「監視ターゲット」セクションで、「追加」ドロップダウン・メニューから目的のターゲット・タイプを選択し、「実行」をクリックします。「ターゲットの追加」ページが表示されます。

    「Basic認証用ユーザー名」/「Basic認証用パスワード」は、Webサービスへのアクセスに使用されるログイン資格証明です。

  2. 必要なターゲット・プロパティを入力し、「OK」をクリックします(図6-3を参照)。新規に追加したターゲットがエージェントの「監視ターゲット」リストに表示されます。

図6-3 ターゲット・インスタンスの追加

図6-3の説明が続きます
「図6-3 ターゲット・インスタンスの追加」の説明

JMXインスツルメント処理されたJ2EEターゲット・インスタンスの追加

JMXインスツルメント処理されたターゲット・タイプを定義する管理プラグインをデプロイした場合は、これらのターゲットをEnterprise Manager Grid Controlで収集できるようにJMX対応のJ2EEアプリケーション・ターゲットの構成を開始できます。

  1. 管理エージェントのホームページの「監視ターゲット」セクションで、「追加」ドロップダウン・メニューから目的のターゲット・タイプを選択し、「実行」をクリックします。「ターゲットの追加」ページが表示されます。

    図6-4 JMXターゲット・タイプの選択

    図6-4の説明が続きます
    「図6-4 JMXターゲット・タイプの選択」の説明

  2. 図6-5のように必要なターゲット・プロパティを入力し、「OK」をクリックします。新規に追加したターゲットがエージェントの「監視ターゲット」リストに表示されます。

    図6-5 JMXターゲット・プロパティの指定

    図6-5の説明が続きます
    「図6-5 JMXターゲット・プロパティの指定」の説明

    表6–1に、インスタンス・プロパティの定義を示します。

    表6-1 JMXターゲット・プロパティ

    プロパティ 定義

    名前

    このターゲット・インスタンスの一意の名前。

    MachineName

    バージョン10.1.3以上のOracle Application Serverを実行しているマシンのホスト名/IPアドレス。

    Oracleホームのパス

    アプリケーション・サーバーのOracle_Homeへの絶対パス。

    OC4JInstanceName

    このJMX対応のj2eeアプリケーションがデプロイされるOC4Jのインスタンス名。デフォルトはhomeインスタンスです。

    JVMId

    このOC4Jインスタンスが複数のJVMを実行している場合は、このメトリックを収集する必要のあるJVMの索引(1から開始)です(複数のJVMがある場合は、JVMインスタンスごとにターゲット・インスタンスを追加できます)。

    注意: ユーザーは、複数のJVMで実行しているこれらすべてのターゲット・インスタンスからグループを作成できます。また、すべてのJVM、ダッシュボードおよび集計監視が有利なその他のターゲットにロールアップされた値を参照できます。

    MgmtWebSite

    JMXSoapAdapterがデプロイされるHTTP Webサイト。デフォルトではdefault-web-siteです。

    URI

    JMXSoapAdapterのWebServiceエンドポイント(デフォルトでは/JMXSoapAdapter/JMXSoapAdapter)。

    Basic認証用ユーザー名

    oc4jadminユーザー名。

    Basic認証用パスワード

    前述のユーザーのパスワード。

    TargetTypeのバージョン

    デフォルトで、emjmxcliを介して作成されたメタデータ・ファイルからの値になります。


スタンドアロンJavaアプリケーションまたはJVMターゲットの構成

スタンドアロンJavaアプリケーションを定義する管理プラグインをデプロイした場合や、組込みJVMターゲット・タイプを使用する場合は、これらのターゲットをEnterprise Manager Grid Controlで収集できるように、JVMまたはJMX対応のJavaアプリケーション・ターゲットの構成を開始できます。

  1. JVMを実行するシステムに、バージョン10.2.0.3以上のEnterprise Manager Grid Controlエージェントをインストールします。これは推奨される手順ですが、JVMおよびスタンドアロンJavaアプリケーションのターゲットに不可欠な手順ではありません。

  2. Enterprise ManagerコンソールからEnterprise Managerエージェントのホームページにナビゲートします。

  3. 図6–6のように、「監視ターゲット」セクションで、ドロップダウン・リストからJVMターゲット(または先に行ったMPAのデプロイの対象となったスタンドアロンJavaアプリケーション・ターゲット・タイプ)を選択します。

    図6-6 JVMターゲットの選択

    図6-6の説明が続きます
    「図6-6 JVMターゲットの選択」の説明

  4. 図6–7のように、Enterprise Managerエージェントに監視させる必要があるこのJVMまたはJavaアプリケーション・インスタンスのインスタンス・プロパティを入力し、「OK」をクリックします。

    図6-7 JVMインスタンス・プロパティの指定

    図6-7の説明が続きます
    「図6-7 JVMインスタンス・プロパティの指定」の説明

    表6–2に、インスタンス・プロパティの定義を示します。

    表6-2 JVMインスタンス・プロパティ

    プロパティ 定義

    名前

    このJVMインスタンスのターゲット名。

    MachineName

    このJVMが稼働するホストの名前。

    管理ポート番号

    JSR-160クライアントがJVMへの接続に使用できるポート番号(リモート・オプションを使用する場合のjconsoleなど)。(これは、リモート管理を有効化するためにJVMが起動されたときに–Dcom.sun.management.jmxremote.portプロパティに対して指定されたポート番号です。)

    ユーザー名

    パスワードおよびアクセス・ファイルを使用し、Dcom.sun.management.jmxremote.authenticate=trueの設定を使用してJVMを起動した場合は必須です。

    JVM Adminユーザー・パスワード

    前述の「ユーザー名」を参照してください。

    通信プロトコル

    ターゲットJVM上のMBeanServerへの接続を確立します。これは、ターゲットMBeanServerへのJMX接続を確立するのに必要なJMXサービスURLのプロパティに対応します。デフォルト値であるrmiを保持してください。

    サービス名

    ターゲットJVM上のMBeanServerへの接続を確立します。これは、ターゲットMBeanServerへのJMX接続を確立するのに必要なJMXサービスURLのプロパティに対応します。デフォルト値であるjmxrmiを保持してください。

    SSLTrustストア

    SSL Trustストアの場所。ターゲットJVMの起動時に-Dcom.sun.management.jmxremote.ssl=trueの設定を使用してSSLが有効化されている場合に必要です。

    SSLTrustストアのパスワード

    SSL Trustストアのパスにアクセスするためのパスワード。

    カスタムのルックアップ・プロバイダ・クラス

    Enterprise Managerクライアントに統合し、LDAPまたは他のルックアップ・プロトコルを介してMBeanServerのカスタム・ルックアップを実行するのに使用できる、ユーザー実装Javaルックアップ・クラスの完全なパッケージ名。カスタム・ルックアップ・サービスの指定方法は、「カスタム・ルックアップ・サービスを使用したMBeanサーバーの詳細の取得」を参照してください。


  5. 追加したJVM(Javaアプリケーション)ターゲットの「すべてのメトリック」ページにナビゲートして、図6–8のように、JVM(Javaアプリケーション)からEnterprise Manager Grid Controlへ収集されたメトリックを確認します。これらのメトリックは、JDK1.5以上で使用できるプラットフォームMBeanによって公開されるか、Javaアプリケーションのアプリケーション定義のMBeanから公開されます。

    図6-8 JVMから収集されたメトリック

    図6-8の説明が続きます
    「図6-8 JVMから収集されたメトリック」の説明

    図6–9は、これらのメトリックの詳細(列)を示しています。

    図6-9 収集されたメトリックの詳細

    図6-9の説明が続きます
    「図6-9 収集されたメトリックの詳細」の説明

カスタム・ルックアップ・サービスを使用したMBeanサーバーの詳細の取得

状況によっては、Enterprise ManagerでJVMまたはJavaアプリケーション・ターゲットを構成する際に、MBeanServerまたはJVMのホスト・ポート情報を静的に指定できない場合があります。その場合は、かわりにターゲット・インスタンスのマシン名およびポート・プロパティをルックアップ・サービスの情報として使用し、カスタム・ルックアップ・クラスの実装を適用して、適切なMBeanServerプロパティをEM JMX fetchletに戻すと、EM JMX fetchletによってメトリックの収集が行われます。

ルックアップ・サービスは、特定のターゲット・インスタンスのすべての構成パラメータの値を上書きできます。たとえば、Enterprise Manager Grid Controlのtargets.xmlファイルでJVMまたはJavaアプリケーション・ターゲットを追加する際に、port=8000(ルックアップ・サービスのポート番号)およびカスタム・ルックアップ・プロバイダ・クラスをcom.mycompany.lookupとして指定すると仮定します。Enterprise Manager Grid Controlにターゲットが追加されたときに定義されたすべてのプロパティを使用して、カスタム・ルックアップ・クラス(com.mycompany.lookup)のresolvePropertiesメソッドがコールされます(つまり、portの値は8000:petstoreに設定されます)。ここで、コードは、受信したポート・プロパティを解析してポート8000に接続し、petstoreを検索して目的のMBeanServerがポート9000にあることを判断した上で、port=9000(MBeanServerへの接続に必要な実際のポート)を戻すことができます。これにより、Enterprise ManagerエージェントのJMX fetchletは、JMX接続のポート番号としてポート9000を使用できます。

Javaクラスの記述

次のインタフェースを実装するJavaクラスを記述して、ルックアップ・サービスを使用できます。

oracle.sysman.emd.fetchlets.JMX.generic.JMXLookUp

このインタフェースには1つのメソッドが含まれます。

public Properties resolveProperties(Properties p)

このメソッドは、ルックアップ・サービスに接続して、fetchletに必要な構成パラメータの値をjava.util.Propertiesオブジェクトとして戻す必要があります。このオブジェクトでは、各パラメータ名および対応する値がキー/値ペアとして使用されます。このメソッドへの入力もjava.util.Propertiesオブジェクトで、MachineName、Port、UsernameおよびPasswordの各プロパティがデフォルトでカスタム・ルックアップ実装オブジェクトのresolvePropertiesメソッドに渡されます。

追加情報の渡し方

ルックアップ・サービスに追加情報を渡す必要がある場合は、たとえば、前述のプロパティ(MachineName、Port、UsernameおよびPassword)の1つに情報を追加して、ルックアップ実装クラスでカスタム処理します。ただし、ルックアップ・クラス内のメソッドは、プロパティ・オブジェクトを戻す際に、前述のプロパティを検索したターゲットMBeanサーバーの対応するプロパティに置き換える必要があります。

たとえば、ホストmyHost1上のルックアップ・サービスでMBeanServer petstore1を検索する必要がある場合は、MachineNameをmyHost1:petstore1として定義し、カスタム処理コードでMachineNameプロパティのカスタム処理を行います。ルックアップ・コードは、myHost1の正しい値をresolvePropertiesファンクションによって戻されるプロパティ・オブジェクトのMachineNameの値として渡す必要があります。

かわりに、ターゲット・メタデータ・ファイルに含まれる各メトリック定義のQueryDescriptorで、追加のプロパティを手動作成することもできます。lookupPropertiesという特別なプロパティを使用してルックアップ・プロパティを指定すると、ルックアップ・クラスに渡される追加プロパティのリスト(カンマ区切り)を提供できます。これらの追加プロパティは、新しいターゲット・タイプのインスタンス・プロパティ(SCOPE=INSTANCE)または静的値(SCOPE=GLOBAL)のいずれかです。

例6–14は、追加の静的ルックアップ・プロパティ(Property NAME="lookupProperties")を使用するQueryDescriptorの一部分を示しています。

例6-14 追加のプロパティを手動で作成する場合のQueryDescriptorの例

  <QueryDescriptor FETCHLET_ID="JMX">
         <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
         <Property NAME="Port" SCOPE="INSTANCE">Port</Property>
         <Property NAME="UserName" SCOPE="INSTANCE" OPTIONAL="TRUE">UserName</Property>
         <Property NAME="password" SCOPE="INSTANCE" OPTIONAL="TRUE">password</Property>
         <Property NAME="protocol" SCOPE="INSTANCE" OPTIONAL="TRUE">protocol</Property>
         <Property NAME="service" SCOPE="INSTANCE" OPTIONAL="TRUE">service</Property>
         <Property NAME="SSLTrustStore" SCOPE="INSTANCE" OPTIONAL="TRUE">SSLTrustStore</Property>
         <Property NAME="SSLTrustStorePassword" SCOPE="INSTANCE" OPTIONAL="TRUE">SSLTrustStorePassword</Property>
         <Property NAME="lookupClass" SCOPE="INSTANCE" OPTIONAL="TRUE">com.mycompany.JMXLookup</Property>
         <Property NAME="lookupP1" SCOPE="GLOBAL" OPTIONAL="TRUE">false</Property>
         <Property NAME="lookupP2" SCOPE="GLOBAL" OPTIONAL="TRUE">myMBeanServerName</Property>
<Property NAME="lookupProperties" SCOPE="INSTANCE" OPTIONAL="TRUE">lookupP1, lookupP2</Property>
         <Property NAME="nestedView" SCOPE="GLOBAL" OPTIONAL="TRUE">false</Property>
         <Property NAME="metric" SCOPE="GLOBAL">java.lang:type=Runtime</Property>
         <Property NAME="identityCol" SCOPE="GLOBAL" OPTIONAL="TRUE">none</Property>
         <Property NAME="columnOrder" SCOPE="GLOBAL">VmName;VmVendor;VmVersion;Uptime</Property>
      </QueryDescriptor>

この例は、2つの追加プロパティlookupP1およびlookupP2がメソッドresolvePropertiesへの入力としてルックアップ・クラスcom.mycompany.JMXLookupに渡されることを示しています。ファンクションresolvePropertiesはルックアップ処理を実行できますが、プロパティMachineName、Port、ServiceおよびProtocolに適した値を戻す必要があります。これによって、JMX fetchletがMBeanServerへのJSR-160(リモート)JMX接続を確立できるようになります。

例6–15では、ルックアップを実行して構成パラメータの値を取得します。

例6-15 ルックアップ・クラス・コードの例

public class MylookupImplementationClass implements JMXLookUp{
        public java.util.Properties resolveProperties(java.util.Properties input){
                /*  your custom code here that does the lookup and gets values for the configuration parameters. The return Properties object should have the keys corresponding to the configuration parameters shown in Table 6–3. If any of the keys are missing in the return object, it defaults to whatever is available in the metadata file */
        }
}

表6–3は、JMX接続を確立する際にfetchletが使用するプロパティを示しています。これらのプロパティは、ルックアップ実装クラスによる上書きが可能です(その場合は、前述の例でresolvePropertiesコールが戻したプロパティ・オブジェクトの中でこれらのプロパティが戻されます)。この表のプロパティは、ルックアップ・クラスによって上書きされたプロパティを表します。

表6-3 Fetchletが使用するプロパティ

プロパティ デフォルト 説明

MachineName

localhost

MBeanサーバーのホスト・マシンの名前。

Port

8888

MBeanサーバーが接続をリスニングするポート。

Username

null

ユーザー名(接続に必要な場合)。

Password

null

パスワード(接続に必要な場合)。

プロトコル

rmi

接続に使用するプロトコル。

サービス

jmxrmi

接続に使用するサービス。

SSLTrustストア

null

SSLTrustストアへのパス。

SSLTrustストアのパスワード

null

SSLTrustストアのパスにアクセスするためのパスワード。


ルックアップ・クラスのコンパイル

JMXLookUp実装クラスをコンパイルするには、ルックアップ・クラスをコンパイルする際に、クラスパスに$ORACLE_HOME/lib/emagentRT.jarを含めます。JMXLookUp実装クラスまたはjarは、実行時に使用できるように、最終的にはEnterprise Managerエージェントのクラスパスで使用できるようにする必要があります。

そのために、カスタム・ルックアップ・クラスの作成後に次の手順を行います。

  1. カスタム・ルックアップ・クラスをjarファイルに含めます。

  2. このjarファイルの場所をCLASSPATHセクションのemagent/sysman/config/classpath.listまたは/emagent/sysman/config/emd.propertiesに含めます。

  3. Enterprise Managerエージェントを再起動します。

Weblogic上のカスタムJ2EEアプリケーションのターゲット・インスタンスの追加

WeblogicにはカスタムJ2EEアプリケーションがあり、このアプリケーションから、JMX MBeanで公開されるカスタム・メトリックをEMGCに収集する必要があります。カスタム・ターゲット・タイプを定義する管理プラグインを一度定義してデプロイすると、管理プラグインをデプロイした対象の様々なエージェントでJMX対応のJ2EEアプリケーション・ターゲット・インスタンスの構成を開始できます。これは、これらのターゲット・インスタンスに対するメトリックをEnterprise Manager Grid Controlで収集できるようにするためです。

  1. このターゲット・インスタンスを作成する管理エージェント(このアプリケーション・インスタンスがデプロイされているweblogicサーバー・マシンで稼働中のエージェントを推奨)のホームページの「監視ターゲット」セクションで、対象のターゲット・タイプ(前述のemjmxcliで作成済)を「追加」ドロップダウン・メニューから選択し、「実行」をクリックします。「ターゲットの追加」ページが表示されます。

    図6-10 JMXターゲット・タイプの選択

    JMXターゲット・タイプの選択
    JMXターゲット・タイプの選択 パート2
  2. 必要なターゲット・プロパティを入力し、「OK」をクリックします。新規に追加したターゲットがエージェントの「監視ターゲット」リストに表示されます。

    図6-11 JMXターゲット・プロパティの指定

    この図はターゲット・プロパティの指定を示しています。

    次の表に、インスタンス・プロパティの定義を示します。

    表6-4 ターゲット・プロパティ

    プロパティ 定義

    名前

    このターゲット・インスタンスの一意の名前。

    MachineName

    バージョン9.x以上のOracle WebLogic Application Serverを実行しているマシンのホスト名/IPアドレス。

    Username

    WebLogicサーバーへのJMX接続の確立に使用されるユーザー名。これは管理者または監視ユーザーのいずれかになります。

    JVM Adminユーザー・パスワード

    前述のユーザーのパスワード。

    通信プロトコル

    t3(デフォルト)またはt3s。

    サービス名

    weblogic.management.mbeanservers.runtime(またはアプリケーションがそのMBeanを登録しているその他のMbeanServer)。

    メトリック・ソース

    WebLogic


監視対象メトリックの表示

監視のためにエージェントにターゲット・インスタンスが追加されたため、ターゲット・タイプに対して定義されたメトリックを表示できます。

  1. エージェントのホームページで、前の手順で追加したターゲット・インスタンスを「監視ターゲット」リストでクリックします。Enterprise Managerにより、ターゲットのホームページが表示されます。

  2. 「関連リンク」セクションで、「すべてのメトリック」をクリックします。「すべてのメトリック」ページが監視対象のターゲットに対して表示されます。各メトリックの展開可能なツリー・リストにより、図6-12に示すようにドリルダウンして特定のメトリック・パラメータを表示できます。

図6-12 メトリックの表示

図6-12の説明が続きます
「図6-12 メトリックの表示」の説明