ノードエージェントは、ドメイン管理サーバー (DAS) をホストするマシンを含む、サーバーインスタンスをホストするすべてのマシンに必要な軽量プロセスです。ノードエージェントは次の機能を実行します。
ドメイン管理サーバーの指示により、サーバーインスタンスの起動、停止、作成、または削除を行います。
障害の発生したサーバーインスタンスを再起動します。
障害の発生したサーバーのログファイルを表示します。
各サーバーインスタンスのローカル設定リポジトリとドメイン管理サーバーの中央リポジトリを同期化します。各ローカルリポジトリには、そのサーバーインスタンスまたはノードエージェントに関する情報のみが含まれます。
次の図は、ノードエージェントの全体的なアーキテクチャーを示しています。
Application Server をインストールすると、マシンのホスト名を持つノードエージェントがデフォルトで作成されます。このノードエージェントは、実行する前に、ローカルマシン上で手動で起動する必要があります。
ノードエージェントを実行していない場合でも、サーバーインスタンスを作成および管理できます。ただし、ノードエージェントを使用してサーバーインスタンスを起動および停止するには、ノードエージェントが実行中である必要があります。
ノードエージェントを停止すると、ノードエージェントが管理するサーバーインスタンスも停止します。
ノードエージェントは 1 つのドメインを処理します。マシンが複数のドメインで実行されるインスタンスをホストする場合は、複数のノードエージェントを実行する必要があります。
既存のノードエージェントが存在しなくても、ノードエージェントのプレースホルダを使用して、サーバーインスタンスを作成および削除することができます。プレースホルダは、ノードエージェント自体がノードエージェントのローカルシステムに作成される前に、ドメイン管理サーバー (DAS) 上で作成されたノードエージェントの設定です。
プレースホルダノードエージェントを作成すると、それを使用してドメインにインスタンスを作成できます。ただし、インスタンスを起動する前に、asadmin コマンドを使用して、インスタンスが配置されるマシン上に実際のノードエージェントをローカルに作成し、起動する必要があります。詳細については、「ノードエージェントの作成」および 「ノードエージェントの起動」を参照してください。
関連項目
次の 2 とおりの方法で、ノードエージェントの設定および配備ができます。
オンライン配備: 用いるトポロジがわかっていて、すでにドメイン用のハードウェアが設置されている場合。
オフライン配備: 完全な環境を設定する前に、ドメインとサーバーインスタンスを設定する場合。
すでにドメインのトポロジがわかっていて、ドメイン用のハードウェアが設置されている場合は、オンライン配備を使用します。
次の図は、ノードエージェントのオンライン配備の概要を示しています。
ドメイン管理サーバーをインストールして起動します。ドメイン管理サーバーが起動し、実行中になったら、オンラインまたはオフライン配備を開始します。
サーバーインスタンスをホストするすべてのマシンにノードエージェントをインストールします。
インストーラまたは asadmin create-node-agent コマンドを使用します。マシンに複数のエージェントが必要な場合は、asadmin create-node-agent を使用してエージェントを作成します。
詳細については、「ノードエージェントの作成」を参照してください。
asadmin start-node-agent コマンドを使用して、ノードエージェントを起動します。
起動すると、ノードエージェントはドメイン管理サーバー (DAS) と通信します。それが DAS に到達すると、DAS にノードエージェントに対する設定が作成されます。設定が作成されると、管理コンソールでノードエージェントを表示できます。
詳細については、「ノードエージェントの起動」を参照してください。
ドメインを設定します。サーバーインスタンスを作成し、クラスタを作成して、アプリケーションを配備します。
個々のローカルマシンを設定する前に、オフライン配備を使用してドメイン内にノードエージェントを配備します。
次の図は、オフライン配備の概要を示しています。
ドメイン管理サーバーをインストールして起動します。ドメイン管理サーバーが起動し、実行中になったら、オンラインまたはオフライン配備を開始します。
ドメイン管理サーバーにプレースホルダノードエージェントを作成します。
詳細については、「ノードエージェントのプレースホルダを作成するには」を参照してください。
サーバーインスタンスとクラスタを作成して、アプリケーションを配備します。
サーバーインスタンスを作成するときは、まだ使用されていないポート番号を割り当てるようにしてください。設定がオフラインで実行されるため、作成時にはドメインでポートの競合をチェックすることができません。
サーバーインスタンスをホストするすべてのマシンにノードエージェントをインストールします。
インストーラまたは asadmin create-node-agent コマンドを使用します。ノードエージェントには、以前に作成したプレースホルダノードエージェントと同じ名前を付ける必要があります。
詳細については、「ノードエージェントの作成」を参照してください。
asadmin start-node-agent コマンドを使用して、ノードエージェントを起動します。
ノードエージェントが起動すると、ドメイン管理サーバーにバインドされ、以前にノードエージェントに関連付けられたサーバーインスタンスを作成します。
詳細については、「ノードエージェントの起動」を参照してください。
設定データは、ドメイン管理サーバーのリポジトリ (中央リポジトリ) に格納されると同時に、ノードエージェントのローカルマシンにもキャッシュされるため、これら 2 つは同期化する必要があります。キャッシュの同期化は、明示的なユーザーアクションが行われるたびに、管理ツールによって実行されます。
この節では、次のトピックについて説明します。
はじめてノードエージェントが起動すると、中央リポジトリの最新情報の要求をドメイン管理サーバー (DAS) に送信します。ノードエージェントが DAS に正常に接続され、設定情報を取得すると、ノードエージェントは DAS にバインドされます。
デフォルトでは、asadmin start-node-agent コマンドを使用すると、DAS と同期化せずに、リモートサーバーインスタンスが自動的に起動します。DAS によって管理されている中央リポジトリと同期化しているリモートサーバーインスタンスを起動する場合は、asadmin start-node-agent コマンドの --startinstances=false オプションを指定します。次に、asadmin start-instance コマンドを使用してリモートサーバーインスタンスを起動します。
DAS にプレースホルダノードエージェントを作成した場合、ノードエージェントがはじめて起動するときに、ノードエージェントは DAS の中央リポジトリから設定を取得します。最初の起動時に、DAS が実行されていないため、ノードエージェントが DAS に到達できない場合、ノードエージェントは停止し、バインドされないままの状態になります。
ドメインのノードエージェントの設定が変更された場合、ノードエージェントを実行するローカルマシンのノードエージェントと自動的に通信します。
DAS のノードエージェント設定を削除すると、ノードエージェントは次に同期するときに停止し、ノードエージェント自体が削除待ちとしてマーク付けされます。ローカルの asadmin delete-node-agent コマンドを使用して、ノードエージェントを手動で削除します。
管理コンソールまたは asadmin ツールを使用してサーバーインスタンスを明示的に起動する場合、サーバーインスタンスは中央リポジトリと同期化されます。この同期が失敗すると、サーバーインスタンスは起動しません。
ノードエージェントが、管理コンソールまたは asadmin ツールによる明示的な要求なしにサーバーインスタンスを起動する場合、サーバーインスタンスのリポジトリキャッシュは同期しません。サーバーインスタンスは、キャッシュに格納された設定によって実行されます。リモートサーバーインスタンスのキャッシュ内にファイルを追加または削除することはできません。
リモートサーバーインスタンスの設定は、キャッシュとして処理され (ファイルはすべて nodeagents/na1/server1 の下に配置される)、Application Server によって所有されます。極端な例を挙げれば、ユーザーがリモートサーバーインスタンスのすべてのファイルを削除し、ノードエージェントを再起動すると、リモートサーバーインスタンス (server1 など) は再作成され、必要なファイルはすべて同期化されます。
次のファイルおよびディレクトリは Application Server によって同期が保たれます。
表 7–1 リモートサーバーインスタンス間で同期化されるファイルとディレクトリ
ファイルまたはディレクトリ |
説明 |
---|---|
applications |
配備されているすべてのアプリケーション。このディレクトリ (およびサブディレクトリ) の中で、サーバーインスタンスから参照されるアプリケーションに基づいて同期化される部分。ノードエージェントはアプリケーションを参照しないので、どのアプリケーションも同期化しません。 |
config |
ドメイン全体に対する設定ファイルを格納します。このディレクトリ内のファイルは、実行時の一時ファイル (admch、admsn、secure.seed、. timestamp、__timer_service_shutdown__.dat など) を除いて、すべて同期化されます。 |
config/config_name |
config_name という名前の設定を使用してすべてのインスタンスによって共有されるファイルを格納するためのディレクトリ。domain.xml で定義されるすべての設定に対して、このようなディレクトリが 1 つ存在することになります。このディレクトリ内のすべてのファイルが、config_name を使用しているサーバーインスタンスと同期化されます。 |
config/config_name/lib/ext |
Java 拡張クラスを (zip または jar アーカイブとして) ドロップできるフォルダ。これは、config_name という名前の設定を使用して、サーバーインスタンスに配備されたアプリケーションによって使用されます。これらの jar ファイルは、Java 拡張メカニズムを使用してロードされます。 |
docroot |
HTTP ドキュメントルート。既定の設定では、ドメイン内のすべてのサーバーインスタンスが同じ docroot を使用します。仮想サーバーの docroot プロパティーについては、サーバーインスタンスが別の docroot を使用するように設定する必要があります。 |
generated |
Java EE アプリケーションやモジュール用に生成されたファイル。たとえば、EJB スタブ、コンパイル済みの JSP クラス、セキュリティーポリシーファイルなど。このディレクトリは、applications ディレクトリと一緒に同期化されます。したがって、サーバーインスタンスによって参照されるアプリケーションに対応するディレクトリのみが同期化されます。 |
lib、lib/classes |
ドメイン全体に配備されたアプリケーションによって使用される共通の Java クラスファイルまたは jar および zip アーカイブをドロップできるフォルダ。これらのクラスは、Application Server のクラスローダーを使用してロードされます。クラスローダーによるロード順序は次のとおりです。lib/classes、lib/*.jar、 lib/*.zip |
lib/ext |
ドメイン全体に配備されたアプリケーションによって使用される Java 拡張クラスを (jar または zip アーカイブとして) ドロップできるフォルダ。これらの jar ファイルは、Java 拡張メカニズムを使用してロードされます。 |
アプリケーションの --libraries 配備時間属性を使用して、アプリケーションの実行時の依存関係を指定することができます。
ライブラリをドメイン全体で使用できるようにするには、JAR ファイルを domain-dir/lib または domain-dir/lib/classes に配置することができます。詳細については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s Guide』の「Using the Common Classloader」を参照してください。通常この方法は、JDBC ドライバや、ドメイン内のすべてのアプリケーションによって共有されているその他のユーティリティーライブラリに対してあてはまります。
クラスタ全体またはスタンドアロンのサーバー全体で使用する場合は、jar ファイルを domain-dir/domain1/config/xyz-config/lib ディレクトリにコピーします。次に、それらの jar ファイルを、xyz-config の classpath-suffix または classpath-prefix 要素に追加します。これによって、xyz-config を使用して、すべてのサーバーインスタンスの jar ファイルが同期化されます。
要約すると、次のようになります。
domains/domain1/lib - ドメイン全体範囲、共通のクラスローダー、jar ファイルを自動的に追加。
domains/domain1/config/cluster1、config/lib - 設定全体、classpath-prefix または classpath-suffix を更新。
domains/domain1/config/cluster1、config/lib/ext - java.ext.dirs に自動的に追加。
設定ファイル (domains/domain1/config の下) は、ドメイン全体にわたって同期化されます。スタンドアロンのサーバーインスタンス (server1) によって使用される server1-config 用に server.policy をカスタマイズする場合は、変更後の server.policy ファイルを domains/domain1/config/server1-config ディレクトリの下に配置します。
変更後の server.policy ファイルは、スタンドアロンのサーバーインスタンス server1 に対してのみ同期化されます。jvm-option を更新することも忘れないでください。次に例を示します。<java-config> ... <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server1-config/server.policy</jvm-options></java-config>
同期化の必要な大きなアプリケーションが使用環境に含まれる場合、または使用できるメモリーが制限されている場合は、JVM オプションを調整してメモリーの使用を制限できます。この調整によって、メモリー不足によるエラーを受信する可能性は低くなります。インスタンス同期化 JVM ではデフォルトの設定が使用されますが、JVM オプションを設定してそれらを変更することもできます。
INSTANCE-SYNC-JVM-OPTIONS プロパティーを使用して、JVM オプションを設定します。このプロパティーを設定するコマンドは次のとおりです。
asadmin set domain.node-agent.node_agent_name.property.INSTANCE-SYNC-JVM-OPTIONS="JVM_options"
次に例を示します。
asadmin set domain.node-agent.node0.property.INSTANCE-SYNC-JVM-OPTIONS="-Xmx32m -Xss2m"
この例では、ノードエージェントは node0、JVM オプションは -Xmx32m -Xss2m です。
詳細については、http://java.sun.com/docs/hotspot/VMOptions.htmlを参照してください。
ノードエージェントの設定にプロパティーが追加されたり変更されてもノードエージェントは自動的に同期化されないため、INSTANCE-SYNC-JVM-OPTIONS プロパティーの変更後、ノードエージェントを再起動してください。
Application Server によって同期化されたディレクトリ (applications、generated、docroot、config、lib) 内のファイルを、アプリケーションによって保存または読み込む必要のある場合は、doNotRemoveList フラグを使用します。この属性は、ファイルまたはディレクトリのカンマ区切りリストをとります。アプリケーション依存ファイルは、DAS によって管理される中央リポジトリに存在していない場合でも、サーバーの起動時には削除されません。中央リポジトリに同じファイルが存在する場合は、同期化の途中で上書きされます。
INSTANCE-SYNC-JVM-OPTIONS プロパティーを使用して、doNotRemoveList 属性に渡します。
次に例を示します。
<node-agent name="na1" ...>
...
<property name="INSTANCE-SYNC-JVM-OPTIONS" value="-Dcom.sun.appserv.doNotRemoveList=applications/j2ee-modules/<webapp_context>/logs,generated/mylogdir"/>
</node–agent>
各ノードエージェントには、固有のログファイルがあります。ノードエージェント関連の問題がある場合、次の場所にあるログファイルを参照します。
node_agent_dir /node_agent_name/agent/logs/server.log
ノードエージェントログにより、サーバーのログを参照して問題に関する詳細なメッセージを調べるように指示される場合もあります。
サーバーログの場所は以下のとおりです。
node_agent_dir/node_agent_name/ server_name/logs/server.log
node_agent_dir のデフォルトの位置は install_dir/nodeagents です。
ノードエージェントについては、ノードエージェントを実行するシステムで一部のタスクをローカルに実施する必要がありますが、その他はドメイン管理サーバーで実施できます。ローカルに実施する必要があるタスクは、ノードエージェントが存在するマシンで実行する asadmin ツールからのみ利用できます。ドメイン管理サーバーで機能するタスクは、管理コンソールと asadmin ツールから利用できます。
次の表は、タスクとそれを実行する場所の概要です。
表 7–2 管理コンソールと asadmin コマンドから利用可能なタスク
タスク |
管理コンソール |
asadmi コマンド |
---|---|---|
ノードエージェントのプレースホルダおよび設定をドメイン管理サーバーに作成します。 |
「現在のノードエージェントのプレイスホルダ」ページ。 |
create-node-agent-config |
ノードエージェントを作成します。 |
利用不可。 |
create-node-agent |
ノードエージェントを起動します。 |
利用不可。 |
start-node-agent |
ノードエージェントを停止します。 |
利用不可。 |
stop-node agent |
ドメイン管理サーバーからノードエージェント設定を削除します。 |
「ノードエージェント」ページ。 |
delete-node-agent-config |
ローカルマシンからノードエージェントを削除します。 |
利用不可。 |
delete-node-agent |
ノードエージェント設定を編集します。 |
「ノードエージェント」ページ。 |
set |
ノードエージェントを一覧表示します。 |
「ノードエージェント」ページ。 |
list-node-agents |
詳細については、次の Web サイトを参照してください。