Sun Cluster 3.0 U1 データサービス開発ガイド

Agent Builder の使用

この節では、Agent Builder の使用方法と、Agent Builder を使用する前に行なっておく作業について説明します。また、リソースタイプコードを生成した後で、Agent Builder を活用する方法についても説明します。

アプリケーションの分析

Agent Builder を使用する前に、アプリケーションが高可用性またはスケーラビリティを備えるための要件を満たしているかどうかを判定します。この分析はアプリケーションの実行時特性だけに基づくものなので、Agent Builder はこの分析を行うことができません。詳細については、「アプリケーションの適合性の分析」を参照してください。

Agent Builder は必ずしもアプリケーション用の完全なリソースタイプを作成できるわけではありませんが、ほとんどの場合、最低でも部分的なソリューションを提供します。たとえば、より複雑なアプリケーションでは、Agent Builder がデフォルトで生成しないコード、つまり、プロパティの妥当性検査を追加したり、Agent Builder がエクスポーズしないパラメータを調節したりするためのコードを追加しなければならない場合もあります。このような場合、生成されたコードまたは RTR ファイルを修正する必要があります。Agent Builder は、このような柔軟性を提供するように設計されています。

Agent Builder は、ソースファイル内において独自のリソースタイプコードを追加できる場所にコメント文を埋め込みます。ソースコードを修正した後、Agent Builder が生成した Makefile を使用すれば、ソースコードを再コンパイルし、リソースタイプパッケージを生成し直すことができます。

Agent Builder が生成したリソースタイプコードを使用せずに、リソースタイプコードを完全に作成し直す場合でも、Agent Builder が生成した Makefile やディレクトリ構造を使用すれば、独自のリソースタイプ用の Solaris パッケージを作成できます。

Agent Builder のインストールと構成

Agent Builder を別途インストールする必要はありません。Agent Builder は、Sun Cluster ソフトウェアの標準インストールの一環としてデフォルトでインストールされる SUNWscdev パッケージに含まれています。詳細については、『Sun Cluster 3.0 U1 ソフトウェアのインストール』を参照してください。Agent Builder を使用する前に、次のことを確認してください。


注 -

Agent Builder では、標準の cc コンパイラ以外のコンパイラも使用できます。このためには、$PATH において、cc から別のコンパイラ (gcc など) にシンボリックリンクを作成します。もう 1 つの方法は、Makefile におけるコンパイラ指定を変更して (現在は、CC=cc)、別のコンパイラへの完全パスを指定します。たとえば、Agent Builder が生成する Makefile において、CC=cc CC=pathname/gcc に変更します。この場合、Agent Builder を直接実行することはできません。代わりに、makemake pkg コマンドを使用して、データサービスコードとパッケージを生成する必要があります。


Agent Builder の起動

Agent Builder を起動するには、scdsbuilder(1HA) コマンド を使用します。


% /usr/cluster/bin/scdsbuilder

図 7-1 のような、Agent Builder の初期画面が表示されます。

図 7-1 初期画面

Graphic


注 -

GUI バージョンの Agent Builder にアクセスできない場合は、コマンド行インタフェースバージョンの Agent Builder を使用できます。詳細については、「コマンド行バージョンの Agent Builder の使用」を参照してください。


Agent Builder では、次の 2 つの画面を使用して、新しいリソースタイプを作成します。

  1. Create 画面-この画面では、作成するリソースタイプについての基本的な情報を提供します。たとえば、リソースタイプの名前や、生成されるファイル用のインストールディレクトリを入力します。また、作成するリソースの種類 (スケーラブルまたはフェイルオーバー) 、ベースアプリケーションがネットワーク対応かどうか (つまり、ネットワークを使用してクライアントと通信するかどうか)、生成するコードのタイプ (C または ksh) も指定できます。この画面に必要な情報をすべて入力し、「Create」を選択すると、対応する出力が生成されます。この後、Configure 画面に進むことができます。

  2. Configure 画面-この画面では、アプリケーションを起動するコマンドを提供する必要があります。オプションとして、アプリケーションを停止するコマンドや検証するコマンドも提供できます。これらのコマンドを指定しない場合、生成される出力コードは、シグナルを使用してアプリケーションを停止し、デフォルトの検証メカニズムを使用してアプリケーションを検証します。検証コマンドについては、「Configure 画面の使用」を参照してください。また、この画面では、上記の各コマンドのタイムアウト値も変更できます。


注 -

既存のリソースタイプのインストールディレクトリから Agent Builder を起動する場合、Agent Builder は Create と Configure 画面を既存のリソースタイプの値に初期化します。


Agent Builder の画面上にあるボタンやメニューの使用方法については、「ナビゲーション」を参照してください。

コマンド行バージョンの Agent Builder の使用

コマンド行バージョンの Agent Builder では、グラフィカルユーザーインタフェースと同様に、2 段階の入力手順が必要です。ただし、GUI に情報を入力するのではなく、2 つのコマンド、scdscreate(1HA) と scdsconfigure(1H) にパラメータを渡します。詳細については、各コマンドのマニュアルページを参照してください。

Create 画面の使用

リソースタイプを作成する最初の段階では、Agent Builder を起動したときに表示される Create 画面に必要な情報を入力します。図 7-2 に、各フィールドに情報を入力した後の Create 画面を示します。

図 7-2 Create 画面

Graphic

Create 画面には、次のフィールド、ラジオボタン、およびチェックボックスがあります。


注 -

cc コンパイラが $PATH に存在しない場合、Agent Builder は「C」オプションボタンをグレー表示し、「Ksh」ボタンにチェックマークを入れます。異なるコンパイラを指定する方法については、「Agent Builder のインストールと構成」の最後にある注を参照してください。


必要な情報を入力した後、「Create」ボタンをクリックします。画面の一番下にある「Output Log」には、Agent Builder が行ったアクションが表示されます。「Edit」メニューの「Save Output Log」コマンドを使用すれば、出力ログ内の情報を保存できます。

終了したら、Agent Builder は成功メッセージまたは警告メッセージを表示します。警告メッセージは Create 段階が完了しなかったことを示します。その場合は、出力ログの情報から原因を調べます。

Agent Builder が成功メッセージを表示した場合、「Next」ボタンをクリックすると、Configure 画面に進むことができます。Configure 画面では、リソースタイプの生成を完結することができます。


注 -

完全なリソースタイプを生成するには、2 段階の作業が必要ですが、最初の段階 (つまり、Create) が完了した後に Agent Builder を終了しても、入力した情報やAgent Builder で作成した内容が失われることはありません。詳細については、「完成した作業内容の再利用」を参照してください。


Configure 画面の使用

Configure 画面 (図 7-3 を参照) は、Agent Builder の Create 画面でリソースタイプの作成が完了し、「Next」ボタンを押した後に表示されます。リソースタイプの作成が完了していなければ、Configure 画面にはアクセスできません。

図 7-3 Configure 画面

Graphic

Configure 画面には、次のフィールドがあります。

Agent Builder の $hostnames 変数の使用

多くのアプリケーション (特に、ネットワーク対応アプリケーション) では、アプリケーションがリッスンし顧客の要求に対してサービスを提供するホスト名をコマンド行に指定して、アプリケーションに渡す必要があります。そのため、多くの場合、ホスト名は、Configure 画面において、ターゲットリソースタイプの起動、停止、および検証コマンドに指定する必要があるパラメータです。ただし、アプリケーションがリッスンするホスト名はクラスタに固有です。つまり、ホスト名は、リソースがクラスタ上で動作するときに決定され、Agent Builder でリソースタイプコードを生成するときに決定することはできません。

この問題を解決するために、Agent Builder は $hostnames 変数を提供します。この変数を使用すると、起動、停止、および検証コマンドのコマンド行にホスト名を指定できます。$hostnames 変数を指定する方法は、実際のホスト名を指定する方法と同じです。たとえば、次のようになります。


/opt/network_aware/echo_server -p port_no -l $hostnames

ターゲットリソースタイプのリソースがあるクラスタ上で動作するとき、(リソースの Network_resources_used リソースプロパティで) そのリソースに構成されている LogicalHostname または SharedAddress ホスト名が $hostnames 変数の値に置き換えられます。

Network_resources_usedプロパティに複数のホスト名を構成している場合、すべてのホスト名をコンマで区切って $hostnames 変数に指定します。

複数の独立したプロセスツリーを持つリソースタイプの作成

Agent Builder は、複数の独立したプロセスツリーを持つアプリケーション用のリソースタイプを作成できます。プロセスツリーが独立しているということは、PMF が各プロセスツリーを個別に監視および起動することを意味しています。PMF は独自のタグを使用して各プロセスツリーを起動します。

複数の独立したプロセスツリーを持つベースアプリケーションの場合、1 つのコマンド行だけでアプリケーションを起動することはできません。代わりに、アプリケーションの各プロセスツリーを起動するコマンドへの完全パスを行ごとに記述したテキストファイルを作成します。このファイルには空白行を含めることはできません。そして、このファイルへのパスを Configure 画面の Start Command テキストフィールドに指定します。

また、このテキストファイルに実行権が設定されていないことを確認する必要があります。これにより、Agent Builder は、このファイルが複数のプロセスツリーを起動するためのものであり、単に複数のコマンドが記述されている実行可能スクリプトではないことを認識できます。このテキストファイルに実行権を与えた場合、リソースはクラスタ上で動作するように見えますが、すべてのコマンドが 1 つの PMF タグ下で起動されるため、PMF は各プロセスツリーを個別に監視および再起動することはできません。

完成した作業内容の再利用

Agent Builder を使用すると、次に示すように、完成した作業内容を再利用できます。

既存のリソースタイプのクローンの作成

Agent Builder で作成した既存のリソースタイプのクローンを作成するには、次の手順に従います。

  1. 既存のリソースタイプを Agent Builder にロードします。これは、次の 2 つの方法で行えます。

    1. (Agent Builder で作成した) 既存のリソースタイプ用のインストールディレクトリ (rtconfig ファイルが格納されているディレクトリ) から Agent Builder を起動します。すると、Agent Builder の Create 画面と Configure 画面に、そのリソースタイプ用の値がロードされます。

    2. 「File」メニューの「Load Resource Type」コマンドを使用します。

  2. Create 画面でインストールディレクトリを変更します。

    ディレクトリを選択するときは、「Browse」ボタンを使用する必要があります。つまり、新しいディレクトリ名を入力するだけでは十分ではありません。ディレクトリを選択した後、Agent Builder は「Create」ボタンを有効に戻します。

  3. 必要な変更を行います。

    この手順は、リソースタイプ用に生成されたコードのタイプを変更するときに使用できます。たとえば、最初は ksh バージョンのリソースタイプを作成していたが、後で C バージョンのリソースタイプが必要になった場合などです。この場合、既存の ksh バージョンのリソースタイプをロードし、出力用の言語を C に変更すると、Agent Builder は C バージョンのリソースタイプを構築します。

  4. リソースタイプのクローンを作成します。

    「Create」を選択して、リソースタイプを作成します。「Next」を選択して、Configure 画面に進みます。「Configure」を選択して、リソースタイプを構成します。最後に、「Cancel」を押して、終了します。

生成されたソースコードの編集

リソースタイプを作成するプロセスを簡単にするために、Agent Builder は入力数を制限しています。必然的に、生成されるリソースタイプの範囲も制限されます。したがって、より複雑な機能、たとえば、追加のプロパティの妥当性を検査したり、Agent Builder がエクスポーズしないパラメータを調整したりする機能を追加するには、生成されたソースコードまたは RTR ファイルを修正する必要があります。

ソースファイルは install_directory/rt_name/src ディレクトリに置かれます。Agent Builder は、ソースコード内においてコードを追加できる場所にコメント文を埋め込みます。このようなコメントの形式は次のとおりです (C コードの場合)。


/* User added code -- BEGIN vvvvvvvvvvvvvvv */
/* User added code -- END   ^^^^^^^^^^^^^^^ */


注 -

これらのコメント文は Ksh コードの場合も同じです。ただし、コメント行の先頭にはシャープ記号 (#) が使用されます。


たとえば、rt_name.h は、異なるプログラムが使用するすべてのユーティリティルーチンを宣言します。宣言リストの最後はコメント文になっており、ここでは自分のコードに追加したいルーチンを宣言できます。

また、install_directory/rt_name/src ディレクトリには、適切なターゲットとともに、Makefile も生成されます。make コマンドを使用すると、ソースコードを再コンパイルできます。また、make pkg コマンドを使用すると、リソースタイプパッケージを生成し直すことができます。

RTR ファイルは install_directory/rt_name/etc ディレクトリに置かれます。RTR ファイルは標準のテキストエディタで編集できます。RTR ファイルの詳細については、「リソースとリソースタイププロパティの設定」を参照してください。プロパティの詳細については、付録 A 「標準プロパティ」 を参照してください。