トランザクショナル分散オブジェクト基盤 TPBroker ユーザーズガイド

[目次][索引][前へ][次へ]


3.1.4 トランザクションモデル

OTSのトランザクションモデルには,フラットトランザクションとネスティッドトランザクションがあります。

<この項の構成>
(1) フラットトランザクション
(2) ネスティッドトランザクション

(1) フラットトランザクション

フラットトランザクションとは,「3.1.1 CORBAで規定されたOTSの仕様」で説明したACID特性を持つトランザクションのことであり,X/Open DTPモデルのトランザクションと互換性があります。ネスティッドトランザクションに比べて単純なモデルであり,すべてのトランザクション処理を実現できるため,一般的なアプリケーションプログラムではこのフラットトランザクションを使用してください。

(2) ネスティッドトランザクション

ネスティッドトランザクションとは,トランザクションをネストさせることができるモデルです。トランザクションをネストさせると,部分的なロールバックができます。一つの大きなトランザクション処理を幾つかの処理単位に分割し,ある処理単位が失敗した場合に,その処理単位だけを部分的にロールバックして代替処理を行い,全体のトランザクションをコミットさせます。このため,部分的な障害をトランザクション全体に影響させないようにできます。

このようにネスティッドトランザクションは,高度に分散された単一のトランザクション処理をするシステムで,システム全体のスループットを向上させることができます。

なお,C++実行環境でXAインタフェースおよびTXインタフェースを使用する場合は,このネスティッドトランザクションを使用しないでください。

サブトランザクションがロールバックすると,先祖のトランザクションの意思に関係なく,そのサブトランザクションで行った処理はロールバックされます。サブトランザクションがコミットした場合,その時点では実際にコミットするかロールバックするかは決定されないで,そのサブトランザクションの先祖の意思にゆだねられます。すべての先祖がコミットすればそのサブトランザクションもコミットされますが,先祖のうち一つでもロールバックした場合はそのサブトランザクションもロールバックされます。したがって,あるトランザクションが完了(コミットまたはロールバック)するには,そのすべての子トランザクションが完了していなければなりません。TPBrokerは,トランザクションのコミット要求時にすべての子トランザクションが完了していない場合は,そのトランザクションをロールバックさせます。

[目次][前へ][次へ]


[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.