Integration コントロールを使用する
コントロールとトランザクション
WebLogic Integration のビジネス プロセスは、本質的にはトランザクションです。1 つのプロセスのすべての手順は、JTA トランザクションのコンテキストの中で実行されます。ビジネス プロセス内のトランザクションの動作については、「トランザクション境界」を参照してください。
統合コントロールのいくつかはトランザクション対応です。これは、コントロールがビジネス プロセス内のトランザクションに参加できることを意味します。コントロールがトランザクション対応かどうかは、基底のリソースおよび特定のコントロール実装の両方によって異なります。また、トランザクションの動作は、コントロール呼び出しが同期的か非同期的かによって異なります。ビジネス プロセスにおける同期操作または非同期操作の詳細については、「同期/非同期のビジネス プロセスの構築」を参照してください。
同期コントロールの呼び出し
コントロールおよび関連するリソースがトランザクション対応の場合、リソースは現在のプロセス トランザクションに参加する
コントロールおよび関連するリソースがトランザクション対応でない場合、リソースに対する変更は現在のトランザクションの範囲外で発生し、その変更は障害時にロールバックされない
非同期コントロールの呼び出し
プロセス トランザクションはリソースに決して伝播されない
非同期コントロールの呼び出しは、デフォルトでバッファリングされる
リソースに対する非同期呼び出しは、トランザクションがコミットされるまでキューに追加されない
ロールバックでは、非同期メッセージはキューから削除される
プロセス コントロールは、サブプロセスを呼び出すプロセスを伴うため、特殊なケースです。
同期操作
トランザクションは常にサブプロセスに伝播される
サブプロセスに処理されていない例外があると、共有トランザクションがロールバック専用にマーキングされる。この場合、サブプロセスおよび呼び出しプロセスの両方がロールバックされる。
サブプロセスのプロセス プロパティを onSyncFailure=rethrow
に設定すると、この動作がオーバーライドされ、以下のようになる。
障害によってロールバックが強制されない
サブプロセスが例外を送出する
呼び出しプロセスが他のコントロール例外と同様に例外を捕捉する
非同期操作
トランザクションはサブプロセスに伝播されない
メッセージはサブプロセスのキューでバッファリングされる
サブプロセスはそれ自体のトランザクションで実行される
メッセージがサブプロセスのキューに適切に追加されると、コントロール呼び出しが成功する
サブプロセスの失敗は呼び出しプロセスに通知されない。たとえば、処理されていない例外によってサブプロセスは失敗するが、呼び出し側のプロセスは通知されない
以下の統合コントロールはトランザクション対応です。
アプリケーション ビュー (JCA アダプタがトランザクション対応の場合)
ebXML
メッセージ ブローカ
MQSeries
プロセス (前述の条件を参照)
RosettaNet
WLI JMS
ワークリスト
以下の統合コントロールはトランザクション対応ではありません。
ファイル
電子メール
Http
サービス ブローカ
TPM
ビジネス プロセス アプリケーションで Web サービス コントロールを作成する際のヒント
Web サービス コントロールをビジネス プロセスから非同期で呼び出す場合は、非同期呼び出しをバッファリングすることをお勧めします。Web サービス コントロールを作成した後に、ビジネス プロセスからコントロールへの非同期呼び出しをバッファリングするように指定します。これにより、ビジネス プロセスから Web サービスに送信されるメッセージはキューに入れられます。リソースに対する非同期呼び出しは、ビジネス プロセス内のトランザクションの境界を示します。呼び出しはトランザクションがコミットされるまでキューに追加されません。つまり、リソースに対する呼び出しをバッファリングすることで、トランザクションは、リソースからの応答の前にコミットされます。呼び出しをバッファリングしない場合、ビジネス プロセスは、トランザクションがコミットされる前に、HTTP 確認応答を待機する必要があります。そのため、HTTP 確認応答の前にリソースがビジネス プロセスに応答してしまう可能性があります。
メソッドのバッファリング方法については、「 com.bea.control.annotations.MessageBuffer」を参照してください。Web サービスへのバッファリングされた非同期呼び出しの例については、『チュートリアル : 初めてのビジネス プロセス構築』で、taxCalculation、priceProcessor、および availProcessor Web サービス コントロールの使用方法を参照してください。
関連トピック
トランザクション境界
同期/非同期のビジネス プロセスの構築