Sun Java System Application Server は 1 つまたは複数のドメインから構成されます。ドメインは管理上の境界であり、コンテキストです。各ドメインには管理サーバー (ドメイン管理サーバーまたは DAS とも呼ばれる) が関連付けられ、0 またはそれ以上のスタンドアロンインスタンスまたはクラスタ、あるいはその両方から構成されています。各クラスタには、1 つ以上の同機種サーバーインスタンスが含まれます。サーバーインスタンスは、単一の物理マシンで Application Server を実行する単一の Java 仮想マシン (JVM) です。ドメイン内のサーバーインスタンス (スタンドアロンでもクラスタ構成でも) は異なる物理ホストで実行できます。
ここでは、次の内容について説明します。
ドメインは同時に管理されるインスタンスのグループです。ただし、アプリケーションサーバーインスタンスは 1 つのドメインにのみ属することができます。管理境界に加えて、ドメインは基本的なセキュリティー構造を提供し、これによってさまざまな管理者がアプリケーションサーバーインスタンスの特定のグループ (ドメイン) を管理できます。サーバーインスタンスを個別のドメインにグループ化することにより、さまざまな組織および管理者が 1 つの Application Server インストールを共有できます。各ドメインには、固有の設定、ログファイル、およびアプリケーションの配備領域があり、これらはほかのドメインとは無関係です。1 つのドメインの設定が変更されても、ほかのドメインの設定は影響を受けません。
Sun Java System Application Server インストーラにより、デフォルトの管理ドメイン (domain1 という名前) が作成されます。さらに、関連するドメイン管理サーバー (server という名前) も作成されます。管理サーバーポート番号を指定する必要があります。デフォルトの管理サーバーポートは 4849 です。インストーラは管理ユーザー名とパスワードも入力するよう求めます。インストール後は、管理ドメインを作成して追加できます。
各ドメインは、一意のポート番号を持ったドメイン管理サーバー (DAS) を持っています。管理コンソール は特定の DAS と通信し、関連するドメインを管理します。管理コンソール の各セッションにより、特定のドメインを設定し、管理できます。
ドメイン管理サーバー (DAS) は管理アプリケーションのホスト専用に設計されたアプリケーションサーバーインスタンスです。DAS は管理者を認証し、管理ツールからの要求を受け入れ、ドメイン内のサーバーインスタンスと通信して、要求を実行します。DAS は管理サーバーまたはデフォルトサーバーと呼ばれることもあります。デフォルトサーバーと呼ばれる理由は、Sun Java System Application Server のインストール時に作成される唯一のサーバーインスタンスで、配備に使用できるからです。DAS は単に追加の管理機能を備えたサーバーインスタンスです。
管理コンソール の各セッションでは、単一のドメインを設定し、管理できます。複数のドメインを作成している場合は、追加の 管理コンソール セッションを起動して、ほかのドメインを管理する必要があります。管理コンソール の URL を指定する場合は、管理するドメインに関連付けられた DAS のポート番号を使用してください。
クラスタ は、一連の同じアプリケーション、リソース、および設定情報を共有するサーバーインスタンスの集まりに名前を付けたものです。1 つのサーバーインスタンスは 1 つのクラスタにのみ属することが可能です。クラスタを使用すると、複数のマシン間で負荷が分散されることによって、サーバーインスタンスのロードバランスが容易になります。また、インスタンスレベルのフェイルオーバーによって、高可用性を実現します。管理上の観点では、クラスタは仮想エンティティーを表し、そのエンティティーでクラスタを構成するすべてのインスタンスに基づいたクラスタ上での操作 (アプリケーションの配備など) を実行します。
インスタンスのリモートライフサイクル管理を容易にするには、ドメインの各ノードに、軽量エージェント (JMX ランタイムのみをホストするなど) が必要です。この主な目的は、DAS の指示どおりに、サーバーインスタンスを起動、停止、作成することです。さらに、ノードエージェントはウォッチドッグとして機能し、障害の発生したプロセスを再起動します。DAS と同様に、ノードエージェントは特定の管理操作にのみ必要で、高可用性を期待するべきではありません。ただし、ノードエージェントは「常時稼働」コンポーネントであるため、ネィティブ O/S ノードブートストラップ (Solaris/Linux inetd または Windows サービスとしてなど) によって起動するように設定する必要があります。ノードエージェントは DAS には必要ありません。
サーバーインスタンスは、単一のノードで J2EE 1.4 Application Server をホストする単一の J2EE 互換 Java 仮想マシン (JVM) です。ドメインの各サーバーインスタンスは一意の名前を持ちます。クラスタ化されたサーバーインスタンスはクラスタのメンバーであり、親クラスタからすべてのアプリケーション、リソース、および設定を受け取るため、クラスタのすべてのインスタンスは均一になります。クラスタ化されていないサーバーインスタンスはクラスタに属さないため、アプリケーション、リソース、および設定で独立したセットを使用します。
アプリケーションサーバーインスタンスは、アプリケーション配備の基礎を形成します。各インスタンスは 1 つのドメインに属します。DAS 以外のサーバーインスタンスには必ず、そのインスタンスが置かれるマシンを定義するノードエージェント名に対する参照が含まれる必要があります。
トポロジにリモートサーバーインスタンス (DAS 以外のサーバーインスタンス) が含まれる場合は、リモートサーバーインスタンスを管理し、補助するためのノードエージェントを作成します。サーバーインスタンスの作成、起動、停止、および削除は、ノードエージェントの役割です。ノードエージェントを設定するには、コマンド行インタフェースのコマンドを使用します。図 1–2 は、アプリケーションサーバーインスタンスの詳細を示しています。
Sun Java System Application Server は、インストール時に server という名前のアプリケーションサーバーインスタンスを作成します。多くのユーザーにとっては、1 つのアプリケーションサーバーインスタンスがあれば十分です。ただし、使用している環境によって追加のアプリケーションサーバーインスタンスを作成することが必要な場合があります。たとえば、開発環境内で異なるアプリケーションサーバーインスタンスを使用して、異なる Application Server 設定でテストしたり、異なるアプリケーション配備を比較およびテストできます。アプリケーションサーバーインスタンスは簡単に追加または削除できるため、これらを使用して、一時的にサンドボックス領域を作成して試用することができます。
さらに、各アプリケーションサーバーインスタンスに対して、仮想サーバーを作成することもできます。単一のインストールされているアプリケーションサーバーインスタンス内で企業または個人に対し、ドメイン名、IP アドレス、いくつかの管理機能を提供できます。ユーザーにとっては、ハードウェアを持つことも、サーバーの基本的な保守を行うこともなく、自分の Web サーバーを所有しているのとほぼ同じです。このような仮想サーバーは、複数のアプリケーションサーバーインスタンスにまたがりません。仮想サーバーの詳細については、第 12 章「HTTP サービスの設定」を参照してください。
実践配備においては、複数のアプリケーションサーバーインスタンスの代わりに仮想サーバーをさまざまな用途に応じて使用できます。ただし、仮想サーバーがニーズを満たさない場合、複数のアプリケーションサーバーインスタンスを使用することも可能です。アプリケーションサーバーインスタンスを停止すると、そのアプリケーションサーバーインスタンスは新しい接続を受け付けなくなり、未完了の接続がすべて完了するまで待機します。マシンがクラッシュしたり、オフラインになったりすると、サーバーは終了して、処理中だった要求が失われる可能性があります。
Application Server の管理には、ドメイン、クラスタ、ノードエージェント、およびサーバーインスタンスの作成、設定、制御、管理などのタスクが含まれます。ここでは、次の内容について説明します。
ドメインは、create-domain コマンドを使用して作成します。次のコマンド例では、mydomain というドメインを作成します。管理サーバーが待機するポートは 1234 で、管理ユーザー名は hanan です。このコマンドは、管理パスワードおよびマスターパスワードの入力を求めます。
$ asadmin create-domain --adminport 80 --adminuser hanan mydomain |
mydomain ドメインの管理コンソールをブラウザ内で起動するには、次の URL を入力します。
http://hostname:80 |
前述の create-domain の例の場合、ドメインのログファイル、設定ファイル、および配備されたアプリケーションは次のディレクトリに置かれます。
domain-root-dir/mydomain
ドメインのディレクトリを別の位置に作成するには、--domaindir オプションを指定します。コマンドの完全な構文を確認するには、asadmin help create-domain と入力してください。
ドメインは、asadmin delete-domain コマンドによって削除されます。ドメインを管理できる OS ユーザー (またはルート) だけが、このコマンドを正常に実行できます。たとえば、mydomain というドメインを削除するには、次のコマンドを入力します。
$ asadmin delete-domain mydomain |
マシン上に作成されているドメインを asadmin list-domains コマンドを使用して参照できます。デフォルトの domain-root-dir ディレクトリ内のドメインを一覧表示するには、次のコマンドを入力します。
$ asadmin list-domains |
別のディレクトリに作成されているドメインを一覧表示するには、--domaindir オプションを指定します。
ドメインの起動時に、管理サーバーとアプリケーションサーバーインスタンスが起動されます。アプリケーションサーバーインスタンスは、一度起動すると常時稼動となり、要求を待機して受け付けます。各ドメインは、別々に起動する必要があります。
ドメインを起動するには、asadmin start-domain コマンドを入力し、ドメイン名を指定します。たとえば、デフォルトのドメイン (domain1) を起動するには、次のように入力します。
$ asadmin start-domain --user admin domain1 |
ドメインが 1 つだけの場合は、ドメイン名を省略できます。コマンドの完全な構文を確認するには、asadmin help start-domain と入力してください。パスワードデータを省略した場合は、入力するように要求されます。
Windows の「スタート」メニューで、「プログラム」 - >「Sun Microsystems」 - >「Application Server」 - >「管理サーバーを起動」を選択します。
ドメインを停止すると、そのドメインの管理サーバーとアプリケーションサーバーインスタンスがシャットダウンします。ドメインを停止すると、そのサーバーインスタンスは新しい接続を受け付けなくなり、未完了の接続がすべて完了するまで待機します。サーバーインスタンスはシャットダウンプロセスを完了しなければならないため、これには数秒間かかります。ドメインの停止処理中は、管理コンソールおよびほとんどの asadmin コマンドが使用できません。
ドメインを停止するには、asadmin stop-domain コマンドを入力し、ドメイン名を指定します。たとえば、デフォルトのドメイン (domain1) を停止するには、次のように入力します。
$ asadmin stop-domain domain1 |
ドメインが 1 つだけの場合は、ドメイン名を省略します。コマンドの完全な構文を確認するには、asadmin help stop-domain と入力してください。
「スタート」メニューで、「プログラム」 - >「Sun Microsystems」 - >「Application Server」 - >「管理サーバーを停止」を選択します。
サーバーの再起動の手順はドメインの再起動と同じです。ドメインまたはサーバーを再起動するには、ドメインをいったん停止してから起動します。
クラスタを作成するには create-cluster コマンドを使用します。次の例では、mycluster という名前のクラスタを作成します。管理サーバーホストは myhost、サーバーポートは 1234、管理ユーザー名は admin です。このコマンドは、管理パスワードの入力を求めます。
$ asadmin create-cluster --host myhost --port 1234 --user admin mycluster |
コマンドの完全な構文を確認するには、asadmin help create-cluster と入力してください。
クラスタを起動するには start-cluster コマンドを使用します。次の例では mycluster という名前のクラスタを起動します。このコマンドは、管理パスワードの入力を求めます。
$ asadmin start-cluster --host myhost --port 1234 --user admin mycluster |
myhost は管理サーバーホスト、1234 は管理ポート、admin は管理ユーザー名です。
コマンドの完全な構文を確認するには、asadmin help start-cluster と入力してください。クラスタを起動すると、クラスタのすべてのサーバーインスタンスが起動します。インスタンスを含まないクラスタは起動できません。
クラスタを停止するには stop-cluster コマンドを使用します。次の例では mycluster という名前のクラスタを停止します。このコマンドは、管理パスワードの入力を求めます。
$ asadmin stop-cluster --host myhost --port 1234 --user admin mycluster |
myhost は管理サーバーホスト、1234 は管理ポート、admin は管理ユーザー名です。
コマンドの完全な構文を確認するには、asadmin help stop-cluster と入力してください。クラスタを停止すると、クラスタのすべてのサーバーインスタンスが停止します。インスタンスを含まないクラスタは停止できません。
ノードエージェントを作成するには create-node-agent コマンドを使用します。次の例では mynodeagent という名前のノードエージェントを作成します。管理サーバーホストは myhost、管理サーバーポートは 1234、管理ユーザー名は admin です。このコマンドは、管理パスワードの入力を求めます。
$ asadmin create-node-agent --host myhost --port 1234 --user admin mynodeagent |
コマンドの完全な構文を確認するには、asadmin help create-node-agent と入力してください。
ノードエージェントを起動するには start-node-agent コマンドを使用し、ノードエージェント名を指定します。たとえば、ノードエージェント mynodeagent を起動するには、次のように入力します。
$ asadmin start-node-agent --user admin mynodeagent |
コマンドの完全な構文を確認するには、asadmin help start-node-agent と入力してください。
ノードエージェントを停止するには stop-node-agent コマンドを使用し、ノードエージェント名を指定します。たとえば、ノードエージェント mynodeagent を停止するには、次のように入力します。
$ asadmin stop-node-agent mynodeagent |
コマンドの完全な構文を確認するには、asadmin help stop-node-agent と入力してください。
サーバーインスタンスを作成するには create-instance コマンドを使用します。次の例では、myinstance という名前のインスタンスを作成します。管理サーバーホストは myhost、管理サーバーポートは 1234、管理ユーザー名は admin です。このコマンドは、管理パスワードの入力を求めます。
次の例では myinstance という名前のクラスタ化されたサーバーインスタンスを作成します。このコマンドは、管理パスワードの入力を求めます。
$ asadmin create-instance --host myhost --port 1234 --user admin --cluster mycluster --nodeagent mynodeagent myinstance |
myhost は管理サーバーホストで、管理ポートは 1234、管理ユーザー名は admin、このサーバーインスタンスが属するクラスタは mycluster、このサーバーインスタンスを管理するノードエージェントは mynodeagent です。
コマンドの完全な構文を確認するには、asadmin help create-instance と入力してください。
スタンドアロンサーバーインスタンスを作成する場合は、--cluster オプションを指定しません。
次の例では、mynodeagent という名前のノードエージェントで管理される myinstance という名前のスタンドアロンサーバーインスタンスを作成します。
$ asadmin create-instance --host myhost --port 1234 --user admin --nodeagent mynodeagent myinstance |
サーバーインスタンスを起動するには start-instance コマンドを使用します。次の例では、myinstance という名前のサーバーインスタンスを起動します。このコマンドは、管理パスワードの入力を求めます。
$ asadmin start-instance --host myhost --port 1234 --user admin myinstance |
管理サーバーホストは myhost、管理ポートは 1234、管理ユーザー名は admin です。サーバーインスタンス myinstance はクラスタ化することもスタンドアロンにすることもできます。
コマンドの完全な構文を確認するには、asadmin help start-instance と入力してください。
サーバーインスタンスを停止するには stop-instance コマンドを使用します。次の例では myinstance という名前のインスタンスを停止します。このコマンドは、管理パスワードの入力を求めます。
$ asadmin stop-instance --host myhost --port 1234 --user admin myinstance |
管理サーバーホストは myhost、管理ポートは 1234、管理ユーザー名は admin です。サーバーインスタンス myinstance はクラスタ化することもスタンドアロンにすることもできます。
コマンドの完全な構文を確認するには、asadmin help stop-instance と入力してください。
サーバーインスタンスを再起動するには、インスタンスを停止してから、再起動します。
ミラーリングを行うため、および、ドメイン管理サーバー (DAS) の有効なコピーを提供するためには、次のものを用意する必要があります。
元の DAS を含むマシン 1 台 (machine1)
アプリケーションを実行してクライアントの要求を満たすサーバーインスタンスを持つクラスタを含む 2 台目のマシン (machine2)。クラスタは、1 台目のマシンの DAS を使用して設定されます。
1 台目のマシンがクラッシュした場合に DAS を再作成する必要がある 3 台目のバックアップマシン (マシン 3)
1 台目のマシンの DAS のバックアップを維持する必要があります。asadmin backup-domain を使用して、現在のドメインをバックアップしてください。
ドメイン管理サーバーを 1 台目のマシン (machine1) から 3 台目のマシン (machine3) に移行するには、次の手順が必要です。
1 台目のマシンと同様に、Application Server を 3 台目のマシンにインストールします。
この処理は、DAS が 3 台目のマシンに正常に復元されて、パスの競合を発生させないために必要です。
コマンド行 (対話型) モードを使用して、Application Server 管理パッケージをインストールします。対話型のコマンド行モードを有効にするには、console オプションを次のように指定してインストールプログラムを起動します。
./bundle-filename -console |
コマンド行インタフェースを使用してインストールを行うには、ルートのアクセス権が必要です。
オプションの選択を解除して、デフォルトのドメインをインストールします。
バックアップされたドメインの復元は、同じアーキテクチャーおよびまったく同じインストールパスを持つ 2 台のマシンでのみサポートされます (すなわち両方のマシンが同じ install-dir と domain-root-dir を使用する)。
1 台目のマシンのバックアップ ZIP ファイルを、3 台目のマシンの domain-root-dir にコピーします。FTP でファイルを転送することもできます。
asadmin restore-domain コマンドを実行して、ZIP ファイルを 3 台目のマシンに復元します。
asadmin restore-domain --filename domain-root-dir/sjsas_backup_v00001.zip domain1 |
任意のドメインをバックアップできます。ただし、ドメインの再作成中は、ドメイン名が元のドメイン名と同一でなければなりません。
3 台目のマシンで domain-root-dir/domain1/generated/tmp ディレクトリのアクセス権を変更して、1 台目のマシンの同じディレクトリのアクセス権と一致させます。
このディレクトリのデフォルトのアクセス権は、?drwx------? (または 700) です。
次に例を示します。
chmod 700 domain-root-dir/domain1/generated/tmp
前述の例では、domain1 をバックアップすると仮定しています。ドメインを別の名前でバックアップする場合は、この domain1 をバックアップするドメインの名前に置き換えてください。
3 台目のマシンの domain.xml で、プロパティーのホスト値を変更します。
3 台目のマシンの domain-root-dir/domain1/config/domain.xml を更新します。
たとえば、machine1 を検索して、machine3 に置き換えるとします。したがって、次のように変更します。
<jmx-connector><property name=client-hostname value=machine1/>...
変更後:
<jmx-connector><property name=client-hostname value=machine3/>...
変更前:
<jms-service... host=machine1.../>
変更後:
<jms-service... host=machine3.../>
machine3 の復元されたドメインを起動します。
asadmin start-domain --user admin-user --password admin-password domain1 |
machine2 のノードエージェントのプロパティーで、DAS ホストの値を変更します。
machine2 の install-dir/nodeagents/nodeagent/agent/config/das.properties で、agent.das.host プロパティー値を変更します。
machine2 のノードエージェントを再起動します。
asadmin start-instance コマンドを使用してクラスタインスタンスを起動し、復元したドメインと同期させます。
管理パスワードをリセットするには、ドメイン内のすべてのノードエージェントを停止する必要があります。これにより、関連付けられたすべてのサーバーインスタンスが停止します。すべてのサーバーインスタンスとノードエージェントが停止し、ドメイン管理サーバー (DAS) のみが稼動しています。
ここで、次のように管理ユーザーのパスワードを変更できます。
コマンド行インタフェースを使用して管理パスワードを変更します。
asadmin update-file-user --authrealmname admin-realm ... --userpassword newpassword <admin-user-name>
管理コンソールを使用して管理パスワードを変更します。
管理サーバーの「設定」ノード >「セキュリティー」>「レルム」>「admin-realm」>「ユーザーを管理」とたどり、ユーザー ID を選択し、「ファイルレルムユーザーの編集」でパスワードを変更します。
管理パスワードの変更に成功したことを示すメッセージが表示されます。
新しいパスワードでドメイン管理サーバ (DAS) を再起動するには、次の手順に従います。
コマンド行インタフェースの使用。asadmin start-domain --user admin --password newpassword domain1
次のような設定が考えられます。2 つのノードエージェント (i1na、c1-na) と 3 つのインスタンス (c1 という名前の同じクラスタに属する c1i1 と c1i2 、およびスタンドアロンサーバーインスタンス i1) があるドメイン。
新しいパスワードでインスタンスを起動しないでノードエージェントを再起動します。
次に例を示します。
asadmin start-node-agent --user admin --password newpassword --startinstances=false i1-na asadmin
asadmin start-node-agent --user admin --password newpassword --startinstances=false c1-na
サーバーとクラスタを再起動します。
asadmin start-node-agent --user admin --password newpassword ... c1
asadmin start-node-agent --user admin --password newpassword i1