Sun Cluster 2.2 API 開発ガイド

使用するメソッドの決定

この節では、start_netstop_netabort_net のメソッドを使用するときの注意事項を、startstopabort のメソッドと比較しながら説明します。

start_netstop_netabort_net を呼び出した時点で論理ネットワークアドレスが使用可能になるように構成されているため、一般的に、データサービスを開始、停止、または中止するには、これらのメソッド を使用する方が簡単です。

データサービスを起動、停止、中止するには、データサービスの管理ユーティリティやライブラリを何度も呼び出す必要があります。データサービスの管理ユーティリティやライブラリの中には、クライアントサーバーネットワークインタフェースを使用して管理を行うものもあります。つまり、管理ユーティリティはサーバーデーモンを呼び出すため、管理ユーティリティやライブラリを使用するには、論理ネットワークアドレスが使用可能な状態である必要があります。

まず、再起動、テイクオーバー、スイッチオーバーの後でネットワークインタフェースまたはデータサービスのどちらが先にオンラインになるのかによって、クライアントソフトウェアの応答が異なるかどうかを考えます。メソッドは、何回も再試行を行い、続けるものを使用します。たとえば、最小限の再試行だけを行い、すぐにデータサービスポートが利用できないと判断するようなクライアント実装では、ネットワークインタフェースが構成される前にデータサービスが起動していなければなりません。このような状況では、start_net メソッドよりも、start メソッドを使用します。

stop メソッドまたは abort メソッドを使用する場合、論理ネットワークアドレスが休止に構成された時点では、データサービスはまだ使用可能のままです。つまり、stop メソッドと abort メソッドが呼び出されるのは、論理ネットワークアドレスが休止に構成された後だけです。

したがって、ネットワーク上のクライアントは常にデータサービスの TCP または UDP のサービスポート (つまり、その RPC プログラム番号) を利用できるという状況が生まれます (ただし、論理ホストネットワークアドレスも応答していない場合を除く)。この状況が重要になるのは、TCP または UDP のサービスポート (つまり、RPC プログラム番号) が応答していない場合で、論理ホストのネットワークアドレスが応答しているときに、それを検出したクライアントコードの動作が著しく異なる場合だけです。たとえば、このような状況では、クライアントは早くから再試行をやめてしまう可能性があります。つまり、「ICMP ポートが到達不能」や「プログラムが登録されていない」などの明示的なエラーパケットをサーバーホストから受信すると、クライアントコードは再試行を行わず、異なるコードパスを選択します。

クライアント実装がこのような状況に依存するかどうかを判断するには、クライアントとデータサービスのクライアントサーバーネットワークプロトコルを熟知していなければなりません。