Hitachi

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


2.10.5 ロックマイグレーション

ee_lck_get関数で資源の排他をする場合,一つのグローバルトランザクション内の各トランザクションブランチに,資源の占有権が順次移動します。この機能をロックマイグレーションといいます。ロックマイグレーションによって,トランザクションブランチ間の排他待ちやデッドロックを防げます。そのため,あるグローバルトランザクションで排他を指定した資源に対しては,その資源が解放されないかぎり,一つのグローバルトランザクション内のどのトランザクションブランチからでもアクセスできます。

ロックマイグレーションは,一つのTP1/EEプロセス内にグローバルトランザクションがある(グローバルトランザクションが複数のTP1/EEプロセスのサービスから構成されていない)場合に保証されます。

ロックマイグレーションの概要を次の図に示します。

図2‒48 ロックマイグレーションの概要

[図データ]

〈この項の構成〉

(1) ロックマイグレーションと排他制御モード

ロックマイグレーションでは,PRモードで排他をしても,別のトランザクションブランチでEXモードを指定すれば,それ以降の排他はすべてEXモードになります。一つのグローバルトランザクション内では,一度EXモードで排他した資源には,PRモードで排他できません。すべてEXモードでの排他となります。

(2) ロックマイグレーションでの資源の解放

ロックマイグレーションの排他は,グローバルトランザクションが終了したときに,自動的に解放されます。グローバルトランザクションの終了を待たないで,排他を解除する方法を次に示します。

(3) ロックマイグレーションでの注意事項

ロックマイグレーションでの注事項を次に示します。