あるクライアントサーバーデータサービスが、クライアントからの要求を満たすために、別のクライアントサーバーデータサービスに要求を行うことがあります。このように、データサービス A が自分のサービスを提供するために、データサービス B にそのサービスを提供してもらう場合、データサービス A はデータサービス B に依存していると言います。
Sun Cluster で依存性のあるデータサービスを実現するには、hareg(1M) プログラムを -d スイッチ付きで呼び出します。依存性は、Sun Cluster がデータサービスを開始および停止する順番に影響を与えます。詳細は、hareg(1M) のマニュアルページを参照してください。
まず、データサービスに依存性があるかどうか、および、hareg(1M) に適切な -d スイッチが提供されているかどうかを調べます。Sun Cluster は提供されている -d スイッチが適切であるかどうかを検査しません。
次に、-d スイッチを使用するか、あるいは、-d スイッチを使用せずに、HA データサービスの独自のコード内で他のデータサービスの利用可能性についてポーリングするかどうかを決定します。他のデータサービスの start メソッドが非同期である可能性があるため (つまり、データサービスを起動するが、データサービスが実際にクライアントに利用できるようになるまで待たずに、start メソッドまたは start_net メソッドから戻ってしまう可能性があるため)、いずれにせよ、ポーリングが必要な場合もあります。データベースの回復時間は時間がかかることが多いため、通常、データベースサービスはこの動作を示します。
データサービスの中には、自分自身では直接データを格納せず、他のバックエンドデータサービスに依存して、すべてのデータを格納してもらうものもあります。このようなデータサービスは、すべての読み取り要求と更新要求をバックエンドデータサービスへの呼び出しに変換します。たとえば、すべてのデータを SQL データベース (Oracle など) に格納する仮想のクライアントサーバー式カレンダサービスを考えます。このアポイントメントカレンダサービスは独自のクライアントサーバーネットワークプロトコルを持っています。たとえば、RPC 仕様言語 (ONCTM RPC など) を使用して独自のプロトコルを定義している可能性があります。
Sun Cluster 環境では、Sun Cluster HA for Oracle を使用すると、バックエンド Oracle データベースを高可用性にすることができます。次に、アポイントメントカレンダーデーモンを開始または停止する簡単なメソッドを作成します。すると、このアポイントメントカレンダーデータサービスを、別の Sun Cluster データサービス (Sun Cluster HA for Oracle) に依存するデータサービスとして Sun Cluster に登録できます。この依存性を指定するには、hareg(1M) に -d オプションを指定します。
Oracle 用の start メソッドはデータベース回復を起動するだけで、回復が完了するのを待たない可能性があります。したがって、このカレンダーデータサービスデーモンは、一度起動すると、Oracle データベースが利用可能になるまで待つようにポーリングしなければなりません。