この特集のトップページへ
Chapter 5:ビジネスロジック層の構築

head1.gif 5.4 COM+のトランザクション機能

 ではいよいよ,COM+のトランザクション機能の詳細を見てゆくことにする。COM+のトランザクション機能は非常に強力で,単体のCOMオブジェクトによる一連のデータベース操作をトランザクションとして処理することはもちろん,複数のCOMオブジェクトをグループ化し,そのすべてのCOMオブジェクトによる一連のデータベース操作をトランザクションとして処理することもできる。このとき,COMオブジェクトや処理対象となるデータベースが複数のサーバーに分散していたとしても,処理は正しく実施されるため,データベースを操作するときにCOM+のトランザクション機能を使うことにより,簡潔に堅牢なアプリケーションを開発できるようになる。

head2.gif 5.4.1 トランザクション機能の設定
 COM+では,管理されているCOMコンポーネントごとにトランザクション機能を使うかどうかを決めることができる。COMコンポーネントをCOM+カタログに登録した時点では,トランザクション機能は有効ではない。COMコンポーネントがトランザクション機能を使うかどうかは,コンポーネントサービス管理ツールでCOMコンポーネントのプロパティとして設定する。COMコンポーネントのプロパティの[トランザクション]ページには,そのCOMコンポーネントがどのようにトランザクション動作するのかを示す選択肢が用意されている(Fig.5-17)。

Fig.5-17 [トランザクション]ページ
fig5_17.gif

 [トランザクションサポート]内にある各選択肢の意味は,次の通りである。

 [使用不可]
 このCOMコンポーネントを動作させるにあたり,COM+のトランザクション機能を無効にすることを示す。
 
 [未サポート]
 このCOMコンポーネントはトランザクション機能をサポートしていないことを示す。
 
 [サポート]
 このCOMコンポーネントはトランザクション機能をサポートしている。もし,このCOMコンポーネントと同じトランザクション範囲内で動作するほかのCOMコンポーネントのトランザクション設定が,[必要]または[新しく必要]であったならば,トランザクション機能が働く。
 
 [必要]
 このCOMコンポーネントはトランザクション機能が必要であることを示す。すでにトランザクションが開始されているときには,同じトランザクションに含まれる。
 
 [新しく必要]
 このCOMコンポーネントはトランザクション機能が必要で,しかも,新しいトランザクションを開始する必要があることを示す。

 5つのオプションのなかには似通ったものもあり,少々わかりづらい。そこで,順にこれらのオプションの意味を説明してゆくことにする。

 なお,[グローバルトランザクションのタイムアウト値を無効にする]と[トランザクションタイムアウト]は,このCOMコンポーネントが含まれるCOM+アプリケーションのトランザクションタイムアウト値の設定を上書きするためのものである。トランザクションタイムアウト値については,「5.4.2 COM+のトランザクション機構」で説明する。

prevpg.gif Chapter 5-1 13/23 nextpg.gif