Sun Java System Application Server Enterprise Edition 8.2 トラブルシューティングガイド

HADB 管理の問題

hadbm コマンドとその多数のサブコマンドおよびオプションを使用して、高可用性データベース (HADB) を管理することができます。hadbm コマンドは、install_dir/SUNWhadb/4/bin ディレクトリにあります。

このコマンドの詳細な説明については、『Sun Java System Application Server 管理ガイド』の「Configuring the High Availability Database」の章を参照してください。各 hadbm サブコマンドの詳細については、hadbm のマニュアルページを参照してください。

ここでは、次の問題について説明しています。

hadbm コマンドが失敗する: エージェントにアクセスできなかった

説明

コマンドが次のエラーで失敗します。

The agents <url\> could not be reached.

URL のホストにアクセスできなかった可能性があります。原因は、ホストがダウンしている、通信経路が確立されていない、URL のポート番号が違う、管理エージェントがダウンしている、のいずれかです。

解決法

URL が正しいかどうか確認します。URL が正しい場合は、ホストが稼動しておりすぐに通信できる状態にあることを確認します。次に例を示します。

ping hostname1ping hostname2...

hadbm コマンドが失敗する: コマンドが見つからない

説明

hadbm コマンドはカレントディレクトリから実行できます。検索 PATH を設定してどこからでも hadb コマンドを使用できるようにすれば、一層便利です。「hadbm: Command not found」というエラーは、これらの条件のいずれにも当てはまらなかったことを示します。

解決法 1

hadbm コマンドを含むディレクトリに cd で移動し、そこから実行します。

cd install_dir/SUNWhadb/4/bin/
./hadbm

解決法 2

hadbm コマンドのフルパスを指定して呼び出します。

install_dir/SUNWhadb/4/bin/hadbm

解決法 3

PATH 変数を設定すると、どこからでも hadbm コマンドを使用できます。PATH 変数の設定手順については、『Sun Java System Application Server 8.2 Installation Guide』の「Preparing for HADB Setup」の章を参照してください。

PATH の設定が正しいかどうか確認するには、次のコマンドを実行します。

which asadmin
which hadbm

ユーティリティーに返されるパスを確認してください。

hadbm コマンドが失敗する: JAVA_HOME が定義されていない

説明

「hadbm: <path\>: Invalid Java home location」というメッセージは、JAVA_HOME 環境変数が適切に設定されていないことを示します。

解決法

システムに複数のバージョンの Java がインストールされている場合は、JAVA_HOME 環境変数に正しいバージョンの Java (Enterprise Edition では 1.4.1_03 以上) が設定されているかどうか確認します。

PATH 変数の設定手順については、『Sun Java System Application Server 8.2 Installation Guide』の「Preparing for HADB Setup」の章を参照してください。

hadbm createdomain が失敗し、2 つに分割されたドメインが作成される

説明

ネットワークインタフェースが複数あるホスト上で HADB 管理エージェントを実行する場合、それらのネットワークインタフェースがすべて同一サブネット上にないと、createdomain コマンドが次のように失敗することがあります。

hadbm:Error 22020: The management agents could not establish a domain, 
please check that the hosts can communicate with UDP multicast.

管理エージェントのデフォルトでは、UDP マルチキャスト用に「最初の」(java.net.NetworkInterface.getNetworkInterfaces() で返される「最初の」) インタフェースが使用されます。

解決法

最善の解決法は、設定ファイルで ma.server.mainternal.interfaces を設定して、使用するサブネットを管理エージェントに通知することです。次に例を示します。

ma.server.mainternal.interfaces=10.11.100.0

サブネット間のルーターで、マルチキャストパケットを経路指定するように設定する方法もあります。デフォルトでは、管理エージェントで使用するマルチキャストアドレスは、228.8.8.8 です。

create が失敗する: ホスト上にパスがない

説明

hadbm create コマンドの実行後、コンソールに次のようなエラーが表示されます。

./hadbm create ...
...
hadbm: Error 22022: Path path does not exist on host host

このエラーメッセージは、マシン上に存在しないパスを指定して新しいノードを追加した場合にも表示されることがあります。

解決法

ホストにログインし、HADB デバイスおよび HADB 履歴ファイルのパスを作成します。hadbm create を実行し、作成したパスを --devicepath および --historypath オプションで指定します。ホスト上で管理エージェントを実行するユーザーに、これらのディレクトリに対する読み取りおよび書き込みアクセス権があることも確認してください。


注 –

HADB の実行可能ファイルを複数の異なるホスト上の異なるパスにインストールすることはできません。


データベースが起動しない

create または start コマンドが失敗し、次のコンソールエラーメッセージが表示されます。

hadbm: Error 22095: Database could not be started...

次の点を考慮してください。

共有メモリーのセグメント取得エラーがなかったか ?

説明

ノードの停止後に、そのノードに割り当てられたリソース (共有メモリー、ディスク領域) がほかのプロセスに占有されていると、起動が失敗することがあります。

解決法

この問題を解決する方法については、「共有メモリーに関連する問題」を参照してください。

履歴ファイルにエラーが記録されていないか ?

説明

問題がなくならない場合は、HADB 履歴ファイルを調べます。見つかる可能性が高い主なエラーメッセージは、次のとおりです。

解決法

前述の項目のいずれにも問題が発生していないことを確認したら、次の救済策を順番に試してください。

詳しくは、『Error Message Reference』を参照してください。

clear コマンドが失敗した

clear コマンドでは、ディスク上に存在するデータベースデバイスファイルを再初期化します。このコマンドは、ディスクまたはディスクアクセスの問題が原因で失敗することがあります。このことを示す hadbm からのエラーメッセージがないかどうかチェックします。もしないなら、ma.log ファイル内を検索して、devinit から出力されたエラーメッセージがないかどうかチェックします。

create-session-store が失敗した

asadmin create-session-store コマンドは、次のいずれかの理由で失敗することがあります。

無効なユーザー名またはパスワード

このエラーは、create-session-store コマンドに指定した --dbsystempassword が、データベース作成時に指定したパスワードと異なる場合に発生します。

解決法 1

正しいパスワードを指定してコマンドを再試行します。

解決法 2

dbsystem パスワードを忘れた場合は、hadbm clear でデータベースをクリアーし、新しい dbsystem システムパスワードを指定する必要があります。

SQLException: No suitable driver

create-session-store から次のエラーが出力されます: SessionStoreException: java.sql.SQLException: No suitable driver。

解決法 1

asadmin で、Application Server config ディレクトリの asenv.conf で定義した AS_HADB パスから hadbjdbc4.jar を見つけられない場合に、このエラーが発生することがあります。

解決法は、HADB のインストール場所を指すように AS_HADB を変更することです。

次に、asenv.conf ファイルから AS_HADB エントリの例を示します。

AS_HADB=/export/home0/hercules/0815/SUNWhadb/4.4.0-8

解決法 2

このエラーは、--storeUrl に間違った値を指定した場合にも発生することがあります。この問題を解決するには、hadbm get jdbcURL を使用して正しい URL を取得します。

hadbm コマンドがハングする

hadbm との間で通信する管理エージェントが、操作が完了する前に停止すると、hadbm プロセスがハングすることがあります。すべてのエージェントが稼働しているかどうかチェックしてください。

HADB を再起動できない

説明

二重ノード障害が起きると、HADB 再起動は機能しません。HADB を再起動するには、付加的な回復アクションが必要です。

二重ノード障害の主な症状は、次のとおりです。

この問題は、停電後などにミラー HADB ホストマシンで障害が発生したりリブートが行われたりした場合、単一マシンインストールで HADB を先に停止することなくマシンがリブートされる場合、または両方のデータ冗長ユニット (DRU) からミラーマシンのペアがリブートされる場合に発生します。

HADB は、このような「二重障害」の状況から自動的に自己回復できません。ペアーノード上に存在したデータの一部が失われるからです。このような場合、hadbm start コマンドは失敗し、hadbm status コマンドにより HADB が作動不能状態であることが示されます。

DRU と HADB の詳細な説明については、『管理ガイド』の「Administering the High Availability Database」、および『配備計画ガイド』を参照してください。


ヒント –

HADB が異常な動作 (たとえば、定常的にタイムアウトする) を示している場合、再起動でその問題が解決するかどうかを調べるには、hadbm restart コマンドを使用します。

この方法で HADB が再起動するなら、HADB のサービスを引き続き利用できます。これとは異なり、HADB の起動と停止を hadbm stop および hadbm start を使用して別個の操作で行う場合は、HADB の停止中は HADB サービスを利用できません。


解決法

ノードの状態が Starting か Recovering を示すことを確認してから、データベースをリセットします。『管理ガイド』の「Administering the High Availability Database」の章にある「Recovering from Session Data Corruption」の手順に従います。