Download PDF
Download page SAP JCo とのビジネストランザクション相関の有効化.
SAP JCo とのビジネストランザクション相関の有効化
このセクションでは、SAP JCo ライブラリを使用して SAP システムと通信する Java アプリケーションのビジネストランザクション相関を有効にする方法について説明します。
On this page:
SAP JCo を使用することにより、Java アプリケーションは SAP ABAP システムで RFC 対応の関数モジュールを呼び出すことができます。
- サポートされる JCo バージョン:SAPJCo2、SAPJco3
- サポートされる SAP Java リソースアダプタ(JRA)
- Java エージェントの最小バージョン:4.3.8.x
- Java エージェントバージョン 4.5.5 〜 4.5.8 との互換性に関する既知の問題、4.5.9 で修正済み
- Java エージェントバージョン 4.5.18 以降との互換性に関する既知の問題、JCo 拡張 20.5.0 以降で修正済み
JCo インストゥルメンテーション アーキテクチャ
現在のバージョンでは、JCo RFC コールのインストゥルメンテーションは Java エージェント拡張(SDK プラグイン)によって行われます。
次の図は、JCo インストゥルメンテーションのアーキテクチャの概要を示しています。
- Java アプリケーションは、SAP JCo ライブラリを使用して SAP NetWeaver システムの RFC 対応関数モジュールを呼び出します。
- Java エージェントは、JCo 拡張を使用して RFC exit コールを代行受信します。
- JCo 拡張は、ビジネストランザクションの続行を開始および停止できる相関情報を ABAP エージェントに送信します。
Java エージェントと JCo 拡張のインストール
Java エージェントのインストールの一般的な手順を使用し、次の手順に進み、Java から SAP システムへの RFC コールを確認します。
- 「Javaエージェントのインストール」に記載されている標準のインストール手順に従って、SAP コンポーネント内に Java エージェントをインストールします。
- 次の ABAP エージェント zip ファイルを解凍します。
APPD-SAP-<version>.zip.
APPD-SAP-<version>/AppServerAgent-JCo-plugin-<version>/
ディレクトリの内容を[JavaAgentPath]/ver4.3.x.x/sdk-plugins/
ディレクトリにコピーします。allow.unsigned.sdk.extension.jars=true
パラメータを使用して、Java 起動スクリプトで署名なしの拡張を有効にします。
SAP アプリケーションサーバを使用している場合は、次のツールを使用して Java エージェントをランタイムに追加することもできます。
- SAP NetWeaver Administrator
- AS Java Config Tool
Configuring AppDynamics Java Agent using SAP NetWeaver Administrator:
- SAP NetWeaver Application Server Java Web ポータルを開きます。
- [SAP NetWeaver Administrator >> Configuration >> Infrastructure >> Java System Properties >> Additional VM Parameters] をクリックします。
- 署名なしの SDK 拡張の VM パラメータ
-Dallow.unsigned.sdk.extension.jars=true
を追加します。 - VM パラメータ -Dappdynamics.bciengine.should.implement.new.interfaces=false を追加します。
- Java エージェントの VM パラメータ
javaagent:<agent_home>/javaagent.jar
を追加します。 - Save をクリックします。
- 署名なしの SDK 拡張の VM パラメータ
- SAP サーバを再起動します。
Configuring AppDynamics Java Agent using AS Java Config Tool:
- SAP NetWeaver Application Server Java Web ポータルを開きます。
- AS Java Config Tool でインスタンスを選択し、[VM Parameters >> Additional] をクリックします。
- 署名なしの SDK 拡張の VM パラメータ
-Dallow.unsigned.sdk.extension.jars=true
を追加します。 - VM パラメータ -Dappdynamics.bciengine.should.implement.new.interfaces=false を追加します。
- Java エージェントの VM パラメータ
javaagent:<agent_home>/javaagent.jar
を追加します。 - File, Apply Changes をクリックします。
- 署名なしの SDK 拡張の VM パラメータ
- SAP サーバを再起動します。
デバッグモードでのロギング
- コントローラに接続し、[Tiers & Nodes] に移動します。
- デバッグモードを有効にする必要がある目的の Java ノードを選択します。
- [Agents] を選択し、[Request Agent Log File] をクリックします。
- [Output from Specific logger, at a set level, for a fixed duration] を選択します。
- [Logger Name]:com.singularity
- [Logger Level]:Debug
- [Duration (minutes)]:10 以上
- [Request Agent Log Files] をクリックします。
- ステータスが成功になったら、[Download] をクリックします。
推奨
デバッグモードを開始し、サポートチケットにログを添付します。オーソリゼーション
次の SAP ユーザに承認権限 /DVD/APPD_USER を割り当てる必要があります。
- Java から RFC を呼び出す SAP ユーザ
- RFC 宛先で使用される SAP ユーザ
詳細については、AppDynamics の承認を参照してください。
JCo Server でのビジネストランザクションの開始
JCo Server コール中にビジネストランザクションを開始するには、次の Java エージェント POJO ルールを設定します。
JCo2 | JCo3 |
---|---|
Match Classes | Match Classes that implements an Interface which Equals com.sap.conn.jco.server.JCoServerFunctionHandler Method name Equals handleRequest |
JCo Server でのビジネストランザクションの続行
JCo Server でアップストリーム ビジネス トランザクションから続行できるようにするには、JCo Server を呼び出すシステムで ABAP コードを変更する必要があります。「カスタム ABAP コードのインストゥルメント化」を参照してください。
これが正しく機能するためには、JCo プラグインバージョン 4.5.2002 以降の最初のインストール後に Java システムを再起動する必要があります。
SAP PI / PO(7.4)AS Java
次の表に、サポートされている SAP PI / PO 7.4 のJava チャネルを示します。
PI/PO アダプタのタイプ | 方向(Direction) | 注 |
---|---|---|
RFC | 双方向 | インバウンド相関については、「カスタム ABAP コードのインストゥルメント化」を参照してください。 |
HTTP(HTTP_AAE) | 双方向 | |
SOAP | 双方向 | |
Web サービス(WS_AAE) | 双方向 | |
ファイル(File) | インバウンド(ファイルから PI、相関なし、BT エントリポイントのみ) | 次のカスタム POJO ルールで BT を開始します。 Match Classes |
JMS | 双方向 |
発信 SAP PI exit コールを表示するには、 Java エージェント自動検出または POJO ルールを使用して.、SAP PI 着信チャネルで BT を開始または続行する必要があります。
RFC ブラックリストとホワイトリスト
RFC ブラックリストおよび RFC ホワイトリスト機能を使用すると、Java エージェントから ABAP エージェントへの RFC exit コールを除外または含めることができます。ブラックリストまたはホワイトリストを使用するには、SAP_JCO_iSDK.jar と同じディレクトリに jco-rules.xml ファイルを追加します。
RFC ブラックリスト
追加の RFC コールが実行されない関数モジュール(FM)を指定します。つまり、Java エージェントからのビジネストランザクションは、ダウンストリームの ABAP エージェントでは続行されません(上位 5 つの ABAP または SQL ステートメントなどはありません)。
FM をブラックリストに追加するには、<exclude type="fm">FUNCTION_MODULE</exclude> を jco-rules.xml ファイルに追加します(FUNCTION_MODULE は実際の関数モジュール名またはパターンに置き換えます)。
ブラックリストが空の場合、FM は除外されません。
また、以下を追加(変更)すると、ステートレスコールの相関をグローバルに無効にできます。
<exclude type="stateless">true</exclude>
RFC ホワイトリスト
追加の RFC コールが実行される関数モジュール(FM)を指定します。つまり、Java エージェントからのビジネストランザクションは、ダウンストリームの ABAP エージェントで(通常どおり)続行されます。
FM をホワイトリストに追加するには、<include type="fm">FUNCTION_MODULE</include> を jco-rules.xml ファイルに追加します(FUNCTION_MODULE は実際の関数モジュール名またはパターンに置き換えます)。
ホワイトリストが空の場合、すべての FM が含まれます。ホワイトリストに FM のリストが含まれている場合、リストされている FM のみが含まれます。
注
関数モジュール名がホワイトリストとブラックリストの両方にある場合、ブラックリストルールの優先順位が高くなり、FM はブラックリストに登録されます。
type="stateless" の exclude 要素が複数存在しないことを確認してください。