140.5. トランザクションサポート


BAPI トランザクションモデル

SAP コンポーネントは、SAP とのアウトバウンド通信用の BAPI トランザクションモデルをサポートします。transacted オプションが true に設定された URL を持つ宛先エンドポイントは、必要な場合は、エンドポイントのアウトバウンド接続でステートフルセッションを開始し、Camel Synchronization オブジェクトをエクスチェンジに登録します。この同期オブジェクトは BAPI サービスメソッド BAPI_TRANSACTION_COMMIT を呼び出して、メッセージ交換の処理が完了するとステートフルセッションを終了します。メッセージ交換の処理に失敗すると、同期オブジェクトは BAPI サーバーメソッド BAPI_TRANSACTION_ROLLBACK を呼び出してステートフルセッションを終了します。

RFC トランザクションモデル

tRFC プロトコルは、AT-MOST-ONCE 配信を実行し、各トランザクション識別子(TID)でトランザクション要求を識別することで保証を行います。TID には、プロトコルで送信される各リクエストが含まれます。tRFC プロトコルを使用する送信アプリケーションは、要求の送信時に一意の TID を持つリクエストの各インスタンスを特定する必要があります。アプリケーションは指定の TID でリクエストを複数回送信できますが、プロトコルにより、要求が最大 1 度受信システムで配信および処理されます。アプリケーションは、要求の送信時に通信またはシステムエラーが発生した場合に特定の TID でリクエストを再送信することを選択する可能性があるため、その要求が受信システムで配信および処理されたかどうかが疑われます。通信エラーの発生時にリクエストを再送信することで、tRFC プロトコルを使用するクライアントアプリケーションは、EXACTLY-ONCE 配信を保証し、その要求の保証を処理することができます。

使用するトランザクションモデル

BAPI トランザクションはアプリケーションレベルのトランザクションです。これは、SAP データベースの BAPI メソッドまたは RFC 関数によって実行される永続データ変更に対して ACID 保証を課すという意味です。RFC トランザクションは通信トランザクションであり、BAPI メソッドおよび RFC 関数への要求に対する配信保証(AT-MOST-ONCE、EXACTLY-ONCE、EXACTLY-ONCE-IN-ORDER)を課します。

トランザクション RFC 宛先エンドポイント

以下の宛先エンドポイントは RFC トランザクションをサポートします。
  • sap-trfc-destination
  • sap-qrfc-destination
単一の Camel ルートには、複数のトランザクション RFC 宛先エンドポイントを含めることができ、複数の RFC 宛先にメッセージを送信したり、同じ RFC 宛先にメッセージを送信したりすることもできます。これは、Camel SAP コンポーネントが、ルートに渡される Exchange オブジェクトごとに 多数 のトランザクション ID (TID)を追跡する必要があることを意味します。ルート処理に失敗し、再試行する必要がある場合、状況はかなり複雑になります。RFC トランザクションセマンティクスでは、ルートを介した各 RFC 宛先が、最初に使用されたのと 同じ TID を使用して呼び出す必要があります(および各宛先の TID が相互に区別されます)。つまり、Camel SAP コンポーネントは、ルートにどの TID が使用されたかを追跡し、TID が正しい順序で再生できるようにこの情報を覚えておく必要があります。
デフォルトでは、Camel は Exchange がルート内の場所を認識できるようにするメカニズムを提供しません。このようなメカニズムを提供するには、CurrentProcessorDefinitionInterceptStrategy インターセプターを Camel ランタイムにインストールする必要があります。Camel SAP コンポーネントがルート内の TID を追跡するには、このインターセプターを Camel ランタイムにインストールする必要があります。インターセプターの設定方法の詳細は、「tRFC および qRFC 宛先のインターセプター」 を参照してください。

トランザクション RFC サーバーエンドポイント

以下のサーバーエンドポイントは RFC トランザクションをサポートします。
  • sap-trfc-server
トランザクションリクエストを処理する Camel エクスチェンジで処理エラーが発生すると、Camel は標準のエラー処理メカニズムを介して処理エラーを処理します。Camel ルートの処理が、エラーを呼び出し元に伝播するように設定されている場合、エクスチェンジを開始した SAP サーバーエンドポイントは失敗を認識し、送信している SAP システムにエラーが送信されます。送信元の SAP システムは、同じ TID で別のトランザクションリクエストを送信して再度要求を処理することで応答できます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat