Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java System Application Server 7 2004Q2 Update 1 Standard および Enterprise Edition インストールガイド 

第 2 章
HADB の設定準備

クラスタの一部であるサーバーに高可用性コンポーネントをインストールすると、高可用性の設定準備が整います。

ここでは次の項目について説明します。

ここで説明するタスクを実行したあと、クラスタ、ロードバランサプラグイン、および高可用性データベース (HADB) の設定と管理の詳細な手順について『Sun Java System Application Server Administration Guide』を参照してください。

高可用性のトポロジについては、『Sun Java System Application Server システム配備ガイド』を参照してください。


Windows での HADB の設定

Windows プラットフォームで使用可能な HADB のバージョンは、UNIX プラットフォームではバージョン 4.3.x であるのに対し 4.4.x です。このため、Windows での HADB の設定および管理に関し、UNIX バージョンからの変更点がいくつかあります。これらの変更は、この章の適切な箇所で説明されています。

HADB データベースとともに Application Server を設定する場合、「clsetup の使用」で説明されているように Windows プラットフォームでは、clsetup ユーティリティを使用できます。この節の例は UNIX 専用のものです。Windows プラットフォームには、適切な変更を行ってください。

Windows プラットフォームでの HADB の設定および実行の詳細については、『Sun Java System Application Server 7 2004Q2 Update 1 Administration Guide』の第 21 章「Administering High Availability on Windows」を参照してください。

2 つの HADB バージョン間の主な違いは次のとおりです。

HADB 4.4.x のこれらおよび他の変更点については、『Sun Java System Application Server 7 2004Q2 Update 1 Administration Guide』を参照してください。


HADB が 60-80 以上の SQL サーバープロセスを作成する場合、Windows を設定し直す必要があります。この設定は、HA ストアに過大な JDBC 接続を設定した場合に発生することがあり、さらにアプリケーションサーバーに障害が発生して再起動した後にも一時的に発生することがあります。

設定済みではない Windows では、ポップアップウィンドウに次のエラーメッセージが表示されます。clu_sql_srv.exe: The application failed to initialize properly (0xc00000142). このメッセージはイベントログにも登録されます。HADB サーバーログには、「Server time out waiting for sub-process, waited for 10 seconds」という警告メッセージが表示されます。

この問題を防止するには、次のように Windows を設定します。

1. データベースに対して作成される JDBC 接続の数を少なくします。あるいは、

2. 次の手順に従って Windows レジストリを更新します。

http://support.microsoft.com/default.aspx?scid=kb;[LN];184802 (Cause 2)



共有メモリとセマフォの設定

このセクションには、UNIIX プラットフォームでの HADB ホストマシンの共有メモリ設定についての手順が記載されています。HADB を使用する前に、共有メモリを設定する必要があります。


Windows プラットフォームの場合、この設定は必要ありません。


Solaris での共有メモリの設定

  1. root としてログインします。
  2. 次のコマンドを共有メモリ用の /etc/system ファイルに追加します。
  3. set shmsys:shminfo_shmmax=0x80000000
    set shmsys:shminfo_shmseg=20

    この例では、共有メモリ shmmax を 2G バイト (16 進 0x80000000) に設定しています。これは、ほとんどの設定に十分な値です。

    shmsys:shminfo_shmmax の設定は 256M バイトごとに 0x10000000 として計算され、ホストのメモリサイズと同じに設定します。ホストのメモリを決定するには、次のコマンドを実行します。

    prtconf | grep Memory

    そのあと、ホストのメモリ値を次の式に入力します。

    ((<host> M バイト / 256M バイト) * 0x10000000)


    shmsys:shminfo_shmmax の最大値が 0xffffffff であることに注意してください。


    セマフォの場合:

    /etc/system ファイルには、あらかじめ semmnisemmns、および semmnu エントリが含まれている場合があります。次に例を示します。

    set semsys:seminfo_semmni=10
    set semsys:seminfo_semmns=60
    set semsys:seminfo_semmnu=30

    このエントリが存在する場合は、次のように 16、128、および 1000 をそれぞれ追加することで、値を増加させます。

    set semsys:seminfo_semmni=26
    set semsys:seminfo_semmns=188
    set semsys:seminfo_semmnu=1030

    /etc/system ファイルに上述のエントリが含まれていない場合は、ファイルの末尾に次のエントリを追加します。

    set semsys:seminfo_semmni=16
    set semsys:seminfo_semmns=128
    set semsys:seminfo_semmnu=1000

    これは、コンピュータ上の最大 16 個の HADB ノードを起動するために十分な値です。

  4. コンピュータを再起動して共有メモリの設定を有効にします。
  5. ノード数が 16 個を超える場合については、『Sun Java System Performance Tuning Guide』の「HADB」の章を参照してください。

Linux での共有メモリの設定

  1. 共有メモリを 512M バイトに増やすには、次のコマンドを実行します。
  2. echo 536870912 > /proc/sys/kernel/shmmax
    echo 536870912 > /proc/sys/kernel/shmall

    shmmax は単一の共有メモリセグメントの最大サイズで、shmall は利用可能な共有メモリの合計です。

    デフォルトの値を使用する標準 HADB ノードの場合は、この値で十分です。より大きなサイズのメモリを使用する場合は、この値を大きくする必要があります。

  3. shmmax で指定されているデフォルトの共有メモリ制限は、proc ファイル内でマシンを再起動することなく変更できます。さらに、sysctl(8) を使用して値を変更することもできます。
  4. これらの変更を適用するには、kernel.shmmax=536870912の行を /etc/sysctl.conf ファイルに追加します。このファイルは、ブートプロセス中に使用されます。
  5. echo kernel.shmmax=536870912 /etc/sysctl.conf

HADB ノードの説明ついては、 『Sun Java System Application Server Administration Guide』の「Administering the High-Availability Database (Enterprise Edition)」の章の「Configuring the HADB」を参照してください。また、ストレステストとパフォーマンステストについては、『Sun Java System Application Server Performance Tuning Guide』を参照してください。


ホスト通信の設定


Windows プラットフォームの場合、RSH/SSH 設定は必要ありません。


HADB の管理用のリモートアクセスを実装するには、HADB サーバーと HADB 管理クライアントを稼働させるために使用するすべてのマシンが、リモートシェル (RSH) またはセキュアシェル (OpenSSH/SSH) 用に設定されている必要があります。この手順は UNIX プラットフォームの場合だけ必要です。

RSH は単純なリモートシェルコマンドであり、セキュリティ機能はありません。SSH 通信チャネルは、HADB ノード間で渡されるデータを暗号化することによって、一定レベルのセキュリティを提供します。


Solaris 9 および 10 の場合は、SSH をデフォルトでインストールすることをお奨めします。

Solaris 8 では、デフォルトでは SSH はインストールされません。使用している Solaris 8 システム上に SSH がない場合は、「Solaris 8 への SSH のインストール」の手順に従ってください。

SSH を使用したいが設定されていない場合は、hadbm コマンドを使用できません。SSH が認識されていることを確認するには、「SSH の要件と制限事項」を参照してください。


このセクションには、次の説明があります。

HADB 管理のための RSH の設定

SSH ではなく RSH を使用する場合は、set managementProtocol オプションを使って RSH を明示的に指定する必要があります。clresource.conf ファイルでこのパラメータを設定する方法については、表 2-3 を参照してください。

SSH は RSH よりも安全であるため、hadbm create コマンドのデフォルトとして強くお勧めします。

RSH を実装するには、次の手順を実行します。

  1. root としてログインします。
  2. Linux プラットフォームの場合だけ、/etc/securetty ファイルに次の内容を追加します。
  3. rexec
    rsh
    rlogin
    pts/0
    pts/1

    さらに、/etc/xinetd.d/ の下の rexecrlogin、およびrsh ファイルで、disable=no に変更します。

  4. /etc/hosts ファイルを編集して、ローカルホストのホスト名など、選択したすべての HADB ホストのエントリを組み込みます。localhost の形式を使用します。次に例を示します。
  5. computer1.xbay.company.com
    computer99.zmtn.company.com

  6. このファイルを、選択したすべてのインストールホストの /etc/hosts ファイルに追加します。
  7. HADB ユーザーの $HOME ディレクトリで、.rhosts ファイルを作成します。
  8. グループやその他に対して読み取り専用のアクセス権が設定されていることを確認します。
  9. 各 HADB ホストのホスト名を追加します。このホスト名にはローカルホストの名前が含まれ、そのあとにデータベースユーザーの名前が続きます。たとえば、データベースユーザーが Jon の場合は次のようになります。

    computer1.xbay.company.com    Jon
    computer99.zmtn.company.com   Jon
    mine456.red.mycompany.com       Jon

  10. このファイルを各 HADB ホストの .rhosts に追加します。
  11. 各ホストのホスト通信をチェックします。次に例を示します。
  12. rsh computer99.zmtn.company.com uname -a

    ID は他のホストから返されます。

HADB 管理のための SSH の設定

SSH は RSH よりも安全であるため、hadbm create コマンドを使用する場合に強くお勧めします。


セキュリティの観点から、RSA ベースのバージョン 1 のプロトコルではなく、DSA ベースのバージョン 2 のプロトコルをお勧めします。選択するバージョンは、サイトで使用している SSH クライアントソフトウェアによって異なります。


この節では、次のトピックを取り上げます。

SSH の要件と制限事項


SSH は、Solaris 9 システムにはデフォルトでインストールされますが、Solaris 8 にはデフォルトでインストールされません。Solaris 8 に SSH をインストールするには、「Solaris 8 への SSH のインストール」を参照してください。


SSH を設定するときは、次の要件の一部またはすべてを考慮する必要があります。

Solaris 8 への SSH のインストール

Solaris 8 システムでは、ssh バイナリおよび scp バイナリはデフォルトではインストールされません。これらのバイナリが Solaris 8 システム上にない場合は、次の手順を実行します。

  1. 次のサイトに移動します。
  2. http://www.sunfreeware.com/openssh8.html

    このサイトでは、次のようなメッセージが表示されることがあります。

    ===PLEASE NOTE!!!............ make a note of some of the mirror sites so that if the servers are down, you can still download from a mirror site.

    このようなメッセージが表示された場合は、「FTP/Mirror Sites」のリンクのリストにあるミラーサイトのいずれかにアクセスしてみてください。次に例を示します。

    http://sunfreeware.secsup.org/

  3. このサイトで、インストールの手順に従って、必要な OpenSSH のパッケージとパッチのすべてをダウンロードしてインストールします。

これで SSH を設定する準備が整いました。

SSH の設定

ssh バイナリおよび scp バイナリがすでにインストールされているシステム上に SSH を設定するには、次の節で説明する手順のどちらかを実行します。

マウントされていないホームディレクトリの SSH

ホームディレクトリがマウントされていないシステムに SSH を実装するには、次の手順を実行します。

  1. SSH 要件が理解されていて、「SSH の要件と制限事項」に示す要件が満たされていることを確認します。
  2. HADB ユーザーとしてホストにログインします。
  3. 次のコマンドを実行して、キーを生成します。
  4. ssh-keygen -t dsa

    SSH1 と OpenSSH/1 の場合、通常は ssh-keygen コマンドにパラメータを付ける必要はありません。

  5. 次の 3 つのプロンプトに対して、Enter を押してデフォルトのオプションを受け入れます。
  6. クラスタ内のすべてのマシンに対して手順 1、2、および 3 を繰り返します。

~/.ssh ディレクトリ内にある identity.pub または id_dsa.pub というファイル (SSH のバージョン 1 とバージョン 2 のどちらを使うかによって異なる) に公開鍵が格納されます。マシンに接続する際のパスワード入力を不要にするには、このファイルの内容を、すべてのマシン上の authorized_keys というファイルに追加する必要があります。

  1. ログイン ID を設定するには、ユーザーディレクトリに移動します。
  2. ~/.ssh.

    SSH1、OpenSSH/1 の場合、次の手順を行います。

    1. identity.pub ファイルをコピーして、 authorized_keys という名前を付けます。
    2. クラスタ内のその他のマシンでそれぞれ、identity.pub ファイルの内容をコピーし、それをローカルの authorized_keys ファイルに追加します。
    3. OpenSSH/2の場合、次の手順を行います。

    4. id_dsa.pub ファイルをコピーして、 authorized_keys2 という名前を付けます。
    5. クラスタ内のその他のマシンでそれぞれ、id_dsa.pub ファイルの内容をコピーし、それをローカルの authorized_keys2 ファイルに追加します。
  3. すべての HADB マシンの ~/.ssh ディレクトリに、authorized_keys ファイルをコピーします。
  4. ssh ディレクトリ、HADB ユーザーのホームディレクトリ、および .ssh/authorized_keys ファイルに対して、グループとその他の書き込み権がないことを確認します。
  5. 必要に応じて、これらのグループやその他の書き込み権を、次のようにして無効にします。

    chmod og-w ~/.ssh
    chmod og-w ~/.ssh/authorized_keys
    chmod og-w $HOME

    $HOME を HADB ユーザーのホームディスクと置き換えます。たとえば、次のようにします。

    chmod og-w ~/johnsmith


    ~/.ssh ディレクトリの下のファイルに対してグループやその他に読み取り権が与えられている場合でも、自動 SSH ログイン ID を設定することはできません。この場合、ssh machine_name を実行しようとすると、システムによりアクセス権が正しくないことが示され、パスワードの入力が求められます。このため、自動ログインを有効にする場合は、グループとその他にアクセス権を与えないことをお勧めします。


  6. ユーザーが入力しなくてもログインできるようにするには、SSH 環境を設定したあとにはじめて SSH を使用するときに、/.ssh ディレクトリの下の known_hosts ファイルへ次のようにノードマシン名を追加する必要があります。
    1. 次のように入力します。
    2. ssh machine_name

      machine_nameknown_hosts ファイルに追加するかどうかを確認する「Yes/No」の質問が表示されます。

    3. 「Yes」と答えます。
    4. これで、入力しなくてもログインできるようになります。

  7. SSH が正しく設定されたことを確認するには、HADB の管理ツールを実行する前に、クラスタ内の各ホストに対してSSH の確認を行います。
  8. パスワードの入力は必要なく、自動ログインします。

マウントされているホームディレクトリの SSH

ホームディレクトリがマウントされているシステムに SSH を実装するには、次の手順を実行します。

  1. 「SSH の要件と制限事項」に示すように、SSH 要件が満たされていることを確認します。
  2. HADB ユーザーとしてホストにログインします。
  3. 次のコマンドを実行して、キーを生成します。
  4. ssh-keygen -t dsa

    SSH1 と OpenSSH/1 の場合、通常は ssh-keygen コマンドにパラメータを付ける必要はありません。

  5. 次の 3 つのプロンプトに対して、Enter を押してデフォルトのオプションを受け入れます。
  6. ~/.ssh ディレクトリ内にある identity.pub または id_dsa.pub というファイル (SSH のバージョン 1 とバージョン 2 のどちらを使うかによって異なる) に公開鍵が格納されます。マシンに接続する際にパスワードの入力が求められないようにするには、このファイルの内容を、すべてのマシン上の authorized_keys2 というファイルに追加する必要があります。これは次のようにして行います。

  7. ログイン ID を設定するには、ユーザーディレクトリに移動します。
  8. ~/.ssh.

    SSH1、OpenSSH/1 - identity.pub ファイルをコピーし、それに authorized_keys という名前を付けます。

    OpenSSH/2 - id_dsa.pub ファイルをコピーし、それに authorized_keys という名前を付けます。

  9. ssh ディレクトリと .ssh/authorized_keys ファイルに、グループとその他に対する書き込み権がないことを確認します。
  10. 必要に応じて、これらのグループやその他の書き込み権を、次のようにして無効にします。

    chmod og-w ~/.ssh
    chmod og-w ~/.ssh/authorized_keys
    chmod og-w /$HOME

    HOME を HADB ユーザーのホームディスクと置き換えます。次に例を示します。

    chmod og-w ~/johnsmith


    ~/.ssh ディレクトリの下のファイルに対してグループやその他に読み取り権が与えられている場合でも、自動 SSH ログイン ID を設定することはできません。この場合、ssh machine_name を実行しようとすると、システムによりアクセス権が正しくないことが示され、パスワードの入力が求められます。このため、自動ログインを有効にする場合は、グループとその他にアクセス権を与えないことをお勧めします。


  11. ユーザーが入力しなくてもログインできるようにするには、SSH 環境を設定したあとにはじめて SSH を使用するときに、/.ssh ディレクトリの下の known_hosts ファイルへノードマシン名を追加する必要があります。
  12. ssh machine_name

    machine_nameknown_hosts ファイルに追加するかどうかのメッセージが表示されたら、「Yes」と答えます。これで、何も入力することなくログインできます。

  13. SSH が正しく設定されたことを確認するには、HADB の管理ツールを実行する前に、クラスタ内の各ホストに対してSSH の確認を行います。
  14. パスワードの入力は必要なく、自動ログインします。

Solaris で VERITAS ファイルシステムを使う場合の HADB の使用法

Solaris でVERITAS ファイルシステムを使用する場合、HADB 履歴ファイルのメッセージ WRN: Direct disk I/O mapping failed を取得します。

このメッセージは、HADB がデータおよびログデバイスの「direct I/O」をオンすることを不可能であることを示します。direct I/O とは、ディスクのページを記述する CPU コストを削減し、さらにオペレーティングシステムのダーティデータページを管理するオーバーヘッドも少なくするパフォーマンス強化策です。

VERITAS で direct I/O を使用するには、オプション mincache=direct でマウントされるファイルシステムに、データおよびログデバイスを作成する必要があります。このオプションは、ファイルシステムで作成されるすべてのファイルに適用されることに注意してください。詳細については、コマンド mount_vxfs(1M) を参照してください。

もう 1 つの方法は VERITAS Quick I/O 機能を使用することです。事実上、この製品は raw I/O を行い、ファイルシステムのファイルを可能にします。詳細については、VERITASのマニュアル『VERITAS File Systema 4.0 Administrator's Guide for Solaris』を参照してください。


この説明は入手可能なマニュアルに基づくものに限られます。

Sun Database Technology Group はこれらの設定をテストしていません。


Linux で ext ファイルシステムを使う場合の HADB の使用方法

HADB は Red Hat Advanced Server 2.1 での ext3 ファイルシステムをサポートしていません。ext2 だけをサポートしています。ext3 ファイルシステムは Red Hat Advanced Server 3.0 の HADB でサポートされます。


ユーザー環境の設定


この章に記載されている手順は UNIX 専用の例です。注記がある場合を除いて、同じコマンドおよび例は適切に変更することで、Microsoft Windows プラットフォームにも適用できます。


ホスト通信を設定すると、次のようにして、hadbm コマンドを install_dir/SUNWhadb/4/bin ディレクトリから実行できます。

ただし、高可用性の管理クライアントのコマンドをどこからでも使用できるようにローカル環境を設定すると、より便利です。これを設定するには、次の手順を実行します。


この節の例では、csh を使用します。別のシェルを使用する場合は、使用するシェルのマニュアルページで変数の設定手順を参照してください。


  1. PATH 変数を次のように設定します。
  2. setenv PATH ${PATH}:install_dir/bin:install_dir/SUNWhadb/4/bin

  3. 次のコマンドを実行して、PATH 設定が正しいことを確認します。
  4. which asadmin
    which hadbm

  5. 複数の Java バージョンがインストールされている場合は、JAVA_HOME 環境が Enterprise Edition の JDK バージョン 1.4.2_05 にアクセスしていることを確認します。
  6. setenv JAVA_HOME java_install_dir
    setenv PATH ${PATH}:${JAVA_HOME}/bin

  7. HADB デバイスファイルおよびログファイルがデフォルトの場所にない場合 (appserver_install_dir/SUNWhadb/4)、次の hadbm コマンドを使用してこれら重要なファイルを検索します。
  8. hadbm get configpath
    hadbm get devicepath
    hadbm get historypath
    hadbm get installpath

    これらのコマンドで表示された場所をバックアップします。


root 以外の特権に対する管理の設定

デフォルトでは、Sun Java System Application Server の初期インストールまたは設定時、Sun Java System Application Server 用に作成されたファイルとパスの書き込み権はルートだけに与えられます。ルート以外のユーザーが Sun Java System Application Server を作成したり管理したりする場合、関連するファイルの書き込み権を、その特定のユーザー、またはそのユーザーが属するグループに与える必要があります。影響を受けるファイルとそのデフォルトの場所は次のとおりです。

次の手順で説明するように、Sun Java System Application Server を管理するためのユーザーグループを作成できます。もう 1 つの方法は、特定のユーザーにアクセス権と所有権を設定することです。

Sun Java System Application Server のユーザーグループを作成し、インストールルートディレクトリのアクセス権を設定するには、影響を受けるファイルのそれぞれに対して次の手順を繰り返します。

  1. root としてログインします。
  2. コマンドプロンプトから、Sun Java System Application Server ユーザーグループを作成します。次に例を示します。
  3. # groupadd s1asuser

    コマンド行で groupadd と入力して、適切な使用法を表示します。

  4. 影響を受けるファイルのそれぞれのグループ所有権を、新たに作成したグループに変更します。次に例を示します。
  5. chgrp -R sjsasuser install_config_dir/cl*.conf

  6. 新しく作成したグループの書き込み権を設定します。
  7. chmod -R g+rw install_config_dir/cl*.conf

  8. 影響を受けるファイルのそれぞれで、手順 3 と 4 を繰り返します。
  9. clsetup コマンドと cladmin コマンドを、新しく作成したグループで作成できるようにします。次に例を示します。
  10. chmod -R g+x install_dir/bin/cl*

  11. --sysuser オプションを使って、デフォルトのドメインである domain 1 を削除してから再度作成します。sysuser も新たに作成したグループに属する必要があります。次に例を示します。
  12. asadmin delete-domain domain1

    asadmin create-domain --sysuser bleonard --adminport 4848 --adminuser admin --adminpassword password domain1


clsetup の使用

clsetup ユーティリティの目的は、一般的な設定で基本クラスタを設定するプロセスを自動化することです。clsetup コマンドは install_dir/bin にあります。install_dir は、Sun Java System Application Server ソフトウェアがインストールされているディレクトリです。

clsetup ユーティリティは、cladmin コマンドとともに Sun Java System Application Server ソフトウェアにバンドルされています。


cladmin コマンドは、インストールと設定のすべてのタスクが完了したあとで、クラスタの設定と管理のプロセスを効率化するために使用します。HADB の作成方法と cladmin コマンドの使用方法については、『Sun Java System Application Server Administration Guide』を参照してください。


ここでは次の項目について説明します。

clsetup の機能

clsetup ユーティリティは、Sun Java System Application Server コマンドのセットです。これを使えば、事前に内容が設定されている入力ファイルに基づいて、自動的にクラスタを設定できます。クラスタ設定の一部として、HADB が作成されます。ただし、『Sun Java System Application Server Administration Guide』で説明されているように、hadbm コマンドを使用して作業用クラスタを設定する必要があります。


clsetup ユーティリティインタフェースは不確定です。不確定なインタフェースとは試験的または一時的なインタフェースであるため、次のリリースで互換性がなくなったり、削除されたり、または安定したインタフェースに置き換えられたりする場合があります。


この節では次の項目について説明します。

入力ファイルの機能

clsetup ユーティリティでは、次の 3 つの入力ファイルを使ってクラスタを設定します。

一般的なクラスタの設定をするようあらかじめ設定されている、clsetup 設定パラメータを使用します。別の設定をサポートするには、設定ファイルの一部、またはすべてを編集します。

clsetup が実行する内容

clsetup 入力ファイルに事前に設定されている値を使って、clsetup ユーティリティコマンドは次のことを行います。

clsetup が使用するコマンド

clsetup ユーティリティは、多数の hadbm コマンドと asadmin コマンドを使ってクラスタを設定します。表 2-1 では、左側の列に clsetup のタスクを示し、右側の列にタスクの実施に使われるコマンドを示しています。

表 2-1 clsetup ユーティリティが使用する hadbm および asadmin コマンド

clsetup で実行するタスク

コマンド

データベースが存在するかどうかをチェックします

hadbm status

HADB を作成して起動します

hadbm create

JDBC URL を取得します

hadbm get jdbcURL

セッションストアを作成します

asadmin create-session-store

インスタンスの状態をチェックします

asadmin show-instance-status

インスタンスを作成します

asadmin create-instance

JDBC 接続プールを作成します

asadmin create-jdbc-connection-pool

データソースを登録します

asadmin create-jdbc-resource

持続タイプを設定します

asadmin configure-session-persistence

RMI/IIOP フェイルオーバーを設定します

asadmin add-iiop-cluster-endpoint

SFSB フェイルオーバーを設定します

asadmin set

インスタンスを再設定します

asadmin reconfig -u admin

clsetup の要件と制限事項

clsetup ユーティリティには、次の要件と制限が適用されます。

clsetup 入力ファイルの編集

clsetup コマンドに必要な入力ファイルは、インストール処理の中で設定インストールディレクトリ (デフォルトは、UNIX では /etc/opt/SUNWappserver7、Windows では c:¥Sun¥AppServer7¥config¥ ) の下にインストールされます。これらの入力ファイルには通常設定の値が事前に入力されており、使用する設定に応じて変更できます。

このセクションには、次の内容があります。

clinstance.conf ファイル

clsetup を動作させるため、クラスタの一部であるすべてのアプリケーションサーバーのインスタンスが clinstance.conf ファイルに定義されている必要があります。インストール中に、2 つのインスタンスのエントリにより clinstance.conf ファイルが作成されます。クラスタにインスタンスを追加する場合は、そのインスタンスに関する情報を次のように追加する必要があります。

クラスタの一部であるインスタンスごとに 1 組のエントリが必要です。ハッシュマーク (#) で始まる行はコメントとして扱われます。


これらのエントリの clinstance.conf ファイルでの順序は重要であるため、ここで示す順序は変更しないでください。その他のアプリケーションサーバーインスタンスに関する情報を追加する場合、これらのインスタンスのエントリは同じ順序で表示される必要があります。コメントはファイルの任意の場所に追加できます。


表 2-2 では、clinstance.conf ファイル内のエントリに関する情報を説明しています。左側の列にはパラメータ名、中央の列にはパラメータの定義、右側の列にはデフォルト値を示しています。

表 2-2 clinstance.conf ファイルのエントリ 

パラメータ

定義

デフォルト値

instancename

Application Server のインスタンス名

server1、server2

user

管理サーバーのユーザー名

admin

host

ホスト名

localhost

port

管理サーバーのポート番号

4848

domain

管理ドメイン名

domain1

instanceport

Application Server インスタンスポート

80, 81

master

マスターインスタンス (クラスタ検証に使用)

false

clinstance.conf ファイルの例

この clinstance.conf ファイルには、2 つのインスタンスに関する情報が含まれています。

#Instance 1

instancename server1
user admin
host localhost
port 4848
domain domain1
instanceport 80

#Instance 2

instancename server2
user admin
host localhost
port 4848
domain domain1
instanceport 81

clpassword.conf ファイル

clsetup を実行するとき、asadmin コマンドには管理サーバーのパスワードが必要です。このパスワードは、インストール時に clpassword.conf ファイルに指定されます。

clpassword.conf ファイルの形式は次のとおりです。

password は管理サーバーのパスワードです。

アクセス権 0600 が clpassword.conf ファイルに事前設定されています。このファイルにアクセスできるのは root ユーザーだけです。

clresource.conf ファイル

インストール中に clresource.conf ファイルが作成されて、通常の設定が行われます。clresource.conf ファイルには、クラスタの一部である次のリソースに関する情報が含まれています。

UNIX プラットフォームでは、アクセス権 0600 が clresource.conf ファイルに事前設定されています。このファイルにアクセスできるのは root ユーザーだけです。


clsetup を実行する前に、最適化や別の設定のために、clresource.conf ファイルに指定した値を変更することができます。値を編集する場合は、ファイルの順序と形式を変更しないでください。

ハッシュマーク (#) で始まる行はコメントとして扱われます。


次の表では、clresource.conf ファイルのパラメータについて説明しています。左側の列にはパラメータ名、中央の列にはパラメータの定義、右側の列にはデフォルト値を示しています。

表 2-3 では、clresource.conf ファイルの HADB パラメータについて説明しています。

表 2-3 clresource.conf ファイルの HADB パラメータ 

パラメータ

定義

デフォルト値

historypath

履歴ファイルのパス

/var/tmp

Windows の場合: REPLACEDIR (REPLACEURL は実行時の実際の URL と置き換えられる)

devicepath

データおよびログデバイスのパス

/opt/SUNWappserver7/SUNWhadb/4

Windows の場合: C:¥Sun¥AppServer7¥SUNWhadb¥4.4.0-14

datadevices

各ノード上のデータデバイスの数

1

portbase

ノード 0 に使われるポートベース番号。別のノードには、ここで示す番号から 20 ずつ増分されたポート番号 (10000 〜 63000 の範囲のランダムな番号) が割り当てられます

15200

spares

スペアノードの数

0

set

コンマで区切られた、データベース設定属性のリスト

有効なデータベース設定属性の説明については、『Sun Java System Application Server 7.1 Administration Guide』を参照

たとえば、SSH (デフォルト) ではなく RSH を使用するよう指定するには、次の行のコメント指定を外します。#set managementProtocol=rsh

inetd

HADB が inet デーモンを使って実行されているかどうかを示します

Windows プラットフォームでは適用不可

false

inetdsetupdir

inet デーモンの設定ファイルがあるディレクトリ

Windows プラットフォームでは適用不可

/tmp

devicesize

デバイスのサイズ (M バイト)。このサイズはすべてのデバイスに適用される

512

dbpassword

HADB ユーザーのパスワード

password

hosts

すべてのデータノードに使用されるすべてのホスト

値は、インストール時に指定したホストに基づいて自動的に設定される

データベース名は、clresource.conf ファイルの [HADBINFO] セクションの末尾に指定されます。

表 2-4 では、clresource.conf ファイルのセッションストアパラメータについて説明しています。

表 2-4 clresource.conf ファイルのセッションストアパラメータ 

パラメータ

定義

デフォルト値

storeurl

HADB ストアの URL

REPLACEURL

注: 値は実行時の実際の URL と置き換えられます

storeuser

セッションストアへのアクセス権を持つユーザー

appservusr

注: 表 2-5 の username プロパティと一致する必要があります

storepassword

storeuser のパスワード

password

注: 表 2-5 の password プロパティと一致する必要があります

dbsystempassword

HADB システムユーザーのパスワード

password

adminpassword

ドメインを管理する管理者のパスワード。 hadbm createdomain または hadbm create とともに adminpassword オプションを使用する場合には、hadbm コマンドを使うたびにこのパスワードを入力する必要がある

(Windows の場合に限る)

なし

adminpasswordfile

adminpasswordfile オプションは、パスワードを含むファイルへのパスとしてパスワードを提供するために使用

(Windows の場合に限る)

なし

no-adminauthentication

no-adminauthentication オプションで、管理者は管理者のパスワードを入力することなくすべての hadbm コマンドが使用可能

(Windows の場合に限る)

なし

表 2-5 では、clresource.conf ファイルの JDBC 接続プールパラメータについて説明しています。

表 2-5 clresource.conf ファイルの JDBC 接続プールパラメータ 

パラメータ

定義

デフォルト値

steadypoolsize

プールに保持される接続の最小数および初期数

8

maxpoolsize

作成できる接続の最大数

32

datasourceclassname

ベンダーから提供される JDBC データソースの名前

ベンダーから提供される JDBC データソースに対応するデータソースクラスの名前は、 javax.sql.XADatasource インタフェースを実装する

XA に対応していない、またはローカルトランザクション専用のデータソースでは、javax.sql.Datasource インタフェースが実装される

com.sun.hadb.jdbc.ds.HadbDataSource

isolationlevel

プールされているデータベース接続のトランザクション遮断レベルを指定する

repeatable-read

isisolationguaranteed

トランザクション遮断レベルが保証される

true

validationmethod

検証方法の種類を指定する

meta-data

property

ユーザー名、パスワード、およびリソース設定の指定に使われるプロパティ

username=appservusr:password=password:cacheDataBaseMetaData=false:eliminateRedundantEndTransaction=true:serverList=REPLACEURL

注: ユーザー名とパスワードのプロパティでは、必ず、セッションストアパラメータの表に示されている値と同じ値を使用してください。REPLACEURL は、実行時の実際の URL と置き換えらます

接続プール名は、clresource.conf ファイルの [JDBC_CONNECTION_POOL] セクションの末尾に指定されます。

表 2-6 では、clresource.conf ファイルの JDBC リソースパラメータについて説明しています。

表 2-6 clresource.conf ファイルの JDBC リソースパラメータ 

パラメータ

定義

デフォルト値

connectionpoolid

接続プールの名前

appservCPL

注: 接続プール名は表 2-5 に指定されています。

JDBC リソース名は、clresource.conf ファイルの [JDBC_RESOURCE] セクションの末尾に定義されています。

表 2-7 では、clresource.conf ファイルのセッションの持続性パラメータについて説明しています。

表 2-7 clresource.conf ファイルのセッション持続性パラメータ 

パラメータ

定義

デフォルト値

type

セッション持続性タイプ

ha

frequency

セッション頻度

web-method

scope

セッションの範囲

セッション

store

セッションストア

jdbc/hastore

注: ストア名は、[JDBC_RESOURCE] セクションの末尾に定義されています

表 2-8 では、clresource.conf ファイルのステートフルセッション Bean パラメータについて説明しています。

表 2-8 clresource.conf ファイルのステートフルセッション Bean パラメータ 

パラメータ

定義

デフォルト値

sfsb

ステートフルセッション Bean フェイルオーバー

false

表 2-9 では、clresource.conf ファイルの RMI/IIOP フェイルオーバーパラメータについて説明しています。

表 2-9 clresource.conf ファイルの RMI/IIOP フェイルオーバーパラメータ 

パラメータ

定義

デフォルト値

rmi_iiop

RMI/IIOP クラスタ設定

false

表 2-10 では、clresource.conf ファイルのクラスタ識別パラメータについて説明しています。

表 2-10 clresource.conf ファイルの クラスタ識別パラメータ 

パラメータ

定義

デフォルト値

cluster_id

クラスタ ID

cluster1

clresource.conf ファイルの例

[HADBINFO]
historypath /var/tmp
devicepath /opt/SUNWappserver7/SUNWhadb/4
datadevices 1
portbase 15200
spares 0
#set    managementProtocol=rsh
inetd false
inetdsetupdir /tmp
devicesize 512
dbpassword password
hosts machine1,machine1
hadb

[SESSION_STORE]
storeurl                 REPLACEURL
storeuser              appservusr
storepassword             password
dbsystempassword        password

[JDBC_CONNECTION_POOL]
steadypoolsize         8
maxpoolsize         32
datasourceclassname     com.sun.hadb.jdbc.ds.HadbDataSource
isolationlevel          repeatable-read
validationmethod        meta-data
property username=appservusr:password=password:cacheDataBaseMetaData=false:e liminateRedundantEndTransaction=true:serverList=REPLACEURL

appservCPL

[JDBC_RESOURCE]
connectionpoolid      appservCPL
jdbc/hastore

[SESSION_PERSISTENCE]
type       ha
frequency  web-method
scope      session
store      jdbc/hastore

Windows での clresource.conf ファイルの例

[HADBINFO]

package V4.4

historypath   REPLACEDIR

devicepath    C:¥Sun¥AppServer7¥SUNWhadb¥4.4.0-12

datadevices    1

portbase    15200

spares    0

#set    LogbufferSize=32,DataBufferPoolSize=128

devicesize    208

dbpassword    password

hosts    machine1,machine2

adminpassword    password

hadb

[SESSION_STORE]

storeurl    EPLACEURL

storeuser    appservusr

storepassword    password

dbsystempassword    password

[JDBC_CONNECTION_POOL]

steadypoolsize    8

maxpoolsize    2

datasourceclassname    com.sun.hadb.jdbc.ds.HadbDataSource

isolationlevel     repeatable-read

--isisolationguaranteed=true

validationmethod    meta-data

property    username=appservusr:password=password:cacheDataBaseMeta Data=false:eliminateRedundantEndTransaction=true:serverList=REPLACE URL

appservCPL

[JDBC_RESOURCE]

connectionpoolid    appservCPL

jdbc/hastore

[SESSION_PERSISTENCE]

type    ha

frequency    web-method

scope    session

store    jdbc/hastore

[EJB_FAILOVER]

sfsb    true

[RMI_IIOP_FAILOVER]

rmi_iiop    true

[CLUSTER_ID]

cluster_id    cluster1

clsetup の実行

clsetup の実行の構文は次のとおりです。

引数が指定されていない場合、clsetup は次のデフォルトを使用します。

カスタムの入力ファイルの場所を指定することで、これらの引数を無効にできます。次に例を示します。

カスタムの入力ファイルを指定するときは、入力ファイルにある必須形式に従ってください。この手順については、「clsetup 入力ファイルの編集」を参照してください。

clsetup を実行するには、次の手順を行います。

  1. 「clsetup の要件と制限事項」に記載されている要件が満たされていることを確認します。

  2. clsetup を root 以外のユーザーとして実行する場合は、「root 以外の特権に対する管理の設定」を参照して設定を行ってください。


  3. 入力ファイルにクラスタの設定に必要な情報があることを確認します。必要に応じて、「clsetup 入力ファイルの編集」のガイドラインに従って入力ファイルを編集します。
  4. RSH を使用する場合は、clresource.conf ファイルを編集して次の行のコメント指定を外します (# 記号を削除します)。#set managementProtocol
  5. Sun Java System Application Server インストールディレクトリ下の /bin ディレクトリに移動します。
  6. clsetup コマンドを実行します。
  7. UNIX の場合: ./clsetup

    Windows の場合: clsetup.bat

    clsetup コマンドにより詳細モードで実行されます。さまざまなコマンドが実行中に画面に表示され、出力はログファイル /var/tmp/clsetup.log (UNIX の場合)、またはデフォルトの Windows temp ディレクトリ (Windows の場合) にリダイレクトされます。

    重大なエラーが発生した場合は、設定が停止し、ログファイルにエラーが記録されます。ログファイルがすでに存在している場合は、出力が既存のログファイルに追加されます。

    処理するエントリ (HADB ノードと Application Server インスタンス) がすでに存在する場合、clsetup コマンドはそれらを削除したり再設定したりしないで、各設定手順は省略されます。この種のイベントは、ログファイルに記録されます。

  8. clsetup が設定を完了すると、それぞれの設定を確認したあとでログファイルのスキャンを行います。
  9. 完了すると、clsetup により、表 2-11 に記載されている終了コードが返されます。
  10. 表 2-11 clsetup コマンドの終了コード 

    終了コード

    説明

    0

    正常に終了

    2

    使用法のエラー

    3

    インスタンスファイルが見つからない

    4

    インスタンスファイルを読み取れない

    5

    リソースファイルが見つからない

    6

    リソースファイルを読み取れない

    7

    パスワードファイルが見つからない

    8

    パスワードファイルを読み取れない

    10

    スクリプトが asadmin を見つけられない

    11

    スクリプトが hadbm を見つけられない

    12

    一時ファイルを作成できない

    13

    セッションストアの設定に失敗した

    14

    HADB の作成に失敗した

    15

    HADBが get jdbc URL の取得に失敗した

    16

    ユーザーが Welcome メッセージで終了する

clsetup のクリーンアップ手順

clsetup を実行したあと、発生したエラーがログファイル /var/tmp/clsetup.log に記録されます。clsetup コマンドの実行後に毎回ログファイルを調べ、報告される重大なエラー (例: 存在しないインスタンスの作成に失敗) を修正してください。

設定のすべてまたは一部は、次のようにして元に戻すことができます。

これらのコマンドの詳細な例については、マニュアルページを参照してください。HADB の設定と、クラスタ、ロードバランサプラグイン、および HADB の管理を行うには、『Sun Java System Application Server Administration Guide』を参照してください。


時刻の同期

HADB は、内部イベントの管理やデバッグ目的でシステムクロックのタイムスタンプを使用するため、HADB を実行しているホストの時刻を同期させておくことを強くお奨めします。イベントは、先頭にタイプスタンプが付いた履歴ファイルに書き込まれます。HADB は分散システムのため、トラブルシューティングですべての HADB ノードの履歴ファイルがまとめて分析されます。また、HADB は内部でシステムクロックを使用して、タイムアウトのような時間依存のイベントを管理します。

HADB を実行しているシステムのシステムクロックを調整することはお奨めしません。HADB は通常システムクロックを使用するように実装されていますが、次の点に注意する必要があります。

時計を同期させるには、Solaris では "xntpd" (ネットワークタイムプロトコルデーモン)、Linux では "ntpd" を使用できます。



前へ      目次      索引      次へ     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.