SAP JCo とのビジネストランザクション相関の有効化

このセクションでは、SAP JCo ライブラリを使用して SAP システムと通信する Java アプリケーションのビジネストランザクション相関を有効にする方法について説明します。

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 コールを確認します。

  1. Install the Java Agent」に記載されている標準のインストール手順に従って、SAP コンポーネント内に Java エージェントをインストールします。
  2. 次の ABAP エージェント zip ファイルを解凍します。APPD-SAP-<version>.zip.
  3. APPD-SAP-< version>/AppServerAgent-JCo-plugin-<version>/ ディレクトリの内容を、[JavaAgentPath]/ver[JavaAgentVersion]/sdk-plugins/ ディレクトリにコピーします。
  4. allow.unsigned.sdk.extension.jars=true パラメータを使用して、Java 起動スクリプトで署名なしの拡張を有効にします。

SAP アプリケーションサーバーを使用している場合は、次のツールを使用して Java エージェントをランタイムに追加することもできます。

  1. SAP NetWeaver Administrator
  2. AS Java Config Tool

SAP NetWeaver Administrator を使用した Java エージェントの設定

  1. SAP NetWeaver Application Server Java Web ポータルを開きます。
  2. [SAP NetWeaver Administrator] > [設定(Configuration)] > [インフラストラクチャ(Infrastructure)] > [Javaシステムプロパティ(Java System Properties)] > [追加の VM パラメータ(Additional VM Parameters)]をクリックします。
    1. 署名されていない SDK 拡張機能の VM パラメータ -Dallow.unsigned.sdk.extension.jars=true を追加します。
    2. VM パラメータ -Dappdynamics.bciengine.should.implement.new.interfaces=false を追加します。
    3. Javaエージェント javaagent の VM パラメータを追加します。 <agent_home> /javaagent.jar 。
    4. [Save] をクリックします。
  3. SAP サーバーを再起動します。

AS Java Config Tool を使用した Java エージェントの構成

  1. SAP NetWeaver Application Server Java Web ポータルを開きます。
  2. AS Java Config Tool でインスタンスを選択し、[VM Parameters >> Additional] をクリックします。
    1. 署名されていない SDK 拡張機能の VM パラメータ -Dallow.unsigned.sdk.extension.jars=true を追加します。
    2. VM パラメータ -Dappdynamics.bciengine.should.implement.new.interfaces=false を追加します。
    3. Javaエージェント javaagent の VM パラメータを追加します。 <agent_home> /javaagent.jar 。
    4. [File]、[Apply Changes] の順にクリックします。
  3. SAP サーバーを再起動します。

デバッグモードでのロギング

  1. コントローラーに接続し、 [Tiers & Nodes]に移動します。
  2. デバッグモードを有効にする必要がある目的の Java ノードを選択します。
  3. [Agents] を選択し、[Request Agent Log File] をクリックします。
  4. [Output from Specific logger, at a set level, for a fixed duration] を選択します。
    1. [Logger Name]:com.singularity
    2. [Logger Level]:Debug
    3. [Duration (minutes)]:10 以上
  5. [Request Agent Log Files] をクリックします。
  6. ステータスが成功になったら、[Download] をクリックします。
注:

推奨

デバッグモードを開始し、サポートチケットにログを添付します。

オーソリゼーション

次の SAP ユーザーに承認権限 /DVD/APPD_JAVA を割り当てる必要があります。

  • Java から RFC を呼び出す SAP ユーザー
  • RFC 宛先で使用される SAP ユーザー

詳細については、「Cisco AppDynamics Authorizations」を参照してください。

JCo Server でのビジネストランザクションの開始

JCo Server コール中にビジネストランザクションを開始するには、次の Java エージェント POJO ルールを設定します。

JCo2JCo3
com.sap.mw.jco.JCO$Server メソッド名が handleRequest等しいスーパークラスを拡張するクラスを一致させます com.sap.conn.jco.server.JCoServerFunctionHandlerMethod 名が 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 アダプタのタイプ方向
RFC双方向インバウンド相関については、「カスタム ABAP コードのインストゥルメント化」を参照してください。
HTTP(HTTP_AAE)双方向
SOAP 双方向

SAP NetWeaver Java コアロジックの変更により、一部の機能はリリース 753、パッチレベル 925 以降で使用できなくなりました。

この制限は、バージョン 22.8.0 で解決されています。

Web サービス(WS_AAE)双方向

SAP NetWeaver Java コアロジックの変更により、一部の機能はリリース 753、パッチレベル 925 以降で使用できなくなりました。

この制限は、バージョン 22.8.0 で解決されています。

ファイルインバウンド(ファイルから PI、相関なし、BT エントリポイントのみ)

次のカスタム POJO ルールで BT を開始します。

クラス名が com.sap.aii.adapter.file.File2XI一致し、メソッド名が invoke または send一致するクラスを照合します。

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 をブラックリストに追加するには、jco-rules.xml ファイルに <exclude type="fm"> FUNCTION_MODULE </exclude> を追加します (FUNCTION_MODULE を具体的な機能モジュール名またはパターンに置き換えます)。

ブラックリストが空の場合、FM は除外されません。

また、以下を追加(変更)すると、ステートレスコールの相関をグローバルに無効にできます。

<exclude type="stateless">true</exclude>

警告:

リリース 25.2.0 では、ステートレスコールの相関はデフォルトで無効になっており、<exclude type="stateless">はい(true) </exclude> 」は、配信された jco-rules.xml ファイルにすでに存在します。

RFC ホワイトリスト

追加の RFC コールが実行される関数モジュール(FM)を指定します。つまり、Java エージェントからのビジネストランザクションは、ダウンストリームの ABAP エージェントで(通常どおり)続行されます。

FM をホワイトリストに追加するには、jco-rules.xml ファイルに <include type="fm"> FUNCTION_MODULE </include> を追加します (FUNCTION_MODULE を具体的な機能モジュール名またはパターンに置き換えます)。

ホワイトリストが空の場合、すべての FM が含まれます。ホワイトリストに FM のリストが含まれている場合、リストされている FM のみが含まれます。

注:

関数モジュール名がホワイトリストとブラックリストの両方にある場合、ブラックリストルールの優先順位が高くなり、FM はブラックリストに登録されます。

type="stateless" の exclude 要素が複数存在しないことを確認してください。