アプリケーションに接続できない

モニター対象のアプリケーションが接続ダイアログ・リストに表示されない場合は、ここに示す考えられる解決策を検討してください。

アプリケーションをモニターするには、そのアプリケーションが稼働するランタイム環境に Health Center エージェントがインストールされている必要があります。エージェントのインストールの説明を参照してください。

Health Center エージェントが正しくインストールされているか

Health Center エージェントのインストール済み環境を検査してください。 詳しくは、Health Center のインストールを参照してください。

アプリケーションでモニターが有効になっているか

アプリケーションがモニター可能になっていることを確認します。詳しくは、Health Center エージェントの開始を参照してください。

Java アプリケーションに接続できない場合は、ご使用の Java のバージョンに対応した適切な引数を指定してアプリケーションが起動されたか確認してください。Java SDK のさまざまなバージョンでの Health Center の使用について詳しくは、プラットフォーム要件を参照してください。

エージェントおよびアプリケーションが実行されているかを確認する

アプリケーションが開始されているかどうかを確認します。 アプリケーションでエージェントが実行されているかどうかを確認します。 エージェントが正常に開始された場合は、アプリケーション・コンソールに次のようなメッセージが通常は表示されます。
  • Java アプリケーションの場合: 情報: Health Center エージェントがポート 1972 で開始しました。
  • Node.js アプリケーションの場合: [Thu Oct 30 10:52:29 2014] com.ibm.diagnostics.healthcenter.node INFO: Health Center 3.0.0.20141030
また、ポート番号は、ユーザー一時ディレクトリー内の healthcenter.<pid>.log ファイル に書き込まれます。<pid> は、そのポートを listen している エージェントのプロセス ID です。

アプリケーションが引き続き実行されていることを確認します。 アプリケーションは、予想よりも早く終了する場合があります。

モニター対象のランタイム環境は実行されているが、ライブ・アプリケーション・スレッドがなくなった場合にも、接続の問題が発生する可能性があります。

MQTT ブローカーが実行されていて、Health Center がブローカーに接続するように構成されていることを確認してください

MQTT 接続を使用している場合は、MQTT ブローカーが実行されていることを確認してください。 ブローカーが実行されていない、または検出できない場合は、host_name 上のポート port_number でブローカーが検出されませんでした (No broker was detected on host_name on port port_number)」というメッセージが接続ウィザードに表示されます。ブローカーが接続されていてもエージェントが検出されなかった場合は、接続ウィザードの「エージェントの検索 (Search for an Agent)」ページで、エージェントのリストが通常は表示される領域がブランクになります。

ブローカーが実行されているにもかかわらず検出できない場合は、接続ウィザードで指定した MQTT ホスト名およびポートが、MQTT ブローカーのホスト名およびポートと一致していることを確認してください。これらの値が設定される場所については、ご使用のブローカーの資料を参照してください。

ブローカーが検出されたにもかかわらずエージェントがリストされない場合は、次の項目を確認してください。
  • 正しい Health Center エージェント構成プロパティー・ファイルがロードされていることを確認します。Health Center エージェントの構成で説明するように、このファイルの複数のバージョンがさまざまな場所に格納されていることがあります。 IBM_HC_NODE_EARLY_LOGGING 環境変数 (任意の値に設定) を使用して、プロパティー・ファイルのロードの試行状況を示すメッセージを stderr ストリームに出力できます。また、ファイルに正しいアクセス許可が付与されていることを確認してください。
  • プロパティー・ファイルの内容を確認します。例えば、com.ibm.diagnostics.healthcenter.mqtt.broker.host プロパティーおよび com.ibm.diagnostics.healthcenter.mqtt.broker.port プロパティーが、MQTT ブローカーのホスト名およびポートと一致していることを確認し、com.ibm.diagnostics.healthcenter.mqtt プロパティーが on に設定されていることを確認します。プロパティーについて詳しくは、Health Center の構成プロパティーを参照してください。
ブローカーが実行され、エージェントがブローカーに正常に接続した場合は、エージェントから次のようなメッセージが出力されます。
com.ibm.diagnostics.healthcenter.mqtt INFO: Connected to broker localhost:1883
メッセージが表示されない場合は、構成プロパティー・ファイル内の com.ibm.diagnostics.healthcenter.logging.level プロパティーの値を確認してください。詳しくは、Health Center の構成プロパティーを参照してください。

中断されたアプリケーションがないかを確認する

モニター対象のランタイム環境が中断された場合は、接続ダイアログがモニター対象 VM に接続できず、タイムアウトになる可能性があります。

ファイアウォールを確認する

モニター対象アプリケーションがクライアントと同じワークステーション上にない場合、クライアントはモニター対象アプリケーションにリモート・アクセスできなければなりません。 「リモート・ワークステーションがファイアウォールによって保護されている場合は、Health Center エージェントが接続を listen できるように、ファイアウォールのポートが開いている必要があります。

Java アプリケーションの場合のみ、Health Center がトランスポート・プロトコルとして iiop を使用するように設定されている場合 (デフォルト) は、オブジェクト・リクエスト・ブローカー (ORB) で使用するために、ファイアウォールの 2 番目のポートも開く必要があります。このポートを指定するには、IIOP ポート・システム・プロパティーを使用します。 詳しくは、Health Center の構成プロパティーを参照してください。

ファイアウォールが原因で、JMX 接続オプションを選択した場合に、Health Center がリモート・マシン上のエージェントをスキャンするときにタイムアウトになる可能性もあります。 この場合は、Health Center の正確なポートを指定して、「次のポートで使用可能なポートがあるかどうかスキャンします (Scan next ports for available ports)」オプションをクリアします。

ネットワーク・インターフェースの確認

モニター対象アプリケーションを実行しているシステムにネットワーク・インターフェースが複数ある場合、 エージェントは、クライアントが使用するインターフェースとは異なるインターフェースで listen することができます。 エージェントが listen するインターフェースを設定するには、 システム・プロパティーを使用します。特定のネットワーク・インターフェースを使用するには、 次のプロパティーを指定してサーバーを実行します。
-Djava.rmi.server.hostname=<preferred_ip_address>
<preferred_ip_address> によって エージェントが使用するインターフェースが決定します。

認証の確認

モニター対象アプリケーションで認証が有効になっている場合は、接続ウィザードの最初のページでセキュリティー資格情報を入力したことを確認してください。 これらの資格情報がない場合、接続ウィザードの 2 番目のページでアプリケーション・リストにモニター対象アプリケーションが表示されないことがあります。

MQTT ブローカーを使用している場合は、ブローカーのユーザー名とパスワードを指定する Health Center のプロパティーが、ブローカーの資格情報と一致するように設定されていることを確認してください。詳しくは、Health Center の保護を参照してください。

アプリケーション・スレッドが実行されているかを確認する

すべてのアプリケーション・スレッドが終了したことを検出すると、Health Center エージェントはシャットダウンします。 場合によっては、Health Center をシャットダウンさせたくないこともあります。 例えば、外部 RMI レジストリーにオブジェクトをエクスポートする Java アプリケーションが RMI 接続を許可するために活動状態を保持しているが、アクティブなアプリケーション・スレッドがない場合などです。 Health Center エージェントは、アプリケーション・スレッドが見つからないため、終了します。

Java アプリケーションの場合のみ: Health Center エージェントが常に実行されるようにするには、以下のように、Health Center の起動パラメーターに keepAlive オプションを追加します。
-agentlib:healthcenter=keepAlive
注: keepAlive オプションの副次作用は、モニター対象の JVM が終了しないことです。


© Copyright IBM Corporation 2007, 2015.
© Copyright 1997, 2015, Oracle and/or its affiliates.