実行中の JVM プロセスへの Java エージェントの添付

実行中の JVM にエージェントを添付すると、JVM を再起動せずに Java エージェントをインストールできます。このアプローチは通常、‑javaagent 引数を JVM の起動スクリプトに追加する時、もしくはその他の継続的なアプローチとあわせて使用され、次回の JVM 起動時にエージェントが再びロードされます。ただし、JVM の再起動ができない、または不便な場合は、動的に添付することでエージェントをインストールできます。

注: 一部のシナリオでは、単一のバックスラッシュの代わりに二重バックスラッシュを使用する必要があります。例:
-javaagent:C:\\appdynamics\\javaagent.jar

以下の場合に動的なエージェントの添付が可能です。

  • JVM は 1.6 以降。
  • JVM は Oracle(HotSpot)の JVM(IBM または JRockit の JVM の場合は不可)。

その他の考慮すべき事項

  • すでに(Splunk AppDynamics Java エージェントまたは別のタイプのエージェントのいずれかにより)インストゥルメント化されている環境に、エージェントを動的に添付しないでください。添付すると、予期せぬ問題やエラーが起こる可能性があります。
  • 実行中の環境に Splunk AppDynamics Java エージェントを添付すると、アプリケーションのインストゥルメント化に必要なクラスの再トランスフォーメーションをエージェントが実行しますが、アプリケーションのパフォーマンスに影響を与えます。エージェントのオーバーヘッドはプロセスを終了すると、通常のオペレーティングレベルに戻りますが、プロダクションサービスのパフォーマンスに影響を与える可能性があることを考慮してください。

JVM にエージェントを添付する

JVM にエージェントを添付する場合は、次の手順を実行します。
  1. 添付するJVMのプロセスIDを決定。
    • Linux の場合、以下を使用します。
      ps -A | grep java
    • Windows の場合、以下を使用します。
      jps -l
  2. 次のコマンドを実行し、JDK の tools.jar ファイルへのパス Splunk AppDynamics Java エージェント ホームディレクトリへのパス、および JVM プロセス識別子用のプレースホルダを、使用環境に適した値に置き換えます。
    java -Xbootclasspath/a:<path_to_jdk>/lib/tools.jar -jar /<agent_home>/javaagent.jar <jvm_process_id> appdynamics.controller.hostName=<controller_hostname>,appdynamics.controller.port=<controller_port_no>,appdynamics.controller.ssl.enabled=false,appdynamics.agent.applicationName=<app_name>,appdynamics.agent.tierName=<agent_tier_name>,appdynamics.agent.nodeName=<agent_node_name
    Windows の場合、ドライブレターなど同等のパスを使用します。以下に、システム出力を伴う例を示します。
    [appduser@my_centos6 ~]$ ps -A | grep java 6780 pts/1 00:00:04 java [appduser@my_centos6 ~]$ java -Xbootclasspath/a:/usr/java/jdk1.7.0_79/lib/tools.jar -jar /home/appduser/appagent/javaagent.jar 6780 Attaching to VM [6780] agent path >>>/home/appduser/appagent/javaagent.jar=