cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib –l dsdev#include <rgm/libdsdev.h>
Data Services Development Library (DSDL) は、scha ライブラリ関数の機能をカプセル化および拡張する、上位のライブラリ関数セットです。scha ライブラリ関数は、scha_calls(3HA) のマニュアルページで説明されています。
DSDL 関数は libdsdev.so ライブラリで実装されています。
DSDL 関数は、一般に次のカテゴリに分類されます。
汎用関数
汎用関数には、初期化関数、取得関数、フェイルオーバーおよび再起動関数、そして実行関数が含まれます。これらの関数では、次の操作を行うことができます。
DSDL 環境を初期化します。
リソースタイプ、リソース、リソースグループの名前と、拡張プロパティーの値を取得します。
リソースグループをフェイルオーバーおよび再起動し、リソースを再起動します。
エラー文字列をエラーメッセージに変換します。
タイムアウトを適用してコマンドを実行します。
プロパティー関数
これらの関数は、関連するリソース、リソースタイプ、およびリソースグループに固有のプロパティー (よく使用される一部の拡張プロパティーも含む) にアクセスするために使用する API を提供します。DSDL は、scds_initialize() 関数を使用してコマンド行引数を解析します。関連するリソース、リソースタイプ、およびリソースグループのさまざまなプロパティーをキャッシュに書き込みます。
ネットワークリソースアクセス関数
これらの関数は、リソースおよびリソースグループによって使用されるネットワーク資源を管理します。これらの関数は、ホスト名、ポートリスト、およびネットワークアドレスを処理し、TCP ベースのモニタリングを有効にします。
プロセスモニター機能 (PMF) 関数
これらの関数は、Process Monitor Facility (PMF) の機能をカプセル化しています。
障害モニター関数
これらの関数は、障害履歴を保持し、その履歴を Retry_count および Retry_interval プロパティーと関連付けて評価することにより、障害モニタリングの事前定義モデルを提供します。
ユーティリティー関数
これらの関数は、メッセージやデバッグ用メッセージをシステムログに書き込みます。
次の関数は、呼び出しメソッドを初期化します。
scds_initialize(3HA) - リソースを割り当て、DSDL 環境を初期化します。
scds_close(3HA) - scds_initialize() 関数によって割り当てられているリソースを解放します。
次の関数は、リソースタイプ、リソース、リソースグループ、および拡張プロパティーに関する情報を取得します:
scds_free_ext_property() - scds_get_ext_property() によって割り当てられているメモリーを解放します。
scds_get_fullname() - ゾーンのノード名を取得します。
scds_get_fullname_nodeid() - ゾーンのノード名を ASCII ノード ID 番号とともに取得します。
scds_get_resource_type_name() - 呼び出し元プログラム用のリソースタイプの名前を取得します。
scds_get_resource_name() - 呼び出し元プログラム用のリソースの名前を取得します。
scds_get_resource_group_name() - 呼び出し元プログラム用のリソースグループの名前を取得します。
scds_get_ext_property() - 指定された拡張プロパティーの値を取得します。
scds_get_current_method_name(() - データサービスメソッドの呼び出しに使用されたパス名の最後の要素を取得します。basename(3C) のマニュアルページを参照してください。
scds_is_zone_cluster() - リソースがゾーンクラスタ内に構成されているかどうかを示すブール値を返します。
次の関数は、リソースによって使用される SUNW.HAStoragePlus リソースに関するステータス情報を取得します。
scds_hasp_check() - リソースによって使用されている SUNW.HAStoragePlus リソースに関するステータス情報を取得します。この情報は、そのリソースに対して定義されている Resource_dependencies または Resource_dependencies_weak システムプロパティーを使用して、そのリソースが依存しているすべての SUNW.HAStoragePlus リソースの状態 (オンラインまたはそれ以外) から取得されます。詳細は、SUNW.HAStoragePlus(5) のマニュアルページを参照してください。
次の関数は、リソースまたはリソースグループをフェイルオーバーまたは再起動します。
scds_failover_rg() - リソースグループをフェイルオーバーします。
scds_restart_rg() - リソースグループを再起動します。
scds_restart_resource() - リソースを再起動します。
次の関数は、タイムアウトを適用してコマンドを実行し、エラーコードをエラーメッセージに変換します。
scds_timerun() - タイムアウト値の下でコマンドを実行します。
scds_error_string() および scds_error_string_i18n() - エラーコードをエラー文字列に変換します。scds_error_string() から返された文字列は、英語で表示されます。scds_error_string_i18n() から返された文字列は、LC_MESSAGES ロケールカテゴリで指定されているその国および地域の言語で表示されます。
scds_svc_wait() - モニター対象のプロセスが終了するのを指定されたタイムアウト期間待機します。
これらの関数は、関連するリソースタイプ、リソース、およびリソースグループの特定のプロパティー (よく使用される一部の拡張プロパティーも含む) にアクセスするために使用する簡易 API を提供します。DSDL は、scds_initialize() 関数を使用してコマンド行引数を解析します。関連するリソース、リソースタイプ、およびリソースグループのさまざまなプロパティーをキャッシュに書き込みます。
次の関数を始めとするこれらの関数の説明は、scds_property_functions(3HA) のマニュアルページにあります。
scds_get_ext_property-name
scds_get_rg_property-name
scds_get_rs_property-name
scds_get_rt_property-name
次の関数はホスト名を扱います。
scds_get_rs_hostnames() - リソースによって使用されているホスト名のリストを取得します。
scds_get_rg_hostnames() - リソースグループ内のネットワークリソースによって使用されているホスト名のリストを取得します。
scds_print_net_list() - ホスト名リストの内容を syslog(3C) に書き込みます。通常、この関数はデバッグに使用します。
scds_free_net_list() - scds_get_rs_hostnames() または scds_get_rg_hostnames() によって割り当てられているメモリーを解放します。
次の関数はポートリストを扱います。
scds_get_port_list() - リソースによって使用されているポートとプロトコルのペアのリストを取得します。
scds_print_port_list() - ポートとプロトコルのリストの内容を syslog(3C) に書き込みます。通常、この関数はデバッグに使用します。
scds_free_port_list() - scds_get_port_list() によって割り当てられているメモリーを解放します。
次の関数はネットワークアドレスを扱います。
scds_get_netaddr_list() - リソースによって使用されているネットワークアドレスのリストを取得します。
scds_print_netaddr_list() - ネットワークアドレスのリストの内容を syslog(3C) に書き込みます。通常、この関数はデバッグに使用します。
scds_free_netaddr_list() - scds_get_netaddr_list() によって割り当てられているメモリーを解放します。
次のカテゴリの関数は、TCP ベースのモニタリングを有効にします。通常、障害モニターはこれらの関数を使用して、サービスとの単純ソケット接続を確立し、サービスのデータを読み書きしてサービスのステータスを確認したあと、サービスとの接続を切断します。
この関数セットには、次の関数が含まれます。
scds_fm_tcp_connect() - IPv4 アドレッシングのみを使用するプロセスへの TCP 接続を確立します。
scds_fm_net_connect() - IPv4 または IPv6 アドレッシングを使用するプロセスへの TCP 接続を確立します。
scds_fm_tcp_read() - TCP 接続を使用して、モニターされているプロセスからデータを読み取ります。
scds_fm_tcp_write() - TCP 接続を使用して、モニターされているプロセスにデータを書き込みます。
scds_simple_probe() - プロセスへの TCP 接続を確立および終了することによって、プロセスをプローブします。この関数は IPv4 アドレスだけを扱います。
scds_simple_net_probe() - プロセスへの TCP 接続を確立および終了することによって、プロセスをプローブします。この関数は、IPv4 または IPv6 アドレスを扱います。
scds_fm_tcp_disconnect() - モニターされているプロセスへの接続を終了します。この関数は IPv4 アドレスだけを扱います。
scds_fm_net_disconnect() - モニターされているプロセスへの接続を終了します。この関数は、IPv4 または IPv6 アドレスを扱います。
これらの関数は、プロセスモニター機能 (PMF) の機能をカプセル化します。PMF 経由のモニタリングの DSDL モデルは、pmfadm に対して暗黙の tag 値を作成し、使用します。詳細は、pmfadm(1M) のマニュアルページを参照してください。
PMF 機能はまた、Restart_interval、Retry_count、および action_script の暗黙値も使用します (pmfadm の –t、–n、および –a オプション)。もっとも重要な点は、DSDL が PMF によって検出されたプロセス障害履歴を、障害モニターによって検出されたアプリケーション障害履歴に結びつけ、再起動またはフェイルオーバーのどちらを行うかを決定することです。
このカテゴリには次のような関数があります。
scds_pmf_get_status() - 指定されたインスタンスが PMF の制御下でモニターされているかどうかを判定します。
scds_pmf_restart_fm() - PMF を使用して障害モニターを再起動します。
scds_pmf_signal() - 指定されたシグナルを PMF の制御下で実行されているプロセスツリーに送信します。
scds_pmf_start() および scds_pmf_start_env() - 指定されたプログラム (障害モニターを含む) を PMF の制御下で実行します。scds_pmf_start_env() 関数は、scds_pmf_start() 関数と同じ操作の実行に加えて、指定された環境を実行されているプログラムに渡す処理も行います。
scds_pmf_stop() - PMF の制御下で実行されているプロセスを終了します。
scds_pmf_stop_monitoring() - PMF の制御下で実行されているプロセスのモニタリングを停止します。
これらの関数は、障害履歴を保持し、それを Retry_count および Retry_interval プロパティーと組み合わせて評価することによって、障害モニタリングの事前定義モデルを提供します。
このカテゴリには次のような関数があります。
scds_fm_sleep() - 障害モニター制御ソケットでメッセージを待機します。
scds_fm_action() - プローブが完了したあとにアクションを実行します。
scds_fm_print_probes() - プローブステータス情報をシステムログに書き込みます。
次の関数では、メッセージやデバッグメッセージをシステムログに書き込むことができます。
scds_syslog() - メッセージをシステムログに書き込みます。
scds_syslog_debug() - デバッグメッセージをシステムログに書き込みます。
インクルードファイル
ライブラリ
次の属性については、attributes(5) を参照してください。
|
pmfadm(1M), scds_close(3HA), scds_error_string(3HA), scds_failover_rg(3HA), scds_fm_action(3HA), scds_fm_net_connect(3HA), scds_fm_net_disconnect(3HA), scds_fm_print_probes(3HA), scds_fm_sleep(3HA), scds_fm_tcp_connect(3HA), scds_fm_tcp_disconnect(3HA), scds_fm_tcp_read(3HA), scds_fm_tcp_write(3HA), scds_free_ext_property(3HA), scds_free_net_list(3HA), scds_free_netaddr_list(3HA), scds_free_port_list(3HA), scds_get_ext_property(3HA), scds_get_fullname(3HA), scds_get_netaddr_list(3HA), scds_get_port_list(3HA), scds_get_resource_group_name(3HA ), scds_get_resource_name(3HA), scds_get_resource_type_name(3HA ), scds_get_rg_hostnames(3HA ), scds_get_rs_hostnames(3HA), scds_hasp_check(3HA), scds_initialize(3HA), scds_is_zone_cluster(3HA), scds_pmf_get_status(3HA), scds_pmf_restart_fm(3HA), scds_pmf_signal(3HA), scds_pmf_start(3HA), scds_pmf_stop(3HA), scds_pmf_stop_monitoring(3HA), scds_print_net_list(3HA), scds_print_netaddr_list(3HA), scds_print_port_list(3HA), scds_property_functions(3HA), scds_restart_resource(3HA), scds_restart_rg(3HA), scds_simple_net_probe(3HA), scds_simple_probe(3HA), scds_svc_wait(3HA), scds_syslog(3HA), scds_syslog_debug(3HA), scds_timerun(3HA), scha_calls(3HA), SUNW.HAStoragePlus(5), attributes(5)