一般に、HADB は、Application Server と同じシステム (共存トポロジ)、または別のホスト (分離層トポロジ) のどちらにもインストールできます。これらの 2 つのオプションの詳細については、『Sun Java System Application Server Enterprise Edition 8.2 配備計画ガイド』の第 3 章「トポロジの選択」を参照してください。
asadmin configure-ha-cluster コマンドを使用して高可用性を設定できるようにするには、HADB 管理クライアントをインストールする必要があります。Java Enterprise System インストーラを使用している場合は、ノードが別の層にインストールされている場合でも、管理クライアントをインストールするために HADB インスタンス全体をインストールする必要があります。
シングルまたはデュアル CPU システムでは、システムに少なくとも 2G バイトのメモリーがあれば、HADB と Application Server の両方をインストールできます。メモリーが不足している場合は、HADB を別のシステムにインストールするか、または追加のハードウェアを使用します。asadmin configure-ha-cluster コマンドを使用するには、HADB と Application Server の両方をインストールする必要があります。
各 HADB ノードには 512M バイトのメモリーが必要なため、2 つの HADB ノードを実行するにはマシンに 1G バイトのメモリーが必要です。マシンのメモリーが不足している場合は、各ノードを別のマシンに設定します。たとえば、次のシステムに 2 つのノードをインストールすることができます。
メモリーがそれぞれ 512M バイト〜 1G バイトの、2 つのシングル CPU システム
メモリーが 1G 〜 2G バイトの、シングルまたはデュアル CPU システム
HADB は、Java Enterprise System インストーラまたは Application Server のスタンドアロンインストーラのどちらでもインストールできます。どちらのインストーラでも、「コンポーネントの選択」ページで HADB (Java ES では High Availability Session Store と呼ばれる) をインストールするオプションを選択します。ホストでのインストールを完了します。Application Server のスタンドアロンインストーラを使用していて、2 つの別々のマシンで HADB を実行すること選択した場合は、両方のマシンで同じインストールディレクトリを選択する必要があります。
このマニュアルの全体にわたって、HADB_install_dir は、HADB をインストールするディレクトリを表します。デフォルトのインストールディレクトリは、HADB を Java Enterprise System の一部としてインストールするかどうかによって異なります。Java Enterprise System の場合、デフォルトのインストールディレクトリは /opt/SUNWhadb/4 です。スタンドアロンの Application Server インストーラの場合は、/opt/SUNWappserver/hadb/4 になります。
ノードスーパーバイザープロセス (NSUP) は、「I’m alive」メッセージを互いに交換することにより、HADB の可用性を保証します。NSUP 実行可能ファイルは、できるだけ迅速に応答できるように、root 権限を持っている必要があります。clu_nsup_srv プロセスは CPU リソースを大量に消費せず、フットプリントも小さいため、リアルタイムプライオリティーで実行してもパフォーマンスには影響しません。
Java Enterprise System インストーラを使用した場合は、NSUP の権限が自動的に正しく設定されるため、それ以上の操作は必要ありません。ただし、スタンドアロン Application Server の (ルートでない) インストーラを使用する場合は、データベースを作成する前に、この権限を手動で設定する必要があります。
NSUP の権限が正しく設定されていない場合は、次のようなリソース枯渇の症状がみられることもあります。
誤ったネットワークパーティションや、ノードの再起動。その前に、HADB 履歴ファイルに「Process blocked for n seconds」という警告が記録されます。
トランザクションの中止や、その他の例外。
NSUP がリアルタイムプライオリティーを設定できない場合、Solaris および Linux では EPERM に errno が設定されます。Windows の場合は、「Could not set real-time priority」という警告が発行されます。ma.log ファイルにエラーが書き込まれ、プロセスはリアルタイムプライオリティーがない状態で継続されます。
次の場合は、リアルタイムプライオリティーを設定できません。
HADB が Solaris 10 の非大域ゾーンにインストールされている場合
Solaris 10 で、PRIV_PROC_LOCK_MEMORY (プロセスが物理メモリー内のページをロックできる) 特権または PRIV_PROC_PRIOCNTL 特権、あるいはその両方が無効になっている場合
ユーザーが setuid アクセス権を無効にした場合
ユーザーがソフトウェアを tar ファイルとしてインストールした場合 (Application Server での、ルートでないインストールオプション)
ルートとしてログインします。
作業用ディレクトリを HADB_install_dir/lib/server に変更します。
NSUP 実行可能ファイルは clu_nsup_srv です。
次のコマンドを使用して、ファイルの suid ビットを設定します。
chmod u+s clu_nsup_srv
次のコマンドを使用して、ファイルの所有者をルートに設定します。
chown root clu_nsup_srv
これにより、clu_nsup_srv プロセスがルートとして起動され、プロセス自身にリアルタイムプライオリティーを許可できるようになります。
セキュリティーへの影響を回避するために、リアルタイムプライオリティーはプロセスが起動されるとすぐに設定され、プライオリティーが変更されたらプロセスは実効 UID に戻ります。ほかの HADB プロセスは、標準のプライオリティーで実行されます。