Sun GlassFish Enterprise Server 2.1 リリースノート

高可用性

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

ロードバランサプラグインの健全性検査により、バックグラウンド (負荷) で多数の接続と切断が生成される (6453946)

説明

ロードバランサプラグインの健全性検査により、バックグラウンド (負荷) で多数の接続と切断が生成されます。健全性検査の目的で、runDaemonMonitor スレッドが Application Server のリスナーごとに接続と切断を実行します。これにより、Enterprise Server で接続が飽和する場合があります。

解決方法

新しい属性の monitor-interval-in-seconds を、loadbalancer.xml ファイルで使用できます。この属性を使用すると、ロードバランサプラグインに多数のリスナーが設定されている状況で、接続と切断のイベントの間に一時停止を挿入できます。一時停止のデフォルト値は 0 です。

ダブルネットワークでの HADB 設定 (ID なし)

2 つのサブネット上にダブルネットワークで設定された HADB は、Solaris SPARC 上では正常に動作します。しかし、一部のハードウェアプラットフォームでのオペレーティングシステムまたはネットワークドライバの問題が原因で、Solaris x86 および Linux プラットフォームではダブルネットワークを適切に処理できない場合があります。これにより、HADB について次の問題が発生します。

HADB データベースの作成が失敗する (ID なし)

説明

新しいデータベースを作成すると、使用可能な共有メモリーセグメントが少なすぎるという、次のエラーで失敗することがあります。

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 倍以上になっていることを確認します。

リソース (ディスクおよびメモリースペース) が利用可能かどうかを hadbm set がチェックしない (5091280)

説明

hadbm set を使用してデバイスまたはバッファーのサイズを増やす場合、管理システムは、データベースの作成やノードの追加の際にはリソースが利用可能かどうかをチェックしますが、デバイスまたはメインメモリーのバッファーサイズを変更するときには利用可能なリソースが十分にあるかどうかをチェックしません。

解決方法

設定属性 devicesize または buffersize を増やす前に、すべてのホスト上にディスクおよびメモリーの空きスペースが十分にあることを確認してください。

packagepath の混在パスがサポートされない (5091349)

説明

同一のソフトウェアパッケージを、同じ名前で別のホストの別の位置で登録することはできません。次に例を示します。


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) は、すべての参加ホストについて同一にしてください。

hadbm createdomain が失敗することがある (6173886、6253132)

説明

複数のネットワークインタフェースを備えたホスト上で管理エージェントを実行している場合に、すべてのネットワークインタフェースが同じサブネット上に存在しないと、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.interfacesma.server.mainternal.interfaces=10.11.100.0 に設定します。あるいは、サブネット間のルーターを、マルチキャストパケットをルーティングするように設定することもできます。このとき、管理エージェントはマルチキャストアドレス 228.8.8.8 を使用します。

管理エージェントの新しい設定を再試行する前に、管理エージェントリポジトリのクリーンアップが必要になる場合があります。ドメイン内のすべてのエージェントを停止し、管理エージェント設定ファイル中の repository.dr.path で指定したリポジトリディレクトリにある、すべてのファイルとディレクトリを削除します。この操作は、新しい設定ファイルを使用してエージェントを再起動する前に、すべてのホスト上で実行する必要があります。

HADB の起動、停止、および再設定が失敗またはハングアップすることがある (ID 6230792、6230415)

説明

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

ノードのすべてのデバイスが再初期化されるわけではないことに注意してください。再初期化する前に、ノードの停止が必要になる場合があります。

管理エージェントが、例外「IPV6_MULTICAST_IF failed」で終了する (6232140)

説明

複数の NIC カードが実装された、Solaris 8 を実行しているホスト上で起動されている場合、IPv6 と IPv4 が有効になったカードが混在していると、管理エージェントが例外「IPV6_MULTICAST_IF failed」で終了することがあります。

解決方法

環境変数 JAVA_OPTIONS-Djava.net.preferIPv4Stack=true に設定します。次に例を示します。


export JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"

あるいは、この問題が発生しない Solaris 9 以降を使用します。

clu_trans_srv を中断できない (6249685)

説明

64 ビットバージョンの Red Hat Enterprise Linux 3.0 のバグにより、非同期 I/O の実行時に clu_trans_srv プロセスが中断できないモードになります。この場合、kill -9 が機能せず、オペレーティングシステムの再起動が必要になります。

解決方法

Red Hat Enterprise Linux 3.0 の 32 ビットバージョンを使用します。

hadbm が大文字を含むパスワードをサポートしていない (6262824)

説明

パスワードが hadb に格納されるときに、パスワード内の大文字は小文字に変換されます。

解決方法

大文字を含むパスワードは使用しないでください。

HADB Version 4.4.2.5 から HADB Version 4.4.1.7 にダウングレードすると、ma が各種のエラーコードで失敗する (6265419)

説明

以前の HADB バージョンにダウングレードすると、管理エージェントが各種のエラーコードで失敗する場合があります。

解決方法

HADB データベースのダウングレードは可能ですが、リポジトリオブジェクトが変更されている場合は管理エージェントをダウングレードできません。ダウングレードのあとも、最新の HADB バージョンの管理エージェントを使用し続ける必要があります。

インストールまたは削除を行なっても、シンボリックリンクが保持される (6271063)

説明

HADB c パッケージ (Solaris: SUNWhadbc、Linux: sun-hadb-c) バージョン <m.n.u-p> のインストールまたは削除に関しては、symlink /opt/SUNWhadb/<m> はいったん作成されると、そのあとは何も手を加えられません。そのため、切り離された symlink が存在することがあり得ます。

解決方法

使用中の場合を除き、インストールの前またはアンインストールの後に symlink を削除します。

大域ゾーンとローカルゾーンの管理エージェントが干渉することがある (6273681)

説明

Solaris 10 では、大域ゾーンで ma-initd スクリプトを使用して管理エージェントを停止すると、ローカルゾーンの管理エージェントも停止されます。

解決方法

管理エージェントを大域ゾーンとローカルゾーンの両方にインストールしないでください。

セッションオブジェクトがタイムアウトし、MA で削除されたとき、hadbm/ma はより適切なエラーメッセージを出力するべきである (6275103)

説明

場合によっては、サーバー上のリソース競合の問題によって管理クライアントが切断されることがあります。再接続時、「hadbm: Error 22184: A password is required to connect to the management agent」という紛らわしいエラーメッセージが返されることがあります。

解決方法

場合によっては、サーバー上のリソース競合の問題によって管理クライアントが切断されることがあります。再接続時、「hadbm: Error 22184: A password is required to connect to the management agent」という紛らわしいエラーメッセージが返されることがあります。

サーバー上にリソースに関する問題があるかどうかを確認し、適切な処置 (たとえば、リソースの追加) を取ってから、操作を再試行します。

ルート以外のユーザーが HADB を管理できない (6275319)

説明

Java Enterprise System を使用して (ルートとして) インストールすると、ルート以外のユーザーは HADB を管理できなくなります。

解決方法

HADB を管理するには、常にルートとしてログインします。

管理エージェントは特殊用途のインタフェースを使用するべきではない (6293912)

説明

0.0.0.0 のような IP アドレスを含む特殊用途のインタフェースを、管理エージェント内の HADB ノードが使用する有効なインタフェースとして登録するべきではありません。このようなインタフェースを登録すると、IP アドレスの代わりにホスト名を使用して hadbm create コマンドを発行するユーザーによってこのインタフェース上に HADB ノードが設定された場合に、問題が発生する場合があります。その場合、これらのノードは通信できなくなり、create コマンドはハングアップします。

解決方法

複数のインタフェースを備えたホスト上で hadbm create を使用する場合は、DDN 形式を使用して IP アドレスを常に明示的に指定します。

Windows 上で再構築が失敗する (6291562)

説明

Windows プラットフォームでは、特定の設定および負荷の下で、オペレーティングシステム内で多数の再構築の失敗が発生する場合があります。この問題は、20 を超えるノードが設定されている状況で、複数のテーブルスキャン (select *) を並列に実行している場合に発生しています。症状としては、トランザクションが頻繁に中止され、修復またはリカバリの完了に長い時間がかかるため、システムのさまざまな部分で頻繁なタイムアウトが発生していることが考えられます。

解決方法

この問題を修正するには、Windows レジストリ変数 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters をデフォルトの 100 より大きい値に設定します。この値を 0x1000 (4096) に増やすことをお勧めします。詳細は、Microsoft サポートページの記事 811003 を参照してください。

パスが / である別の cookie をブラウザが取ると、セッション状態が保持されない (6553415)

説明

cookie のパスが「/」と等価であった場合、持続タイプとしてインメモリーレプリケーションを使用する「/」以外のコンテキストルートに配備された高可用性 Web アプリケーションの cookie と干渉し、高可用性 Web アプリケーションが HTTP セッション状態をまったく保持できなくなります。この状況になる可能性のある 1 つの一般的なシナリオは、同じブラウザを使用して「/」に配備されている管理 GUI と高可用性 Web アプリケーションとの両方にアクセスしている場合です。

解決方法

別のブラウザから「/」に配備されている Web アプリケーションにアクセスします。

as-install/lib の下に SASL32.DLLZLIB.DLL がないため、ロードバランサが IIS 6 と連動しない (6572184)

説明

SASL32.DLL および ZLIB.DLL は、Windows IIS 6 でロードバランサを使用する際に必要です。これらのファイルが現在 as-install/lib にありません。

解決方法

2 つの DLL ファイルを手動で as-install/lib にコピーします。これらのファイルは次の場所からダウンロードできます。


http://download.java.net/javaee5/external/OS/aslb/jars/

OS は希望するプラットフォームを表し、次の値のいずれかになります。

大域ゾーンで DAS 作成/起動および HA パッケージ伝播に問題がある (6573511)

説明

大域ゾーンで Enterprise Server を高可用性パッケージとともにインストールまたはアンインストールすると、次の 2 つの問題が起きます。

  1. HA パッケージがすべてのゾーンにインストールされます。これは望ましくありません。

  2. アンインストール時に、HA、MQ、JDK パッケージがすべてのゾーンから削除されます。これも望ましくありません。

ルートローカルゾーンからインストールまたはアンインストールする場合には、この問題は起きません。

解決方法

グルーバルゾーンではなくローカルルートゾーンからインストールまたはアンインストールを実行します。

/」 に配備された高可用性 Web アプリケーションがインメモリーレプリケーションで複製された HTTP セッションを再開できない (Issue Tracker 2972)

説明

/」に配備された高可用性 Web アプリケーションは、持続タイプとしてインメモリーレプリケーションを使用している場合、HTTP セッションを保持できません。

解決方法

インメモリーレプリケーションを持続タイプとして使用する高可用性 Web アプリケーションを「/」以外のコンテキストルートに配備します。このような Web アプリケーションを「/」で利用できるようにするには、Web アプリケーションが配備されている仮想サーバーの default-web-module として指定します。

AS ロードバランサインストーラが /usr/lib/mps パスを apachectl LD_LIBRARY_PATH に書き込まないため、Apache SSL を起動できない (6591878)

説明

Solaris 上で Apache 用の Enterprise Server ロードバランサをインストール中に、インストーラは apachectl スクリプトの LD_LIBRARY_PATH を更新します。しかし、インストーラは /usr/lib/mps パスを正しく書き込みません。Solaris の場合、LD_LIBRARY_PATH にこのパスがないと、Apache セキュリティーインスタンスは開始しません。

解決方法

この問題は Solaris プラットフォームでのみ起きます。この問題を回避するために、LD_LIBRARY_PATH/opt/SUNWappserver/appserver/lib/lbplugin/lib を追加します。

インスタンスまたはクラスタの「ロードバランサの有効化/無効化」が正しい状態を示すようにする必要がある (6595113)

説明

domain.xml に保存されている内容にかかわりなく、「クラスタ/インスタンス」一般情報ページで「ロードバランスの有効化」ボタンが常にオンになっています。

解決方法

AS9.1 EE IFR b58f/JES5 UR1: 不完全な HA が検出されたため、レジストリサーバーをインストールできない(6602508)

説明

(Solaris のみ)」HADB 導入済みの SPARC Solaris 10 に Enterprise Server 2.1 をインストールしたあと、Enterprise Server を開始して JES 5 UR 1 をレジストリサーバーとともにインストールしようとすると、次のエラーを受け取ることがあります。


Dependency Error:  Installation can not proceed because the version of HA
Session Store 4.4.3 detected on this host is incomplete , and a compatible
version is required by Servervice Registry Deployment Support.

解決方法

Enterprise Server 2.1 IFR が Solaris マシンにインストールされた状態で、JES 5 UR1 からレジストリサーバーをインストールすることは不可能です。次の JES5 UR1 配布ディレクトリから、pkgadd コマンドを使用して、手動でレジストリサーバーパッケージをインストールする必要があります。


path/OS/Products/registry-svr/Packages

Internet Explorer 6.0/7.0 ブラウザ固有: ロードバランサ設定ファイルをエクスポートすると、エラーがスローされる (6516068)

説明

(Internet Explorer 6 および 7 のみ)」ロードバランサ設定ファイル (loadbalancer.xml) を Internet Explorer 6 または 7 からエクスポートしようとすると、sun-loadbalancer_1_2.dtd DTD ファイルが見つからないことを示すエラーメッセージがブラウザに表示されます。

解決方法

設定ファイルを保存するには、次の回避方法を使用します。

  1. Internet Explorer の「ロードバランサ」ページで、「エクスポート」をクリックします。

    「XML page cannot be displayed」メッセージが表示されます。

  2. エラーフレームをクリックしてから、Internet Explorer で「ファイル」->「名前を付けて保存」を選択します。

  3. loadbalancer.xml ファイルを選択したディレクトリに保存します。