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
を文字列"joinons
group
"に設定すると、OPMNサーバーが新しいONSトポロジ・グループを追加したことをONSレイヤーが検出した際、RMDが評価されます。
rmd
属性がinterval="joinons
group
"の場合は×)
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. |
|