• 検索結果がありません。

ト ラ ンザク シ ョ ンを終了する (オプシ ョ ン)

ドキュメント内 wlec.book (ページ 31-34)

2 CORBA オブジ ェ ク ト を呼び出す WebLogic Server ク ラ イアン ト の

手順 7. ト ラ ンザク シ ョ ンを終了する (オプシ ョ ン)

ト ラ ンザ ク シ ョ ン コ ンテキ ス ト 内の BEA Tuxedo CORBA オブジ ェ ク ト にア ク セ ス し た場合、 以下のいずれかの TransactionCurrent メ ソ ッ ド を使用し て ト ラ ンザ ク シ ョ ン を終了し ます。

commit() rollback()

ト ラ ンザク シ ョ ンに関する詳細情報

こ の節では、 BEA Tuxedo 環境での ト ラ ンザ ク シ ョ ンについて さ ら に詳し く 説明 し ます。

マルチスレ ッ ド 処理

BEA Tuxedo CORBA ト ラ ンザ ク シ ョ ン サービ ス を使用する と 、 単一のアプ リ ケーシ ョ ン プ ロ セスの複数のス レ ッ ド か ら、 別個の ト ラ ンザ ク シ ョ ン を同時に 開始で き ます。 た と えば、 2 つのス レ ッ ド が

CosTransactions.Current.begin()UserTransaction.begin()を同時に 呼び出す場合、 どち ら のス レ ッ ド も、 それぞれの ト ラ ンザ ク シ ョ ンに対応する別 個の ト ラ ンザ ク シ ョ ン コ ンテキ ス ト を持ち ます。

2 CORBA オブジ ェ ク ト を呼び出す WebLogic Server ク ラ イ アン ト の作成

CORBA ト ラ ンザ ク シ ョ ン サービ スでは、 単一のアプ リ ケーシ ョ ンの複数のス レ ッ ド が、 同じ ト ラ ンザ ク シ ョ ン を同時に扱 う こ と はで き ません。

CosTransactions を使用する場合、 以下の よ う に ト ラ ンザ ク シ ョ ンの中断 と 再開 を行っ て、 複数の ス レ ッ ド内でその ト ラ ンザ ク シ ョ ン を使用し ます。

1. 第 1 の ス レ ッ ド では、Current.suspend()を呼び出し て、 ト ラ ンザ ク シ ョ ン を中断し て Control オブジ ェ ク ト を取得し ます。

2. 第 2 の ス レ ッ ド では、 その Control オブジ ェ ク ト の Current.resume()を呼 び出し て、 その ト ラ ンザ ク シ ョ ン を再開し ます。

中断さ れていない ト ラ ンザ ク シ ョ ン を ス レ ッ ド が再開し よ う と する と 、 BEA Tuxedo シ ス テ ムは InvalidControl例外を送出し ます。

UserTransactionでは、suspend()resume()をサポー ト し ていません。し たがっ て、 UserTransaction を使用する と き には、 複数のス レ ッ ド で 1 つの ト ラ ンザ ク シ ョ ン を使 う こ と はで き ません。

複数のア ク テ ィ ブな WLEC 接続プール

WebLogic Enterprise Connectivity コ ンポーネン ト では、 単一の WebLogic Server ク ラ イ アン ト で複数の WLEC 接続プールを同時にア ク テ ィ ブにで き ます。

CosTransactions.Current.begin()UserTransaction.begin()を呼び出 し て ト ラ ンザ ク シ ョ ン コ ンテキス ト を作成する と 、 BEA Tuxedo シ ス テ ムは、 そ の ト ラ ンザ ク シ ョ ンを WLEC 接続プールに関連付け ます。 その ト ラ ンザ ク シ ョ ンのス コープ内で行われ る呼び出し はすべて、 その ト ラ ンザ ク シ ョ ンの WLEC 接続プールに関連付け られてい る ド メ イ ン内に存在する オブジ ェ ク ト に対する も のでなければな り ません。

1 つの ト ラ ンザ ク シ ョ ンが複数の BEA Tuxedo ド メ イ ンにま たが る こ と はで き ま せん。 別の ド メ イ ン内のオブジ ェ ク ト を呼び出そ う と する と 、 BEA Tuxedo シ ス テ ムは INVALID_TRANSACTION 例外を送出し ます。

ト ラ ンザ ク シ ョ ン に関す る詳細情報

ア ク テ ィ ブな ト ラ ンザク シ ョ ン と接続の関係

WLEC ク ラ イ アン ト が ト ラ ンザ ク シ ョ ンを開始ま たは再開する と 、 WLEC 接続 プールの イ ン フ ラ ス ト ラ ク チ ャは、 その ト ラ ンザ ク シ ョ ンの コ ンテキス ト 内で送 信さ れ る要求のための接続を確保し ます。 WebLogic Enterprise Connectivity は、

その ト ラ ンザ ク シ ョ ン コ ンテキ ス ト 外の要求を送信する ために こ の接続を使 う こ と はあ り ません。 WebLogic Enterprise Connectivity は、 その ト ラ ンザ ク シ ョ ン がコ ミ ッ ト 、 ロールバ ッ ク 、 も し く は中断 さ れる までその接続を確保し ます。

注意: suspend()resume()を使用でき るのは CosTransactions だけです。

同時にア ク テ ィ ブにで き る ト ラ ンザ ク シ ョ ンの数は、 プール内で使用で き る接続 の数に よ っ て決ま り ます。 ス レ ッ ド が ト ラ ンザ ク シ ョ ンを開始ま たは再開する と きに接続が利用で き ない場合、 WebLogic Enterprise Connectivity は

NO_RESOURCES例外を送出し ます。

ト ラ ンザク シ ョ ンの管理

各ス レ ッ ド は、 独自の ト ラ ンザ ク シ ョ ン コ ンテキ ス ト を備えてい ます。ス レ ッ ド が ト ラ ンザ ク シ ョ ン を開始ま たは再開する と 、 その ト ラ ンザ ク シ ョ ンはコ ミ ッ ト 、 ロールバ ッ ク、 または中断 さ れる までア ク テ ィ ブにな り ます。 その後に WebLogic Server ク ラ イ アン ト を呼び出し て も、 それ ら が同じ ス レ ッ ド 内で実行

さ れる保証はあ り ません。 し たがっ て、 ス レ ッ ド では、 ト ラ ンザ ク シ ョ ン を コ ミ ッ ト 、 ロールバ ッ ク 、 ま たは中断し てか ら、 WebLogic Server ク ラ イ アン ト の 呼び出し を終了する こ と が大切です。

注意: suspend()resume() を使用でき るのは CosTransactions だけです。

必要であれば、 次の手順で、 WebLogic Server ク ラ イ アン ト への複数の呼び出し で 1 つの ト ラ ンザ ク シ ョ ン を使用でき ます。

1. それぞれの呼び出し の終わ り に、 ト ラ ンザ ク シ ョ ン を中断し ます。

2. その次の呼び出し で、 ト ラ ンザ ク シ ョ ン を再開し ます。

WLS ク ラ イ アン ト への次の呼び出し を行わない う ちに ト ラ ンザ ク シ ョ ンが タ イ ム ア ウ ト する可能性があ る ので、 こ の方法を使用する と きには注意し て く だ さ い。

ドキュメント内 wlec.book (ページ 31-34)

関連したドキュメント