Sun Java System Application Server Enterprise Edition 8.1 2005Q2 リリースノート

- Previous: マニュアル
- Next: インストール

# 高可用性

ここでは、高可用性データベース (HADB) に関する既知の問題とその解決方法を示します。

バグ ID | 概要
--- | ---
ID なし | ダブルネットワークでの HADB 設定。 2 つのサブネット上にダブルネットワークで設定された HADB は、Solaris SPARC 上では正常に動作します。しかし、一部のハードウェアプラットフォームでのオペレーティングシステムまたはネットワークドライバの問題が原因で、Solaris x86 および Linux プラットフォームではダブルネットワークを適切に処理できない場合があります。これにより、HADB について次の問題が発生します。 Linux では、メッセージ送信の際に HADB プロセスがブロックされることがある。これにより、HADB ノードが再起動し、ネットワークパーティションが発生する。 Solaris x86 では、ネットワーク障害が発生した場合、もう一方のネットワークインタフェースへの切り替えを妨げる問題が発生することがある。この問題は常に発生するとは限らないため、ネットワークが 1 つしかないよりも 2 つあった方が安全である。この問題は、Solaris 10 で部分的に解決されている。 トランキングがサポートされない。 Windows 2003 では、HADB はダブルネットワークをサポートしていない (ID 5103186)。
ID なし | HADB データベースの作成が失敗する。 新しいデータベースを作成すると、使用可能な共有メモリーセグメントが少なすぎるという、次のエラーで失敗することがあります。 `HADB-E-21054:``System resource is unavailable:``HADB-S-05512:``Attaching shared memory segment with key "xxxxx" failed, OS status=24 OS error message:``Too many open files.` 解決法 共有メモリーが設定されており、その設定が機能していることを確認します。特に、Solaris 8 では、`/etc/system` ファイルを調べて、変数 `shmsys:``shminfo_shmseg` の値がホストあたりのノード数の 6 倍以上になっていることを確認します。
5052548 | 共有メモリーセグメントがロックされ、ページアウトできません。 HADB 4.3-0.16 以降は、共有メモリーセグメントを作成してそれに接続するときに Intimate Shared Memory を使用するように設定されています (`SHM_SHARE_MMU` フラグを使用)。このフラグを使用すると、必然的に共有メモリーセグメントが物理メモリーにロックされ、ページアウトできなくなります。このため、ローエンドマシンへのインストールでは、問題が発生する可能性が高くなっています。 したがって、Application Server 7.0 EE の使用時に開発者のマシンで 512M バイトのメモリーと十分なスワップ空間が利用でき、その後 7.1 EE 以降をインストールした場合、デフォルトの `clsetup` クラスタを設定するときに問題が発生します。このクラスタでは 2 つの HADB ノードが作成されて、それぞれの `devicesize` は `512` になり、両方のノードに必要な共有メモリーをサポートするのに十分な物理 RAM がないことになります。 解決法 Application Server と HADB を共存させるときは、推奨されている容量のメモリーを使用するようにしてください。詳細については、「HADB の要件とサポートされているプラットフォーム」を参照してください。
5091280 | リソース (ディスクおよびメモリースペース) が利用可能かどうかを `hadbm set` がチェックしない。 `hadbm set` を使用してデバイスまたはバッファーのサイズを増やす場合、管理システムは、データベースの作成やノードの追加の際にはリソースが利用可能かどうかをチェックしますが、デバイスまたはメインメモリーのバッファーサイズを変更するときには利用可能なリソースが十分にあるかどうかをチェックしません。 解決法 設定属性 `devicesize` または `buffersize` を増やす前に、すべてのホスト上にディスクおよびメモリーの空きスペースが十分にあることを確認してください。
5091349 | `packagepath` の混在パスがサポートされない。 同一のソフトウェアパッケージを、同じ名前で別のホストの別の位置で登録することはできません。次に例を示します。
    hadbm registerpackage test --packagepath=/var/install1 --hosts europa11
    Package successfully registered.
    hadbm registerpackage test --packagepath=/var/install2 --hosts europa12
    hadbm:Error 22171: A software package has already been registered with
    the package name test.
解決法 HADB は、データベースクラスタ内のノードをまたがる混在パスをサポートしません。HADB サーバーのインストールディレクトリ (`---packagepath`) は、すべての参加ホストについて同一にしてください。
6173886、6253132 | `createdomain` が失敗することがある。 複数のネットワークインタフェースを備えたホスト上で管理エージェントを実行している場合に、すべてのネットワークインタフェースが同じサブネット上に存在しないと、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 を使用します。 管理エージェントの新しい設定を再試行する前に、管理エージェントリポジトリのクリーンアップが必要になる場合があります。ドメイン内のすべてのエージェントを停止し、リポジトリディレクトリ (管理エージェント設定ファイル内の `repository.``dr.path` で識別される) 内のすべてのファイルとディレクトリを削除します。この操作は、新しい設定ファイルを使用してエージェントを再起動する前に、すべてのホスト上で実行する必要があります。
6190878 | HADB インスタンスの削除後にディレクトリをクリーンアップする必要があります。 HADB インスタンスの削除に続いて `configure-ha-cluster` コマンドで新しいインスタンスを作成しようとすると、失敗します。問題は、元の HADB インスタンスの古いディレクトリが `ha_install_dir/rep/*` と `ha_install_dir/config/hadb/``instance_name` に残ることにあります。 解決法 HADB インスタンスの削除後に、手動でこれらのディレクトリを削除するようにしてください。
6230792、6230415 | HADB の起動、停止、および再設定が失敗またはハングアップすることがある。 Solaris 10 Opteron では、`hadbm` コマンドを使用して HADB を起動、停止、または再設定すると、次のいずれかのエラーで失敗またはハングアップする場合があります。
    hadbm:Error 22009: The command issued had no progress in the last
    300 seconds.
    HADB-E-21070: The operation did not complete within the time limit,
    but has not been cancelled and may complete at a later time.
このエラーは、`clu_noman_srv` プロセスが使用するファイル (`nomandevice`) への読み取り/書き込みに不整合があった場合に発生することがあります。この問題は、HADB 履歴ファイルで次のメッセージを検索することにより検出できます。
    n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733
    does not respond.
    n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Have not heard from it in
    104.537454 sec.
    n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733
    did not start.
解決法 問題を手動で再現できていないため、次の回避策はまだ検証されていません。ただし、影響を受けるノードに対してこのコマンドを実行すれば、問題は解決されます。
    hadbm restartnode --level=clear nodeno dbname
ノードのすべてのデバイスが再初期化されるわけではないことに注意してください。再初期化する前に、ノードの停止が必要になる場合があります。
6232140 | 管理エージェントが、例外「`IPV6_MULTICAST_IF failed`」で終了する。 複数の NIC カードが実装された、Solaris 8 を実行しているホスト上で起動されている場合、IPv6 と IPv4 が有効になったカードが混在していると、管理エージェントが例外「`IPV6_MULTICAST_IF failed`」で終了することがあります。`` 解決法 環境変数 `JAVA_OPTIONS` を `-Djava.net.preferIPv4Stack=true` に設定します。次に例を示します。
    export JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"
あるいは、この問題が発生しない Solaris 9 以降を使用します。
6249685 | `clu_trans_srv` を中断できない。 Red Hat Enterprise Linux 3.0 の 64 ビットバージョンには、非同期入出力の実行中に `clu_trans_srv` プロセスを中断不可能なモードに陥らせるバグが存在します。つまり、kill -9 が機能せず、オペレーティングシステムの再起動が必要になります。 解決法 Red Hat Enterprise Linux 3.0 の 32 ビットバージョンを使用します。
6262824 | `hadbm` が大文字を含むパスワードをサポートしていない。 パスワードが `hadb` に格納されるときに、パスワード内の大文字は小文字に変換されます。 解決法 大文字を含むパスワードは使用しないでください。
6265419 | HADB Version 4.4.2.5 から HADB Version 4.4.1.7 にダウングレードすると、ma が各種のエラーコードで失敗する。 以前の HADB バージョンにダウングレードすると、管理エージェントが各種のエラーコードで失敗する場合があります。 解決法 HADB データベースのダウングレードは可能ですが、リポジトリオブジェクトが変更されている場合は管理エージェントをダウングレードできません。ダウングレードのあとも、最新の HADB バージョンの管理エージェントを使用し続ける必要があります。
6271063 | インストールまたは削除を行なっても、`symlink` が保持される。 HADB c パッケージ (Solaris: `SUNWhadbc`、Linux: `sun-hadb-c`) バージョン <m.n.u-p> のインストールまたは削除に関しては、`symlink /opt/SUNWhadb/<m>` はいったん作成されると、その後は何も手を加えられません。そのため、切り離された `symlink` が存在することがあり得ます。 解決法 使用中の場合を除き、インストールの前またはアンインストールのあとに `symlink` を削除します。
6273681 | 大域ゾーンとローカルゾーンの管理エージェントが干渉することがある。 Solaris 10 では、大域ゾーンで ma-initd スクリプトを使用して管理エージェントを停止すると、ローカルゾーンの管理エージェントも停止されます。 解決法 管理エージェントを大域ゾーンとローカルゾーンの両方にインストールしないでください。
6275103 | セッションオブジェクトがタイムアウトし、MA で削除されたとき、`hadbm/ma` はより適切なエラーメッセージを出力するべきである。 場合によっては、サーバー上のリソース競合の問題によって管理クライアントが切断されることがあります。再接続時、「`hadbm:``Error 22184:``A password is required to connect to the management agent`」という紛らわしいエラーメッセージが返されることがあります。 解決法 サーバー上にリソースに関する問題があるかどうかを確認し、適切な処置 (たとえば、リソースの追加) を取ってから、操作を再試行します。
6275319 | ルート以外のユーザーが HADB を管理できない。 Java Enterprise System を使用して (ルートとして) インストールすると、ルート以外のユーザーは HADB を管理できなくなります。 解決法 HADB を管理するには、常にルートとしてログインします。
6293912 | 管理エージェントは特殊用途のインタフェースを使用するべきではない。 `0.0.0.0` のような IP アドレスを含む特殊用途のインタフェースを、管理エージェント内の HADB ノードが使用する有効なインタフェースとして登録するべきではありません。このようなインタフェースを登録すると、IP アドレスの代わりにホスト名を使用して `hadbm create` コマンドを発行するユーザーによってこのインタフェース上に HADB ノードが設定された場合に、問題が発生する場合があります。その場合、これらのノードは通信できなくなり、`create` コマンドはハングアップします。 解決法 複数のインタフェースを備えたホスト上で `hadbm create` を使用する場合は、DDN 形式を使用して IP アドレスを常に明示的に指定します。
6291562 | Windows 上で再構築が失敗する。 Windows プラットフォームでは、特定の設定および負荷の下で、オペレーティングシステム内で多数の再構築の失敗が発生する場合があります。この問題は、20 を超えるノードが設定されている状況で、複数のテーブルスキャン (`select *`) を並列に実行している場合に発生しています。症状としては、トランザクションが頻繁に中止され、修復またはリカバリの完了に長い時間がかかるため、システムのさまざまな部分で頻繁なタイムアウトが発生していることが考えられます。 解決法 この問題を修正するには、Windows レジストリ変数 `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters` をデフォルトの `100` より大きい値に設定します。この値を `0x1000` (`4096`) に増やすことをお勧めします。詳細は、Microsoft サポートページの記事 811003 を参照してください。
6303581、6346059、6307497 | `hadbm start` `<db_name>` を実行すると、入力したパ スワードの一部がマスクされずに表示されます。 マシンに負荷がかかっていると、マスキング機構が機能せず、入力したパスワードの一部の文字が表示されることがあります。これは軽度のセキュリティー上のリスクの原因となるので、パスワードは常にマスクすべきです。 解決法 パスワードを独自のパスワードファイルに入れて (通常 Application Server 8.1 以降推奨されている方法)、`--adminpassword` または `--dbpasswordfile` オプションでこれらのファイルを参照します。

- Previous: マニュアル
- Next: インストール

- © 2010, Oracle Corporation and/or its affiliates