BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   BEA Tuxedo アプリケーションの設定   |   先頭へ   |   前へ   |   次へ   |   目次

 


グローバル・トランザクションの例

電子商取引を行う小売店が、CUST_ORDER というサービスを使用するとします。顧客がその小売店の Web サイトで注文を行うと、CUST_ORDER サービスにより次の 2 つの操作が実行されます。

小売店側では、CUST_ORDER サービスを原子性の原則に従って実行する必要があります。つまり、CUST_ORDER が実行された場合、データベースの更新および出荷部門のキューへの要求の登録が両方とも成功しなければなりません。CUST_ORDER サービスが常に原子性に基づいて処理されるようにするため、CUST_ORDER を呼び出すクライアントは、要求をグローバル・トランザクションに関連付けます。

クライアントは、サービスをグローバル・トランザクションに関連付けるため、次の手順に従います。

  1. tpbegin() を呼び出してトランザクションを開始します。

  2. サービス要求を発行します。

  3. tpcommit() を呼び出してトランザクションを終了します。

操作は、1 つの作業単位で、グローバル・トランザクションの一環として実行されます。CUST_ORDER サービスが呼び出されると、サーバにクライアントのトランザクションが複製転送されます。その結果、発注データベースへのアクセスと、出荷用キューへの注文の登録は、クライアントのトランザクションの一部となります。

何らかの原因でどちらかの操作が失敗すると、システム・エラーまたはアプリケーション・エラーが発生し、トランザクションの作業は元に戻され (ロールバックされ) ます。つまり、トランザクションは初期状態に戻ります。

一方、2 つの操作が両方とも成功すると、クライアントはトランザクションをコミットします。つまり、トランザクションの結果を確定することを正式に通知します。これで、発注データベースへの更新は永続的となり、出荷部門に送信された注文は、その部門のキューに登録されます。

 

先頭へ戻る 前のトピックへ 次のトピックへ