WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

SAP BAPI トランザクション・コミット

SAP アダプターを BAPI インターフェースで使用する場合、トランザクションのフローを設計するときに特定の要因を検討する必要があります。

データベースなどのリソースに対する更新内容の整合性がとれるように、メッセージ・フローをトランザクションに構成できます。これにより、同じトランザクション内の変更内容がまとめてコミットまたはロールバックされます。 このトランザクション単位の調整は、BAPI インターフェースを SAPRequest ノードとともに使用するときに、SAP データベースのような外部システムの更新にも拡張できます。

SAP アダプターは、SAP を待って更新内容を同期をとってコミットするか、SAP でコミットが行われている間に非同期でコミットを発行して戻るかを制御できます。 この動作の決定は、「アダプター接続」ウィザードの「オブジェクトの構成」ペインの BAPI commit を呼び出す前の wait パラメーターの使用 パラメーターを使って行います。 アダプターは、メッセージ・フローのトランザクション特性の設定に応じて、コミットをコールするかどうかを決定します。

BAPI の暗黙コミット

SAP の初期のリリースでは、一部の BAPI はコミットでコード化されていました。 SAP リリース 4.0A 以降は、コミット処理を実行する代わりに、BAPI が BAPI_TRANSACTION_COMMIT を個別に発行して更新を強制することで、さらに効果的になっています。 この方式を利用することで、作業をコミットする前に、バッチ化された作業単位として BAPI を呼び出すことができます。 BAPI がコミットでコード化されているかどうかを確認するには、BAPI の資料を参照してください。

メッセージ・フローのトランザクション特性

SAPRequest ノードの「トランザクション・モード」プロパティーを「はい」に設定すると、アダプターは、メッセージ・フローが完了した時点で、他のデータベースのコミットに合わせて SAP コミットを発行するように指示を受けます。 「アダプター接続」ウィザードの BAPI commit を呼び出す前の wait パラメーターの使用 パラメーターを設定することで、コミットを同期させるか非同期にするかを指定できます。

SAPRequest ノードの「トランザクション・モード」プロパティーを「いいえ」に設定すると、アダプターは SAP コミットを発行せず、「アダプター接続」ウィザードで設定したパラメーターは無関係になります。 ただし、コミットは、BAPI 作業単位の COMMIT verb の一部 (ウィザードのプロパティーが適用される)、または BAPI_TRANSACTION_COMMIT へのコール (ウィザードのプロパティーは適用されない) として発行はできます。

SAPRequest ノードの「トランザクション・モード」プロパティーを設定するとき、次の規則が適用されます。
  • 次の条件に該当する場合は、「トランザクション・モード」「いいえ」に設定します。
    • BAPI が既にコミットを受けている
    • BAPI_TRANSACTION_COMMIT が SAPRequest ノードによって呼び出されている
    • BAPI 作業単位に BAPI_TRANSACTION_COMMIT が含まれているか、「アダプター接続」ウィザードの「オブジェクトの構成」ペインで COMMIT verb が追加されている

    BAPI がコミットでコード化されており、「トランザクション・モード」「はい」に設定されている場合、同じフローで同じアダプターを使用して、他の SAPRequest ノードのトランザクションと同じトランザクションの一部として BAPI が呼び出されます。 このため、このメッセージ・フロー内で既に呼び出されている BAPI はすべてコミットされます。

  • 次の条件に該当する場合は、「トランザクション・モード」「はい」に設定します。
    • BAPI をコミットする必要がある (BAPI がコミットでコード化されていない)
    • BAPI 作業単位をコミットする必要があり、BAPI 作業単位が BAPI_TRANSACTION_COMMIT または COMMIT verb を含んでいない

    「トランザクション・モード」「いいえ」に設定すると、BAPI は現時点またはメッセージ・フローの最後でコミットされず、コミットが保証されません。

以下のシナリオで、SAP システムに対して更新が行われる様子を示し、外部システムによってデータがいつコミットされるかという不確実性を回避するために、アダプターをどう使用するかについて説明します。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:46:12


概念トピック概念トピック | バージョン 8.0.0.5 | ac66390_