Enterprise Manager Grid Controlを拡張して、クリティカル・イベント、パフォーマンスの問題、エラー状態および統計について、WebサービスおよびJMXインスツルメント処理されたアプリケーションを監視できます。
WSDLおよびJMX対応のターゲットを監視するEnterprise Managerの機能により、監視操作と管理操作を統合できます。Enterprise Managerフレームワークに追加された場合、通知、ジョブ、レポート作成などのEnterprise Manager機能がこれらのターゲットに自動的に拡張されます。
この章の内容は次のとおりです。
注意: この章では、管理プラグインおよび必要なターゲット定義ファイルに関する知識を前提としています。管理プラグインの概念、または管理プラグインの開発およびデプロイに関する情報は、第1章「監視の拡張」および第2章「管理プラグインの開発」を参照してください。 |
Enterprise Managerを使用して、Webサービス管理インタフェース、JMXインスツルメント処理されたアプリケーションおよびサーバーを公開するターゲット、そしてスタンドアロンJava仮想マシン(JVM)ターゲットを監視すると、管理プラグインを介して新しいターゲット・タイプを定義することになります。
新規管理プラグインの作成は、4つの基本手順から構成されます。
管理プラグインに追加するターゲット・メタデータ・ファイルおよびデフォルトの収集ファイルを生成します。
1つ以上の管理プラグインのターゲット定義ファイルを含む管理プラグイン・アーカイブを作成します。単一のアーカイブに複数の管理プラグインが含まれる場合があります。
Enterprise Managerに管理プラグインをインポートします。
適切な管理エージェントに管理プラグインをデプロイします。
ターゲット監視の手順は、次の各項で説明しています。
「Enterprise ManagerでのWebサービスを使用した監視」では、標準メッセージング・プロトコルを使用してネットワーク上で通信する外部インタフェースを公開するソフトウェア・コンポーネントについて説明します。
「Oracle Application ServerにデプロイされたJMXアプリケーションの監視」では、JMX MBeanを使用してインスツルメント処理された、OC4Jで稼働するJ2EEアプリケーションについて説明します。
「JMXインスツルメント処理されたスタンドアロンのJavaアプリケーションまたはJava仮想マシン(JVM)ターゲットの監視」では、JMX MBeanを使用してインスツルメント処理された、J2SE5.0以上で稼働するスタンドアロンJavaアプリケーションについて説明します。
「Oracle Weblogic Application ServerにデプロイされたJMXアプリケーションの監視」では、Oracle WebLogic Application Server 9.x以上で稼働するJMXアプリケーションについて説明します。
「Oracle Application ServerにデプロイされたJMXアプリケーションの監視」および「JMXインスツルメント処理されたスタンドアロンのJavaアプリケーションまたはJava仮想マシン(JVM)ターゲットの監視」では、JMX対応のカスタム・アプリケーション用にメータデータ・ファイルおよびデフォルトの収集ファイルを生成する方法について説明します。データ収集の対象となるMBeanの説明、およびMBeanをEnterprise Managerでメトリックとして定義するのに役立つ情報が記載されています。スタンドアロンJavaアプリケーションがJMXによってインスツルメント処理されていない場合でも、アプリケーションが稼働しているJVMを監視できます。これを行うには、「スタンドアロンJavaアプリケーションまたはJVMターゲットの構成」で定義されているように、組込みJVMターゲット・インスタンスを直接作成します。
メタデータ・ファイルおよびデフォルトの収集ファイルを作成したら、通常の管理プラグイン・メカニズムに従ってプラグインをデプロイし、「管理プラグイン・アーカイブの作成」から「ターゲット・インスタンスの追加」までの説明に従ってJavaアプリケーション・ターゲット・タイプのターゲット・インスタンスを作成できます。
Webサービスは、疎結合されたソフトウェア・コンポーネントであり、Webサービス定義言語(WSDL)を介して外部インタフェースを公開します。これらのコンポーネントは、Simple Object Access Protocol(SOAP)と呼ばれる標準メッセージング・プロトコルを使用してネットワーク上で通信します。管理エージェントのJMX/SOAP fetchletによってSOAP通信がサポートされます。
注意: Webサービス標準の詳細は、World Wide Web Consortium(W3C)のWebサイトを参照してください。
|
前提条件
そのホストにEnterprise Manager Grid Control管理エージェント・バージョン10.2.0.2以上がインストールされていること
Enterprise Manager Grid Control管理サーバー(OMS)バージョン10.2.0.2以上が管理エージェントと通信していること
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サービス・コマンドライン・ツールの構文は次のとおりです。
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サービスは起動されません。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に複数のポート・タイプがある場合は、最初にポート・タイプを選択するプロンプトが表示されます。
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>
ツールによってターゲット・メタデータ・ファイルおよび収集ファイルが生成されたら、管理プラグイン・アーカイブを作成できます。「管理プラグイン・アーカイブの作成」を参照してください。
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
コマンドライン・ツールが用意されています。
前提条件
JMX対応のアプリケーションがデプロイされた特定のホスト上で、Enterprise Manager Grid Controlでターゲットとして監視する必要のあるOracle Application Server 10.1.3インスタンスが稼働していること
そのホストにEnterprise Manager Grid Control管理エージェント・バージョン10.2.0.2以上がインストールされていること
Enterprise Manager Grid Control管理サーバー(OMS)バージョン10.2.0.2以上が管理エージェントと通信していること
既知の制限事項
現在、emjmxcli
ツールおよびOJMX fetchletでは、ターゲットOC4Jインスタンス上のデフォルトのMBeanserverで使用可能な(システムおよびアプリケーションで定義された)MBeanの参照および監視のみ行うことができます。emjmxcli
ツールは基本的に、属性と、OpenTypeである操作のパラメータおよび戻り値を処理します。たとえば、SimpleType、CompositeType、TabularType、およびSimpleTypeの配列などです。
Webサービスと同様に、JMXコマンドライン・ツール(emjmxcli
)は、必要なターゲット定義ファイル(メタデータ・ファイルおよびデフォルトの収集ファイル)の作成を簡略化します。このツールは、MBeanServerに接続して使用可能なMBeanを参照できるようにする、オフライン構成ユーティリティです。後続のツール起動時にファイルの既存のセットにメトリックを追加することもできます。
コマンドライン・ツール・セッション中に、特定のMBeanを選択し、続いてEnterprise Managerがこれらの値を収集するためにこれらのMBeanに対して定期的に取得または起動する必要のある目的の属性/統計値または操作を選択します。ツールは、1つ以上のEnterprise Managerメトリック(列あり)としてのこれらの収集された値のパッケージ化の定義を支援し、またメトリック収集間隔を指定できるようにします。
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コマンドライン・ツールを開始するには、次のようにします。
$AGENT_HOME/bin
ディレクトリに移動します。
次のコマンドを実行します。
emjmxcli <Oracle Home of the target 10.1.3 or greater OC4J> [OPTIONS]
起動後に、コマンドライン・インタフェースは、例6-6に示すように必要な情報を求めるプロンプトを自動的に表示します。JMXコマンドライン・ツール・セッションを中断する必要がある場合は、任意の時点で[Ctrl]+[C]を押して終了できます。セッション情報は保存されません。
例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アプリケーションが稼働する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用に設計されています。
前提条件
特定のホスト上で稼働するJava仮想マシンJ2SE 1.5以上のインスタンス。このJVMは、Enterprise Manager Grid Controlでターゲットとして監視する必要があるMBeanを介してメトリックを公開する、JMX対応アプリケーションで実行できます。アプリケーションによってMBeanが公開されない場合は、Enterprise Manager Grid Controlで提供される組込みJVMターゲット・タイプを使用して、JVM自体を監視できます。詳細は、「スタンドアロンJavaアプリケーションまたはJVMターゲットの構成」を参照してください。
ローカル・アクセスに対して有効なJMXエージェント。JVMまたはJavaアプリケーションの起動時に、このシステム・プロパティを設定してください。
com.sun.management.jmxremote
有効なリモート・システムからの監視および管理。JVMの起動時に、このシステム・プロパティを設定してください。
com.sun.management.jmxremot.port=portNum
リモート管理用にJVMを有効化する処理の詳細は、次のドキュメントを参照してください。
http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#remote
そのホストにEnterprise Manager Grid Control管理エージェント・バージョン10.2.0.3以上がインストールされていること。
Enterprise Manager Grid Control管理サーバー(OMS)バージョン10.2.0.3以上が管理エージェントと通信していること。
既知の制限事項
現在、emjmxcli
ツールでは、ターゲットJVMインスタンス上のデフォルトのプラットフォームMBeanserverで使用可能な(プラットフォームおよびアプリケーションで定義された)MBeanの参照および監視のみ行うことができます。ターゲットJVMインスタンス上のカスタムMBeanServerの監視はサポートされていません。emjmxcli
ツールは基本的に、属性と、OpenTypeである操作(SimpleType、CompositeType、TabularTypeおよびSimpleTypeの配列など)のパラメータおよび戻り値を処理します。
OC4J上のWebサービスおよびJ2EEアプリケーションと同様に、コマンドライン・ツール(emjmxcli
)は、必要なターゲット定義ファイルの作成を簡略化します。これらのファイルは、JMXインスツルメント処理されたスタンドアロンのJavaアプリケーション用のメタデータ・ファイルおよびデフォルトの収集ファイルです。このツールは、J2SE1.5以上のJVM上にあるMBeanServerに接続して使用可能なMBeanを参照できるようにする、オフライン構成ユーティリティです。後続のツール起動時にファイルの既存のセットにメトリックを追加することもできます。
コマンドライン・ツール・セッション中に、特定のMBeanを選択し、続いてEnterprise Managerがこれらの値を収集するためにこれらのMBeanに対して定期的に取得または起動する必要のある目的の属性/統計値または操作を選択します。ツールは、1つ以上のEnterprise Managerメトリック(列あり)としてのこれらの収集された値のパッケージ化の定義を支援し、またメトリック収集間隔を指定できるようにします。
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コマンドライン・ツールでファイルを生成するための準備およびツールの使用方法を説明しています。
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クライアントとして接続します。
バージョン10.2.0.3以上のEnterprise Managerエージェントの$ORACLE_HOME/bin
ディレクトリに移動します。
環境変数を次のように設定します。
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 ファイルに手動で挿入し、エージェントを再起動します。 |
次のコマンドを実行します。
./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コンソールに正しく表示するには、レスポンス・メトリックを定義する必要があります。詳細は、「ターゲット・ステータス情報の表示」を参照してください。
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コマンドライン・ツールが用意されています。
前提条件
JMX対応のアプリケーションがデプロイされた特定のホスト上で、Enterprise Manager Grid Controlでターゲットとして監視する必要のあるOracle WebLogic Server 9.xのインスタンスが稼働していること
Enterprise Manager Grid Control管理エージェント・バージョン11.1以上がそのホスト(推奨)にインストールされていること
Enterprise Manager Grid Control管理サーバー(OMS)バージョン10.2.0.4以上が管理エージェントと通信していること
emjmxcliツールは基本的に、属性と、OpenTypeである操作のパラメータおよび戻り値を処理します。たとえば、SimpleType、CompositeType、TabularType、およびSimpleTypeの配列などです。
Webサービスと同様に、JMXコマンドライン・ツール(emjmxcli)は、必要なターゲット定義ファイル(メタデータ・ファイルおよびデフォルトの収集ファイル)の作成を簡略化します。このツールは、MBeanServerに接続して使用可能なMBeanを参照できるようにする、オフライン構成ユーティリティです。後続のツール起動時に既存のファイルにメトリックを追加することもできます。コマンドライン・ツール・セッション中に、特定のMBeanを選択し、続いてEnterprise Managerが取得する必要のある目的のJMX属性/統計値を選択するか、またはこれらの値を収集するためにこれらのMBeanで定期的に起動が必要なJMX操作を選択します。ツールは、1つ以上のEnterprise Managerメトリック(列あり)としてのこれらの収集された値のパッケージ化の定義を支援し、またメトリック収集間隔および列のしきい値を指定できるようにします。
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コマンドライン・ツールを開始するには、次のようにします。
$AGENT_HOME/binディレクトリに移動します。
次のコマンドを実行します。
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
ファイルを探します。
これらのファイルは、次のように使用できます。
管理プラグイン・アーカイブをアップロードするには、次のようにします。「管理プラグイン・アーカイブの作成」を参照してください。
MPAをOMSに移動します。「管理プラグインのインポート」を参照してください。
MPAをエージェントにプッシュします。「管理エージェントへの管理プラグインのデプロイ」を参照してください。
カスタム・ターゲット・インスタンスを作成します。詳細は、「Weblogic上のカスタムJ2EEアプリケーションのターゲット・インスタンスの追加」を参照してください。
ターゲットのステータス情報を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コンソールから実行します。
Enterprise Managerコンソールで、「設定」をクリックします。
左側のナビゲーション・バーで、「管理プラグイン」をクリックします。
「インポート」をクリックします。
「インポート」ページで、管理プラグイン・アーカイブ・ファイルを指定し、「リスト・アーカイブ」をクリックします。アーカイブに含まれるすべての管理プラグインが表示されます。
リストからWebサービス管理プラグインを選択し、「OK」をクリックします。Enterprise Managerにより、Webサービス固有のプラグインがリストに追加された「管理プラグイン」ページに戻ります。
管理プラグインがEnterprise Managerにインポートされると、プラグインを任意の数の管理エージェントにデプロイできます。エージェントに管理プラグインをデプロイすると、エージェントはWebサービス管理インタフェースを公開しているターゲットを監視できます。
管理プラグインのメイン・ページで、デプロイする管理プラグインの「デプロイ」アイコンをクリックします。次の図に示すように、「管理プラグインのデプロイ: ターゲットの選択」ページが表示されます。
「エージェントの追加」をクリックします。「検索と選択: エージェント」ページが表示されます。
目的の管理エージェントを選択します。適切な検索パラメータを使用して、目的のエージェントを検索します。
「選択」をクリックします。Enterprise Managerにより、「管理プラグインのデプロイ: ターゲットの選択」ページに戻ります。選択したエージェントがデプロイ・リストに表示されます。
1つ以上の選択したエージェントについてデプロイの問題が検出された場合は、「デプロイの検証」ページが表示されます。問題が検出されたエージェントのみがこのページの表に表示されます。詳細は、オンライン・ヘルプを参照してください。
「次」をクリックして、「確認」ページに進みます。管理プラグインの名前とバージョンが表示されます。このページには、デプロイ・プロセスに関連する重要な情報が含まれています。先に進む前に、情報を理解してください。
「終了」をクリックします。
管理プラグインが適切なエージェントにデプロイされたため、管理プラグインで定義されたターゲット・タイプの監視を開始する準備ができます。異なるターゲット・タイプ・プロパティがあるため、すべてのターゲット・タイプを追加する個々の手順を説明します。
管理プラグインが適切なエージェントにデプロイされたため、管理プラグインで定義されたWebサービス管理インタフェースを公開するターゲットの監視を開始できます。
管理エージェントのホームページの「監視ターゲット」セクションで、「追加」ドロップダウン・メニューから目的のターゲット・タイプを選択し、「実行」をクリックします。「ターゲットの追加」ページが表示されます。
「Basic認証用ユーザー名」/「Basic認証用パスワード」は、Webサービスへのアクセスに使用されるログイン資格証明です。
必要なターゲット・プロパティを入力し、「OK」をクリックします(図6-3を参照)。新規に追加したターゲットがエージェントの「監視ターゲット」リストに表示されます。
JMXインスツルメント処理されたターゲット・タイプを定義する管理プラグインをデプロイした場合は、これらのターゲットをEnterprise Manager Grid Controlで収集できるようにJMX対応のJ2EEアプリケーション・ターゲットの構成を開始できます。
管理エージェントのホームページの「監視ターゲット」セクションで、「追加」ドロップダウン・メニューから目的のターゲット・タイプを選択し、「実行」をクリックします。「ターゲットの追加」ページが表示されます。
図6-5のように必要なターゲット・プロパティを入力し、「OK」をクリックします。新規に追加したターゲットがエージェントの「監視ターゲット」リストに表示されます。
表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のバージョン |
デフォルトで、 |
スタンドアロンJavaアプリケーションを定義する管理プラグインをデプロイした場合や、組込みJVMターゲット・タイプを使用する場合は、これらのターゲットをEnterprise Manager Grid Controlで収集できるように、JVMまたはJMX対応のJavaアプリケーション・ターゲットの構成を開始できます。
JVMを実行するシステムに、バージョン10.2.0.3以上のEnterprise Manager Grid Controlエージェントをインストールします。これは推奨される手順ですが、JVMおよびスタンドアロンJavaアプリケーションのターゲットに不可欠な手順ではありません。
Enterprise ManagerコンソールからEnterprise Managerエージェントのホームページにナビゲートします。
図6–6のように、「監視ターゲット」セクションで、ドロップダウン・リストからJVMターゲット(または先に行ったMPAのデプロイの対象となったスタンドアロンJavaアプリケーション・ターゲット・タイプ)を選択します。
図6–7のように、Enterprise Managerエージェントに監視させる必要があるこのJVMまたはJavaアプリケーション・インスタンスのインスタンス・プロパティを入力し、「OK」をクリックします。
表6–2に、インスタンス・プロパティの定義を示します。
表6-2 JVMインスタンス・プロパティ
プロパティ | 定義 |
---|---|
名前 |
このJVMインスタンスのターゲット名。 |
MachineName |
このJVMが稼働するホストの名前。 |
管理ポート番号 |
JSR-160クライアントがJVMへの接続に使用できるポート番号(リモート・オプションを使用する場合のjconsoleなど)。(これは、リモート管理を有効化するためにJVMが起動されたときに |
ユーザー名 |
パスワードおよびアクセス・ファイルを使用し、 |
JVM Adminユーザー・パスワード |
前述の「ユーザー名」を参照してください。 |
通信プロトコル |
ターゲットJVM上のMBeanServerへの接続を確立します。これは、ターゲットMBeanServerへのJMX接続を確立するのに必要なJMXサービスURLのプロパティに対応します。デフォルト値であるrmiを保持してください。 |
サービス名 |
ターゲットJVM上のMBeanServerへの接続を確立します。これは、ターゲットMBeanServerへのJMX接続を確立するのに必要なJMXサービスURLのプロパティに対応します。デフォルト値であるjmxrmiを保持してください。 |
SSLTrustストア |
SSL Trustストアの場所。ターゲットJVMの起動時に |
SSLTrustストアのパスワード |
SSL Trustストアのパスにアクセスするためのパスワード。 |
カスタムのルックアップ・プロバイダ・クラス |
Enterprise Managerクライアントに統合し、LDAPまたは他のルックアップ・プロトコルを介してMBeanServerのカスタム・ルックアップを実行するのに使用できる、ユーザー実装Javaルックアップ・クラスの完全なパッケージ名。カスタム・ルックアップ・サービスの指定方法は、「カスタム・ルックアップ・サービスを使用したMBeanサーバーの詳細の取得」を参照してください。 |
追加したJVM(Javaアプリケーション)ターゲットの「すべてのメトリック」ページにナビゲートして、図6–8のように、JVM(Javaアプリケーション)からEnterprise Manager Grid Controlへ収集されたメトリックを確認します。これらのメトリックは、JDK1.5以上で使用できるプラットフォームMBeanによって公開されるか、Javaアプリケーションのアプリケーション定義のMBeanから公開されます。
図6–9は、これらのメトリックの詳細(列)を示しています。
状況によっては、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クラスを記述して、ルックアップ・サービスを使用できます。
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では、ルックアップを実行して構成パラメータの値を取得します。
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エージェントのクラスパスで使用できるようにする必要があります。
そのために、カスタム・ルックアップ・クラスの作成後に次の手順を行います。
カスタム・ルックアップ・クラスをjarファイルに含めます。
このjarファイルの場所をCLASSPATH
セクションのemagent/sysman/config/classpath.list
または/emagent/sysman/config/emd.properties
に含めます。
Enterprise Managerエージェントを再起動します。
WeblogicにはカスタムJ2EEアプリケーションがあり、このアプリケーションから、JMX MBeanで公開されるカスタム・メトリックをEMGCに収集する必要があります。カスタム・ターゲット・タイプを定義する管理プラグインを一度定義してデプロイすると、管理プラグインをデプロイした対象の様々なエージェントでJMX対応のJ2EEアプリケーション・ターゲット・インスタンスの構成を開始できます。これは、これらのターゲット・インスタンスに対するメトリックをEnterprise Manager Grid Controlで収集できるようにするためです。
このターゲット・インスタンスを作成する管理エージェント(このアプリケーション・インスタンスがデプロイされているweblogicサーバー・マシンで稼働中のエージェントを推奨)のホームページの「監視ターゲット」セクションで、対象のターゲット・タイプ(前述のemjmxcliで作成済)を「追加」ドロップダウン・メニューから選択し、「実行」をクリックします。「ターゲットの追加」ページが表示されます。
必要なターゲット・プロパティを入力し、「OK」をクリックします。新規に追加したターゲットがエージェントの「監視ターゲット」リストに表示されます。
次の表に、インスタンス・プロパティの定義を示します。
表6-4 ターゲット・プロパティ
プロパティ | 定義 |
---|---|
名前 |
このターゲット・インスタンスの一意の名前。 |
MachineName |
バージョン9.x以上のOracle WebLogic Application Serverを実行しているマシンのホスト名/IPアドレス。 |
Username |
WebLogicサーバーへのJMX接続の確立に使用されるユーザー名。これは管理者または監視ユーザーのいずれかになります。 |
JVM Adminユーザー・パスワード |
前述のユーザーのパスワード。 |
通信プロトコル |
t3(デフォルト)またはt3s。 |
サービス名 |
weblogic.management.mbeanservers.runtime(またはアプリケーションがそのMBeanを登録しているその他のMbeanServer)。 |
メトリック・ソース |
WebLogic |
監視のためにエージェントにターゲット・インスタンスが追加されたため、ターゲット・タイプに対して定義されたメトリックを表示できます。
エージェントのホームページで、前の手順で追加したターゲット・インスタンスを「監視ターゲット」リストでクリックします。Enterprise Managerにより、ターゲットのホームページが表示されます。
「関連リンク」セクションで、「すべてのメトリック」をクリックします。「すべてのメトリック」ページが監視対象のターゲットに対して表示されます。各メトリックの展開可能なツリー・リストにより、図6-12に示すようにドリルダウンして特定のメトリック・パラメータを表示できます。