ヘッダーをスキップ
Oracle Clusterware管理およびデプロイメント・ガイド
11gリリース1(11.1)
E05739-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

D 高可用性Oracle Clusterwareのコマンドライン・リファレンスおよびC API

この付録では、Oracle ClusterwareのApplication Program Interface(API)のコマンド・リファレンスについて説明します。内容は次のとおりです。


注意:

Oracle Clusterware APIデモは、Windowsではサポートされていません。

Oracle Clusterwareコマンドの使用

この項では、Oracle Clusterwareコマンドを使用して、Oracle Clusterwareフレームワークでアプリケーションおよびアプリケーション・リソースを管理する方法について説明します。

アプリケーション・プロファイル構文

この付録の例では、アプリケーション・プロファイルで使用するコマンド構文を示します。 シャープ記号(#)で始まる行はコメント行で、プロファイルの一部としては処理されません。 行の末尾の円記号(\)は、次の行が前の行の続きであることを示します。 プロファイルの例は、「crs_profileコマンドを使用したアプリケーション・リソース・プロファイルの作成」を参照してください。

セキュリティおよび権限

Oracle Clusterwareでは、LinuxまたはUNIXシステムと同様のセキュリティが使用されており、所有者、グループのノード、または特定の権限の所有者に対して権限を指定できます。 また、他のユーザーに対して、デフォルトの権限を指定できます。 これらの権限は、Windowsのシステムではreadwriteおよびrunで、LinuxまたはUNIXのシステムではrwxです。 デフォルトの所有権および権限は、アプリケーション・プロファイルを作成する際に設定されます。 表D-1に、Oracle Clusterwareコマンドとその所有者、および書込み権限と実行権限が必要なコマンドを示します。

表D-1 Oracle Clusterwareコマンドの所有者および権限

所有者 読取り 書込み権限が必要なコマンド 実行権限が必要なコマンド

ユーザー

crs_stat {any options}

crs_register {no arguments}

crs_register -u

crs_unregister

crs_start

crs_stop

crs_relocate

crs_stat {no arguments}

crs_stat -l -t -r

グループ

crs_stat {any options}

crs_register {no arguments}

crs_register -u

crs_unregister

crs_start

crs_stop

crs_relocate

crs_stat {no arguments}

crs_stat -l -t -r

その他

crs_stat {any options}

crs_register {no arguments}

crs_register -u

crs_unregister

crs_start

crs_stop

crs_relocate

crs_stat {no arguments}

crs_stat -l -t -r



注意:

グループの概念が存在しないプラットフォーム上では、グループ権限はNULLに設定されるか、何も設定されません。


注意:

Oracleサポート・サービスで要求された場合またはhttps://metalink.oracle.comに示された方法でオラクル社から認定された場合を除き、接頭辞oraで始まる名前のリソースに対して、接頭辞にcrs_を持つOracle Clusterwareコマンド(crs_statを除く)は使用しないでください。 サーバー制御(SRVCTL)ユーティリティは、Oracleリソースに対して使用する適切なユーティリティです。 オラクル社が定義したリソースに基づくリソースを作成できます。 また、Oracle Clusterwareコマンドを使用して、構成およびステータスを確認できます。

Oracle Clusterwareコマンド

表D-2に、この付録で説明するOracle Clusterwareコマンドをアルファベット順に示します。 -qオプションはすべてのコマンドで使用可能で、コマンドを静止モードで実行できることに注意してください。 このモードでは、コンソールにメッセージは表示されません。

表D-2 Oracle Clusterwareコマンドのサマリー

コマンド 説明

crs_getperm

リソースに関連付けられた権限を表示します。

crs_profile

Oracle Clusterwareのアプリケーション・プロファイルを作成、検証、削除および更新します。

crs_register


アプリケーションの構成情報をOCRに登録します。

crs_relocate


アプリケーション・プロファイルを別のノードに再配置します。

crs_setperm


リソースに関連付けられた権限を設定します。

crs_stat


アプリケーション・プロファイルのステータスを表示します。

crs_start


登録されているアプリケーションを起動します。

crs_stop


Oracle Clusterwareアプリケーションを停止します。

crs_unregister


アプリケーション・プロファイルの構成情報をOCRから削除します。



注意:

グループの概念が存在しないプラットフォーム上では、グループ権限はNULLに設定されるか、何も設定されません。

crs_getperm

リソースに定義された権限を表示します。 rootユーザーが作成したリソースにrootユーザー以外のユーザーがアクセスする必要がある場合は、明示的にアクセス権を付与する必要があります。 ただし、rootユーザー以外のユーザーが登録したリソースは、それを登録したユーザーが所有し、各自のリソースを確認できます。 アクセス権の定義はUNIXと同様です。


関連項目:

リソースに関連付けられた権限を変更するcrs_setpermコマンド

crs_getpermの構文およびオプション

crs_getpermコマンドは、次の構文で使用します。

crs_getperm resource_name [-u user|-g group] [-q]

リソースに関連付けられた権限を取得するには、次の構文を使用します。

crs_getperm resource_name

crs_getpermの例

postmanアプリケーションに関連付けられた権限を表示するには、次の構文を使用します。

crs_getperm postman

====================
Name: postman
owner:root:rwx,pgrp:oinstall:r-x,other::r--,user:oracle:r-x,
=====================

表D-3 crs_getpermのオプション

オプション 説明

-g group

指定された(オペレーティング・システム)グループに関連付けられた権限を取得します。

-q

静止モードでコマンドを実行します(コンソールにメッセージは表示されません)。

resource_name

特定のリソースに関連付けられた権限を取得します。

-u user

指定されたユーザーに関連付けられた権限を取得します。


crs_profile

Oracle Clusterwareのアプリケーション・プロファイルを作成、検証、削除および更新します。 プロファイルのユーザー・コピーに対して機能します。

crs_profileを使用して、テンプレート・スクリプトを生成することもできます。 crs_profileコマンドを使用すると、新しいアプリケーション・プロファイルの作成と、既存のプロファイルの検証、更新、削除または表示を実行できます。 アプリケーション・プロファイルによって、クラスタでリソースが管理または監視される方法を定義する属性に値が割り当てられます。 rootユーザーの場合、プロファイルはCRS_home/crs/profileディレクトリに書き込まれます。 権限を付与されていないユーザーの場合、プロファイルはCRS_home/crs/publicディレクトリに書き込まれます。 プロファイル内の空白の値は無視され、不要な場合は省略できます。 リソース・タイプに必要なプロファイル変数が省略されると、検証または登録が失敗する場合があります。

アプリケーション・プロファイルを作成し、crs_registerコマンドを使用してアプリケーションをOracle Clusterwareに登録した後、crs_statcrs_startcrs_stopcrs_relocatecrs_unregisterなどの他のOracle Clusterwareコマンドをアプリケーションに対して使用できます。 他のOracle Clusterwareコマンドでアプリケーションを管理するには、crs_registerコマンドを使用してアプリケーションを登録しておく必要があります。 crs_profileコマンドには、プロファイルにユーザー定義の属性を定義する他のオプションもあります。

crs_profileコマンドの構文およびオプション

crs_profileコマンドは、アプリケーション・プロファイルのテンプレートを作成するために、次の構文で使用します。

crs_profile -create resource_name -t application [-a action_script] [-B
 executable_pathname] [-dir directory] [-d description] [-p placement_policy] [-h
 hosting_nodes] [-r required_resources] [-l optional_resources]  [-o option,[...]]
 [attribute_flag attribute_value] [...] [-f] [-q]

crs_profile -create resource_name -t application
          [-dir directory_path] [-a action_script] [-B binary_pathname]
          [-d description] [-h hosting_members] [-r required_resources]
          [-l optional_resources] [-p placement_policy]
          [-o as=auto_start,ci=check_interval,ft=failure_threshold,
          fi=failure_interval,ra=restart_attempts,fd=failover_delay,
          st=script_timeout,ap=active_placement,bt=rebalance,
          ut=uptime_threshold,rt=start_timeout,pt=stop_timeout] [-f] [-q]

アプリケーション・プロファイルのテンプレートからアプリケーション・プロファイルを作成するには、crs_profileを使用してテンプレート(cap)・ファイルを作成します。 このファイルの読取りは、capファイルからデータを読み取ってOCRに配置するcrs_registerコマンドによって自動的に行われます。 次に例を示します。

crs_profile -create resource_name -I template_file [-f] [-q]

プロファイルのアプリケーション・プロファイル構文を検証するには、次のコマンドを入力します。

crs_profile -validate resource_name [-q]

1つ以上のアプリケーション・プロファイルを表示するには、次のコマンドを入力します。

crs_profile -print [resource_name [...]] [-q]

既存のアプリケーション・プロファイルからアプリケーション・プロファイルのテンプレートを作成するには、次のコマンドを入力します。

crs_profile -template resource_name [-O template_file] [-q]

アプリケーション・プロファイルを更新するには、次のコマンドを入力します。

crs_profile -update resource_name [option [...]] [-q]

アプリケーション・プロファイルおよびそれに関連付けられたアクション・プログラムを削除するには、次のコマンドを入力します。

crs_profile -delete resource_name [-q]

注意:

crs_profile -deleteコマンドによってリソース・プロファイルのファイルは削除されますが、アクション・スクリプト・ファイルは削除されません。

表D-4 crs_profileコマンドのオプション

オプション 説明

[ attribute_flag attribute_value]

すべてのcrs_profileコマンドは次の形式を使用します。

crs_profile attribute_flag attribute_value

このコマンドは、生成されたプロファイル内の特定の値(attribute_valueによって指定されている値)に、指定された属性(attribute_flagによって指定されているフラグ)を設定します。 たとえば、次のコマンドは、値resource_name-validate属性を設定します。

crs_profile -validate resource_name

[ -a action_script]

アプリケーションのアクション・プログラムを指定します。 アクション・プログラムには、Oracle Clusterwareによってコールされる、起動、停止およびチェックのエントリ・ポイントがあります。 スクリプト・ファイルのフルパス名またはそのファイル名のいずれかを指定できます。

[ -B executable_pathname]

アプリケーションの実行可能ファイルの位置を指定して、crs_profileコマンドでアプリケーションの実行可能ファイルのパス名を含むアクション・プログラム・ファイルを生成します。

-create resource_name

指定したオプションに従って、選択したアプリケーションのリソース・プロファイルを作成します。 resource_nameは、aからzAからZ0から9、「.」、および「_」の文字を組み合せた文字列です。 リソース名を、ピリオド(.)で始めることはできません。 リソース名の最大長は128文字です。 リソース・プロファイルは、指定したディレクトリに作成されます。

[ -d description]

アプリケーションの説明を指定します。 説明に空白が含まれている場合は、二重引用符("")で囲みます。 Oracle Clusterwareでは、アプリケーションの説明が指定されていない場合、アプリケーション名が使用されます。

[ -dir directory]

プロファイルが格納されているファイルの位置を指定します。

[ -h hosting_nodes]

アプリケーションのホスティングが可能なノードのリストを指定します。リストは、空白で区切って順序付けします。 複数のノードが存在する場合、リストを二重引用符("")で囲む必要があります。 preferredまたはunavailableの配置ポリシーを使用して-pオプションを指定した場合、-hオプションも指定する必要があります。

[ -l optional_resources]

オプション・リソースのリストを指定します。リストは、空白で区切って順序付けします。 複数のオプション・リソースを指定する場合、リストを二重引用符("")で囲む必要があります。

[ -o option[,...]]

属性オプション名およびその値のカンマ区切りのリストを指定します。 属性オプション名のリストを表示するには、表D-5「-oフラグのオプション」を参照するか、crs_profile -helpコマンドを実行します。

[ -p placement_policy]

Oracle Clusterwareでアプリケーションが起動または再起動されるノードを選択する場合に従うポリシーを指定します。 balancedfavoredまたはrestrictedを配置ポリシーとして指定できます。 balanced以外のすべてのポリシーでは、-hフラグも指定する必要があります。

-q

静止モードでコマンドを実行します(コンソールにメッセージは表示されません)。

[ -r required_resources]

アプリケーションが依存するリソースのリストを指定します。リストは、空白で区切って順序付けします。 これらのリソースは、アプリケーションが実行されているすべてのノードでアクティブである必要があります。 複数の必須リソースが存在する場合、リストを二重引用符("")で囲む必要があります。 必須リソースのリストを指定しない場合、Oracle Clusterwareではアプリケーション・リソースに必須依存関係が設定されません。

-t application

アプリケーションまたはアプリケーションのリソース・タイプを指定します。

-validate

プロファイルのアプリケーション・プロファイル構文を検証します。


表D-5 -oフラグのオプション

オプション 説明

ap=active_placement

1に設定した場合、新規クラスタ・ノードが使用可能になると、配置ポリシーが再評価されます。 FAVOREDおよびRESTRICTEDの配置ポリシーを使用すると、高可用性アプリケーションがより適切なクラスタ・ノードに再配置されます。 デフォルトは0です。

as=auto_start

クラスタを再起動した後に、Oracle Clusterwareによってリソースを自動的に起動するかどうかを示します。 AUTO_STARTの有効な値は次のとおりです。

  • always: ノードが停止したときのリソースのステータスに関係なく、ノードの再起動時にリソースを再起動します。

  • restore: ノードが停止したときと同じステータスにリソースをリストアします。 ノードが停止したときにリソースのステータスがOFFLINE(STATE=OFFLINE、TARGET=OFFLINE)だった場合は、ノードが復旧してもリソースはOFFLINEのままです。 リソースは、停止時にONLINEであった場合にのみ起動されます。

  • never: ノードが停止したときのリソースのステータスに関係なく、Oracle Clusterwareはリソースを再起動しません。

注意: alwaysrestoreおよびneverの値は、小文字のみがサポートされています。

ci=check_interval

アプリケーションのアクション・プログラムのチェック・エントリ・ポイントが実行される時間(秒単位)を設定します。 チェックの間隔は、Oracle Clusterwareがアプリケーションの再起動を試行する前に、そのアプリケーションがクライアントで使用できなくなる可能性がある最大時間です。 デフォルトのチェックの間隔は60秒です。

fd=failover_delay

Oracle Clusterwareがアプリケーション・リソースの再配置を試行する前に待機する秒数を指定します。 障害が発生したクラスタ・ノード上で実行されていたアプリケーション・リソースは、そのクラスタ・ノードがフェイルオーバー遅延期間内に使用可能になると、すぐに再起動します。

複数のアプリケーション・リソースが、アプリケーション・プロファイルで定義された必須リソースによって相互に依存している場合、すべての相互依存アプリケーション・リソースは、いずれかのリソースで定義されている最大のフェイルオーバー遅延期間の間、待機します。 デフォルトのフェイルオーバー遅延は0(ゼロ)秒です。

fi=failure_interval

障害しきい値が計算および適用される時間(秒単位)を指定します。 デフォルトの障害間隔は0(ゼロ)です。 デフォルトの障害間隔0(ゼロ)では、障害しきい値および障害間隔の監視が停止されます。 0(ゼロ)以外の障害間隔を指定した場合、障害しきい値も0(ゼロ)以外でないかぎり、影響はありません。

ft=failure_threshold

アプリケーションまたはアプリケーション・リソースを使用不可としてマーク付けし、その監視を停止するまでに、障害間隔内でOracle Clusterwareがアプリケーションまたはアプリケーション・リソースの障害を検出する回数を指定します。 値は0から20の範囲内にする必要があります。 値を0(ゼロ)に設定すると、障害しきい値の監視が停止されます。 Oracle Clusterwareでは、障害しきい値が指定されていない場合、デフォルトの障害しきい値0(ゼロ)が使用されます。

ra=restart_attempts

Oracle Clusterwareが再配置を試行する前に、現行ノード上でアプリケーションまたはアプリケーション・リソースの再起動を試行する回数を指定します。 デフォルトの再起動試行回数は1です。

st=script_timeout

アクション・プログラムを実行可能な最大時間(秒)を設定します。 Oracle ClusterwareコマンドおよびOracle Clusterwareデーモンでは、アクション・プログラムのエントリ・ポイントを呼び出したときにスクリプトの実行がこの時間内に完了しなかった場合、エラー・メッセージを戻して、イベント・マネージャ(EVM)にイベントを通知します。 デフォルトは60秒です。


crs_profileコマンドの例

次の例では、crs_profileコマンドを使用して、postmanアプリケーションのアプリケーション・プロファイルを作成します。

crs_profile -create postman \
-t application \
-a postman.sh \
-o ci=5,ra=2"

次の例では、crs_profileコマンドを使用して、dtcalcという名前のアプリケーション・プロファイルを検証します。

crs_profile -validate dtcalc

-aまたは-Bオプションのいずれも指定しない場合、アクション・プログラム値のないプロファイルが作成されます。 アプリケーションを起動しようとする前に、読取り可能で実行可能なスクリプトを作成し、このスクリプトの値を使用してプロファイルを更新する必要があります。 -aオプションのみを指定する場合、指定するアクション・プログラムは、指定する位置、または(パスが指定されていない場合は)デフォルト・ディレクトリに存在する必要があります。 そうでない場合、コマンドは失敗します。

crs_register

各アプリケーションのresource_nameパラメータで指定された1つ以上のアプリケーションを登録します。 このコマンドを実行するには、ターゲット・アプリケーションへの書込みアクセス権が必要です。 このコマンドは、プロファイルがデフォルトの位置または-dirオプションで指定されたディレクトリに存在する場合のみ正常に実行されます。 Oracle Clusterwareでリソースを監視するか、あるいはアプリケーション・リソースに関連付けられた高可用性アプリケーションを起動、再起動または再配置するには、アプリケーションが登録されている必要があります。 アプリケーション・プロファイルに対する変更を有効にするには、アプリケーションの登録を更新する必要があります。 また、このコマンドに必要な権限の詳細は、「セキュリティおよび権限」を参照してください。

CRSデーモンがアクティブで、Oracle Clusterwareのアプリケーション・プロファイルがアプリケーションのプロファイル・ディレクトリに存在する場合のみ、そのアプリケーションを登録または更新できます。 アプリケーション・プロファイルからフィールドが欠落している場合、そのプロファイルはデフォルトのプロファイル・テンプレートとマージされ、デフォルトのプロファイル・テンプレートの値が使用されます。

アプリケーションの所有権およびデフォルトの権限は、登録処理時に設定されます。 ファイルの権限でreadおよびwriteが許可されているかぎり、任意の.capファイルを登録できます。たとえば、crs_profileおよびcrs_registerでは、そのファイルを読取り可能である必要があります。 デフォルトでは、アプリケーションを登録したユーザーが、そのアプリケーションの所有者になります。 プロファイルを登録できない場合、その原因を説明するメッセージが表示されます。 アプリケーションが登録されていることを確認するには、crs_statコマンドを使用します。

crs_registerコマンドの構文およびオプション

crs_registerコマンドを使用して、アプリケーションを登録および更新できます。 アプリケーションを登録するには、次のcrs_register構文を使用します。

crs_register resource_name [-dir directory_path] [...] [-u] [-f] [-q]

crs_register resource_name -update [-a action_script]
[-d description] [-h hosting_members] [-r required_resources]
[-l optional_resources] [-p placement_policy]
[-o as=auto_start,ci=check_interval,ft=failure_threshold,
fi=failure_interval,ra=restart_attempts,fd=failover_delay,
st=script_timeout,ap=active_placement,bt=rebalance,
ut=uptime_threshold,rt=start_timeout,pt=stop_timeout] [-q]

resource_name [...]パラメータには、アプリケーション・プロファイルで指定された1つ以上のアプリケーション・リソースの名前を指定できます。 どのオプションも指定しない場合、指定された各アプリケーション・リソースは、その配置ポリシーおよび必須リソースのリストに従って、crs_relocateコマンドで再配置されます。 相互に依存するアプリケーション・リソースが存在する場合、-fオプションを指定しないかぎり、リソースは再配置されません。 アプリケーションを登録する場合、そのアプリケーションのプロファイルが存在する必要があります。

表D-6 crs_registerコマンドのオプション

オプション 説明

[ -dir directory_path]

.capファイルがデフォルト・ディレクトリに存在しない場合、.capファイルがあるディレクトリを指定します。

-f

1つ以上の必要なリソースに対する実行権限がなくても、リソースを登録できます。

-u

変更をすぐに有効にします。 crs_register -uは、crs_profile -updateコマンドを発行した直後か、またはアプリケーション・プロファイルを手動で編集した直後に使用します。

[ attribute_flag attribute_value]

すべてのcrs_profileコマンドは次の形式を使用します。

crs_profile attribute_flag attribute_value

このコマンドは、生成されたプロファイル内の特定の値(attribute_valueによって指定されている値)に、指定された属性(attribute_flagによって指定されているフラグ)を設定します。 たとえば、次のコマンドは、値resource_name-validate属性を設定します。

crs_profile -validate resource_name

[ -a action_script]

アプリケーションのアクション・プログラムを指定します。 アクション・プログラムには、Oracle Clusterwareによってコールされる、起動、停止およびチェックのエントリ・ポイントがあります。 スクリプト・ファイルのフルパス名またはそのファイル名のいずれかを指定できます。

[ -d description]

アプリケーションの説明を指定します。 説明に空白が含まれている場合は、二重引用符("")で囲みます。 Oracle Clusterwareでは、アプリケーションの説明が指定されていない場合、アプリケーション名が使用されます。

[ -h hosting_nodes]

アプリケーションのホスティングが可能なノードのリストを指定します。リストは、空白で区切って順序付けします。 複数のノードが存在する場合、リストを二重引用符("")で囲む必要があります。 preferredまたはunavailableの配置ポリシーを使用して-pオプションを指定した場合、-hオプションも指定する必要があります。

[ -l optional_resources]

オプション・リソースのリストを指定します。リストは、空白で区切って順序付けします。 複数のオプション・リソースを指定する場合、リストを二重引用符("")で囲む必要があります。

[ -o option[,...]]

属性オプション名およびその値のカンマ区切りのリストを指定します。 属性オプション名のリストを表示するには、表D-5「-oフラグのオプション」を参照するか、crs_profile -helpコマンドを実行します。

[ -p placement_policy]

Oracle Clusterwareでアプリケーションが起動または再起動されるノードを選択する場合に従うポリシーを指定します。 balancedfavoredまたはrestrictedを配置ポリシーとして指定できます。 balanced以外のすべてのポリシーでは、-hフラグも指定する必要があります。

-q

静止モードでコマンドを実行します(コンソールにメッセージは表示されません)。

[ -r required_resources]

アプリケーションが依存するリソースのリストを指定します。リストは、空白で区切って順序付けします。 これらのリソースは、アプリケーションが実行されているすべてのノードでアクティブである必要があります。 複数の必須リソースが存在する場合、リストを二重引用符("")で囲む必要があります。 必須リソースのリストを指定しない場合、Oracle Clusterwareではアプリケーション・リソースに必須依存関係が設定されません。


登録済のアプリケーションを更新するには、次のcrs_registerコマンド構文を使用します。

crs_register resource_name -update [option ...] [-o option,...] [-q]

関連項目:

-updateを使用するためのオプションおよびその定義のリストについては、表D-4および表D-5を参照してください。-updateのオプションは、crs_profileコマンドのオプションと同じです。

crs_registerコマンドの例

次の例では、アプリケーション・プロファイルがCRS_home/crs/profileディレクトリに存在する、postmanという名前のアプリケーションを登録します。

CRS_home/bin/crs_register postman

注意:

プロファイルがrootユーザーによって作成された場合、そのプロファイルはcrs/profileディレクトリに存在します。 プロファイルがその他のユーザーによって作成された場合、そのプロファイルはcrs/publicディレクトリに存在します。

crs_registerの関連コマンド

crs_statcrs_profilecrs_relocatecrs_startcrs_stopcrs_unregister

crs_relocate

使用するコマンド・オプションで指定されたアプリケーションとアプリケーション・リソース、およびアプリケーション・プロファイル内のエントリを再配置します。 アプリケーションまたはアプリケーション・リソースを再配置するには、指定するアプリケーションまたはアプリケーション・リソースが、クラスタ環境のOracle Clusterwareで登録および実行されている必要があります。 使用できないクラスタ・ノードを指定したか、再配置が失敗した場合、コマンドによってメッセージが表示されます。 また、このコマンドに必要な権限の詳細は、「セキュリティおよび権限」を参照してください。

crs_relocateコマンドを発行すると、まずアクション・プログラムが現在実行されているノード上の、アクション・プログラムの停止エントリ・ポイントが実行されます。 次に、アクション・プログラムの起動エントリ・ポイントが実行され、新しいノード上でアクション・プログラムが起動されます。

アクション・プログラムのエラーによって、現行ノード上のアプリケーションまたはアプリケーション・リソースの停止に失敗した場合、その状態はUNKNOWNとマーク付けされます。 この状態で、リソースに対してcrs_relocateコマンドを発行できません。 かわりに、crs_stop -fコマンドをリソースに対して実行し、crs_startコマンドを発行してそのリソースを再起動し、ONLINE状態に戻してから、再配置を試行します。 Oracle Clusterwareでアプリケーション・リソースの再起動に失敗した場合、リソースのアクション・プログラムを確認する必要があります。

アクション・プログラムの起動エントリ・ポイントを正常に実行できなかった場合、停止エントリ・ポイントが実行されます。 停止エントリ・ポイントを正常に実行できなかった場合、その状態はUNKNOWNとマーク付けされ、再配置は停止されます。 停止エントリ・ポイントが正常に終了した場合、その状態はOFFLINEに設定されます。 ただし、ターゲット状態はONLINEのままであるため、後続のクラスタ・ノードでの障害の発生または再起動によって、アプリケーションの再起動が試行される場合があります。 再配置先のノードを指定しておらず、配置条件を満たしている使用可能なクラスタ・ノードが存在する場合、それらの使用可能なノードのいずれかでアプリケーションの起動が試行されます。

1つ以上のユーザー定義の属性がアプリケーション・リソースに定義されている場合、crs_relocateコマンドを使用してアプリケーションを再配置する際に、これらの属性に対して値を指定できます。 指定した値は、属性の名前が付いた環境変数として、アクション・プログラムへ渡されます。

アプリケーション・リソースを再配置する際にOracle Clusterwareで実行された処理は、コマンドラインにエコーされます。 イベント・マネージャ(EVM)を使用してそれらを監視することもできます。 crs_relocateコマンドによって起動されたリソースのアクション・プログラムからの標準エラーおよび標準出力は、crs_relocateコマンドの標準エラーおよび標準出力にリダイレクトされます。 Oracle Clusterwareデーモンがアプリケーションを起動した場合、アクション・プログラムの標準エラーおよび標準出力は失われることに注意してください。 アクション・プログラム内で理由コードを使用することによって、ユーザーによるアクション・プログラムの呼出しをチェックできます。

crs_relocateコマンドの構文およびオプション

crs_relocateコマンドは、次の構文で使用します。

crs_relocate resource_name [...] [-c cluster_node] [-f] [-q]

crs_relocate resource_name [-c cluster_node] [-q]

crs_relocate [USR_attribute_name=value] [...] resource_name [-c cluster_node] [-q]

crs_relocate -s source_node [-c cluster_node] [-q]

表D-7 crs_relocateコマンドのオプション

オプション 説明

-c cluster_node

指定された各アプリケーションまたはアプリケーション・リソースを、その配置ポリシーに関係なく、指定されたノードに再配置します。 必須リソースが宛先ノードで使用できないか、アプリケーション・リソースが宛先ノードで制限されている場合、crs_relocateコマンドは失敗し、アプリケーションまたはアプリケーション・リソースは現行ノード上に残ります。

-f

指定したアプリケーション、それらに依存しているすべてのアプリケーション、およびそれらが依存しているすべてのアプリケーションを強制的に再配置します。 このオプションは、別のアプリケーションを必要とするアプリケーションまたはONLINEのアプリケーションによって必要とされるアプリケーションの再配置に必要です。

-s source_node

実行中のすべてのアプリケーションまたはアプリケーション・リソースを、source_nodeから再配置します。 -cオプションも指定しない場合、各リソースは、その配置ポリシーおよび必須リソースのリストに従って、crs_relocateコマンドで再配置されます。

-t

すべてのリソースの情報を表形式で表示します。

-q

静止モードでコマンドを実行します(コンソールにメッセージは表示されません)。

[ USR_attribute_name=value]

リソースが起動されると、このオプションは指定された属性をCRSリソースの環境内の特定の値に設定します。


crs_relocateコマンドの例

次の例では、rac1というノードにアプリケーション・リソースを再配置します。

crs_relocate postman -c rac1
Attempting to stop `postman` on node `rac2`
Stop of `postman` on node `rac1` succeeded
Attempting to start `postman` on node `rac1`
Start of `postman` on node `rac1` succeeded

次の例では、ノードrac2からノードrac1への、すべてのアプリケーション・リソースの再配置を試行します。

crs_relocate -s rac2 -c rac1
Attempting to stop `postman` on node `rac2`
Stop of `postman` on node `rac2` succeeded.
Attempting to start `postman` on node `rac1`
Start of `postman` on node `rac1` succeeded.
Attempting to stop `calc` on node `rac2`
Stop of `calc` on node `rac2` succeeded.
Attempting to start `calc` on node `rac1`
Start of `calc` on node `rac1` succeeded.

ユーザー定義の属性USR_DEBUGが定義されている場合、次の例では、環境変数USR_DEBUGFALSEに設定されているアクション・プログラムの停止および起動のエントリ・ポイントを実行します。 これによって、アプリケーション・プロファイルに設定されているすべての値は無効になります。 対応するアクション・プログラムで、アクション・プログラムの適切なセクションに次の行を追加すると、値を表示できます。

echo $USR_DEBUG

その後、次のコマンドを発行します。

# crs_relocate USR_DEBUG=false database

crs_setperm

リソースに関連付けられた権限を変更します。 このコマンドは、LinuxおよびUNIXのシステムのchmodコマンド、Windowsのデスクトップ・オプションの「ファイル」→「プロパティ」→「セキュリティ」→「アクセス許可」に類似しています。


関連項目:

リソースに関連付けられた権限を取得するcrs_getpermコマンド

crs_setpermコマンドの構文およびオプション

crs_setpermコマンドは、次の構文で使用します。

crs_setperm resource_name -u aclstring [-q]

crs_setperm resource_name -x aclstring [-q]

crs_setperm resource_name -o user_name [-q]

crs_setperm resource_name -g group_name [-q]

表D-8 crs_setpermコマンドのオプション

オプション 説明

-u

ACL文字列を更新します。

-x

ACL文字列を削除します。

-o

リソースの所有者を変更します。

注意: 所有者を変更できるのは、rootユーザーのみです。

-g

リソースのプライマリ・グループを変更します。

-q

静止モードでコマンドを実行します(コンソールにメッセージは表示されません)。

aclstring

次のいずれかになります。


user:username:rwx
group:groupname:r-x
other::r--

crs_setpermコマンドの例

次の例では、postmanアプリケーションのadmin1ユーザーに対する権限を変更します。

crs_setperm postman -u user:admin1:r-x

crs_stat

クラスタ・ノード上のリソースのステータス情報を表示します。 crs_statコマンドを使用してリソースの問合せを行うには、CRSリソース権限に対する読取り権限および実行権限(LinuxおよびUNIXのシステムでのrおよびxの権限)が必要です。 -gオプションは例外で、任意のユーザーがこのオプションを使用して、リソースが存在するかどうかを確認できます。

STATE属性に示されるように、リソースはONLINEまたはOFFLINEのいずれかです。 ONLINE状態のアプリケーション・リソースは、クラスタ・ノード上で正常に実行されています。 このようなクラスタ・ノードは、その状態とともに表示されます。

TARGETの値は、リソースの設定が試行される対象の状態を示します。 TARGETの値がONLINEで、クラスタ・ノードに障害が発生している場合、可能であれば、別のノード上でアプリケーションの再起動が試行されます。 必須リソースがOFFLINEである場合など、リソースのSTATEOFFLINEに強制的に設定されてしまう条件が存在する場合、TARGETの値はONLINEのままとなり、その条件が修正されるとアプリケーションまたはアプリケーション・リソースの起動が試行されます。

すべての非アプリケーション・リソースのTARGETの値は、リソースの障害カウントが障害しきい値を超えないかぎり、ONLINEになります。しきい値を超えた場合、TARGETOFFLINEに変更されます。 このとき、そのリソースはSTATEOFFLINEである場合と同様に処理されます。 STATEONLINEで、TARGETOFFLINEである場合、crs_startコマンドを使用して、TARGETの値をONLINEにリセットできます。

冗長ステータスを指定する-vでは、特にトラブルシューティングに役立つ追加情報が表示されます。 RESTART_COUNTの値は、単一のクラスタ・ノード上でアプリケーション・リソースが再起動された回数を示します。 Oracle Clusterwareでアプリケーションの再起動が停止されるまでの、再起動の最大回数は、RESTART_ATTEMPTSの値と同じです。 FAILURE_COUNTは、アプリケーション・プロファイルで定義されているFAILURE_INTERVALの間に、リソースに障害が発生した回数を示します。 Oracle Clusterwareでアプリケーションの再起動の試行が停止されるまでの、障害の最大発生回数は、FAILURE_THRESHOLDパラメータに設定されている値と同じです。 クラスタ・ノードに障害が発生し、アプリケーションがプロファイルのFAILOVER_DELAY属性に従って再配置を待機している場合、冗長ステータスにFAILOVER_STATUSフィールドも表示されます。 それ以外の場合にFAILOVER_STATUSフィールドが表示されることはありません。 FAILOVER_STATUSフィールドには、アプリケーションに問題が発生したノードと、アプリケーションが別のノードで再起動されるまでにそのノードの再起動を待機する残り時間が表示されます。

crs_statコマンドの構文およびオプション

crs_statコマンドは、次の構文で使用します。

crs_stat [resource_name [...]] [-v] [-l] [-q] [-c cluster_node]

crs_stat [resource_name [...]] -t [-v] [-q] [-c cluster_node]

crs_stat -p [resource_name [...]] [-q]

crs_stat [-a] resource_name -g

crs_stat [-a] resource_name -r [-c cluster_node]

crs_stat -f [resource_name [...]] [-q] [-c cluster_node]

crs_stat -ls resource_name

すべてのリソースの情報を表示するには、引数を指定せずにコマンドを入力します。

表D-9 crs_statコマンドのオプション

オプション 説明

-a resource_name

-gまたは-rオプションとともに使用され、指定したリソースがOracle Clusterwareで登録または実行されているかどうかを確認できます。 リソースの名前は、アプリケーション・プロファイルにリストされているとおりに指定します。

-c cluster_node

指定したクラスタ・ノード上のアプリケーションまたはアプリケーション・リソースの情報を表示します。

-f

拡張情報(-v)およびメモリー内プロファイル(-p)を含む、リソースのすべての情報を表示します。

-g

指定したアプリケーションまたはアプリケーション・リソースがOracle Clusterwareに登録されている場合は0(ゼロ)、そうでない場合は1を戻します。 このオプションは、-aオプションで単一のリソースが指定されている場合のみ、正常に機能します。

-l

ステータスをリスト形式(非表形式)で表示します。 これはデフォルトの形式です。

-ls

リソース、所有者およびすべてのリソースに対する権限を表示します。

-ls resource_name

リソース、所有者および指定したリソースに対する権限を表示します。

-p resource_name [...]]

指定したリソースのメモリー内プロファイルのステータスを示します。 リソースを指定していない場合、登録済のすべてのリソースのメモリー内プロファイルのステータスが表示されます。 リソースが登録されていない場合は、そのステータスは表示されません。

-q

静止モードでコマンドを実行します(コンソールにメッセージは表示されません)。

-r

指定したアプリケーションまたはアプリケーション・リソースがOracle Clusterwareで実行されている場合は0(ゼロ)、そうでない場合は1を戻します。 このオプションは、-aオプションで単一のリソースが指定されている場合のみ、正常に機能します。

-t

すべてのリソースの情報を表形式で表示します。

-v

リソースの障害間隔内における、リソースでの再起動や障害発生の回数、リソースで許可されている再起動や障害発生の最大回数、およびアプリケーションのターゲット状態を表示します。 また、このオプションでは通常のステータス情報も表示されます。

このオプションは、リソースのステータスに関する拡張情報を表示します。 表示される追加属性には、RESTART_COUNTおよびFAILURE_COUNTが含まれます。 RESTART_COUNT属性は、アプリケーションの起動後に再起動が試行された回数を示します。 FAILURE_COUNT属性は、最新のFAILURE_INTERVALの間(秒単位)に障害が発生した回数を示します。 FAILOVER_STATUS属性は、リソースのFAILOVER_DELAYの値が0(ゼロ)より大きい場合に、クラスタ・ノードに障害が発生したために再配置を待機しているアプリケーション・リソースが起動された時間を示します。それ以外の場合に表示されることはありません。


crs_statコマンドの例

次の例では、postmanアプリケーションのステータス情報を表示します。

crs_stat postman

NAME=postman
TYPE=application
TARGET=ONLINE
STATE=ONLINE on rac2

次の例では、ステータス情報を表形式で表示します。

crs_stat -t

Name         Type        Target      State     Host
----------------------------------------------------------------
cluster_lockd application ONLINE    ONLINE     rac2
dhcp          application OFFLINE   OFFLINE

次の例では、ノードrac2に対して、-vオプションを指定してcrs_statコマンドを実行した場合の出力結果を表示します。

crs_stat -v

NAME=cluster_lockd
TYPE=application
RESTART_ATTEMPTS=30
RESTART_COUNT=0
FAILURE_THRESHOLD=0
FAILURE_COUNT=0
TARGET=ONLINE
STATE=ONLINE on rac2

crs_start

アプリケーションまたはアプリケーション・リソースのターゲット状態をONLINEに設定し、指定した登録済のアプリケーションまたはアプリケーション・リソースの起動を試行します。 ターゲット状態とは、Oracle Clusterwareが実現しようとする状態です。 また、このコマンドに必要な権限の詳細は、「セキュリティおよび権限」を参照してください。

crs_startを使用してアプリケーションを起動する際に、いくつかのユーザー定義属性を使用できます。 指定した値は、属性の名前が付いた環境変数として、アクション・プログラムへ渡されます。

アプリケーションを起動するノードを指定していないとき、配置条件を満たす使用可能なクラスタ・ノードが存在する場合、それらの使用可能ないずれかのノードでアプリケーションの起動が試行されます。 再起動の前に、障害が発生したリソースを停止する必要があります。 また、アクション・プログラムに障害が発生している原因を確認する必要があります。

crs_startコマンドを使用すると、アプリケーション・プロファイルのREQUIRED_RESOURCEフィールドに定義されている依存リソースを起動できます。 登録済のリソースが起動されたら、その実行を終了するにはcrs_stopコマンドを使用する必要があります。

crs_startコマンドを使用すると、ステータス・メッセージや、(アプリケーションの起動に問題がある場合は)フィードバックを表示できます。 crs_startコマンドによって起動されたリソースのアクション・プログラムからの標準エラーおよび標準出力は、crs_startの標準エラーおよび標準出力にリダイレクトされます。 CRSデーモンがアプリケーションを起動した場合、アクション・プログラムの標準エラーおよび標準出力が失われることに注意してください。 アクション・プログラム内で理由コードを使用することによって、ユーザーによるアクション・プログラムの呼出しをチェックできます。

crs_startコマンドの構文およびオプション

crs_startコマンドは、次の構文で使用します。

crs_start resource_name  [...] [-c cluster_node] [-q] [-f]

crs_start -all [-q]

crs_start [USR_attribute_name=value] [...] resource_name [-c node_name] [-q]

resource_name [...]は、アプリケーション・プロファイルで指定された、起動される1つ以上のリソースの名前です。 リソースは、Oracle Clusterwareに登録されている必要があります。

表D-10 crs_startコマンドのオプション

オプション 説明

-all

アクティブなクラスタ・ノード上で、登録済のすべてのOracle Clusterwareアプリケーションまたはアプリケーション・リソースを、それらの配置ポリシーおよび必須リソースのリストに従って起動します。

-c node_name

配置ポリシーおよびリソース依存性によってクラスタ・ノードが使用可能になっている場合、指定されたノード上で指示された各リソースを起動します。 指定されたクラスタ・ノードが配置ポリシーおよびリソース依存性によって使用可能になっていない場合、crs_startコマンドは失敗します。 指定されたノードが使用できない場合、コマンドは失敗します。 指定されたいずれかのリソースの起動に失敗した場合でも、コマンドラインにリストされた他のリソースの起動は試行されます。

-f

すべての必須リソースが使用可能または起動可能である場合、指定したアプリケーションまたはアプリケーション・リソースを強制的に起動します。 指定されたアプリケーション・プロファイルの必須リソースのリストに含まれるすべてのアプリケーションまたはアプリケーション・リソースは、現在実行中でない場合は起動され、別のクラスタ・ノード上で実行中の場合は再配置されます。 このオプションは、一度に1つのアプリケーション・リソースのみを指定して使用してください。

-q

静止モードでコマンドを実行します(コンソールにメッセージは表示されません)。

[ USR_attribute_name=value]



crs_startコマンドの例

次の例では、postmanという名前のアプリケーションを起動します。

crs_start postman
Attempting to start `postman` on node `rac1`
Start of `postman` on node `rac1` succeeded.

次の例では、特定のクラスタ・ノードrac2上でアプリケーションを起動します。

crs_start -c rac2 postman
Attempting to start `postman` on node `rac2`
Start of `postman` on node `rac2` succeeded.

crs_stop

指定したノード上のアプリケーションを停止します。 crs_statコマンドを実行して、指定したアプリケーションが停止されていることを確認できます。

crs_stopコマンドの構文およびオプション

crs_stopコマンドは、次の構文で使用します。

crs_stop resource_name [...] [-f] [-q]

crs_stop -c cluster_node [...] [-q]

crs_stop -all [-q]

crs_stop [USR_attribute_name=value] [...] resource_name [-q]

-c cluster_node [...]

すべてのアプリケーションまたはアプリケーション・リソースを停止する1つ以上のアクティブなクラスタ・ノードを指定します。 表D-11に示されているオプションを使用できます。

表D-11 crs_stopコマンドのオプション

オプション 説明

-all

アクティブなクラスタ・ノードで、すべての登録済のアプリケーションまたはアプリケーション・リソースを停止します。

-c cluster_node

指定したクラスタ・ノード上のアプリケーションまたはアプリケーション・リソースを停止します。

-f

指示したアプリケーションまたはアプリケーション・リソース、およびそのリソースに依存するすべてのアプリケーション・リソースを強制終了します。 このオプションは、指定したリソースに依存するアプリケーション・リソースが原因でcrs_stopコマンドが失敗した場合、または停止に失敗したためにアプリケーションがUNKNOWN状態になっている場合に、すべてのアプリケーション・リソースを停止するために有効です。 このオプションを指定すると、アクション・プログラムからレポートされたすべてのエラーは、crs_stopコマンドに無視されます。

-q

静止モードでコマンドを実行します(コンソールにメッセージは表示されません)。


crs_stopコマンドの例

次の例では、dtcalcという名前のアプリケーションを停止します。

crs_stop dtcalc

crs_stopコマンドのステータス・メッセージ

次のようなステータス・メッセージが表示されます。

Attempting to stop `dtcalc` on node `rac2`
Stop of `dtcalc` on node `rac2` succeeded.

crs_unregister

Oracle Clusterwareのバイナリ形式のレジストリ・データベースから、Oracle Clusterwareリソースの登録情報を削除します。 これによって、そのリソースはOracle Clusterwareに認識されなくなります。 登録解除されたリソースに関連付けられたアプリケーションの高可用性は失われます。 また、このコマンドに必要な権限の詳細は、「セキュリティおよび権限」を参照してください。

crs_unregisterコマンドが正常に完了すると、オンラインのOracle Clusterware環境からリソースが削除されます。 別のリソースの必須リソースであるリソースを登録解除することはできません。 登録解除は、crs_stopコマンドを使用してリソースを停止してから実行する必要があります。

crs_unregisterコマンドの構文およびオプション

crs_unregisterコマンドは、次の構文で使用します。

crs_unregister resource_name [...] [-q]

-qオプションは、静止モードでコマンドを実行します(コンソールにメッセージは表示されません)。

crs_unregisterコマンドの例

次の例では、postmanという高可用性アプリケーションを登録解除します。

crs_unregister postman

Oracle ClusterwareのC Application Program Interface(API)

この項で説明するAPIによって、Oracle Clusterwareで管理されているリソースの動作を制御できます。 ユーザー・アプリケーションは、APIを使用してOracle Clusterwareシステムに登録され、高可用性アプリケーションとしてOracle Clusterwareで管理されます。 アプリケーションが登録されると、そのアプリケーションの起動およびその状態の問合せが可能になります。 アプリケーションを実行する必要がなくなった場合、そのアプリケーションを停止して、Oracle Clusterwareから登録解除できます。 Oracle Clusterwareのサービスは、CRSDプロセスなどの、データベース・サーバーの外部で実行されている別のプロセスによって提供されます。 APIは、IPCメカニズムを使用してCRSDプロセスと通信します。


注意:

Oracle Databaseのクライアント・インストール・メディアから、Oracle Clusterwareの高可用性Application Program Interface(API)をインストールできます。

clscrs_init_crs

Oracle Clusterwareとの通信のためのコンテキストを初期化します。

パラメータ

  • ctx: 初期化するコンテキスト、コール元割当て記憶域

  • errf: エラー情報のコールバック機能、またはNULL

  • errCtx: エラー情報のコールバック機能のコンテキスト、またはNULL

  • flags: 下位レイヤーのトレースを可能にするCLSCRS_FLAG_TRACE

  • CLSCRS_FLAG_USETHREADS: 複数スレッドにおけるclscrsコンテキストの使用の有効化

戻り値

ステータスenum

構文

CLSCRS_STAT clscrs_init_crs(clscrs_ctx **ctx, clscrs_msgf errf, void *errCtx, ub4 flags);

clscrs_term_crs

Oracle Clusterwareとの通信のためのコンテキストを解放します。

パラメータ

ctx: clscrs_init_crsで初期化済のコンテキスト

戻り値

ステータスenum

構文

CLSCRS_STAT clscrs_term_crs( clscrs_ctx **ctx);

clscrs_getnodename

正しいノード名を戻します。 構成済のクラスタ内でこのコマンドを発行する場合、クラスタウェアで認識されている名前です。 クラスタ内で発行しない場合、他のクラスタウェアの手段によって認識される名前です。 ノード名を取得する場合、最初のコールで多くのリソースが必要な場合があります(特に、既存のCSSコンテキストでCLSCRSが初期化されていない場合)。

パラメータ

  • ctx: clscrs_initで初期化済のコンテキスト

  • node_name: かわりのノード名

構文

CLSCRS_STAT clscrs_getnodename(clscrs_ctx *ctx, oratext *node_name);

clscrs_env_create

Oracle Clusterwareコールに対するパラメータを説明するコール環境を作成します。 メモリーは、clscrs_env_deleteへのコールで解放されるclscrsによって所有されます。

パラメータ

  • context: 入力コンテキスト

  • env: 出力環境のポインタ

戻り値

ステータスenum

構文

CLSCRS_STAT clscrs_env_create( clscrs_ctx *ctx, clscrs_env *env );

clscrs_env_set

ある環境での属性または値の引数を、Oracle Clusterwareコールに対して設定します。値にはNULLを指定できます。

パラメータ

  • env: 作成済の環境

  • attr: 属性名

  • val: 属性値、NULLポインタを指定可能

戻り値

環境ステータスenum

構文

CLSCRS_ENVCODE clscrs_env_set(clscrs_env env, const  oratext *attr, const oratext *val);

clscrs_env_delete

Oracle Clusterwareコールの環境を削除します。 その環境を使用するには、再度作成する必要があります。 環境を削除してから新しいパラメータを作成することはできません。

パラメータ

  • env: 内容が削除される環境

戻り値

環境ステータスenum

構文

CLSCRS_ENVCODE clscrs_env_delete(clscrs_env env);

clscrs_env_format

フォーマットされた環境ラインを使用して、コールバックを作成します。

パラメータ

  • env: ダンプする環境

  • msgf: コールバック機能

  • msgp: msgpの引数、解析なし

戻り値

なし

構文

void clscrs_env_format( clscrs_env env, clscrs_msgf msgf, void *msgp );

clscrs_start_resource

Oracle Clusterwareを使用して、指定したリソースのセットを起動します。 ホストを指定した場合、そのホストで起動します。ホストを指定しなかった場合、対象のリソースの配置ポリシーに従って起動します。 フラグがasyncの場合、Oracle Clusterwareへのコールが初期化された後、msgfはコールされず、ステータスOKが戻されます。実際の起動は非同期で実行され、msgfはコールされません。 フラグがasyncでなく、msgfNULLでない場合、起動プログラムから収集された出力を使用して、msgfが1行ずつ実行されます。

パラメータ

  • ctx: コンテキスト

  • names: 起動するリソース

  • num_names: names[]内の、起動するリソースの数

  • host: リソースを起動するホストの名前、NULLを指定可能

  • env: 起動のための環境引数

  • msgf: ユーザー・メッセージのコールバック、NULLを指定可能

  • msgp: ユーザー・コールバックの引数、NULLを指定可能

  • msgf: コールバック機能

  • msgf: コールバック機能

戻り値

ステータスenum

構文

CLSCRS_STAT clscrs_start_resource( clscrs_ctx *ctx, const oratext *name[], sword
 num_names, const oratext *host, clscrs_env env, clscrs_msgf msgf, void *msgp,
 uword flag );

clscrs_stop_resource

Oracle Clusterwareを使用して、指定したリソースのセットを停止します。 フラグを使用して、asyncの停止を実行できます。

パラメータ

  • ctx: コンテキスト

  • names: 停止するリソース

  • num_names: names[]内の、停止するリソースの数

  • flag: 非同期、強制オプション

戻り値

ステータスenum

構文

clscrs_stop_resource( clscrs_ctx *ctx, const oratext *names[], sword num_names,
clscrs_env env, clscrs_msgf msgf, void *msgarg, uword flag );

clscrs_check_resource

Oracle Clusterwareを使用して、指定したリソースのチェック・アクションを実行します。 サーバーでのチェック・アクションの実行を待機する遅延時間を、秒数で指定できます。 この遅延はコールが戻された後に発生します。 別の操作を実行してからチェックを実行する際に使用できます。 in_splistで指定された各リソースに対して、そのリソースが存在するかどうか、およびコール元にそのリソースに対する操作の実行権限があるかどうかを示すステータスが、op_statusに戻されます。 パターン照合なしで名前が明示的に指定されたリソースの場合、NOTFOUNDエラーが発生する可能性があります。 パターンが一致しない場合は、エラーは戻されません。 リソースに対して戻される有効な属性は存在しません。 チェックが実際に実行されたタイミングまたは完了したタイミングを特定することはできません。 指定されたすべてのリソースの操作ステータスがSUCCESSの場合、SUCCESSが戻されます。そうでない場合、FAILUREを戻されて、特定のステータスがop_statusエントリに表示されます。 コール元では、コールの前にop_statusリストを作成し、コールの完了後にリストを破棄する必要があります。

パラメータ

  • in_splist [in]: チェックするリソースのリスト

  • delay_secs [in]: チェック実行前の、リソースに応じた待機時間

  • flags [in]: なし

  • op_status [out]: 各リソースのチェック操作のステータスを保持するリソース・リスト構造

戻り値

ステータスenum

構文

clscrs_check_resource( clscrs_splist *in_splist, ub4 delay_seconds, uword flags,
 clscrs_reslist *op_status);

clscrs_register_resource

入力リソース・リストにリソースを登録します。 リソースの属性は、入力リソース・リストにカプセル化されます。 出力op_statusリストには、各リソースの登録操作の結果が含まれ、有効なリソースの属性は含まれません。 コール元ではin_reslistを作成および移入し、op_statusリストを作成する必要があります。 リストは両方とも、コール元で破棄する必要があります。 op_statusリストは、別のAPIコールで再利用することはできません。各APIコールに対してリストを作成および破棄する必要があります。登録済のリソースの1つ以上の属性は、CLSCRS_FLAG_REG_UPDATEフラグを渡すことによって変更できます。 フラグは、入力リソース・リストのすべてのリソースに適用されます。

パラメータ

  • in_reslist [in]: 登録するリソースのリスト

  • flags [in]: CLSCRS_FLAG_REG_UPDATEまたは0(ゼロ)

  • op_status [out]: 各リソースの登録操作のステータスを保持するリソース・リスト

戻り値

  • CLSCRS_STAT_SUCCESS: すべての入力リソースが正常に登録された場合

  • CLSCRS_STAT_FAIL: 1つ以上のリソースが登録できなかった場合

  • CLSCRS_STAT_CONNECTION: crsdプロセスとの間に通信エラーが発生した場合

構文

clscrs_register_resource(clscrs_reslist *in_reslist, uword flags, clscrs_reslist *op_status);

clscrs_unregister_resource

リソース名の入力リスト内のリソースを登録解除します。 出力op_statusリストには、各リソースの登録解除操作の結果が含まれます。 コール元ではrqlistを作成および移入し、op_statusリストを作成する必要があります。 リストは両方とも、コール元で破棄する必要があります。 op_statusリストは、別のAPIコールで再利用することはできません。 各APIコールに対してリストを作成および破棄する必要があります。

パラメータ

  • rqlist [in]: 登録解除するリソース名のリスト

  • flags [in]: オプション・フラグ

  • op_status [out]: 各リソースの登録解除操作のステータスを保持するリソース・リスト

戻り値

  • CLSCRS_STAT_SUCCESS: すべての入力リソースが正常に登録解除された場合

  • CLSCRS_STAT_FAIL: 1つ以上のリソースが登録解除できなかった場合

  • CLSCRS_STAT_CONNECTION: crsdプロセスとの間に通信エラーが発生した場合

構文

clscrs_unregister_resource(clscrs_splist *rqlist, uword flags, clscrs_reslist *op_status);

clscrs_stat

rqlistで指定されたリソースに関する情報を取得します。 リソースは、nodenameパラメータに示された特定のノードに制限できます。 情報は出力out_reslistに戻されます。rqlistNULLの場合、登録済のすべてのリソースに関する情報が戻されます。 ノード名がNULLでない場合、結果は特定のノード上で実行中のリソースに制限されます。 それ以外の場合、クラスタ内のすべてのノードが対象となります。res_flagsは、一致するリリース・ドメインを指定するために使用します。 このパラメータに指定する値はありません。 res_attrsは、out_reslistに戻される属性を指定します。 コール元では、対象となる属性の特定のリストを作成するか、またはCLSCRS_ATTRS_NONECLSCRS_ATTRS_ALLCLSCRS_ATTRS_STATEまたはCLSCRS_ATTRS_SHORTのいずれかのマクロによって戻される定義済リストを使用できます。 属性リストは、rqlistに指定されたすべてのリソースに適用されます。 リソースのすべてのエラーは、出力out_reslistに戻されます。

パラメータ

  • rqlist [in]: 問合せを行うリソース名のリスト

  • nodename [in]: 特定のノード上でのみ実行されるリソースの問合せ(オプション、NULLを指定可能)

  • res_attrs [in]: 各リソースで戻される属性を指定するためのリスト

  • res_flags [in]: 一致するリソースを制限するフラグ

  • out_reslist [out]: 戻されたリソース情報を保持するリスト

戻り値

  • CLSCRS_STAT_SUCCESS: すべての入力リソースの情報が取得された場合

  • CLSCRS_STAT_FAIL: 1つ以上のリソースの情報を取得できなかった場合

  • CLSCRS_STAT_CONNECTION: crsdプロセスとの間に通信エラーが発生した場合

構文

clscrs_stat(clscrs_splist *rqlist, oratext *nodename, uword res_flags, clscrs_
splist *res_attrs, clscrs_reslist *out_reslist);

リソース構造を管理するファンクション

この項では、リソースおよびリソースに関連付けられた属性を作成、管理および破棄するファンクションについて説明します。 この項では、次の構造を使用します。

エクスポート操作

この項で説明するエクスポート操作は次のとおりです。

文字列ペアの操作

この項では、文字列ペアの操作について説明します。

clscrs_sp_set

文字列ペアの値の部分を変更します。 新しい値にはNULLを指定できます。 コールが戻されたら、値のメモリーを再利用できます。

パラメータ

  • sp [in]: 値を設定する文字列ペア

  • value [in]: 文字列ペアの値のコンポーネント(NULLを指定可能)

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: sp引数がNULLの場合

構文

clscrsret clscrs_sp_set(clscrs_sp *sp, const oratext *value);
clscrs_sp_get

文字列ペアの名前および値のコンポーネントを取得します。

パラメータ

  • sp [in]: 名前および値を取得する文字列ペア

  • name [out]: 文字列ペアの名前のコンポーネント

  • value [out]: 文字列ペアの値のコンポーネント(NULLを指定可能)

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

  • clscrsretBADARG: sp引数がNULLの場合

構文

clscrsret clscrs_sp_get(clscrs_sp *sp, oratext **name, oratext **value);
clscrs_sp_get_value

文字列ペアの値のコンポーネントを取得します。

パラメータ

  • sp [in]: 名前および値を取得する文字列ペア

  • value [out]: 文字列ペアの値のコンポーネント(NULLを指定可能)

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: sp引数がNULLの場合

構文

clscrsret clscrs_sp_get_value(clscrs_sp *sp, oratext **value);

splistの操作

この項では、splistの操作について説明します。

clscrs_splist_create

新しい文字列ペア・リストを作成します。 splistのメモリーはファンクションによって割り当てられます。

パラメータ

  • ctx [in]: clscrsコンテキスト

  • splist [out]: 作成される新しい文字列ペア・リスト

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

  • clscrsretBADCTX: コンテキストがNULLの場合

構文

clscrsret clscrs_splist_create(clscrs_ctx *ctx, clscrs_splist **splist);
clscrs_splist_create_and_set

新しい文字列ペア・リスト(splist)を作成し、リスト内の最初の文字列ペアに名前および値を設定します。 splistのメモリーはファンクションによって割り当てられます。

パラメータ

  • ctx [in]: clscrsコンテキスト

  • name [in]: 文字列ペアの名前のコンポーネント

  • value [in]: 文字列ペアの値のコンポーネント(NULLを指定可能)

  • sp [out]: 作成される新しい文字列ペア

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

  • clscrsretBADCTX: コンテキストがNULLの場合

  • clscrsretBADARG: 名前引数がNULLの場合

構文

clscrsret clscrs_splist_create_and_set(clscrs_ctx *ctx, const oratext
*name, const oratext *value, clscrs_splist **splist);
clscrs_splist_append

文字列ペア・リスト(splist)に新しい文字列ペア(sp)を追加します。

パラメータ

  • splist [in]: 新しい{name, value}文字列ペアを追加するsplist

  • name [in]: 文字列ペアの名前のコンポーネント

  • value [in]: 文字列ペアの値のコンポーネント(NULLを指定可能)

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

  • clscrsretBADARG: 名前引数がNULLの場合

構文

clscrsret clscrs_splist_append(clscrs_splist *splist, const oratext *name, const oratext *value);
clscrs_splist_first

文字列ペア・リスト(splist)から、最初の文字列ペア(sp)を取得します。

パラメータ

  • name [in]: 最初のspを取得するsplist

  • sp [out]: 指定したsplistの最初のsp

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: splistがNULLの場合

  • clscrsretEMPTY: splistに文字列ペア要素が存在しない場合

構文

clscrsret clscrs_splist_first(clscrs_splist *splist, clscrs_sp **sp);
clscrs_splist_next

文字列ペア・リスト(splist)から、現在の文字列ペアの次の文字列ペア(sp)を取得します。 このファンクションは、splist内の文字列ペアに対して反復されます。

パラメータ

  • name [in]: 次のspを取得するsplist

  • sp [out]: 指定したsplist内の次のsp {name, value}

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: splistがNULLの場合

  • clscrsretENDLIST: splistにそれ以上文字列ペア要素が存在しない場合

構文

clscrsret clscrs_splist_next(clscrs_splist *splist, clscrs_sp **sp);
clscrs_splist_replace

文字列ペア・リスト(splist)内の文字列ペア(sp)の値を置換します。

パラメータ

  • splist [in]: 新しい{name, value}文字列ペアを追加するsplist

  • name [in]: 置換する値の名前

  • value [in]: 指定した名前に対して置換する値(NULLを指定可能)

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: 名前引数がNULLの場合

  • clscrsretBADARG: 名前引数がNULLの場合

構文

clscrsret clscrs_splist_replace(clscrs_splist *splist, const oratext *name, const oratext *value);
clscrs_splist_delete_sp

文字列ペア・リスト(splist)から文字列ペア(sp)を削除します。

パラメータ

  • splist [in]: {name, value}文字列ペアを削除するsplist

  • splist [in]: 指定したsplistから削除する名前

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNONAME: 指定した名前と一致する文字列ペアが存在しない場合

  • clscrsretBADARG: 名前引数がNULLの場合

構文

clscrsret clscrs_splist_delete_sp(clscrs_splist *splist, const oratext *name);
clscrs_splist_find

文字列ペア・リスト(splist)内の文字列ペア(sp)の値を検索します。

パラメータ

  • splist [in]: 検索するsplist

  • name [in]: 検索する値の名前

  • value [out]: 指定したsplist内で指定した名前に関連付けられた値

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNONAME: 指定した名前と一致する文字列ペアが存在しない場合

  • clscrsretBADARG: 名前引数がNULLの場合

構文

clscrsret clscrs_splist_find(clscrs_splist *splist, const oratext *name, oratext **value);
clscrs_splist_count

文字列ペア・リスト(splist)内の文字列ペア(sp)の数をカウントします。

パラメータ

  • splist [in]: 文字列ペアの数をカウントするsplist

  • count [out]: 指定したsplist内の文字列ペアの数

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: splistがNULLの場合

構文

clscrsret clscrs_splist_count(clscrs_splist *splist, ub4 *count);
clscrs_splist_destroy

文字列ペア・リスト(splist)のメモリーを解放します。

パラメータ

  • splist [in]: 破棄するsplist

戻り値

  • clscrsretSUCC: 成功した場合

構文

clscrsret clscrs_splist_destroy(clscrs_splist **splist);
clscrs_res_create

新しいリソースを作成します。 リソース構造のメモリーはファンクションによって割り当てられます。 リソース・リスト(clscrs_reslist)がclscrs_reslist_destroy()によって破棄されると、メモリーが解放されます。

パラメータ

  • ctx [in]: clscrsコンテキスト

  • resname [in]: リソースの名前

  • res [out]: 作成される新しいリソース

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

  • clscrsretBADCTX: コンテキストがNULLの場合

  • clscrsretBADARG: リソース名がNULLの場合

構文

clscrsret clscrs_res_create(clscrs_ctx *ctx, const oratext *resname, clscrs_res **res);
clscrs_res_get_name

リソースの名前を取得します。

パラメータ

  • res [in]: 名前を取得するリソース

  • name [out]: リソースの名前

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: リソース引数がNULLの場合

構文

clscrsret clscrs_res_get_name(clscrs_res *res, oratext **name);
clscrs_res_set_attr

リソースに対してリソース属性を設定します。

パラメータ

  • res [in]: 属性を設定するリソース

  • attrname [in]: リソース属性の名前

  • value [in]: リソース属性の値(NULLを指定可能)

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: 属性名がNULLの場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

構文

clscrsret clscrs_res_set_attr(clscrs_res *res, const oratext *attrname, const oratext *value);
clscrs_res_get_attr

リソースのリソース属性を取得します。

パラメータ

  • res [in]: 属性を取得するリソース

  • attrname [in]: リソース属性の名前

  • value [out]: リソース属性の値

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: 属性名がNULLの場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

構文

clscrsret clscrs_res_get_attr(clscrs_res *res, const oratext *attrname, oratext **value);
clscrs_res_get_attr_list

リソースの属性リストを取得します。 属性リストは、文字列ペアのリストです。 クライアントでは、属性リストのメモリーは割り当てられません。

パラメータ

  • res [in]: 属性リストを取得するリソース

  • attrlist [out]: 指定したリソースの属性のリスト

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: リソースがNULLの場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

  • clscrsretNOATTRS: リソースに対して属性が設定されていない場合

構文

clscrsret clscrs_res_get_attr_list(clscrs_res *res, clscrs_splist **attrlist);
clscrs_res_set_attr_list

リソースの属性リストを設定します。 属性リストは、文字列ペアのリストです。 リストはclscrs_splist_createコールによって作成されます。

パラメータ

  • res [in]: 属性リストを設定するリソース

  • attrlist [in]: 指定したリソースに設定される属性のリスト

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: リソースがNULLの場合

構文

clscrsret clscrs_res_set_attr_list(clscrs_res *res, clscrs_splist *attrlist);
clscrs_res_attr_count

リソースの属性の数を取得します。

パラメータ

  • res [in]: 属性の数を取得するリソース

  • count [out]: 指定したリソースの属性の数

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: リソースがNULLの場合

構文

clscrsret clscrs_res_attr_count(clscrs_res *res, ub4 *count);
clscrs_res_get_op_status

リソースの操作ステータスを取得します。 メッセージのメモリーはファンクションによって割り当てられます。

パラメータ

  • res [in]: 操作ステータスを取得するリソース

  • status [out]: 指定したリソースでの操作ステータス

  • msg [out]: リソース上での操作の結果に対するテキスト・メッセージ

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

  • clscrsretNOMSG: 有効なメッセージが存在しない場合

  • clscrsretBADARG: リソースがNULLの場合

構文

clscrsret clscrs_res_get_op_status(clscrs_res *res, CLSCRS_STAT *status, oratext **msg);
clscrs_res_get_registered

リソースの登録ステータスを取得します。

パラメータ

  • res [in]: 操作ステータスを設定するリソース

  • registered [out]: リソースが登録されているかどうかを示すブール

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

  • clscrsretBADARG: リソースがNULLの場合

構文

clscrsret clscrs_res_get_registered(clscrs_res *res, boolean *registered);
clscrs_res_get_node_list

現在リソースをホスティングしているノード・リストを取得します。リソースのホストが存在しない場合または属性が存在しない場合は、NULLを取得します。 コール元でノード・リストのメモリーを割り当てる必要はありません。

パラメータ

  • res [in]: ノード・リストを取得するリソース

  • nodelist [out]: ノードを保持しているsplist

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: リソースがNULLの場合

構文

clscrsret clscrs_res_get_node_list(clscrs_res *res, clscrs_splist **nodelist);
clscrs_res_destroy

リソースのメモリーを解放します。

パラメータ

  • res [in]: メモリーを解放するリソース

戻り値

  • clscrsretSUCC: 成功した場合

構文

clscrsret clscrs_res_destroy(clscrs_res **res);
clscrs_reslist_create

新しいリソース・リストを作成します。 リソース・リストのメモリーはファンクションによって割り当てられます。

パラメータ

  • ctx [in]: clscrsコンテキスト

  • reslist [out]: 作成される空のリソース・リスト

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNOMEM: メモリーを割り当てることができない場合

  • clscrsretBADCTX: コンテキストがNULLの場合

構文

clscrsret clscrs_reslist_create(clscrs_ctx *ctx, clscrs_reslist **reslist);
clscrs_reslist_append

リソース・リストにリソースを追加します。

パラメータ

  • reslist [in]: リソースを追加するリソース・リスト

  • res [in]: 追加するリソース

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: reslistがNULLの場合

  • clscrsretRESEXISTS: リソースがすでにreslistに存在する場合

構文

clscrsret clscrs_reslist_append(clscrs_reslist *reslist, clscrs_res *res);
clscrs_reslist_first

リソース・リストの最初のリソースを取得します。

パラメータ

  • reslist [in]: 最初のリソースを取得するリソース・リスト

  • res [out]: リソース・リストの最初のリソース

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: reslistがNULLの場合

  • clscrsretEMPTY: リストにリソースが存在しない場合

構文

clscrsret clscrs_reslist_first(clscrs_reslist *reslist, clscrs_res **res);
clscrs_reslist_next

リソース・リストから、現在のリソースの次のリソースを取得します。 このファンクションは、リソース・リスト内のリソースに対して反復されます。

パラメータ

  • reslist [in]: 最初のリソースを取得するリソース・リスト

  • res [out]: リソース・リストの次のリソース

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: reslistがNULLの場合

  • clscrsretENDLIST: リストにそれ以上リソースが存在しない場合

構文

clscrsret clscrs_reslist_next(clscrs_reslist *reslist, clscrs_res **res);
clscrs_reslist_find

リソース・リスト内のリソースを検索します。

パラメータ

  • reslist [in]: 作成される空のリソース・リスト

  • name [in]: 取得するリソースの名前

  • res [out]: 指定した名前に対応するリソース

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretNORES: リソースが見つからない場合

  • clscrsretBADARG: reslistまたは名前がNULLの場合

構文

clscrsret clscrs_reslist_find(clscrs_reslist *reslist, const oratext *name, clscrs_res **res);
clscrs_reslist_count

リソース・リスト内のリソースの数をカウントします。

パラメータ

  • reslist [in]: カウントを取得するリソース・リスト

  • count [out]: リソース・リスト内のリソースの数

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: reslistがNULLの場合

構文

clscrsret clscrs_reslist_count(clscrs_reslist *reslist, ub4 *count);
clscrs_reslist_delete_res

リソース・リストからリソースを削除します。

パラメータ

  • reslist [in]: リソースを削除するリソース・リスト

  • name [in]: 削除するリソースの名前

戻り値

  • clscrsretSUCC: 成功した場合

  • clscrsretBADARG: reslistまたは名前がNULLの場合

  • clscrsretNORES: リソースがreslistで見つからない場合

構文

clscrsret clscrs_reslist_delete_res(clscrs_reslist *reslist,
clscrs_reslist_destroy

リソース・リストのメモリーを解放します。

パラメータ

  • reslist [in]: メモリーを解放するリソース・リスト

戻り値

  • clscrsretSUCC: 成功した場合

構文

clscrsret clscrs_reslist_destroy(clscrs_reslist **reslist);
clscrs_get_error_message

clscrs APIからのリターン・コードに対応するエラー・メッセージを取得します。 エラー・メッセージのメモリーはコール元によって割り当てられます。 バッファの大きさが十分でない場合、その長さがmsg_lenに戻されます。

パラメータ

  • ctx [in]: clscrsコンテキスト

  • err_code [in]: clscrs APIから戻されたエラー・コード

  • msg [out]: err_codeに対応するメッセージ

  • msg_len [inout]: メッセージ・バッファの長さ

戻り値

  • clscrsretSUCC: 成功した場合

構文

clscrsret clscrs_get_error_message(clscrs_ctx *ctx, clscrsret err_code, oratext *msg, sb4 msg_len);
clscrs_get_fixed_attrlist

属性グループ識別子に対応する属性のリストを取得します。

パラメータ

  • ctx [in]: clscrsコンテキスト

  • attrgrp [in]: 属性のグループを識別する属性グループ

  • attrlist [out]: 属性グループに対応する、戻された属性のリスト

戻り値

  • clscrsretSUCC: 成功した場合

構文

clscrs_splist* clscrs_get_fixed_attrlist(clscrs_ctx *ctx, clscrs_attr_grp attrgrp);

リソースの操作

この項では、リソース・ファンクションについて説明します。 clscrs_resリソース抽象化には、リソース名およびそのリソースが使用されるコンテキストに適切な追加データが含まれます。 操作に関するステータスおよび戻されたエラーの情報を伴う場合もあります。 また、操作に対する入力としての属性データが含まれる場合もあります。 リソースは、1つのリソース・リストにのみ含まれている必要があります。 その場合、その後続のリソースをNEXT操作で検出できます。

CLSCRSRET clscrs_res_create(clscrs_cts *ctx, const oratext *resname, clscrs_res **res)

単一リソースを作成し、ハンドルを書き込みます。 resnameを指定する必要があります(NULLは指定できません)。

CLSCRSRET clscrs_res_get_name (clscrs_res *res, oratext **name);

リソース名のポインタを戻します。 戻された名前のポインタはリソースが存在している間のみ有効です。

CLSCRSRET clscrs_res_get_op_status (clscrs_res *res, CLSCRS_STAT *stat, oratext **msg)

リソースに有効な操作エラー値が存在する場合、状態およびエラー・メッセージへのポインタを書き込み、SUCCESSを戻します。 メッセージにはNULLを指定することもできます。 有効な操作ステータスが存在しない場合は、INVALIDを戻します。

clscrs_splist *clscrs_res_get_node_list(clscrs_res *res);

現在リソースをホスティングしているノードを保持するsplistを戻します。リソースのホストが存在しない場合または属性が存在しない場合は、NULLを戻します。 リストのカウントを取得し、リストに対して反復することもできます。 リストはリソースによって所有され、リソースが破棄されるとリストも破棄されます。 これは、現行のホスティング・メンバー・リストを保持している可能性がある属性のセマンティックを解析する特別な操作です。 リストには指定された順序付けはありません。

CLSCRSRET clscrs_res_get_attr(clscrs_res *res, const oratext *attrname, oratext **value) ;

指定した名前を持つ属性の値へのポインタを書き込み、名前が検出されたらSUCCESSを戻します。指定した名前がリソースの属性セットに存在しない場合はFAILUREを戻し、リソースに属性リストが存在しない場合はINVALIDを戻します。 無効なリソース・ハンドルが指定された場合はアサートする場合があります。

CLSCRSRET clscrs_res_set_attr(clscrs_res *res, oratext *attrname, oratext *value) ;

指定した名前を持つ属性の値を設定して、SUCCESSを戻します。指定した名前がリソースの属性セットに存在しない場合はFAILUREを戻します。 属性がすでに存在する場合は、現行の値は置換されます。 値が戻される際、名前および値のメモリーは再利用できます。

CLSCRSRET clscrs_res_attr_count( clscrs_res *res, ub4 *count );

attrIterを使用したスキャンで戻される属性の数を書き込みます。 属性が存在する場合はSUCCESSを戻します。 属性が存在しない場合は、INVALIDを戻しますが、カウントは0(ゼロ)に設定します。

CLSCRSRET clscrs_res_get_attr_list(clscrs_res *res, clscrs_splist **attrlist);

リソースの属性のsplistを戻します。スキャンでnext()操作を実行できます。 リストはリソースによって所有され、リソースが破棄されるとリストも破棄されます。 属性リストがリソースに存在する場合はSUCCESSを戻し、存在しない場合はINVALIDを戻します。 リストには指定された順序付けはありません。

リソース・リストの操作

この項では、リソース・リストの操作について説明します。 clscrs_reslistリソース・リストは、0(ゼロ)以上のリソースに関する情報を含む抽象化です。 リストは作成、追加、反復および破棄されます。

CLSCRSRET clscrs_reslist_create(clscrs_ctx *ctx, clscrs_reslist **reslist)

リソース・リストを作成し、ハンドルを書き込みます。

CLSCRSRET clscrs_reslist_count(clscrs_reslist *reslist, ub4 *count)

リスト内のリソースの数を書き込みます。

CLSCRSRET clscrs_reslist_first(clscrs_reslist *reslist, clscrs_res **first)

リソース・リストの最初のリソースへのハンドルを書き込みます。 リストが空の場合は、NULLを書き込みます。

CLSCRSRET clscrs_reslist_next(clscrs_reslist *reslist, clscrs_res **next)

リソース・リストの次のリソースへのハンドルを書き込みます。 リストが空の場合は、NULLを書き込みます。

CLSCRSRET clscrs_reslist_find(clscrs_reslist *reslist, const oratext *name, clscrs_res **res)

reslist内のリソースを名前で検索し、検出されたリソースへのハンドルを書き込みます。 リソースが見つからない場合は、NULLを書き込みます。 パターン照合なしで、完全一致検索を実行します。

CLSCRS_RES *clscrs_reslist_destroy(clscrs_res *res)

リソース・リストおよびそのリストに現在含まれているすべてのリソースを削除します。