この章では、Application Server クラスタの使用法について説明します。この章の内容は次のとおりです。
クラスタは、同じアプリケーション、リソース、および設定情報を共有するサーバーインスタンスの集まりに名前を付けたものです。異なるマシン上のサーバーインスタンスを 1 つの論理クラスタにまとめ、それらのインスタンスを 1 つの単位として管理できます。マルチマシンクラスタのライフサイクルは、DAS を使用して容易に制御できます。
クラスタを使用すると、水平方向のスケーラビリティー、負荷分散、およびフェイルオーバー保護が可能になります。定義により、クラスタ内のすべてのインスタンスに対してリソースとアプリケーションの設定は同じになります。あるサーバーインスタンスまたはクラスタ内のあるマシンに障害が起きると、ロードバランサは障害を検出し、障害の起きたインスタンスからクラスタ内のほかのインスタンスにトラフィックをリダイレクトし、ユーザーセッションの状態を回復します。クラスタ内のすべてのインスタンス上には同一のアプリケーションとリソースがあるため、インスタンスはクラスタ内のほかのどのインスタンスにも処理を継続させることができます。
グループ管理サービス (GMS) は、クラスタ内のインスタンスに対して有効になっている基盤コンポーネントです。GMS を有効にすると、クラスタインスタンスで障害が発生した場合にクラスタおよびドメイン管理サーバー (DAS) が障害を認識し、障害発生時に必要な処理を実行することができます。Application Server の多くの機能は GMS に依存します。たとえば、GMS は IIOP フェイルオーバー、インメモリーレプリケーション、トランザクションサービス、およびタイマーサービスの各機能によって使用されます。
クラスタ内の複数のサーバーインスタンスが異なるマシンに配置されている場合は、それらのマシンが同じサブネット上にあることを確認してください。
GMS 機能は開発者プロファイルでは利用できません。クラスタプロファイルおよびエンタープライズプロファイルでは、デフォルトで GMS が有効です。
GMS は Shoal フレームワークの中心的なサービスです。Shoal の詳細については、Project Shoal ホームページを参照してください。
ツリーコンポーネントで、「クラスタ」を選択します。
クラスタの名前をクリックします。
「一般情報」で、必要に応じて「ハートビート有効」チェックボックスが選択または選択解除されていることを確認します。
GMS を有効にしており、GMS で使用するデフォルトのポートおよび IP アドレスを変更する必要がある場合は、これらの設定値を変更します。
「保存」をクリックします。
使用環境に合わせて GMS を設定します。これは、GMS が障害を確認する頻度を決定する設定値を変更することによって行います。たとえば、障害検出試行の間のタイムアウト、障害が疑われるメンバーの再試行の回数、または、クラスタのメンバーを確認するときのタイムアウトを変更できます。
管理コンソールで監視を設定するには、「Application Server 」ノード > 「設定」 > 「グループ管理サービス」の順に選択します。
同機能を持つ adadmin コマンドは get および set です。
ツリーコンポーネントで、「クラスタ」ノードを選択します。
「クラスタ」ページで、「新規」をクリックします。
「クラスタの作成」ページが表示されます。または「新しいクラスタ」ページが表示されます。
「名前」フィールドで、クラスタの名前を入力します。
この名前は、次の条件を満たす必要があります。
大文字と小文字、数字、下線、ハイフン、およびピリオド (.) だけで構成される
すべてのノードエージェント名、サーバーインスタンス名、クラスタ名、および設定名の間で一意である
「domain」ではない
「設定」フィールドで、ドロップダウンリストから設定を選択します。
オプションとして、サーバーインスタンスを追加できます。
クラスタ作成後にサーバーインスタンスを追加することも可能です。
クラスタのサーバーインスタンスを作成する前に、まず 1 つまたは複数のノードエージェントまたはノードエージェントのプレースホルダを作成します。「ノードエージェントのプレースホルダを作成する」を参照してください。
サーバーインスタンスを作成するには、次のようにします。
「了解」をクリックします。
表示される「クラスタを正常に作成」ページで「了解」をクリックします。
create-cluster
クラスタ、サーバーインスタンス、およびノードエージェントを管理する方法の詳細については、「ノードエージェントの配備」を参照してください。
クラスタのサーバーインスタンスを作成する前に、まずノードエージェントまたはノードエージェントのプレースホルダを作成します。「ノードエージェントのプレースホルダを作成する」を参照してください。
ツリーコンポーネントで、「クラスタ」ノードを開きます。
クラスタのノードを選択します。
「インスタンス」タブをクリックして、「クラスタ化されたサーバーインスタンス」ページを表示します。
「新規」をクリックして、「クラスタ化されたサーバーインスタンスの作成」ページまたは「新しいクラスタ化されたサーバーインスタンス」ページを表示します。
「名前」フィールドで、サーバーインスタンスの名前を入力します。
「ノードエージェント」ドロップダウンリストからノードエージェントを選択します。
「了解」をクリックします。
create-instance
ツリーコンポーネントで、「クラスタ」ノードを開きます。
クラスタのノードを選択します。
「一般情報」ページで、次のタスクを実行できます。
「クラスタの起動」をクリックして、クラスタ化されたサーバーインスタンスを起動します。
「クラスタの停止」をクリックして、クラスタ化されたサーバーインスタンスを停止します。
「EJB タイマーを移行」をクリックして、停止されたサーバーインスタンスからクラスタ内の別のサーバーインスタンスに EJB タイマーを移行します。
start-cluster、stop-cluster、migrate-timers
ツリーコンポーネントで、「クラスタ」ノードを開きます。
サーバーインスタンスを含むクラスタのノードを開きます。
「インスタンス」タブをクリックして、「クラスタ化されたサーバーインスタンス」ページを表示します。
このページで、次のタスクを実行できます。
インスタンスのチェックボックスを選択して「削除」、「起動」、または「停止」をクリックし、指定したすべてのサーバーインスタンスに対して選択したアクションを実行します。
インスタンスの名前をクリックして、「一般情報」ページを表示します。
ツリーコンポーネントで、「クラスタ」ノードを開きます。
サーバーインスタンスを含むクラスタのノードを開きます。
サーバーインスタンスノードを選択します。
「一般情報」ページでは、次の操作を行えます。
「インスタンスを起動」をクリックして、インスタンスを起動します。
「インスタンスの停止」をクリックして、実行するインスタンスを停止します。
「JNDI ブラウズ」をクリックして、実行中のインスタンスの JNDI ツリーをブラウズします。
「ログファイルを表示」をクリックして、サーバーのログビューアを開きます。
「ログをローテーション」をクリックして、インスタンスのログファイルをローテーションします。このアクションは、ログファイルのローテーションをスケジュールします。実際のローテーションは、次にログファイルがエントリに書き込まれたときに行われます。
「トランザクションの回復」をクリックして、未完了のトランザクションを回復します。
「プロパティー」タブをクリックして、インスタンスのポート番号を変更します。
「監視」タブをクリックして、監視プロパティーを変更します。
ツリーコンポーネントで、「クラスタ」ノードを開きます。
クラスタのノードを選択します。
「アプリケーション」タブをクリックして、「アプリケーション」ページを表示します。
このページで、次のタスクを実行できます。
「配備」ドロップダウンリストから、配備するアプリケーションのタイプを選択します。表示される「配備」ページで、アプリケーションを指定します。
「フィルタ」ドロップダウンリストから、リストに表示するアプリケーションのタイプを選択します。
アプリケーションを編集するには、アプリケーション名をクリックします。
アプリケーションの横にあるチェックボックスを選択して、「有効」または「無効」を選択し、クラスタのアプリケーションを有効または無効にします。
ツリーコンポーネントで、「クラスタ」ノードを開きます。
クラスタのノードを選択します。
「リソース」タブをクリックして、「リソース」ページを表示します。
このページで、次のタスクを実行できます。
クラスタ用の新規リソースを作成します。「新規」ドロップダウンリストから、作成するリソースのタイプを選択します。リソースを作成するときには、必ずクラスタをターゲットとして指定します。
リソースをグローバルに有効または無効にします。リソースの横にあるチェックボックスを選択して、「有効」または「無効」をクリックします。このアクションはリソースを削除しません。
特定のタイプのリソースのみを表示します。「フィルタ」ドロップダウンリストから、リストに表示するリソースのタイプを選択します。
リソースを編集します。リソース名をクリックします。
delete-cluster
サーバーインスタンスが異常に、または突然実行を停止した場合、そのサーバーインスタンス上にインストールされた EJB タイマーを、クラスタ内の実行中サーバーインスタンスに移動する必要があります。このためには、次の手順を実行します。
ツリーコンポーネントで、「クラスタ」ノードを開きます。
クラスタのノードを選択します。
「一般情報」ページで、「EJB タイマーを移行」をクリックします。
「EJB タイマーを移行」ページで、次の操作を行います。
送信先サーバーインスタンスを停止して再起動します。
ソースサーバーインスタンスが実行中の場合、または送信先サーバーインスタンスが停止中の場合は、管理コンソールにエラーメッセージが表示されます。
migrate-timers
EJB タイマーサービスの設定に関する管理コンソールのオンラインヘルプ
ロードバランサと複数のクラスタを使用して、サービスを停止することなく、Application Server 内のコンポーネントをアップグレードできます。たとえば、コンポーネントとして、JVM、Application Server、または Web アプリケーションが可能です。
次の場合、この方法は使えません。
高可用性データベース (HADB) のスキーマを変更する場合。詳細については、第 3 章「高可用性データベースの管理」を参照してください。
HADB ソフトウェアは、Sun Java System Application Server の Application Server スタンドアロン配布 で提供されます。Sun Java System Application Server の利用可能な配布については、『Sun Java System Application Server 9.1 Installation Guide』の「Distribution Types and Their Components」を参照してください。HADB 機能はエンタープライズプロファイルでのみ利用可能です。プロファイルの詳細については、『Sun Java System Application Server 9.1 管理ガイド』の「使用法プロファイル」を参照してください。
アプリケーションデータベーススキーマに対する変更を含むアプリケーションアップグレードを実行する場合。
クラスタ内のすべてのサーバーインスタンスは一緒にアップグレードします。そうでないと、1 つのインスタンスから異なるバージョンのコンポーネントを実行するインスタンスに処理を継続するセッションによって、バージョンミスマッチが発生するリスクがあります。
クラスタの「一般情報」ページで「クラスタの停止」ボタンを使って、クラスタの 1 つを停止します。
そのクラスタでコンポーネントをアップグレードします。
クラスタの「一般情報」ページで「クラスタの起動」ボタンを使って、クラスタを起動します。
ほかのクラスタで、1つずつプロセスを繰り返します。
1 つのクラスタ内のセッションから別のクラスタ内のセッションに処理を引き継ぐことはないので、1 つのバージョンのコンポーネントを実行しているサーバーインスタンスから、異なるバージョンのコンポーネントを実行している (別のクラスタ内の) 別のサーバーインスタンスへのセッションへ処理が継続されることによって、バージョンのミスマッチが発生する危険はありません。クラスタは、このようにそのクラスタ内のサーバーインスタンスのセッションフェイルオーバーに対する安全境界として機能します。