アプリケーション開始後の Health Center エージェントの開始 (Java アプリケーションのみ)

モニターする Java™ アプリケーションと同時にエージェントを開始しなかった場合は、後でエージェントを開始して、アプリケーションを実行している JVM に接続できます。このタスクを完了するには、エージェントに含まれているプログラムを使用します。 このプログラムは、Java Attach API をベースにしています。

始める前に

アプリケーションを実行しているランタイム環境に、Health Center エージェントがすでにインストールされている必要があります。詳しくは、Health Center のインストールを参照してください。すでに実行中の JVM に対してエージェントをインストールまたはアップデートすることは可能ですが、その場合、その JVM でまだエージェントを開始していないことが条件となります。

変更の始まりこのオプションは、ご使用のアプリケーションが IBM Bluemix で実行されている場合は使用できません。変更の終わり

このタスクについて

Java アプリケーションと同時に Health Center エージェントを開始する場合は、エージェントとアプリケーションは同一の JVM で実行する必要があります。すでに実行中の JVM にエージェントを接続するには、エージェント接続プログラムを使用しますが、このプログラムは異なる JVM で実行されます。 モニター対象のアプリケーションを実行している JVM は、ターゲット JVM と呼ばれます。
注:
  • Java Attach API は、ローカル・マシン上で実行されているターゲット JVM に対してのみ使用できます。 従ってこのタスクを実行するには、モニター対象のアプリケーションを実行しているマシンと同じマシンを使用する必要があります。 エージェント開始後は、ネットワーク経由で接続される別のマシン上の Health Center クライアントを使用して、アプリケーションをリモート側でモニターすることができます。
  • Attach API の実装における、セキュリティー上の制限およびその他の制約が適用されます。 ご使用の JVM およびプラットフォームの関連資料を参照してください。 例えば、IBM Knowledge Center 内の IBM SDK Java Technology Edition 製品資料に記載されている Java Attach API のサポートに関する記述、またはサポート記事「Security considerations for the Java Attach API function」などを参照してください。特に、z/OS® オペレーティング・システムでは、デフォルトの z/OS OMVS セグメントを使用するプロセスは、セキュリティー上の理由から Attach API を有効にできないことに注意してください。

手順

  1. ターゲット JVM で Java Attach API が有効になっており、ユーザーが正しい権限を持っていることを確認してください。 詳しくは、ご使用のプラットフォームおよび JVM の資料を参照してください。
  2. ターゲット JVM と同一マシン上のコマンド行で、以下のコマンドを入力してください。
    java -jar path/healthcenter.jar [ID(:|=)target_JVM_ID] [data_provider_properties] [configuration_properties]
    • pathhealthcenter.jar アーカイブ・ファイルへのパスです。 healthcenter.jar ファイルは通常、Health Center エージェントを実行する JRE の jre/lib/ext ディレクトリーにあります。詳しくは、Health Center のインストールを参照してください。
    • デフォルトでは、JVM_ID は実行中の JVM のプロセス ID です。 このデフォルト値は、JVM 開始時に com.ibm.tools.attach.id システム・プロパティーを使用してオーバーライドすることができます。 詳しくは、その JVM の Java Attach API の資料を参照してください。 引数 ID を指定し、コマンドの実行が成功した場合、エージェントは指定された JVM で開始され、タスクは完了します。 引数 ID を使用しない場合、プログラムは実行中の JVM のリストを生成します。ユーザーはそのリストから JVM を選択できます。
    • data_provider_properties は、使用不可にするデータ・プロバイダーを指定します。 デフォルトでは、すべてのデータ・プロバイダーは有効で、Health Center は使用可能なデータすべてを収集します。 すべてのデータが必要ではない場合、必要なデータのみ収集することで、格納されるデータ・ファイルのサイズを縮小することができます。 複数のプロパティーを指定できます。 各プロパティーの形式は -Dproperty_name=(on|off) です。 以下のプロパティーはサポートされます。
      • com.ibm.diagnostics.healthcenter.data.classes
      • com.ibm.diagnostics.healthcenter.data.cpu
      • com.ibm.diagnostics.healthcenter.data.gc
      • com.ibm.diagnostics.healthcenter.data.io
      • com.ibm.diagnostics.healthcenter.data.jit
      • com.ibm.diagnostics.healthcenter.data.memory
      • com.ibm.diagnostics.healthcenter.data.profiling
      • com.ibm.diagnostics.healthcenter.data.threads
      例えば、-Dcom.ibm.diagnostics.healthcenter.data.threads=off はスレッド・データの収集を無効にします。
    • configuration_properties は、ユーザーが使用できる Health Center の構成オプションを指定します。 詳しくは、Health Center エージェントの構成を参照してください。 プロパティーの指定には、パラメーターまたはシステム・プロパティー・フォーマットのいずれか、またはその両方を使用できます。 プロパティーは、いくつでも指定できます。 例:
      java -jar healthcenter.jar -Dcom.ibm.java.diagnostics.healthcenter.agent.port=1999
      java -jar healthcenter.jar ID:46375 port=1999
      java -jar healthcenter.jar level=headless,port=1999 -Dcom.ibm.java.diagnostics.healthcenter.headless.run.pause.duration=5 -Dcom.ibm.java.diagnostics.healthcenter.headless.run.number.of.runs=10 -Dcom.ibm.java.diagnostics.healthcenter.headless.run.duration=2
      注:
      • -D オプションは、接続プログラムに対するパラメーターとして使用されているため、healthcenter.jar パラメーターよりも後に指定する必要があります。
      • Health Center のクライアントとエージェントの間にファイアウォールがあり、かつ Health Center のトランスポート・プロトコルが iiop (デフォルト) に設定されている場合は、IIOP ポート番号プロパティーを指定します。このプロパティーは、Health Center エージェントを実行しているマシン上のオブジェクト・リクエスト・ブローカー (ORB) によって使用されるポートを設定します。このポートは、メイン Health Center ポートとは異なります。次に、ファイアウォールで両方のポートを開き、Health Center エージェントがクライアントと通信できるようにする必要があります。
  3. コマンドによって JVM のリストが生成されたら、エージェントを開始する JVM の番号を入力します。 以下のテキストは、生成されるリストの例を示しています。
    Running Virtual Machines:
    
    1:
    org.eclipse.hyades.execution.remote.NodeImpl 1423070418: ID=10696
    
    2:
    HCTest.jar: ID=11940
    
    3:
    C:¥Program Files¥Eclipse¥v37¥eclipse¥¥plugins/org.eclipse.equinox.launcher_1.2.0
    .v20110502.jar -os win32 -ws win32 -arch x86_64 -showsplash -launcher C:¥Program
     Files¥Eclipse¥v37¥eclipse¥eclipse.exe -name Eclipse --launcher.library C:¥Progr
    am Files¥Eclipse¥v37¥eclipse¥¥plugins/org.eclipse.equinox.launcher.win32.win32.x
    86_64_1.1.100.v20110502¥eclipse_1406.dll -startup C:¥Program Files¥Eclipse¥v37¥e
    clipse¥¥plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.over
    rideVmargs -exitdata 218c_98 -vm C:¥Windows¥system32¥javaw.exe -vmargs -Xms40m -
    Xmx384m -jar C:¥Program Files¥Eclipse¥v37¥eclipse¥¥plugins/org.eclipse.equinox.l
    auncher_1.2.0.v20110502.jar: ID=12184
    
    4:
    healthcenter.jar: ID=292
    
    Please select the VM (enter number between 1 and 4) in which to enable the Health Center agent, or blank line to exit.
    注: この実行中の JVM のリストには、エージェント接続プログラムを実行している JVM も表示されます。 例えば、前掲の出力例の VM 番号 4 がそうです。 Health Center エージェントをこの JVM に接続することはできますが、エージェントは接続に成功した後、すぐに終了します。

タスクの結果

エージェントが正常に開始され、JVM に接続されると、完了メッセージが表示されます。 このメッセージには、ターゲット JVM にある Health Center ポート番号と、クライアント・コレクション・レベル・システム・プロパティーが示されます。 例:
Successfully enabled Health Center agent in VM: HCTest.jar
Health Center properties used by agent in target VM:
com.ibm.java.diagnostics.healthcenter.agent.port=1972
com.ibm.java.diagnostics.healthcenter.data.collection.level=full

エージェントが JVM への接続に失敗した場合は、コマンド・コンソールに表示されたエラー・メッセージ、アプリケーションに接続できないのトピック、およびご使用のプラットフォームおよび JVM のバージョンの Java Attach API に関する資料の Attach API に関する問題の記述を使用して、問題の診断を行ってください。

次のタスク

エージェントが使用しているポート番号は、完了メッセージで com.ibm.java.diagnostics.healthcenter.agent.port システム・プロパティーの値として表示されます。 Health Center クライアントまたは API を使用して、そのポート番号でアプリケーションに接続し、アプリケーションをモニターできるようになりました。詳しくは、Health Center クライアントを使用したアプリケーションへの接続、または Health Center API の使用を参照してください。ヘッドレス・モードを指定した場合、ポート番号は使用されず、エージェントは収集したデータをファイルに保存します。 詳しくは、稼働中のアプリケーションのモニターおよび Health Center エージェントの構成を参照してください。



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