検索

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

download PDF

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

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

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

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

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

BAPI トランザクションはアプリケーションレベルのトランザクションで、ACID は SAP データベースの BAPI メソッドまたは RFC 機能によって実行される永続データの変更に保証されます。RFC トランザクションは通信トランザクションで、BAPI メソッドおよび RFC 関数への要求に配信保証(AT-MOST-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 システムがエラーについて通知されます。その後、リクエストを再度処理するために同じ TID で別のトランザクションリクエストを送信することで、SAP システムを送信すると応答できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.