この章では、 データサービス開発ライブラリ (Data Service Development Library: DSDL) の API 関数の一覧を示し、概要を述べます。個々の DSDL 関数の詳細については、そのマニュアルページ (3HA) を参照してください。DSDL は、C インタフェースのみを提供します。スクリプトベースの DSDL インタフェースはありません。
この章の内容は次のとおりです。
このカテゴリの関数は、さまざまな機能を提供します。これらの関数では、次の操作を行うことができます。
DSDL 環境を初期化します。
リソースタイプ、リソース、およびリソースグループの名前、ならびに、拡張プロパティーの値を取得します。
リソースグループをフェイルオーバーおよび再起動し、リソースを再起動します。
エラー文字列をエラーメッセージに変換します。
タイムアウトを適用してコマンドを実行します。
次の関数は、呼び出しメソッドを初期化します。
scds_initialize(3HA) – リソースを割り当て、DSDL 環境を初期化します。
scds_close(3HA) – scds_initialize() によって割り当てられたリソースを解放します。
次の関数は、リソースタイプ、リソース、リソースグループ、および拡張プロパティーについての情報を取得します。
scds_get_resource_type_name(3HA) – 呼び出しプログラム用のリソースタイプの名前を取得します。
scds_get_resource_name(3HA) – 呼び出しプログラム用のリソースの名前を取得します。
scds_get_resource_group_name(3HA) – 呼び出しプログラム用のリソースグループの名前を取得します。
scds_get_ext_property(3HA) – 指定された拡張プロパティーの値を取得します。
scds_free_ext_property(3HA) – scds_get_ext_property() によって割り当てられたメモリーを解放します。
次の関数は、リソースが使用している SUNW.HAStoragePlus リソースについての状態情報を取得します。
scds_hasp_check(3HA) – リソースによって使用される SUNW.HAStoragePlus リソースの状態情報を取得します。当該リソース用に定義されている Resource_dependencies または Resource_dependencies_weak のシステム属性を使用することによって、当該リソースが依存しているすべての SUNW.HAStoragePlus リソース状態 (オンラインであるか、オンラインでないか) についての情報が得られます。詳細は、SUNW.HAStoragePlus(5) のマニュアルページを参照してください。
次の関数は、リソースまたはリソースグループをフェイルオーバーまたは再起動します。
scds_failover_rg(3HA) – リソースグループをフェイルオーバーします。
scds_restart_rg(3HA) – リソースグループを再起動します。
scds_restart_resource(3HA) – リソースを再起動します。
次の関数は、タイムアウトを適用してコマンドを実行し、エラーコードをエラーメッセージに変換します。
scds_timerun(3HA) – タイムアウト値のもとでコマンドを実行します。
scds_error_string(3HA) – エラーコードをエラー文字列に変換します。
このカテゴリの関数は、関連するリソースタイプ、リソース、およびリソースグループ (よく使用される一部の拡張プロパティーも含む) に固有のプロパティーにアクセスするのに便利な API を提供します。DSDL は、scds_initialize() を使用してコマンド行引数を解析します。scds_initialize() 関数は、関連するリソースタイプ、リソース、およびリソースグループの様々なプロパティーをキャッシュに入れます。
次の関数を始めとするこれらの関数の説明は、scds_property_functions(3HA) のマニュアルページにあります。
scds_get_rt_property-name
scds_get_rs_property-name
scds_get_rg_property-name
scds_get_ext_property-name
このカテゴリの関数は、リソースとリソースグループが使用するネットワークリソースの取得、出力、解放を行います。ここで説明する scds_get_ 関数は、RMAPI 関数を使用して Network_resources_used や Port_list などのプロパティーを照会しなくても、ネットワークリソースを取得できる便利な方法を提供します。scds_print_ name() 関数は、scds_get_name () 関数から戻されたデータ構造から値を出力します。scds_free_name () 関数は、scds_get_ name() 関数が割り当てたメモリーを解放します。
次の関数はホスト名を扱います。
scds_get_rs_hostnames(3HA) – リソースによって使用されているホスト名のリストを取得します。
scds_get_rg_hostnames(3HA) – リソースグループ内のネットワークリソースによって使用されているホスト名のリストを取得します。
scds_print_net_list(3HA) – scds_get_rs_hostnames () または scds_get_rg_hostnames()から返されたホスト名リストの内容を出力します。
scds_free_net_list(3HA) – scds_get_rs_hostnames() または scds_get_rg_hostnames() によって割り当てられたメモリーを解放します。
次の関数はポートリストを扱います。
scds_get_port_list(3HA) – リソースによって使用されているポート/プロトコルのペアのリストを取得します。
scds_print_port_list(3HA) – scds_get_port_list() によって返されたポート/プロトコルのペアのリストの内容を印刷します。
scds_free_port_list(3HA) – scds_get_port_list() によって割り当てられたメモリーを解放します。
次の関数はネットワークアドレスを扱います。
scds_get_netaddr_list(3HA) – リソースによって使用されているネットワークアドレスのリストを取得します。
scds_print_netaddr_list(3HA) – scds_get_netaddr_list() によって返されたネットワークアドレスリストの内容を印刷します。
scds_free_netaddr_list(3HA) – scds_get_netaddr_list() によって割り当てられたメモリーを解放します。
このカテゴリの関数は、TCP ベースの監視を行います。通常、障害モニターはこれらの関数を使用して、サービスとの単純ソケット接続を確立し、サービスのデータを読み書きしてサービスの状態を確認したあと、サービスとの接続を切断します。
これらの関数には以下が含まれます。
scds_fm_tcp_connect(3HA) – IPv4 アドレッシングだけを使用するプロセスへの TCP 接続を確立します。
scds_fm_net_connect(3HA) – IPv4 か IPv6 アドレッシングのどちらかを使用するプロセスへの TCP 接続を確立します。
scds_fm_tcp_read(3HA) – TCP 接続を使って、監視されているプロセスからデータを読み取ります。
scds_fm_tcp_write(3HA) – TCP 接続を使って、監視されているプロセスにデータを書き込みます。
scds_simple_probe(3HA) – プロセスへの TCP 接続を確立し、停止することによってプロセスを検証します。この関数は IPv4 アドレスだけを扱います。
scds_simple_net_probe(3HA) – プロセスへの TCP 接続を確立し、停止することによってプロセスを検証します。この関数は、IPv4 または IPv6 アドレスを扱います。
scds_fm_tcp_disconnect(3HA) – 監視されているプロセスへの接続を停止します。この関数は IPv4 アドレスだけを扱います。
scds_fm_net_disconnect(3HA) – 監視されているプロセスへの接続を停止します。この関数は、IPv4 または IPv6 アドレスを扱います。
このカテゴリの関数は、PMF (Process Monitor Facility) 機能をカプセル化します。PMF 経由の監視におけるDSDL モデルは、pmfadm に対して暗黙のタグ値を作成および使用します。詳細は、pmfadm(1M) のマニュアルページを参照してください。
また、PMF 機能は、Restart_interval、Retry_count、および action_script 用の暗黙値も使用します (pmfadm の - t、-n、および -a オプション)。もっとも重要な点は、DSDL が PMF によって検出されたプロセス障害履歴を、障害モニターによって検出されたアプリケーション障害履歴に結びつけ、再起動またはフェイルオーバーのどちらを行うかを決定することです。
このカテゴリには次のような関数があります。
scds_pmf_get_status(3HA) – 指定するインスタンスが PMF 制御のもとで監視されているかどうかを判別します。
scds_pmf_restart_fm(3HA) – PMF を使って障害モニターを再起動します。
scds_pmf_signal(3HA) – PMF 制御のもとで動作するプロセスツリーに、指定するシグナルを送信します。
scds_pmf_start(3HA) – 指定するプログラム (障害モニターを含む) をPMF 制御のもとで実行します。
scds_pmf_stop(3HA) – PMF 制御のもとで動作しているプロセスを停止します。
scds_pmf_stop_monitoring(3HA) – PMF 制御のもとで動作しているプロセスの監視を停止します。
このカテゴリの関数は、障害履歴を保持し、その履歴を Retry_count および Retry_interval プロパティーと関連付けて評価することにより、障害監視の事前定義モデルを提供します。
このカテゴリには次のような関数があります。
scds_fm_sleep(3HA) – 障害モニター制御ソケットに関するメッセージを待ちます。
scds_fm_action(3HA) – 検証の完了後にアクションをとります。
scds_fm_print_probes(3HA) – 検証状態の情報をシステムログに書き込みます。
以下の関数は、メッセージやデバッグ用メッセージをシステムログに書き込むために使用します。
scds_syslog(3HA) – メッセージをシステムログに書き込みます。
scds_syslog_debug(3HA) – デバッギングメッセージをシステムログに書き込みます。