Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成の手引


1.1.5 アプリケーションプログラムのトランザクション処理

UAPの処理は,業務処理ごとの単位に区切って,それぞれの処理の結果を有効にするか無効にするかを明確に分ける必要があります。処理が有効であるか無効であるかどちらかに必ず決定させる単位をトランザクションといいます。OpenTP1のUAPでは,このようなトランザクションの処理ができます。

トランザクションの業務処理ごとの区切りを同期点といいます。トランザクションの処理が同期点に達した時点で,トランザクションの処理が正常に終了したか(有効)異常が起こったか(無効)を決定します。処理が正常に終了したとする同期点取得をコミットといいます。同期点まで正常に終了できなかったトランザクションの処理は,OpenTP1でそれまでの処理を取り消して,その処理がなかったように回復します。このような同期点処理をロールバック(部分回復)といいます。

〈この項の構成〉

(1) クライアント/サーバ形態のUAPでのトランザクション処理

OpenTP1では,RPCを使ったクライアント/サーバ形態のUAPの処理をトランザクションとして処理できます。異なるノードにわたって,多くのサービスを続けて要求している処理でも,一つのトランザクションの処理にできます。

クライアント/サーバ形態のUAPでは,トランザクションの開始と,同期点取得を示す関数を呼び出せます。トランザクションの開始を宣言したUAPから複数のサービスをネストさせても,一つのトランザクションとして処理できます。

このようにOpenTP1では,従来のデータコミュニケーションでのトランザクション処理の信頼性を,クライアント/サーバ形態のUAPで実現できます。

(2) メッセージ送受信形態のトランザクション処理

メッセージを処理するUAPの処理は,開始から終了まで,トランザクションにできます。この場合の同期点処理はOpenTP1で自動的に制御しています。

メッセージを処理するUAPでメッセージを受け取ったあとでは,クライアント/サーバ形態のUAPで使うトランザクション制御の関数は使えません。