Download PDF
Download page Java エージェント JCo プラグインのトラブルシューティング.
Java エージェント JCo プラグインのトラブルシューティング
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:
- 具体的な <Function module name> を RFC ブラックリストに追加します(例:<exclude type="fm">FM_NAME</exclude>)。または、
- 次のように、ステートレス RFC コールの除外を true に設定します。<exclude type="stateless">true</exclude>
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