LifeKeeper は GUI クライアントとサーバの通信に Java RMI (Remote Method Invocation) を使用します。問題となりうる要素の一部は RMI に関連し、それ以外は一般的なネットワークの設定に関する問題です。

Windows プラットフォームでの論理接続の遅延

Sun FAQ から:

最も蓋然性が高いのは、ホストのネットワーク設定が誤りというものです。RMI は Java API ネットワーククラス、特に ava.net.InetAddress を使用します。これは、アドレスマッピングおよびホスト名へのアドレスに対して両方のホストに TCP/IP ホスト名のルックアップを実行させます。Windows では、ルックアップ機能はネイティブ Windows ソケットライブラリで実行されるので、遅延は RMI ではなく、Windows ライブラリで発生するものです。ホストが DNS を使用するように設定されている場合、これは、通信に関連するホストについて認識しないという DNS サーバの問題となる可能性があります。その場合、DNS ルックアップのタイムアウトが発生します。このケースに当てはまる場合は、ファイル \windows\system32\drivers\etc\hosts で関連ホスト名/アドレスをすべて指定してください。通常のホストファイルのフォーマットを次に示します。

IP アドレス サーバ 名称

例:

192.168.100.1 homer.example.com homer

これで、最初のルックアップにかかる時間を短縮できるはずです。

また、サブネットマスクとゲートウェイアドレスの設定が誤っていると、接続の遅延や障害を引き起こす可能性があります。これらの設定が正しいことをネットワーク管理者に確認してください。

モデムからの実行:

サーバが存在するネットワークにモデムで (PPP または SLIP を使用して) 接続する場合、コンピュータは一時的な IP 番号を操作用に取得します。この一時的な番号は、ホスト名がマップしたものではない可能性があります (ホスト名が何かにマップしている場合)。そのため、この場合は、IP のみで通信するようにサーバに指示する必要があります。これには、モデム接続ウィンドウを開いて一時的な IP 番号を取得します。この番号を使用して、GUI クライアントのホスト名プロパティを設定します。

プラグインでブラウザのホスト名を設定するには、 [Java Plug-In Control Panel] を開き、 [Java Run Time Parameters] に以下の値を追加してクライアントのホスト名を設定します。

-Djava.rmi.server.hostname=<MY_HOST>

HotJava ブラウザのホスト名を設定するには、hotjava コマンドラインに以下の値を追加します。

-Djava.rmi.server.hostname=<MY_HOST>

たとえば、以下のようになります。

-Djava.rmi.server.hostname=192.168.100.2

プライマリネットワークインターフェースのダウン:

LifeKeeper GUI は、GUI クライアントと GUI サーバの通信を維持するために Remote Method Invocation (RMI) を使用します。ほぼどのような場合でも、プライマリネットワーク・インターフェースを介してサーバへの接続が確立されます。つまり、サーバのプライマリイーサネットインターフェースがダウンした場合、接続は失われ、GUI クライアントに [Unknown] というサーバの状態が表示されます。

この問題の唯一の解決策は、サーバのプライマリイーサネットインターフェースを再び有効にすることです。また、RMI の制限のため、マルチホームサーバ (複数のネットワークインターフェースを備えたサーバ) でこの問題を解決することはできません。

ホストへのルートが存在しない例外:

ホストに接続できなかったため、ソケットをリモートホストに接続できませんでした。これは通常、ネットワークのローカルサーバとリモートホストの間のリンクの一部がダウンしたか、ホストがファイアウォールの後ろにあることを意味します。

不明なホストの例外:

LifeKeeper GUI クライアントとサーバは、通信に Java RMI (Remote Method Invocation) 技術を使用します。RMI が正常に動作するために、クライアントとサーバは解決可能なホスト名または IP アドレスを使用する必要があります。解決不可能な名前、WINS 名、修飾されていない DHCP 名を使用した場合、Java は UnknownHostException を送出します。

このエラーメッセージは、以下の条件でも発生する可能性があります。

  • サーバ名が存在しない場合。サーバ名の誤記がないか確認してください。
  • 設定された DHCP サーバが、RMI サーバが実際に存在するドメインではなく、リゾルバドメインのドメイン名になるように RMI サーバの完全修飾ドメイン名を設定している場合。この場合、サーバの DHCP ドメインの外側の RMI クライアントは、不正なドメイン名のためにサーバにアクセスできません。
  • サーバが、Windows Internet Naming Service (WINS) を使用するように設定されたネットワーク上にある場合。DNS にのみ依存しているホストは、WINS の下に登録されたホストにアクセスできない場合があります。
  • RMI クライアントとサーバがファイアウォールをはさんだ反対側にある場合。ファイアウォールの外側に RMI クライアント、内側にサーバがある場合、クライアントはサーバに対してリモート呼び出しを実行できません。

LifeKeeper GUI を使用している場合、クライアントによって提供されたホスト名はサーバから解決できるものであり、サーバからのホスト名はクライアントによって解決できるものである必要があります。LifeKeeper GUI はこの例外を捕捉し、ユーザに警告します。クライアントがサーバのホスト名を解決できない場合、この例外が捕捉され、メッセージ 115 が表示されます。サーバがクライアントのホスト名を解決できない場合、この例外が捕捉され、メッセージ 116 が表示されます。どちらのメッセージにも、実行が試された未修飾ホスト名を指定する Java 例外の一部が含まれています。

下記に、ホスト名の解決が正常に機能していることをテストまたは検証するために使用できる手順をいくつか示します。

Windows から:

  1. Linux サーバとの通信の確認

DOS プロンプトから、ホスト名を使用してターゲットを ping します。

ping <TARGET_NAME>

たとえば、以下のようになります。

ping homer

ターゲットの修飾されたホスト名と IP アドレスをリストする応答が表示されるはずです。

  1. 正しい設定の確認
    • DNS の設定を確認するか、ネットワークに DNS サーバをインストールします。
    • ControlPanel->Network->Protocols->TCP/IP の設定を確認します。これらの設定が正しいことをネットワーク管理者に確認してください。

[DNS] タブのホスト名は、ローカルネームサーバで使用されているものと一致している必要があります。これは、GUI エラーメッセージで指定したホスト名とも一致している必要があります。

  • ローカルホストおよびその接続先となる LifeKeeper サーバのエントリを含める形で hosts ファイルを編集してください。

Windows 95/98 システムでは、hosts ファイルは以下のようになります。

%windir%\HOSTS (for example, C:\WINDOWS\HOSTS).

注記: Windows 95/98 では、hosts ファイルの最後のエントリがキャリッジリターン (CR) またはラインフィード (LF) で終わっていない場合、hosts ファイルはまったく読み取られません。

Windows NT システムでは、hosts ファイルは以下のようになります。

%windir%\System32\DRIVERS\ETC\HOSTS
(for example, C:\WINNT\System32\DRIVERS\ETC\HOSTS).

たとえば、システムが HOSTCLIENT.EXAMPLE.COM と呼ばれ、IP アドレスとして 192.168.200.10 を使用している場合、hosts ファイルに次のエントリを追加します。

192.168.200.10 HOSTCLIENT.EXAMPLE.COM HOSTCLIENT

  1. GUI クライアントで使用するホスト名プロパティを設定してください。プラグインでブラウザからホスト名を設定するには、 [Java Plug-In Control Panel] を開き、 [Java Run Time Parameters] に以下の値を追加してクライアントのホスト名を設定します。

Djava.rmi.server.hostname=<MY_HOST>

  1. Microsoft のネットワーク関連のパッチを www.microsoft.com で確認してください。

Linux から:

  1. ホスト名または IP アドレスを使用して Linux からターゲットサーバを ping し、他のサーバとの通信を確認します。

ping <TARGET_NAME>

たとえば、以下のようになります。

ping homer

ターゲットの修飾されたホスト名をリストする応答が表示されるはずです。

  1. ホスト名または IP アドレスで ping を実行し、クラスタ内の各サーバで ローカルホスト が解決可能であることを確認します。DNS が実装されていない場合、 /etc/hosts ファイルを編集し、 ローカルホスト 名のエントリを追加します。このエントリで、ローカルサーバの IP アドレスまたはデフォルトエントリ (127.0.0.1) をリストできます。
  1. DNSNIS の前に指定されていることを確認します。 /etc/nsswitch.conf の hosts 行で DNSNIS の前に置く必要があります。また、 /etc/resolv.conf は正しく設定された DNS サーバを指す必要があります。
  1. DNS を実装しない場合、または他の方法がうまくいかない場合は、 /etc/hosts ファイルを編集し、ホスト名のエントリを追加します。
  1. GUI クライアントで使用するホスト名プロパティを設定してください。これは、管理者ごとに変更する必要があります。

プラグインでブラウザからホスト名を設定するには、 [Java Plug-In Control Panel] を開き、 [Java Run Time Parameters] に以下の値を追加してクライアントのホスト名を設定します。

-Djava.rmi.server.hostname=<MY_HOST>

HotJava ブラウザからホスト名を設定するには、hotjava コマンドラインに以下の値を追加します。

-Djava.rmi.server.hostname=<MY_HOST>

たとえば、以下のようになります。

-Djava.rmi.server.hostname=192.168.200.10

-Djava.rmi.server.hostname= homer.example.com

X Window Server に接続できない:

LifeKeeper GUI アプリケーションを telnet セッションから実行している場合、GUI クライアントが LifeKeeper サーバで X Window Server にアクセスできることを確認する必要があります。LifeKeeper サーバは GUI クライアントのホスト名またはネットワークアドレスを解決できる必要があります。

LifeKeeper サーバに対して telnet を実行して LifeKeeper GUI アプリケーションを実行した場合、 DISPLAY 環境変数にはクライアントのホスト名と表示番号を含める必要があります。たとえば、 Server1 というサーバに Client1 というクライアントから telnet を実行した場合、 DISPLAY 環境変数は Client1:0 に設定される必要があります。LifeKeeper GUI アプリケーションを実行した場合、 Client1DISPLAY 名に出力が送信されます。 Client1X Window Server にアクセスできない場合、例外が発生して LifeKeeper GUI アプリケーションは失敗します。

LifeKeeper GUI をアプリケーションとして起動したときに、 X Window Server に接続できない、またはクライアント DISPLAY 名を開くことができないというエラーが発生した場合は、以下の手順を実行してください。

  1. ホスト名または IP アドレスを使用して表示変数を設定します。たとえば、以下のようになります。

DISPLAY=Client1.somecompany.com:0

DISPLAY=172.17.5.74:0

  1. xhost または xauth コマンドを使用し、クライアントが LifeKeeper サーバで X Window Server に接続できることを確認します。
  1. クライアント用の DNS エントリを追加するか、クライアント用のエントリを LifeKeeper サーバのローカルホストファイルに追加します。LifeKeeper サーバからクライアントに対して、ホスト名または IP アドレスを使用して ping を実行し、クライアントとの通信を確認します。

フィードバック

フィードバックありがとうございました

このトピックへフィードバック

送信