| Oracle Process Manager and Notification Server 管理者ガイド 10gリリース3(10.1.3.1.0) B31837-01 |
|
この章では、OPMN opmn.xmlファイルの要素および属性の一般的な構成例や詳細について説明します。
この章の項目は次のとおりです。
例6-1に、特定のOracle Application Serverコンポーネントに固有でない、opmn.xmlファイルで使用できるすべての要素および属性を示します。
<opmn>
<logpath="path" comp="comp-codes" rotation-size="kBytes" rotation-hour="HOD"/>
<debugpath="path" comp="comp-codes" rotation-size="kBytes" rotation-hour="HOD"/>
<notification-serverinterface="type">
<ipaddrremote="ip" request="ip"/>
<portlocal="port" remote="port" request="port"/>
<sslenabled="boolean" wallet-file="path" wallet-password="password" openssl-certfile="path"
openssl-keyfile="path" openssl-password="password" openssl-lib="path"/>
<tuneio-timeout="timeout" io-idle="interval" timeout="timeout"/>
<topology>
<nodes list="nodes"/>
<discover list="nodes"/>
<gateway list="nodes"/>
</topology>
</notification-server>
<process-managerinsecure-remote-requests="boolean">
<process-modules>
<modulepath="path" tag="tag-id" status="state" cron="interval">
<module-data>
<categoryid="id">
<dataid="id" value="value" process-conversion="boolean"/>
</category>
</module-data>
<module-idid="module-id"/>
</module>
</process-modules>
<ias-instanceid="ias-instance-id" name="ias-instance-name" ORACLE_HOME="path">
<environment>
<variableid="id" value="value" append="boolean" process-conversion="boolean"/>
</environment>
<!-- module-data-->
<rmd-definitions>
<rmdname="name" description="description" interval="interval">
<conditional>
<![CDATA[condition]]>
</conditional>
<actionvalue="action"/>
<exceptionvalue="exception">
</rmd>
</rmd-definitions>
<ias-componentid="component-id" id-matching="boolean" status="state">
<!-- environment-->
<!-- module-data-->
<dependencies>
<databasedb-connect-info="connect" infrastructure-key="key" timeout="depend-timeout"
cache-timeout="cache-timeout"/>
<OIDaddress="address" infrastructure="boolean" timeout="depend-timeout"
cache-timeout="cache-timeout">
<sslenabled="boolean" wallet-file="path" wallet-password="password">
</OID>
<OSSOhost="hostname" port="port" URI="uri" timeout="depend-timeout"
cache-timeout="cache-timeout">
<sslenabled="boolean" wallet-file="path" wallet-password="password">
</OSSO>
<managed-processias-instance="ias-instance-id" ias-component="ias-component-id"
process-type="process-type-id" process-set="process-set-id" autostart="boolean"
autostop="boolean" timeout="depend-timeout"cache-timeout="cache-timeout"/>
</dependencies>
<!-- rmd-definitions-->
<process-typeid="process-type-id" module-id="module-id" status="state" working-dir="path"
service-failover="num" service-weight="value">
<!-- environment-->
<!-- module-data-->
<!-- dependencies-->
<event-scripts>
<pre-startpath="path">
<pre-stoppath="path">
<post-crashpath="path">
</event-scripts>
<!-- rmd-definitions-->
<starttimeout="timeout" retry="num"/>
<stoptimeout="timeout"/>
<restarttimeout="timeout" retry="num"/>
<pingtimeout="timeout" retry="num" interval="interval"/>
<portid="id" range="range"/>
<process-setid="process-set-id" restart-on-death="boolean" numprocs="num" minprocs="min"
maxprocs="max" status="state" working-dir="path" parallel-requests="boolean">
<!-- environment-->
<!-- module-data-->
<!-- dependencies-->
<!-- event-scripts-->
<!-- rmd-definitions-->
<!-- start-->
<!-- stop-->
<!-- restart-->
<!-- ping-->
<!-- port-->
</process-set>
</process-type>
</ias-component>
</ias-instance>
<!-- rmd-definitions(global) -->
</process-manager>
</opmn>
この項では、特定のOracle Application Serverコンポーネントに固有でない、opmn.xmlファイルで使用できる要素および属性について紹介するとともに、各要素の属性について説明します。
<opmn>は、opmn.xmlファイルの最上位の要素です。
path、comp、rotation-size、rotation-hour
OPMNのログ・メカニズムの構成を定義します。
path属性に指定するすべてのディレクトリは存在している必要があります。OPMNには、ログ・ファイルが存在するディレクトリに対して読取りおよび書込み権限が必要です。$ORACLE_HOMEディレクトリを使用することもできます。
comp属性には、ログに記録するイベントのコンポーネント・コードを指定します。OPMNの実行時、これらのコードを動的に表示したり変更したりするには、次のコマンドを実行します。
> opmnctl query target=log > opmnctl set target=log comp=<comp-codes>
OPMNを再ロードすると、これらの値はopmn.xmlファイル内の構成された値に戻ります。
opmn.xmlファイルのlogおよびdebug要素には、次のcomp-codeを指定します。
onsコンポーネントとpmコンポーネントはどちらもサブコンポーネントで構成されます。これらのサブコンポーネントは、構文component[subcomponents]を使用して指定できます。componentの値はonsまたはpmのいずれかで、両方を指定する場合はそれぞれをセミコロンで区切ります。特定のコンポーネントに対して有効なサブコンポーネントのリストを指定する場合は、それぞれのサブコンポーネントをコンマで区切ります。たとえば、comp="ons[local,listener];pm"のように指定します。
表6-1に、ONSコンポーネントのコードの一覧を示します。
表6-2に、PMコンポーネントのコードの一覧を示します。
onsまたはpmの各サブコンポーネントには、先頭に否定文字!を付けることができます。この場合、そのサブコンポーネントの選択が解除されます。allと指定した後に、特定のサブコンポーネントを否定することによって、そのサブコンポーネントを表示対象から除外できます。
コンポーネントとサブコンポーネントは、処理する順番に設定または否定します。ons[all,!topology]と指定すると、topologyを除く、onsのすべてのサブコンポーネントが出力されます。一方、ons[!topology,all]と指定すると、topologyを含む、onsのすべてのサブコンポーネントが出力されます。
rotation-sizeには、ログ・ファイルの最大サイズをKB単位で指定します。ログ・ファイルのサイズが構成された値に達すると、OPMNのロギング・メカニズムによりログが閉じられ、そのログの名前がタイムスタンプの接尾辞に変更されて、新しいログ・ファイルが作成されます。この属性は、rotation-hourとともに使用することもできます。
指定した日時になると、OPMNのロギング・メカニズムによりログが閉じられ、そのログの名前がタイムスタンプの接尾辞に変更されて、新しいログ・ファイルが作成されます。この属性は、rotation-sizeとともに使用することもできます。
path、comp、rotation-size、rotation-hour
debug要素には、OPMNのデバッグ・ログ・メカニズムの構成を定義します。
パス名に指定するすべてのディレクトリはあらかじめ存在している必要があります。また、OPMNには、デバッグ・ログ・ファイルが存在するディレクトリに対して読取りおよび書込み権限が必要です。$ORACLE_HOMEディレクトリを使用することもできます。
comp属性には、ログに記録するイベントのコンポーネント・コードを指定します。OPMNの実行時、これらのコードを動的に表示したり変更したりするには、次のコマンドを実行します。
> opmnctl query target=log > opmnctl set target=log comp=<comp-codes>
OPMNを再ロードすると、これらの値はopmn.xmlファイル内の構成された値に戻ります。
opmn.xmlファイルのlogおよびdebug要素には、次のcomp-codeを指定します。
onsコンポーネントとpmコンポーネントはどちらもサブコンポーネントで構成されます。これらのサブコンポーネントは、構文component[subcomponents]を使用して指定できます。componentの値はonsまたはpmのいずれかで、両方を指定する場合はそれぞれをセミコロンで区切ります。特定のコンポーネントに対して有効なサブコンポーネントのリストを指定する場合は、それぞれのサブコンポーネントをコンマで区切ります。たとえば、comp="ons[local,listener];pm"のように指定します。
表6-3に、ONSコンポーネントのコードの一覧を示します。
表6-4に、PMコンポーネントのコードの一覧を示します。
onsまたはpmの各サブコンポーネントには、先頭に否定文字!を付けることができます。この場合、そのサブコンポーネントの選択が解除されます。allと指定した後に、特定のサブコンポーネントを否定することによって、そのサブコンポーネントを表示対象から除外できます。
コンポーネントとサブコンポーネントは、処理する順番に設定または否定します。ons[all,!topology]と指定すると、topologyを除く、onsのすべてのサブコンポーネントが出力されます。一方、ons[!topology,all]と指定すると、topologyを含む、onsのすべてのサブコンポーネントが出力されます。
rotation-sizeには、ログ・ファイルの最大サイズをKB単位で指定します。ログ・ファイルのサイズが構成された値に達すると、OPMNのロギング・メカニズムによりログが閉じられ、そのログの名前がタイムスタンプの接尾辞に変更されて、新しいログ・ファイルが作成されます。
rotation-size属性は、rotation-hour属性とともに使用することもできます。
rotation-hour属性はログ・ファイルで使用します。指定した日時になると、OPMNのロギング・メカニズムによりログ・ファイルが閉じられ、そのログの名前がタイムスタンプの接尾辞に変更されて、新しいログ・ファイルが作成されます。この属性は、rotation-size属性とともに使用することもできます。
notification-server要素は、OPMNのONS部分を構成する要素を含むか、またはその要素を構成します。
OPMNは、デフォルトでIPv6とIPv4の両方のネットワーク・インタフェースをサポートしています(第3.11項「IPv6サポート」を参照)。OPMNは、リスナー・ポートを両方のインタフェースにバインドし、いずれかのインタフェースを使用して接続を試みます。アドレスが使用可能な場合、OPMNは常にIPv6インタフェースを最初に使用することを試みます。これは、Sun社のJava Virtual Machine(JVM)のデフォルトの動作と同じです。
他のOPMNサーバーへ接続する場合、IPv4とIPv6の両方で同じネットワークを使用する必要があります。たとえば、IPv4インタフェースが使用可能であっても、IPv6によってIPv6ネットワーク・インタフェースのみが強制的に使用されます。したがって、OPMNは、同じネットワーク・インタフェースを使用する他のOPMNサーバーとの間でのみ接続が可能です。同じネットワーク・インタフェースのサポートを提供していないシステムにIPv4またはIPv6を構成すると、OPMNは起動しません。
iapddr要素には、ONSリスナー・スレッドやホストとポートのバインドに使用するホスト情報を指定します。
remote属性には、ONSが自身のリモート・ポートをバインドするIPアドレスまたはホスト名を指定します。リモート・ポートは、ONS間の通信に使用されます。ONS間の通知の送受信はリモート・ポートを介して行われます。OPMNは、ONSを使用し、リモート・ポートを介して他のOPMNサーバーにリモート・リクエストをルーティングします。
request属性には、ONSが自身のリクエスト・ポートをバインドするIPアドレスまたはホスト名を指定します。このポートはステータス情報の取得にのみ使用されます。
port要素には、ONSリスナー・スレッドやホストとポートのバインドに使用する構成情報が含まれます。
local属性には、ONSのローカル・ポートの値を指定します。
remote属性には、ONSのリモート・ポートの値を指定します。
request属性には、ONSのリクエストportの値を指定します。
<notification-server>
enabled、wallet-file、wallet-password、openssl-certfile、openssl-keyfile、openssl-password、openssl-lib
ssl要素は、ONS間のセキュリティおよび認証構成に使用されます。Oracle SSLレイヤー(wallet-fileおよびwallet-password)またはOpen SSLレイヤー(openssl-certfile、openssl-keyfile、openssl-passwordおよびopenssl-lib)のいずれかを構成します。両方は使用できません。Oracle SSLレイヤーとOpen SSLレイヤーを同じopmn.xmlファイル内に構成すると、サーバーが起動しません。
Oracle SSLレイヤーは、Oracle Application ServerまたはOracle Database製品のいずれかに付属するライブラリを使用します。Oracle SSLレイヤーは、標準のOracle Walletを使用します。
Open SSLレイヤーは、暗号化ハードウェアに対するより優れたパフォーマンス、ドキュメントおよびサポートを提供します。Open SSLレイヤーの方が、OPMN内部で使用するハードウェア領域が少なくなります。Open SSLは、セキュリティ・プロトコルを開発するためのオープン・ソースのツール・キットです。詳細は、次を参照してください。
http://www.openssl.org
enabled値がtrueに設定されると、ONSでSSL接続が有効になります。
wallet-file属性には、ONS接続の認証に使用するOracle Walletのパス名を指定します。$ORACLE_HOMEディレクトリを使用することもできます。
wallet-password属性には、指定したOracle Walletに使用するパスワード文字列を指定します。
openssl-certfile属性には、ONS接続の認証に使用するOpen SSLの証明書ファイルを指定します。$ORACLE_HOMEディレクトリを使用することもできます。
openssl-keyfile属性には、ONS接続の認証に使用するOpen SSLの鍵ファイルを指定します。$ORACLE_HOMEディレクトリを使用することもできます。
openssl-password属性には、指定したopenssl-keyfileに使用するパスワード文字列を指定します。
openssl-lib属性には、共有ライブラリのファイル(libsslおよびlibcryptoなど)が存在するOpen SSLライブラリのパス名を指定します。openssl-libのパス名を指定しない場合は、OPMNを起動する環境の適切なシステム変数にパス名を含める必要があります。$ORACLE_HOMEディレクトリを使用することもできます。
io-timeout、io-idle、timeout
tune要素には、Tuneable Notification ServerのONSパラメータに関する情報が含まれます。
io-timeoutには、ローカル・サーバーに直接接続された各リモートOPMN(またはONS)サーバーで使用される、ソケットでの読取りタイムアウト値を指定します(秒単位)。リモート・サーバーがio-timeoutに構成された時間内にローカル・サーバーとの接続を介してデータを受信しないと、リモート・サーバーで接続がタイムアウトし、ソケットが閉じられます。io-timeout値は、リモートOPMN(またはONS)サーバーでローカル・サーバーに対して使用されるタイムアウト時間です。
io-timeout値は、ONS接続が切断された後のリソース・クリーンアップのタイムアウトとしても使用されます。タイムアウト前に接続が再確立されると、リソースは新しい接続に送信されます。接続が再確立されない場合、リソースはタイムアウト時間が経過した後に解放されます。
サービスのフェイルオーバー参加状態、重複したONS通知の検出状態、および停止中の接続にルーティングされた通知には、すべてio-timeout値が使用されます。通知は、タイムアウトが発生するか接続が再確立されるまで、停止中の接続へのキューに格納されます。
ビジー状態またはオーバーロードしているシステムで実行されているサーバーでは、io-timeoutパラメータの値を増やす必要があります。
0を指定すると、リモート・サーバーでの、ローカル・サーバーに対するio-timeoutを使用したチェックが無効化されます。このio-timeoutにより、フェイルオーバー参加状態、重複したONS通知の検出状態、および停止中の接続へのキューに格納された通知のクリーン・アップが無効になります。通知は接続が再確立されるまでキューに格納されます。タイムアウト・チェックが無効になっており、接続が再確立されない場合、リモートOPMN(またはONS)サーバーのメモリー消費が増加し続ける可能性があります。io-timeoutパラメータの値は、デバッグ時にのみ0に設定してください。
構成された値が0以外で最小値より小さい場合は、最小値に設定されます。最大値より大きい場合は最大値に設定されます。
ローカル・サーバーが、直接接続された各リモート・サーバーにメッセージを送信する時間隔を指定します(秒単位)。構成された時間隔内にローカル・サーバーから任意のリモート・サーバーへ通常のネットワーク通信が行われなかった場合は、リモート・サーバーにメッセージが送信されます。
io-idleパラメータは、アイドルであるが応答するOPMNサーバーがリモート・サーバーに接続しているときに、その接続がタイムアウトしないようにします。ビジー状態のシステムでは、この値をio-timeout値よりもはるかに小さい値にする必要があります。これにより、リモート・サーバーがタイムアウトを検出する前に、ローカル・サーバーがアイドル・メッセージをリモート・サーバーへのキューに入れて送信するための十分な時間を確保します。
io-timeoutが0の場合、io-idle属性は無視されます。構成された値が最小値より小さい場合は、最小値に設定されます。最大値より大きい場合は最大値に設定されます。
timeoutパラメータには、ローカルOPMNサーバーに対する接続試行およびクライアント接続書込みに使用されるソケット・タイムアウト値を指定します(秒単位)。ローカルOPMNサーバーへの接続のハンドシェイクが、構成されたタイムアウト値よりも長くかかる場合は、ソケットが閉じられ接続リソースが使用可能になります。クライアント接続ソケットでの書込みが、構成されたタイムアウト値よりも長くかかる場合は、ソケットが閉じられ接続リソースが使用可能になります。
topology要素には、クラスタ内のONSトポロジに関する構成情報が含まれます。
nodes要素には、ローカルOPMNサーバーとして同一クラスタ内に存在する、OPMNサーバーの特定アドレスのリストを指定します。リストには、ローカルOPMNサーバーが含まれます。複数のnodes要素を構成できます。
各nodeエントリは、ローカルOPMNサーバーがリモートOPMNサーバーへの接続を試行する、クラスタ内のインスタンスを表します。この接続を介して、通知、ステータスおよびユーザー・リクエストなどの情報が送信されます。構成されたリモート・ノードに接続できない場合、OPMNは120秒ごとに接続を再試行します。重複エントリは無視されます。
各nodeエントリは、アドレス:ポートの形式で指定する必要があります。アドレスは、有効なTransmission Control Protocol(TCP)IPアドレスである必要があります。OPMNでサポートされているIP接続の詳細は、第3.11項「IPv6サポート」を参照してください。
各node値は、システムで実行されているOPMNサーバーに対応している必要があります。OPMNサーバーは、アドレスで指定し、port要素で指定したリモート・ポートをリスニングするように構成する必要があります。
アドレス値は、対応するOPMNに対して構成されたものと同じである必要があります。システムに複数のIPアドレスやホスト名がある場合、アドレス値は、notification-serverのipaddr要素のremote属性で構成された値と一致する必要があります。
各ノードのアドレス部分は、同じシステムのホスト名またはIPアドレスのリストで構成されます。このリストは、リモート・ノードのipaddrのremote属性が、同じ情報で構成されている場合のみ使用可能です。リストされたホスト名とIPアドレスは、セミコロンで区切る必要があります。
port要素の値は、notification-server要素のport要素のremote属性で構成された値と一致する必要があります。
たとえば、次のように入力します。
<nodes list="host1.com:6200,host2.com:6200,host3.com:6200"/> <nodes list="host4.com:6200,host5.com:6200"/>
<nodes list="hostnameA.com;hostnameB.com:6200"/>
discover要素には、検出サービスのアドレスのリストを指定します。ローカルOPMNサーバーは、このdiscover要素を使用して、同じクラスタ内のリモートOPMNサーバーを検出して接続します。複数のdiscover要素を構成できます。
各サービス・エントリは、ローカルOPMNサーバーが同一クラスタ内のリモートOPMNサーバーを見つけるための検出リソースを表します。検出されたトポロジの各OPMNサーバーは、同一トポロジ内の他のOPMNサーバーへの接続を自動的に管理します。サービスは、マルチキャスト・ノードまたはホスト・ノードの2つのタイプのいずれかになります。
マルチキャスト・ノードの構文は、*nodeです。*nodeには、マルチキャストIPアドレス(またはホスト名)とポートのペアを指定します(nodesを参照)。OPMNでは、通常、任意のOPMNサーバーは単一の検出トポロジにのみ参加するのに対し、一意の*nodeエントリは、結合されるインスタンスの個別のトポロジとして処理されます。
たとえば、次のように入力します。
<discover list="*225.0.0.37:8205"/>
マルチキャスト・アドレスは、224.0.0.1〜239.255.255.255の有効なアドレス範囲内にある必要があります。IPアドレスの前のアスタリスク(*)は必ず指定してください。これは、指定された値がマルチキャスト・アドレスであるということをOPMNに伝えるものです。
検出サーバー・ノードの構文はnodeです。nodeは、クラスタ内のOPMNインスタンスに対するIPアドレス(またはホスト名)とOPMNリモート・ポートのペアで、トポロジ内で検出ホストとして機能します。各トポロジに複数の検出サーバーを構成できます。
たとえば、次のように入力します。
<discover list="host1.com:6200"/>
各検出トポロジ内では、OPMNによってサーバーの循環接続が維持されます。それぞれが離れたロケーションにあるインスタンスのグループを持つクラスタの場合、インスタンスはロケーションに基づいた個別のトポロジにグループ化する必要があります。この場合、個別のトポロジはゲートウェイ・メカニズムによって結合する必要があります。
多数のインスタンスをループする検出トポロジの場合、OPMNは、循環接続ループを自動的に小さなサブ・ループに分割し、サーバー間で通知の送受信に要する待機時間を短縮します。ノード数が16を超えると、OPMNではデフォルトで循環ループを自動的に分割します。この自動分割のしきい値は、[number]接頭辞を検出リストの前に付けることによって構成できます。numberは、OPMNによってトポロジのループ内で許可されるインスタンスの最大数です。この数を超えると、トポロジのループが複数ループに分割されます。numberの最小値は8です。
たとえば、次のように入力します。
<discover list="*[8]225.0.0.37:8205"/>
<discover list="[8]host1.com:6200,host2.com:6200"/>
gateway要素は、独立した検出トポロジ間の接続に使用されます。複数のgateway要素を構成できます。
gatewayの構文はsource/targetです。
source/targetは、ノード・エントリのリストです。各ノード・エントリは、アンパサンド(&)で区切ります。詳細は、nodesを参照してください。ソースにリストされたOPMNサーバーは、ターゲットにリストされたOPMNサーバーにそれぞれ接続されます。ターゲットが省略されている場合は、ソースと同じ値であると判断されます。ソースにリストされていないOPMNサーバーでは、gatewayの指定は無視されます。
次に例を示します。
host1aのOPMNサーバーは、サブネットsubAに切り離された検出トポロジの一部であり、このトポロジとサブネットsubB上の独立した検出トポロジとの間のゲートウェイ・インスタンスとして選択されています。host1bのOPMNサーバーは、サブネットsubBに切り離された検出トポロジの一部であり、このトポロジとサブネットsubA上の独立した検出トポロジとの間のゲートウェイ・インスタンスとして選択されています。
<gateway list="host1a.subA.com:6200&host1b.subB.com:6200/"/>
この構成では、OPMNサーバーhost1a.subA.com:6200はOPMNサーバーhost1b.subB.com:6200に接続され、OPMNサーバーhost1b.subB.com:6200はOPMNサーバーhost1a.subA.com:6200に接続されます。
最大の冗長性を実現するため、各検出トポロジのゲートウェイとして複数のホストを構成する場合があります。
次に例を示します。
host1aのOPMNサーバーは、サブネットsubAに切り離された検出トポロジの一部であり、このトポロジとサブネットsubB上の独立した検出トポロジとの間のゲートウェイ・インスタンスとして選択されています。host1bのOPMNサーバーは、サブネットsubBに切り離された検出トポロジの一部であり、このトポロジとサブネットsubA上の独立した検出トポロジとの間のゲートウェイ・インスタンスとして選択されています。
次は前述の例と同じですが、各サブネットに2つのホストが構成されます。
<gateway list="host1a.subA.com:6200&host2a.subA.com:6200&host1b.subB.com:6200&host2b.subB.com:62 00/"/>
ただしこの構成では、サブネットAの2つのインスタンスが常に相互接続して、サブネットBの2つのノードが常に相互接続します。その結果、不要な接続オーバーヘッドが発生します。
より厳密に構成するには、2つの個別のgateway要素が必要になります。
<gateway list="host1a.subA.com:6200&host2a.subA.com:6200/host1b.subB.com:6200&host2b.subB.com:62 00"/> <gateway list="host1b.subB.com:6200&host2b.subB.com:6200/host1a.subA.com:6200&host2a.subA.com:62 00"/>
これで、同一サブネット上のインスタンスは必要に応じて相互接続するようになります。
process-managerには、OPMNのPM部分の構成の定義が含まれます。
insecure-remote-requests属性には、セキュリティ機能が構成されるまでリクエストを無効にする、セキュリティ・チェックを行うかどうかを指定します。デフォルトでは、ONSのSSLが有効でありWalletファイルが認証用に構成されている場合にのみ、OPMNがリモート OPMNサーバーからルーティングされたリクエストの起動、停止、再起動、シャットダウンおよび再ロードを許可します。
各process moduleは、特定のprocess-type要素のセットをサポートするように設計されており、それらのprocess-type要素が構成されている場合にのみ必要となります。PMは、指定したprocess moduleごとにライブラリを動的にロードします。
module要素は、PMに対してprocess-type固有のサポートを提供します。各モジュールは、共有ライブラリとして実装されます。実装されたモジュールは一連の標準機能をエクスポートし、PMのprocess module APIを使用します。モジュールには、サポートするprocess-typeのリストを指定する必要があります。1つの構成済process moduleのみ、特定のprocess-typeをリストします。2つのモジュールに同じprocess-typeをリストすることはできません。
path属性には、共有ライブラリ・ファイルのパス名を指定します。ライブラリ・ファイルには、Linuxの場合は.so、Microsoft Windowsの場合は.dllというシステム接尾辞が付きます。接尾辞は省略できます。その場合、接尾辞はOPMNによって自動的に追加されます。パスを指定するときには、ORACLE_HOMEを使用できます。
このtag属性によってモジュールを識別します。モジュールは、PMのログ・ファイルにエラーを記録する場合やリクエストへのレスポンスの一部として、自身のタグの値をレポートします。必須ではありませんが、この属性に意味のある値を設定すると、プロセス管理の問題の追跡に役立ちます。
モジュールをenabledに設定すると、PMは自身の共有ライブラリをロードして、モジュールの初期化機能を起動およびコールします。disabledに設定すると、モジュール・エントリは完全に無視されます。opmn.xmlにモジュールのprocess-typeが構成されている場合は、このprocess-typeもdisabledに設定する必要があります。criticalに設定した場合の動作は、モジュールの初期化が失敗した場合にOPMNが致命的なエラー・コードで終了する点を除いて、enabledに設定した場合と同じです。
モジュールのcronコールバック機能をコールする時間隔を秒単位で指定します。cronコールバックをサポートしないモジュールに対してcronの時間隔を設定することはできません。独自に設計したモジュールを使用する場合を除いて、この属性は追加および変更しないでください。
特定のモジュールにのみ意味のある、モジュール固有の名前と値のペアを定義する場合は、module-dataブロックを使用します。各module-dataブロックは、名前と値のデータのペアを含むカテゴリに分類されます。
module-dataブロックは、opmn.xmlファイル内の複数の要素に対して定義できます。またOPMNは、process-setレベルに、それ以上のレベルで定義されたすべての値を含むmodule-data集合体ブロックを作成します。この階層内に同じ category idとdata idを持つ複数の定義が存在する場合は、最下位レベルに定義された値が使用されます。
表6-5に、階層内の各レベル(一番上が最上位レベル)で定義されたmodule-dataと、すべてのmodule-data定義のprocess-setレベルにおける結果の共用体を示します。
category要素は、module-dataブロック内の編成レベルを表します。
このid文字列によってデータ・カテゴリを識別します。1つのmodule-dataブロック内の各カテゴリIDは一意にする必要がありますが、複数のmodule-dataブロックに同じデータ・カテゴリIDを含めることができます。この場合、これらのカテゴリは関連していると見なされます。
id、value、process-conversion
module-data カテゴリ内のデータ名の値を定義します。
この文字列によってデータ属性を識別します。1つのカテゴリ内の各データIDは一意にする必要がありますが、複数のカテゴリに同じデータIDを含めることができます。異なるカテゴリ内に定義された、他のデータ要素と同じidを持つデータ要素は互いに関連します。
データ要素のidに関連付けられた値文字列です。process-setの範囲内(process-set以上の任意のレベル)に定義された任意の環境変数は、$variableまたは%variable%のような値文字列で参照され、変数値に展開されます。この範囲内には、データ値が(process-set以上の任意のレベルに)定義されています。
process-conversion属性には、区切り文字を指定できます。OPMNはデフォルトで、data値文字列に含まれるスラッシュを、OPMNが稼動しているシステムに応じたディレクトリ・パスの区切り文字に変換します。UNIXでは円記号(¥)がスラッシュ(/)に、Windowsではスラッシュ(/)が円記号(¥)に変換されます。この変換を無効にする場合は、この属性をfalseに設定します。
process-conversionがtrueの場合は、OPMNではスラッシュの変換を防ぐため、カレット(^)文字をエスケープ文字として使用することに注意してください。たとえば、Windowsシステムでは、カレット・スラッシュ(^/)はスラッシュ(/)として認識されます。結果として生成される文字列内にカレット(^)文字を使用したい場合は、カレット(^)文字を2つ並べて指定します。たとえば、^^のように指定すると、結果の文字列内に^が表示されます。
data idには、routing-idモジュールの値を定義します。
routing-idの詳細は、『Oracle HTTP Server管理者ガイド』を参照してください。
routing idには、OC4JとOracle HTTP Server間のルーティング上の関係を指定します。つまり、Oracle HTTP Serverは、同一のrouting idを持つすべてのOC4Jに対してルーティングを行います。デフォルトでは、routing idは、opmn.xmlファイルのias-instance下でmodule dataとして指定されています。routing-idのデフォルトはg_rt_idです。opmn.xmlファイルでは階層制が採用されており、opmn.xmlファイルに構成されているすべてのコンポーネントは、routing idの構成を継承します。Oracle HTTP ServerまたはOC4Jに別のrouting idを構成するには、opmn.xmlファイルで下位のrouting idを構成する必要があります。opmn.xmlファイルの多くのエントリと同様に、下位に構成されたエントリは、上位に構成されたエントリよりも優先されます。
id
module-id名は、プロセスのタイプを定義し、この構成をprocess moduleと関連付けます。
この識別子は各process-typeで使用し、そのprocess-typeをサポートするモジュールを指定します。1つのモジュールに複数のmodule-idを構成できます。
id、ORACLE_HOME
Oracle Application Serverインスタンスの構成を定義します。各OPMNでサポートされるias-instanceは1つだけです。
id = ias-instance-id; name = ias-instance-name; ORACLE_HOME = "path name"
この文字列には、ias-instanceのIDを指定します。
name文字列には、ias-instanceの名前を指定します。この値が、有効範囲のOPMNリクエストのインスタンスの識別に使用されます。
このORACLE_HOMEパス属性は、Oracle Application Serverインスタンスと同じORACLE_HOMEである必要があります。
module-dataブロックと同様に、environmentブロックはopmn.xmlファイル内の複数の要素に定義できます。またOPMNは、process-setレベルに、それ以上のレベルで定義されたすべての値を含むenvironment集合体ブロックを作成します。この階層内に同じidを持つ複数の定義が存在する場合は、最下位レベルに定義された値が使用されます。
id、value、append、process-conversion
variable要素には、環境変数の名前と値を定義します。
idには、環境変数の名前を指定します。environment idはenvironmentブロック内で重複できますが、最後に定義した値が前に定義した値よりも優先されます。異なる要素のenvironmentブロックで、同じenvironment idを定義できます。この場合、最下位レベルに定義した値が、それより上のレベルで定義した値よりも優先されます。
環境変数の値を指定します。$variableまたは%variable%のような値文字列で参照される環境変数が変数値に展開されます。上位レベルの定義や同じenvironmentブロック内の前の定義を使用する場合、同じ環境変数であればこの変数は自身を参照します。
環境変数を参照する場合は、Linuxシェル構文の$variableまたは${variable}、あるいはMicrosoft Windows形式の%variable%を使用できます。何も定義されていない変数を参照した場合、変数はそのまま維持されます。つまり、value="_notdefined_"は何も変更されません。
たとえば、次のenvironmentブロックでは、accumulateに"foobar"という値を指定しています。
<environment> <variable id="accumulate" value="foo"> <variable id="accumulate" value="${accumulate}bar"> </environment>
trueを指定すると、新しい環境変数値を以前に定義した値に追加するようにOPMNを強制できます。値の間はシステム・ライブラリ・デリミタ(Linuxの場合は':'、Microsoft Windowsの場合は';')で区切られます。これは、CLASSPATHなどの変数に使用する値をまとめる際に役立ちます。
たとえば、次のenvironmentブロックでは、LinuxシステムのCLASSPATHに"/foo:/bar"という値を指定しています。
<environment>
<variable id="CLASSPATH" value="/foo">
<variable id="CLASSPATH" value="/bar" append="true">
</environment>
RMD定義を使用すると、ユーザーが構成する一連のディレクティブに従って、システムの状態に基づくプロセス管理コマンドを発行できます。考慮するシステム条件には、Oracle Application Serverインスタンスで入手可能な任意のDMSメトリックが含まれます。DMSメトリックには、事前設定されている常駐のメトリックと、他のアプリケーションによって定義および実装されるメトリックがあります。
RMD定義は、次のいずれかになります。
ias-instanceレベルまたはその下位レベルで定義される場合。階層RMDにより、階層RMDが定義されているOPMNの構成コンポーネント内の対応付けが判断されます。
条件を指定するディレクティブと、その条件がtrueと評価されたときに実行されるアクションのセット、および任意のアクションが失敗したときに実行されるexceptionのオプション・セットを指定します。
階層RMDの場合、この名前は、階層RMDが定義された階層コンポーネント内で一意である必要があります。グローバルRMDの場合は、global rmd-definitionsブロック内で一意である必要があります。
RMDの説明を指定します。
interval属性には、RMDの条件チェックの時間隔を指定します。チェックの実際の時間隔は、システムの負荷により、構成されたintervalよりも長くなる場合があります。小さい値を設定すると、RMDを頻繁にチェックすることになり、余分なシステム・リソースを消費します。
intervalを文字列"joinonsgroup"に設定すると、OPMNサーバーが新しいONSトポロジ・グループを追加したことをONSレイヤーが検出した際、RMDが評価されます。
rmd属性がinterval="joinonsgroup"の場合は×)
conditional要素には、OPMNによって評価される条件文が含まれます。
CDATA条件文には、actionをトリガーするシステムの状態を記述します。この文は、値比較の論理的な組合せで構成されます。OPMNのあらゆる機能と同様に、条件文では大文字と小文字が区別されます。使用可能な値には、次のタイプがあります。
DMSメトリックは、OPMN DMSツリー内の位置に基づいて記述します。メトリックは、完全修飾されたパス名、階層の相対参照またはグローバルの絶対参照のいずれかで指定します。
ターゲット・メトリックの完全修飾されたパス名は、スラッシュ(/)から始めます。完全修飾されたパス名には、OPMNインスタンスの完全パス名を含めます。OPMNインスタンスの接頭辞は、完全修飾されたパス名に自動的に追加されます。たとえば、次のように入力します。
/pm/host_statistics/freePhysicalMem
完全修飾されたパス名を持つメトリックは、階層RMDおよびグローバルRMDの両方のconditionalで参照できます。
RMD要素が階層の場合、メトリックには相対パス名の形式を使用する必要があります。たとえば、次のように入力します。
[process-set].numProcs
この例は、RMDが評価される階層内の任意のprocess-setのnumProcsを指定します。このルールの例外はapplicationメトリックです。このメトリックでは、パス名は相対と絶対のどちらでも指定できます。階層RMDのconditionalで指定できるコンポーネントは次のとおりです。
[ias-component]: opmn.xmlファイルの階層内のias-component要素を参照します。
[process-type]: opmn.xmlファイルの階層内のprocess-type要素を参照します。
[process-set]: opmn.xmlファイルの階層内のprocess-set要素を参照します。
[process]: ランタイム階層内のprocess要素を参照します。
[application]: ランタイム階層内のapplication要素を参照します。
[application=<app>]: アプリケーション<app>を参照します。
RMD要素がグローバルの場合、メトリックは開始位置の絶対表記から始めて、その後ろに相対パス名を指定する必要があります。たとえば、次のように入力します。
[ias-component=HTTP_Server][process-set=HTTP_Server].numProcs
この例では、ias-component=HTTP_Serverに属する、process-setがHTTP_ServerのメトリックnumProcsを指定します。このルールの例外は次のとおりです。
グローバルRMDのconditionalで指定できるコンポーネントは次のとおりです。
[ias-component=<comp>]: opmn.xmlファイルのias-component <comp>を参照します。
[process-type=<ptype>]: opmn.xmlファイルのprocess-type <ptype>を参照します。
[process-set=<pset>]: opmn.xmlファイルのprocess-set <pset>を参照します。
[process]: プロセスを参照します。
[application]: アプリケーションを参照します。
[application=<app>]: application <app>を参照します。
OPMNプロセスのリクエストと同様、ディレクティブで指定されていないコンポーネントはワイルドカードと見なされます。したがって、[process-set=home]を参照するグローバルRMDは、opmn.xmlファイル内のid"home"で構成されたすべてのprocess-setについて評価されます。
1つのconditionalで複数のOPMN論理コンポーネントを参照することはできません。たとえば、同じconditionalでは[ias-component=HTTP_Server]を参照できません。同様に、下位の構成コンポーネントへの参照は、同じconditional内の参照先の上位コンポーネントに属することができません。
階層RMDおよびグローバルRMDでは、複数の項目をカッコで囲んで指定できますが、後続の各項目でツリーを絞り込む必要があります。つまり順序としては、ツリーの頂点から枝葉に向かうようにする必要があります。たとえば、processはias-componentの前に記述することはできません。
定数値は、小数点を含む平易な数値である必要があります。定数値をDMSメトリックと比較する場合は、比較対象であるDMSメトリックと同じ単位にする必要があります。この数値は、OPMNによって類似した値に変換されます。
24時間形式(hh:mm)で構成される時間値は、オプションの曜日インジケータと結合されます。曜日の略語は、sun、mon、tue、wed、thu、friおよびsatです。曜日インジケータには、単一の値、カンマ区切りリストまたはダッシュを使用したリストを指定します。
現在の時間は、キーワード{time}で表します。演算子の左側に指定された曜日に、演算子の右側に指定された曜日が含まれていない場合、時間比較はfalseと評価されます。
デフォルトでは、曜日は値が等しい場合にのみ評価されます。曜日の評価がtrueの場合は、時間値も評価されます。
曜日の後ろに@文字を追加することにより、単一の曜日に対する比較を強制できます。日曜(sun)は値0、土曜(sat)は値6として扱われます。たとえば、次のように入力します。
{time} < [wed].12:00: 水曜の午前0時から正午の間のみtrueと評価されます。
{time} < [wed@].12:00: 日曜の午前0時から水曜の正午までがtrueと評価されます。
値の比較には、次より小さい(<)、次以下(<=)、次より大きい(>)、次以上(>=)、次と等しい(=)、または次と等しくない(!=)があります。
一重引用符(')を使用すれば文字列値も指定できますが、許可される演算子は次と等しい(=)、または次と等しくない(!=)のみです。
比較は演算子のおよび(&)、または(|)、グループ化(カッコ)を使用して論理的に結合できます。比較の論理グループの前に論理演算子(!)を付けると、出力結果を否定できます。
キーワード{duration(interval)}を使用すると、指定された時間隔(秒単位)にわたってconditionalがtrueと評価された場合にのみ、conditionalでトリガーを実行するように指定することもできます。この場合、conditionalはある時間隔に限ってのみ評価されることに注意してください。duration値を指定すると、指定された時間隔にわたって評価がconditional値と一致する場合にのみ、conditionalのトリガーが強制されます。これは、指定された時間隔全体でこの条件がtrueであることを保証する近似処理です。この近似処理の精度は、{duration(interval)}の値と、評価の構成されたintervalの割合に依存します。conditionalがtrueと評価されると、その評価のすべてのdurationがリセットされます。conditionalがfalseと評価された場合は、評価で使用されなかった任意のdurationもリセットされます。
intervalを文字列joinonsgroupに設定すると、OPMNサーバーが新しいONSトポロジ・グループを追加したことをONSレイヤーが検出した場合にのみ、conditionalが評価されます。conditionalが省略されている場合、RMDの評価は常にtrueになります。conditionalが定義されている場合、processレベルの参照は許可されないため、durationキーワードは使用しないでください。たとえば、次のように入力します。
[process-set=home][process].heapSize > 500000
{time} = [Mon-Fri].1700
少なくとも60秒間の平均リクエスト時間が500ミリ秒より大きく、階層RMDが構成されているprocess-setに対して実行されているプロセスが4より少ない場合:
[process].avgReqTime > 500 {duration(60)})&([process-set].numProcs < 4)
直近の3分間に空きシステム・メモリーが50MB未満であった場合:
/pm/host_statistics.freePhysicalMemory < 50000 {duration(180)}
action要素には、conditionalがtrueと評価された場合に実行するアクションを指定します。
actionには、RMDのconditionalがtrueと評価された場合に実行する、プロセス管理リクエストまたは特定のプログラムのいずれかを指定します。RMDには複数のactionを指定できます。これらは、定義された順番に続けて実行されます。
actionリクエストから成功(200)以外の値が戻されたか、実行プログラムが0以外のステータスで終了した場合、RMDの残りのactionはスキップされ、構成済のexceptionが実行されます。
actionまたはexceptionの処理中は、RMDは評価されません。
RMDに指定できるactionには、次のものがあります。
start: 指定した引数リストとともに起動リクエストを実行します。
restart: 指定した引数リストとともに再起動リクエストを実行します。
stop: 指定した引数リストとともに停止リクエストを実行します。
exec: 指定したプログラムまたはスクリプトを引数リストとともに実行します。
start、restartおよびstopリクエストのターゲットは、RMDのconditionalで参照されるOPMNコンポーネントと相対的であると見なされます。リクエストの範囲を限定するために、それらのコンポーネントを示すキーワードを使用する必要があります。
次の拡張付きキーワードを使用できます。
{ias-component} ias-component=<comp>
{process-type} process-type=<ptype>
{process-set} process-set=<pset>
process} uniqueid=<uid>
{application} application=<app>
start、restartおよびstopのactionでは、キーワード{process}を他のキーワードとともに使用できません。OPMNリクエストではこの組合せは許可されません。
また、execのactionでは、process-setまたはprocessを参照するconditionalの場合、{pid}キーワード(pid=<pid>に拡張)を使用できます。
actionでは、conditionalで参照される最下位のOPMNコンポーネントよりも下位レベルのOPMNコンポーネントのキーワードを参照できません(たとえば、conditionalがias-componentのみを参照する場合、actionでは{ias-component}キーワードのみを使用できます)。このルールの例外として、conditionalがprocess-setを参照する場合は、actionで{process}を参照できます。ただし、その場合、RMDは強制的にprocess-setレベルではなくprocessレベルで評価されます。
actionリクエストの結果は、OPMNプロセス・マネージャ・ログに記録されます(リクエストの開始と完了が記録されます。完了ステータスはレベル4、完全な結果はレベル5)。実行可能プログラムまたはスクリプトのstdoutおよびstderr出力は、$ORACLE_HOME/opmn/logs/rmd.outに送信されます。rmd.outファイルではローテーションは行われません。その他のプログラムとスクリプトでは、個別のログ・ファイルが使用されます。出力には、stdoutおよびstderrファイル記述子は使用されません。
次にactionの例を示します。
ORACLE_HOMEインスタンス内で定義された階層RMDのホームOC4Jインスタンスで別のJVMを起動します(このprocess-setは、minprocsおよびmaxprocsを使用して構成する必要があります)。
start {ias-component}{process-type}{process-set} numprocs=1ホーム・インスタンス内で定義された階層RMDのホーム・インスタンスでJVMを再起動します。
restart {process}RMDのconditionalによって参照されるias-component全体を停止します。
stop {ias-component}特定のプログラムを実行して、参照processのUIDおよびpidを渡します。
exec $ORACLE_HOME/mybin/report.sh "rmd triggered" {process} {pid}
タイムアウト値は、actionごとに構成できます。start、restartおよびstopのactionのデフォルトのタイムアウトは、それらのコンポーネントに対するOPMNリクエストに構成された(またはデフォルトの)タイムアウトです。execのデフォルトのタイムアウトは、それらのコンポーネントに対するOPMNリクエストに構成された(またはデフォルトの)タイムアウトです。execのactionのデフォルトのタイムアウトは30秒です。
RMDの任意のaction定義が失敗したときに実行するアクションを指定します。
この構成は、actionの構成と同じです。
exceptionリクエストから成功(200)以外の値が戻されたか、実行プログラムが0以外のステータスで終了した場合、RMDの残りのexceptionはスキップされます。
id、id-matching、status
ias-componentは、管理上の理由から、process-typeを論理グループにまとめたものです。
id属性は、ias-instance内のias-componentを一意に識別します。
OPMNはデフォルトで、コンポーネントのid-matching属性がtrueに設定されている場合を除いて、ias-componentと構成済のすべてのias-componentとが一致しないようリクエストします。trueに設定されている場合は、ias-componentやそのias-componentに構成した任意のprocess-typeまたはprocess-setに反映するよう、リクエストにias-component idを明示的に含める必要があります。
ias-componentをenabledに設定すると、OPMNは構成されたすべての属性および要素を解析して、OPMNに対する操作のリクエストを許可します。disabledに設定すると、ias-componentエントリは完全に無視されます。
OPMNは、dependenciesを使用して、プロセスを起動するかどうかを決定します。module-dataとenvironmentブロック同様に、dependenciesブロックはopmn.xmlファイル内の複数の要素に対して定義できます。また、OPMNは、process-setレベルに、それ以上のレベルで定義されたすべての依存関係を含む依存関係の一覧を作成します。同じ依存関係が異なるレベルに重複して定義されている場合は、プロセスを起動する前に依存関係のチェックが実行されます。
依存関係のタイプは、主に外部と内部の2つに分けられます。外部依存関係は、OPMNが管理しないリソースに使用されます。たとえば、Application Server Controlコンソールです。
外部プログラムは、OPMNがリソースのチェックを行う際に実行します。内部依存関係は、OPMNが管理するプロセス(ユニット)に使用され、リモートのOPMNが管理するプロセスもこれに含まれます。
OPMNは、依存関係の最新の状態や最後にチェックを実行した時間など、各依存関係の状態をキャッシュに維持します。cache-timeoutパラメータを使用すると、各依存関係について、キャッシュ内に維持している状態を使用する期間や、その状態を使用するかどうかを指定できます。また、各依存関係に対して一般的なタイムアウト・パラメータを使用すれば、依存関係のチェックやプロセスの起動を中断する前に、依存関係のステータスが更新されるまでOPMNが待機する時間を指定できます。
OPMNは、宣言された順番に依存関係をチェックしていきます。依存関係一覧の走査は、チェックがすべて成功する(依存関係が有効)、最初のチェックが失敗する(依存関係が無効)、あるいは依存関係チェックがタイムアウトになるかのいずれかによって終了します。
db-connect-info、infrastructure-key、timeout、cache-timeout
database要素には、チェックするデータベースを指定します。db-connect-infoまたはinfrastructure-keyのいずれかを使用してデータベースを識別します。
db-connect-info属性には、データベースへの接続に必要な文字列を指定します。文字列は、次のいずれかの形式で指定します。
<host>:<port>/<service name>
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=<host>) (PORT=<port>)) (CONNECT_DATA=(SERVICE_NAME=<service name>)))
たとえば、次のように入力します。
pdsundev7:1521/asdb.us.oracle.com
データベースの接続情報は、$ORACLE_HOME/network/admin/tnsnames.oraに格納されます。
データベースの識別に必要なinfrastructure-key属性を指定します。
timeout属性には、依存関係のチェックが完了するまでOPMNが待機する時間を秒単位で指定します。設定した秒数を経過してもチェックが終了しない場合、OPMNはチェックが失敗したと判断します。
cache-timeout属性には、キャッシュ内の依存関係のエントリに対して、OPMNが現在の稼動中ステータスを維持する時間を秒単位で指定します。最後に成功した依存関係のチェックが、現在のチェックからさかのぼって指定した秒数内に実行されたものであれば、即座に依存関係のチェックに成功のフラグが付きます。指定した秒数よりも前の場合は、新たに依存関係のチェックが実行されます。cache-timeoutは最後に成功したチェックにのみ適用され、前のチェックが失敗した場合は、別の方法で依存関係のチェックが実行されることに注意してください。0を指定すると、OPMNは常に依存関係のチェックを実行します。
address、infrastructure、timeout、cache-timeout
<OID>要素には、特定のOracle Internet Directoryのaddress文字列をチェックしたり、デフォルトのInfrastructureのOracle Internet Directoryを使用するようOracleAS Infrastructureのフラグがtrueに設定されているかどうかをチェックするように、Oracle Internet Directoryサービスを指定します。
address要素には、Oracle Internet Directoryへの接続に必要なaddress文字列を指定します。
Oracle Application Serverインスタンスに、デフォルトのInfrastructureのOracle Internet Directoryを使用するかどうかを指定します。
enabled、wallet-file、wallet-password
Oracle Internet Directory接続用のSSL情報を指定します。
Oracle Internet Directory接続でSSLを有効にするには、enabled属性をtrueに設定します。
Oracle Internet Directory接続の認証に使用するWalletファイルのパス名を指定します。$ORACLE_HOMEディレクトリの場所を使用することもできます。
wallet-password属性には、指定したwallet-fileに使用するパスワードを指定します。
timeout属性には、依存関係のチェックが完了するまでOPMNが待機する時間を秒単位で指定します。設定した秒数を経過してもチェックが終了しない場合、OPMNはチェックが失敗したと判断します。
cache-timeout属性には、キャッシュ内の依存関係のエントリに対して、OPMNが現在の稼動中ステータスを維持する時間を秒単位で指定します。最後に成功した依存関係のチェックが、現在のチェックからさかのぼって指定した秒数内に実行されたものであれば、依存関係のチェックに成功のフラグが付きます。指定した秒数よりも前の場合、OPMNは新たに依存関係のチェックを実行します。cache-timeoutは、最後に成功した依存関係のチェックにのみ適用されます。前のチェックが失敗した場合、OPMNは別の方法で依存関係のチェックを実行します。0を指定すると、OPMNは常に依存関係のチェックを実行します。
host、port、URI、timeout、cache-timeout
OSSO要素には、チェックするOracleAS Single Sign-Onサービスを指定します。
host属性には、OracleAS Single Sign-On接続用のホスト名を指定します。
port属性には、OracleAS Single Sign-On接続用のポートを指定します。
URI属性には、OracleAS Single Sign-On接続用のURIを指定します。
enabled、wallet-file、wallet-password
ssl要素には、OracleAS Single Sign-On接続用のSSL情報を指定します。
enabled属性は、OracleAS Single Sign-OnのSSL接続を有効にします。接続を有効にするには、この属性をtrueに設定します。
wallet-file属性には、OracleAS Single Sign-On接続の認証に使用するWalletファイルのパス名を指定します。ORACLE_HOME値を使用することもできます。
wallet-passwordには、指定したwallet-fileに使用するパスワードを指定します。
timeout属性には、依存関係のチェックが完了するまでOPMNが待機する時間を秒単位で指定します。設定した秒数を経過してもチェックが終了しない場合、OPMNはチェックが失敗したと判断します。
cache-timeout属性には、キャッシュ内の依存関係のエントリに対して、OPMNが現在の稼動中ステータスを維持する時間を秒単位で指定します。最後に成功した依存関係のチェックが、現在のチェックからさかのぼって指定した秒数内に実行されたものであれば、依存関係のチェックに成功のフラグが付きます。指定した秒数よりも前の場合、OPMNは新たに依存関係のチェックを実行します。cache-timeoutは、最後に成功した依存関係のチェックにのみ適用されます。前のチェックが失敗した場合、OPMNは別の方法で依存関係のチェックを実行します。0を指定すると、OPMNは常に依存関係のチェックを実行します。
ias-instance、ias-component、process-type、process-set、autostart、autostop、timeout、cache-timeout
managed-process属性には、チェックする管理対象プロセスを指定します。process-typeまたはprocess-setのプロセスは、指定した依存関係の管理対象プロセスがアクティブである場合にのみ起動します。循環依存が検出されると、ローカルの管理対象プロセスでは拒否されますが、リモートの管理対象プロセスでは、依存関係チェックがデッドロックになりタイムアウトが起こります。
管理対象プロセスの依存関係のias-instanceを指定します。指定したias-instanceが現在のOPMNで管理されていない場合、そのias-instanceはリモートの管理対象プロセスの依存関係であると見なされます。
管理対象プロセスの依存関係のias-componentを指定します。
管理対象プロセスの依存関係のprocess-type-idを指定します。
管理対象プロセスの依存関係のprocess-set-idを指定します。
autostart属性は、管理対象プロセスの依存関係に使用されます。チェック実行時にプロセスが稼動していない場合は、autostart要素の指定により、OPMNによるプロセスの起動が試行されます。
管理対象プロセスの依存関係が停止中である場合に、管理対象プロセスを停止するかどうかを指定します。リモートの管理対象プロセスの依存関係に対する値は常にfalseです。
timeout属性には、依存関係チェックが完了するまでOPMNが待機する時間を秒単位で指定します。設定した秒数を経過してもチェックが終了しない場合、OPMNはチェックが失敗したと判断します。
cache-timeout属性は、リモートのOPMNが管理するプロセスにのみ使用されます。cache-timeout属性には、キャッシュ内の依存関係のエントリに対して、OPMNが現在の稼動中ステータスを維持する時間を秒単位で指定します。最後のタイムアウトの依存関係のチェックが、現在のチェックからさかのぼって指定した秒数内に実行されたものである場合は、即座に依存関係のチェックに成功のフラグが付きます。指定した秒数よりも前の場合は、新たに依存関係のチェックが実行されます。cache-timeoutは最後に成功したチェックにのみ適用され、前のチェックが失敗した場合は、別の方法で依存関係のチェックが実行されることに注意してください。0を指定すると、OPMNは常に依存関係のチェックを実行します。
id、module-id、status、working-dir
process-typeは、同じモジュールがサポートするprocess-setをグループ化したものです。
id属性は、ias-component内のprocess-typeを一意に識別します。
module-id属性は、process-typeをサポートするmodule-id属性に直接マップする必要があります。
process-typeをenabledに設定すると、OPMNは構成されたすべての属性および要素を解析して、OPMNに対する操作のリクエストを許可します。disabledに設定すると、process-typeエントリは完全に無視され、opmn.xmlファイルの一覧にないエントリと同様に処理されます。
working-dirパス名には、process-type 要素により作成される管理対象プロセス用の作業ディレクトリを指定します。process-setにworking-dir属性が定義されている場合、process-setのパス名がprocess-typeのパス名よりも優先されます。$ORACLE_HOMEディレクトリを使用することもできます。
process-typeはservice-failoverとして構成できます(numが0以外の場合)。つまり、Oracle Application Serverクラスタが稼動中のとき、そのクラスタ内でプロセスがnumの数だけ存在します。この実装では、単一インスタンスで実行されるこのタイプのプロセスは1つに制限されます。そのため、クラスタ内の特定のservice-failoverの最大プロセス数は、クラスタに参加しているインスタンスの数を超えることはありません。num値が、このservice-failoverに参加しているクラスタ内のインスタンス数より大きく、service-failoverがアクティブである(起動されている)場合、クラスタに追加された各参加インスタンスは、クラスタ全体でのservice-failoverプロセスの合計数がnumになるまで自動的に自身のservice-failoverプロセスを起動します。
service-failoverプロセスは、サービスに参加している任意のインスタンスで実行できます。つまり、各インスタンスには、同じias-component id、process-type idおよびprocess-set idで構成されたサービスが必要です。サービス自身を対象とするには、リクエストでias-componentとprocess-type(process-setも含むことができる)の両方を指定する必要があります。
service-failoverのprocess-typeで指定できるのは、1つのprocess-setのみです。フェイルオーバー・サービスのプロセス数は常に1であるため、このprocess-setではnumprocs、minprocsまたはmaxprocsを指定できません。
service-failoverは、(managed-process同様に)依存関係として指定できるか、または依存関係を指定できます。依存関係として指定した場合は、numの構成値にかかわらず、クラスタ内でこのタイプのプロセスが1つでもアクティブになれば、service-failoverの依存関係チェックがtrueと評価されます。
実際のservice-failoverプロセスを実行するインスタンスは、構成された(またはデフォルトの)service-weight値に基づいて選択されます。高い重みを持つインスタンスが低い重みを持つインスタンスよりも優先して選択されます。インスタンスのセットがサービスに対して同じ重みを持つ場合は、構成された数のインスタンスがセットから選択され、プロセスが実行されます。
service-weight属性は、service-failover属性に0以外の値が設定されている場合にのみ指定できます。
<process-type>、<process-set>
event scriptが実行されます。OPMNはスクリプトの実行が完了するかタイムアウトが起こるまで待機してから、次のactionを実行します。
| オプション名 | オプションの引数 | 説明 |
|---|---|---|
|
|
|
システムの現在の |
|
|
|
管理対象プロセスの |
|
|
|
管理対象プロセスの |
|
|
|
管理対象プロセスの |
|
|
|
管理対象プロセスの |
|
|
|
管理対象プロセスの |
|
- |
|
プロセスの |
|
- |
|
プロセスの |
|
|
|
スクリプトが実行された理由を示す文字列。 |
|
- |
|
|
|
- |
|
システムでのプロセスの開始時間を示す整数値(秒単位)。 |
path
構成した依存関係のチェックが問題なく実行された後、プロセスが実際に開始される前に実行するpre-startスクリプトを指定します。pre-startスクリプトのタイムアウトは、プロセス自体の起動に設定されたタイムアウト値になります。このスクリプトの実行に使用した時間は、プロセスの起動のタイムアウト値にカウントされます。スクリプトがタイムアウトした場合、プロセスは起動せず、関連したすべてのHTTPリクエストが失敗します。
イベント・スクリプトを使用してstart、stopまたはrestartなどのOPMNプロセスをリクエストする場合は注意が必要です。これらのリクエストはprocess-setレベルでシリアライズされています。現在のリクエスト(あるいはすでにキューに入れられている別のリクエスト)が実行されているprocess-setに対してスクリプトがリクエストを実行すると、タイムアウトが発生するまでそのスクリプトはハングします。
OPMNが実行権限を持つ実行可能プログラム、または読取り権限と実行権限の両方を持つスクリプト・ファイルのパス名を指定します。ORACLE_HOME値を使用することもできます。
path
関連付けられたプロセスを停止する前に実行するスクリプトを指定します。このスクリプトのタイムアウトは、プロセス自体の停止に設定されたタイムアウト値になります。このスクリプトの実行に使用した時間は、プロセスの停止のタイムアウト値にカウントされます。スクリプトがタイムアウトした場合は、すべての関連するHTTPリクエストが失敗します。ただし、OPMNはプロセスの停止操作を続行します。
start、stopまたはrestartなどのOPMNプロセスをリクエストする場合は注意が必要です。これらのリクエストはprocess-setレベルでシリアライズされています。現在のリクエスト(あるいはすでにキューに入れられている別のリクエスト)が実行されているprocess-setに対してスクリプトがリクエストを実行すると、タイムアウトが発生するまでそのスクリプトはハングします。
OPMNが実行権限を持つ実行可能プログラム、または読取り権限と実行権限の両方を持つスクリプト・ファイルのpath属性を指定します。$ORACLE_HOMEディレクトリを使用することもできます。
path
関連付けられたプロセスが予期せず中断した後に実行するスクリプトを指定します。このスクリプトのタイムアウトは、プロセス自体の停止に設定されたタイムアウト値になります。スクリプトが終了すると、OPMNは中断したプロセスの置換をスケジュールします。
start、stopまたはrestartなどのOPMNプロセスをリクエストする場合は注意が必要です。これらのリクエストはprocess-setレベルでシリアライズされています。現在のリクエスト(あるいはすでにキューに入れられている別のリクエスト)が実行されているprocess-setに対してスクリプトがリクエストを実行すると、タイムアウトが発生するまでそのスクリプトはハングします。
OPMNが実行権限を持つ実行可能プログラム、または読取り権限と実行権限の両方を持つスクリプト・ファイルのpath属性を指定します。$ORACLE_HOMEディレクトリを使用することもできます。
timeout、retry
start属性には、管理対象プロセスの起動パラメータが含まれます。
timeout属性には、管理対象プロセスの起動に対するタイムアウト値を指定します(秒単位)。
retry属性には、1つのリクエストにおいて連続して実行する、プロセスの起動試行回数を指定します。
<process-type>、<process-set>
timeout
stop属性には、管理対象プロセスの停止パラメータを指定します。
管理対象プロセスの停止に対するtimeout値を指定します(秒単位)。
<process-type>、<process-set>
timeout、retry
管理対象プロセスのrestartパラメータを指定します。
管理対象プロセスの再起動に対するtimeout値を指定します(秒単位)。
retry属性には、1つのリクエストにおいて連続して実行する、プロセスの再起動試行回数を指定します。
<process-type>、<process-set>
timeout、retry、interval
ping要素には、管理対象プロセスのpingパラメータを指定します。
管理対象プロセスのpingに対するtimeout値を指定します(秒単位)。モジュールごとにpingのタイムアウトを指定します。
retry属性には、モジュールがプロセスの切断を宣言して再起動するまでに許容する、pingの連続失敗回数を指定します。モジュールごとにpingのリトライ回数を指定します。
interval属性には、管理対象プロセスのpingを実行する時間隔を指定します(秒単位)。
port要素は、使用するモジュールに対するポート管理メカニズムを提供します。各モジュールは、idに設定されたポートを使用します。
id属性で、process-typeに使用するポートの範囲を識別します。各モジュールには、必須またはオプションのportのid一覧があります。
port rangeは、idに割り当てるポートを指定します。
モジュールがid内のポート番号をリクエストすると、OPMNは、その範囲内のポートがローカル・システムにバインドされているかどうかをチェックし、バインドされていない場合はモジュールにそのポート番号を返します。port rangeの構文は、ポートの番号や範囲をカンマで区切って指定します。
次に例を示します。
ポート5555、6666、7777、8888および9999を指定する場合の構文は次のとおりです。
range="5555,6666,7777,8888,9999"
ポート4000〜4250を指定する場合の構文は次のとおりです。
range="4000-4250"
ポート7000〜7049、7775、7785および8050〜8099を指定する場合の構文は次のとおりです。
range="7000-7049,7775,7785,8050-8099"
<process-type>
id、restart-on-death、numprocs、minprocs、maxprocs、status、working-dir、parallel-requests
process-setは、OPMN内のプロセスを抽象化したものです。すべてのmodule-data、環境変数およびその他の構成パラメータが、process-setレベルで最終的な値に解決されます。
id属性は、process-type内のprocess-setを一意に識別します。
管理対象プロセスが、リクエストによる停止ではなく予期せず中断した場合、OPMNはそのプロセスを自動的に再起動しません。中断された管理対象プロセスの自動再起動を有効にするには、この属性をtrueに設定します。
OPMNがこのprocess-setに対して起動するプロセスの数を指定します。
OPMNがこのプロセス・セットに対して起動するデフォルトのプロセス数を指定します。minprocsが構成されている場合、maxprocsには、minprocsの値と同じか、それより大きな値を設定する必要があります。minprocsおよびmaxprocsが構成されている場合、このプロセス・セットに対するOPMNリクエストに、特定のプロセス数が指定されます。この属性は、numprocsが構成されている場合は指定できません。
minprocsが構成されている場合は、maxprocs属性を指定する必要があります。ただし、numprocsが構成されている場合は指定できません。
process-setをenabledに設定すると、OPMNは構成されたすべての属性および要素を解析して、OPMNに対する操作のリクエストを許可します。disabledに設定すると、process-setエントリは完全に無視され、opmn.xmlファイルの一覧にないエントリと同様に処理されます。
working-dirパス名には、このprocess-setに属する、作成された管理対象プロセス用の作業ディレクトリを指定します。$ORACLE_HOMEディレクトリを使用することもできます。
OPMNは、特定のprocess-setで一度に1つのリクエストのみが実行できるように、process-setレベルでリクエストをシリアライズします。後続のリクエストはそれぞれ、実行前に前のリクエストが完了するまで待機する必要があります。このデフォルトの動作は、parallel-requestsがtrueに設定されている場合、process-setに対して無効化されます。
|
![]() Copyright © 2006, Oracle. All Rights Reserved. |
|