ビジネス プロセス構築ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容

トランザクション境界

WebLogic Integration のビジネス プロセスは、本質的にはトランザクションです。1 つのプロセスのすべての手順は、JTA トランザクションのコンテキストの中で実行されます。トランザクションは、1 つまたは複数のオペレーションが最小作業単位として実行されることを保証します。トランザクション内のいずれかのオペレーションが失敗すると、アプリケーションを直前の状態に戻すために、トランザクション内のすべてのオペレーションがロールバックされます。プロセスがステートフルまたはステートレスであるようなビジネス プロセス ロジックを設計したかどうかに応じて (「ステートレス/ステートフル ビジネス プロセスの構築」を参照)、そのビジネス プロセスのコンテキストに 1 つまたは複数のトランザクション存在することがあります。

ビジネス プロセスを作成するときには、プロセス中のブロック要素の配置場所に基づいて暗黙的なトランザクション境界が形成されます。ビジネス プロセス内のトランザクション境界は、ビジネス プロセスにプロセス ノードを追加すると変わります。また、連続するノードを選択して、アプリケーションで暗黙的に作成されたトランザクションとは別のトランザクションで宣言すれば、明示的なトランザクション境界を作成できます。リソースの性質やアクセスを提供するコントロールによっては、ビジネス プロセスによってアクセスされるリソースもトランザクションの一部にすることができます。

暗黙的なトランザクションは、ビジネス プロセス ロジックによって動作が自動的に決定 (または暗示) され、プロセス図には表示されないため、暗黙的です。「暗黙的なトランザクション境界の例」のセクションでは、図の中の暗黙のトランザクション境界がイラストで追加されています。BEA Workshop for WebLogic Platform のグラフィック設計環境では、暗黙のトランザクション境界は表示されません。一方、明示的なトランザクションは、ユーザによって定義され、BEA Workshop for WebLogic Platform のビジネス プロセス図で表示されるため、明示的です。

この後の節では、WebLogic Integration およびビジネス プロセスのコンテキスト内のトランザクションの詳細について取り扱います。

 


暗黙的なトランザクション境界の規則

ブロック要素の配置場所に基づいて暗黙的なトランザクション境界が形成され、ビジネス プロセスにプロセス ノードを追加するとこれらの境界が変更されることを思い出してください。また、ビジネス プロセスはデフォルトではステートレスであり、トランザクション境界を変更するブロック要素により、プロセスをステートフルに変更することができます (「ステートレス/ステートフル ビジネス プロセスの構築」を参照)。ビジネス プロセスを構築する時にトランザクション境界に適用される規則の詳細については:

 


暗黙的なトランザクション境界の例

以下の例は、「暗黙的なトランザクション境界の規則」にリストされた規則を示しています。この節の各図では、トランザクション境界が追加されており、WebLogic Integration ビジネス プロセス内で暗黙的な場所を示しています。

  1. 図 24-1 に示すように、空のビジネス プロセスから開始します。
  2. 図 24-1 空のビジネス プロセス

    空のビジネス プロセス

  3. 開始イベントを Client Receive ノードでコンフィグレーションすると、図 24-2 に示すように、後続のトランザクション境界が暗黙的に指定されます。
  4. 図 24-2 Client Receive ノードのトランザクション


    Client Receive ノードのトランザクション

  5. コントロール送信ノードを追加すると、新しいノードを含めるように、暗黙的なトランザクション境界が拡張されます (図 24-3 を参照)。
  6. 図 24-3 暗黙的なトランザクション境界


    暗黙的なトランザクション境界

  7. Control Receive ノードを追加すると、ビジネス プロセスにブロック要素が追加され、新しいトランザクションが作成されます (図 24-4 を参照)。
  8. 図 24-4 新しいトランザクション境界


    新しいトランザクション境界

    ビジネス プロセスは、この時点で 2 つのトランザクションを含んでいるため、開始ノード アイコンが変わり、ビジネスがステートレス 新しいトランザクション境界 からステートフル 新しいトランザクション境界 に変更されたことを示します。ステートレス/ステートフル ビジネス プロセスの詳細については、「ステートレス/ステートフル ビジネス プロセスの構築」を参照してください。

  9. 図 24-5 に示すように、Client Response ノードをビジネス プロセスに追加すると、新しいノードを含むように 2 番目のトランザクションの境界が拡大されます。
  10. 図 24-5 Client Receive ノード Transaction ノード

    これは、暗黙的な境界の例であり、ビジネス プロセスに明示的なトランザクション境界を追加することで、トランザクションを作成することもできます。この方法の詳細については、「明示的なトランザクション境界」を参照してください。

 


明示的なトランザクション境界

明示的なトランザクション境界を定義すると、BEA Workshop for WebLogic Platform のビジネス プロセス図にそれらが表示されるようになります。連続したノードを選択し、そのトランザクション名をそのトランザクション内で宣言することで、ビジネス プロセス内で、明示的なトランザクション境界を作成できます。明示的なトランザクション境界には、以下の規則が適用されます。

ビジネス プロセスの構築時にこれらの規則に違反すると、アプリケーションではトランザクション境界を表示しますが、対象となるノードは Client Receive ノード トランザクションノード でマークされます。このアイコンの上にカーソルを置くと、WebLogic Workshop により、違反に関するメッセージが表示されます。

要求/応答パラダイムを使用した JMS トランスポートを使用して JWS を呼び出すには、呼び出し側がトランザクション外に配置されている必要があります。JPD が呼び出す場合、ユーザは、JWS にメッセージを送信サービス コントロールを呼び出す前に、現在の JPD トランザクションを明示的にサスペンドし、呼び出し後にトランザクションを再開する必要があります。トランザクションのサスペンドと再開の影響は、以下のとおりです。

Transaction savedTxn = 
TransactionHelper.getTransactionHelper().getTransactionManager().forceSuspend();
//サービス コントロールの呼び出し
TransactionHelper.getTransactionHelper().getTransactionManager().forceResume(savedTxn);

明示的なトランザクション境界の作成

明示的なトランザクションを作成するには - 方法 1
  1. マウスでノードの周りをクリックおよびドラッグするか、または、〔Ctrl〕を押しながらノードをクリックし、トランザクションに含めるノードを選択します。
  2. 選択したノードのうちの 1 つを右クリックし、ドロップダウン メニューから [トランザクションを作成] を選択します。
  3. 図 24-6 で示すように、選択したノードの周りに明示的なトランザクション境界が描画されます。

    図 24-6 明示的なトランザクション境界


    明示的なトランザクション境界

    [トランザクション] を右クリックし、ドロップダウン メニューから [名前の変更] を選択して、トランザクション ブロックの名前を変更できます。

明示的なトランザクションをするには - 方法 2
  1. デザイン ビュー内で、[ノード パレット] から、ビジネス プロセスの上に [明示的なトランザクション境界 Transaction] をドラッグ アンド ドロップし、明示的なトランザクション境界を作成するポイントにビジネス プロセスを配置します。
  2. ビジネス プロセス内にトランザクション境界が作成されます。

  3. [ノード パレット] から、ビジネス プロセスにノードをドラッグ アンド ドロップし、トランザクション境界内に配置します。

明示的なトランザクションのプロパティの設定

明示的なトランザクションを作成すると、[プロパティー] ビューのトランザクション用のプロパティを設定することができます。

トランザクションのプロパティを設定するには
  1. プロパティを設定するトランザクションを選択します。
  2. [プロパティー] ビューに関連するプロパティが表示されます。[プロパティー] ビューが BEA Workshop for WebLogic Platform で表示されていない場合は、BEA Workshop for WebLogic Platform メニュー バーから [ウィンドウArrow symbolビューの表示Arrow symbolプロパティー] を選択します。

  3. [プロパティー] ペインで、以下のプロパティを設定します。
general
transaction

 


トランザクション ブロックにおける例外の処理

ビジネス プロセスの例外処理の詳細については、「例外の処理」を参照してください。トランザクション ブロック内での例外の処理方法については、「トランザクション ブロックにおける例外の処理」を参照してください。

関連トピック

ステートレス/ステートフル ビジネス プロセスの構築


  ページの先頭       前  次