3.1.1 CORBAで規定されたOTSの仕様
OTSは,CORBAシステム上のオブジェクトのオペレーション起動にACID特性を与えるための機能を提供します。ACID特性とは,原子性(Atomicity),一貫性(Consistency),分離性(Isolation),および持続性(Durability)の四つの特性です。クライアントがOTSへトランザクションの開始を依頼してから,OTSへトランザクションの終了を依頼するまでのリソースのアップデートを伴うすべてのリクエスト処理は,ACID特性が保証されます。
また,OTSは各グローバルトランザクションの状態を表すトランザクションコンテキストを管理します。アプリケーションプログラムは,Terminatorオブジェクト,Coordinatorオブジェクトなど,OTSが提供するCORBAシステム上のオブジェクトにリクエストを発行し,トランザクションを制御します。これらのオブジェクトは,グローバルトランザクションを単位とするトランザクションコンテキストを共有します。
- 〈この項の構成〉
(1) コミットとロールバック
トランザクションの終了はコミットまたはロールバックのどちらかに必ず決められます。コミットは,トランザクション中で起きたすべての変更を永久的なものとします。ロールバックは,トランザクション中に起きたすべての変更を取り消します。
(2) トランザクショナルアプリケーション
トランザクションを生成したアプリケーションプログラムは,トランザクションに含まれ,トランザクショナルアプリケーションと呼ばれます。トランザクショナルアプリケーションからCORBAオブジェクトにアクセスした場合,呼び出したCORBAオブジェクトをグローバルトランザクションに含めることができます(トランザクショナルオペレーション)。さらに,呼び出したCORBAオブジェクトから別のCORBAオブジェクトを呼び出すこともできます。
また,リソースを含んだオブジェクトがトランザクショナルアプリケーションに含まれる場合,リソースの状態はトランザクションと同期を取ります。
(3) トランザクショナルクライアント
トランザクショナルクライアントは,一つのトランザクション内で複数のトランザクショナルオブジェクトのオペレーションを起動できるプログラムです。トランザクショナルオブジェクトのうち,トランザクションを開始する任意のプログラムを,トランザクションオリジネータといいます。
(4) トランザクショナルオブジェクト
トランザクション内で起動されると,その動作に影響を及ぼされるオブジェクトです。トランザクショナルオブジェクトは,トランザクション中で変更される永続的なデータを含んでも,含まなくてもかまいません。トランザクション内でリクエストが発行されていても,トランザクションサービスには,すべてのリクエストがトランザクショナルな動作を備えている必要はありません。また,リクエストに対してトランザクショナルな動作をするかどうかを選択することもできます。
トランザクショナルオブジェクトは,トランザクショナルサーバとリカバラブルサーバを実装するのに使用されます。
(5) リカバラブルオブジェクトとリソースオブジェクト
リカバラブルオブジェクトは,トランザクショナルオブジェクトの一種でトランザクションのスコープで変更されたデータを直接管理します。リカバラブルオブジェクトは,トランザクションのコミットまたはロールバックと同期を取るデータを持ちます。
コミットまたはロールバックに参加するために,リカバラブルオブジェクトは,トランザクションサービスにリソースオブジェクトを登録します。トランザクションサービスは,登録されたリソースオブジェクトへコミットまたはロールバックと同期を取るように指示を出します。