On this page:

このセクションでは、Java エージェントと JCo プラグインを使用して SAP Java アプリケーションをモニターする際の最も一般的な問題のトラブルシューティング手順について説明します。

このセクションの説明に従ってすべてのチェックを実行しても問題が解決しない場合は、Java エージェントのデバッグモードを開始し、すべてのログをサポートチケットに添付します。


Java エージェントと JCo プラグインの互換性の問題

Java から ABAP への RFC コールが相関しない

JCo プラグインと Java エージェントの互換性を確認します。

  • Java エージェントバージョン 4.5.5 〜 4.5.8 は、JCo プラグインで使用される sapjco.jar ライブラリをサポートしません。
  • バージョン 4.5.4 以前には互換性の問題はありません。この問題は 4.5.9 で修正されています。

Java から ABAP への RFC コールが検出されない

ビジネストランザクション検出が Java エージェントに対して設定されているかどうかを確認します。

  • RFC コールは、ビジネストランザクション中に exit コールとしてのみ検出されます。
  • JCo クラスが呼び出される場合、ビジネス トランザクション スナップショットのコールグラフを確認します。
  • コールグラフに JCo クラスがない場合、RFC コールはビジネストランザクション内で実行されません。


JCo プラグインがロードされている場合の Java エージェントログの確認

ログファイル Agent.<timestamp>.<num>.log を確認します。

[AD Thread Pool-Global898] 26 Mar 2019 09:53:26,700  WARN SDKJarValidator - *** WARNING *** Loading potentially unsigned SDK extension jar F:\AppDynamics\ver4.4.3.23530\sdk-plugins\SAP_JCO_iSDK.jar

[AD Thread Pool-Global898] 26 Mar 2019 09:53:27,023  INFO InstrumentationSdkPluginRuleApplier - Applying rules: SDK Rules for class F:\AppDynamics\ver4.4.3.23530\sdk-plugins\SAP_JCO_iSDK.jar

JCo クラスがインストゥルメント化されているかどうかの確認


次のログファイルを確認します。ByteCodeTransformer.<timestamp>.<num>.log:

[Service Runner [dsr]] 10 Mar 2019 00:23:49,704  INFO - Matching class name com/sap/mw/jco/JCO$Client [ClassLoader]com.sap.engine.boot.loader.ResourceMultiParentClassLoader[hashcode]583765599 : Class match found.

[Service Runner [dsr]] 10 Mar 2019 00:23:49,710  INFO - Matching method execute ((Lcom/sap/mw/jco/JCO$Function;)V)

[Service Runner [dsr]] 10 Mar 2019 00:23:49,710  INFO - Applying method interceptor instrumentation.sdk.Generic at com/sap/mw/jco/JCO$Client.execute ((Lcom/sap/mw/jco/JCO$Function;)V) id:147

インストゥルメント化されたクラスの数が上限に達しているかどうかの確認

次のログファイルを確認します。ByteCodeTransformer.<timestamp>.<num>.log

ログで「maximum 50 transformations exceeded for package prefix com.sap」を検索します。

Solution:

インストゥルメント化されたクラスの制限を増やします。次の Java エージェントパラメータを調整します。

  • ノードプロパティ:max-async-transformed-classes
  • 値:(デフォルトは 100)500 に増やす
  • ノードプロパティ:max-async-transformed-classes-by-package
  • 値:500 に増やす

接続プールの枯渇の確認

JCo プラグインが原因で次の例外が発生します。com.sap.conn.jco.JCoException: (106) JCO_ERROR_RESOURCE: Connection pool <connection pool name> is exhausted. The current pool size peak limit is 20 connections

Solution:

SAP Java スタック設定で [ Max Pool Size ] と [ Max Connections] を増やします。元の値の少なくとも 2 倍にすることをお勧めします。

パラレルステートレスコールの確認

JCo プラグインは、パラレルステートレス RFC コールをサポートしていません。  

ログファイル Agent.<timestamp>.<num>.log を確認します。

[Thread-799] 15 Oct 2019 10:27:19,500 ERROR JCo3Interceptor - [4.5.1908.9] ERROR correlation of stateless parallel RFC is not supported (RFC FM: <Function module name>). Please add a new rule to file: /opt/appdynamics/appServerAgent/ver4.5.1.23676/sdk-plugins/jco-rules.xml, to disable the correlation] をクリックします。

com.sap.conn.jco.JCoRuntimeException: The context with the session id [...] scope type [null] is currently used in thread Thread-799 [0x190e].Current thread is Thread-801 [0x1910].

Solution:

Java から ABAP への RFC コールが相関しない

RFC コールが表示されているが、ABAP バックエンドと相関していない場合。

Solution:

  • ABAP バックエンドに ABAP エージェントがインストールおよび設定されているかどうかを確認します。
  • RFC 宛先で使用される SAP ユーザーに ABAP バックエンドで割り当てられた権限ロール /DVD/APPD_JAVA があるかどうかを確認します。「SAP 認証」を参照してください。
  • 関連するエラーメッセージが Java エージェントログに書き込まれます。

複数の JVM を使用する SAP AS Java でのノード名の問題

SAP AS Java(PO、ポータルなど)は、拡張環境で複数の JVM を使用できます。追加のパラメータがない場合、結果として Java エージェントは単一のノード名を求めて競合します。

Solution: 次の JVM パラメータを Java エージェントの起動パラメータリストに追加します。-Dappdynamics.agent.nodeName=$SAPINFO

Java エージェントが Wily と競合

SAP AS Java(PO、ポータルなど)は、Wily Introscope を実装して実行できます。Java エージェントを起動するには、追加のパラメータと設定が必要です。

Solution:

  • Java エージェントの起動パラメータリストには、次の JVM パラメータを使用します。
    • -Dallow.unsigned.sdk.extension.jars=true

    • -Dorg.osgi.framework.bootdelegation=com.singularity

    • -Dappdynamics.bciengine.should.implement.new.interfaces=false

  • Java エージェントの app-agent-conf ファイルに次のルールを追加します。

    <custom-exclude filter-type="STARTSWITH" filter-value="com/sap/engine/core/cluster/impl6/p2pnio/P2PConnectorImpl"/>
    <custom-exclude filter-type="STARTSWITH" filter-value="com.sap.engine.core.cluster.impl6.p2pnio.P2PConnectorImpl"/>
    <custom-exclude filter-type="STARTSWITH" filter-value="com/wily/*"/>
    <custom-exclude filter-type="STARTSWITH" filter-value="com.wily.*"/>
    CODE