JPH0448333A - ロールバック後の自動制御移行方式 - Google Patents
ロールバック後の自動制御移行方式Info
- Publication number
- JPH0448333A JPH0448333A JP2159141A JP15914190A JPH0448333A JP H0448333 A JPH0448333 A JP H0448333A JP 2159141 A JP2159141 A JP 2159141A JP 15914190 A JP15914190 A JP 15914190A JP H0448333 A JPH0448333 A JP H0448333A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- commit
- time point
- rollback
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000007704 transition Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 8
- 238000013519 translation Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はロールバック後の自動制御移行方式に関し、特
に業務プログラムにおいてデータベースファイルの使用
時にデッドロックが発生した場合のリカバリ処理に当っ
てデッドロック直前のコミットからの処理を再実行する
ロールバック後の自動制御移行方式に関する。
に業務プログラムにおいてデータベースファイルの使用
時にデッドロックが発生した場合のリカバリ処理に当っ
てデッドロック直前のコミットからの処理を再実行する
ロールバック後の自動制御移行方式に関する。
従来、この種のデッドロック発生後のリカバリ処理を行
うロールバック後の自動制御移行方式は、プログラムの
中でデッドロックエラーをユーザ自身で判定した時、ロ
ールバック命令を実行した後に現在処理中のトランザク
ションをやり直す為に制御の移行を行なっていた。すな
わち、従来のリカバリ処理は特にそのトランザクション
を再実行させる場合において、ユーザにその分岐先を指
定されていた。
うロールバック後の自動制御移行方式は、プログラムの
中でデッドロックエラーをユーザ自身で判定した時、ロ
ールバック命令を実行した後に現在処理中のトランザク
ションをやり直す為に制御の移行を行なっていた。すな
わち、従来のリカバリ処理は特にそのトランザクション
を再実行させる場合において、ユーザにその分岐先を指
定されていた。
上述した従来のロールバック後の自動制御移行方式は、
これに従って実施されるデッドロック発生後のリカバリ
処理において、再実行の為の分岐先は一般にトランザク
ションの切れ目で行なわれている直前のコミットの直後
に分岐される必要があるが、コミット命令が複数箇所に
記述されていたり、またプログラムが複数モジュールか
ら構成されている時にコミットを実行するモジュールと
デッドロックを検出してロールバックを実行するモジュ
ールとが異なる場合、ロールバック後の処理の再開の為
の制御の移行のプログラムが難かしくなり、生産性の低
下の要因となっている。
これに従って実施されるデッドロック発生後のリカバリ
処理において、再実行の為の分岐先は一般にトランザク
ションの切れ目で行なわれている直前のコミットの直後
に分岐される必要があるが、コミット命令が複数箇所に
記述されていたり、またプログラムが複数モジュールか
ら構成されている時にコミットを実行するモジュールと
デッドロックを検出してロールバックを実行するモジュ
ールとが異なる場合、ロールバック後の処理の再開の為
の制御の移行のプログラムが難かしくなり、生産性の低
下の要因となっている。
本発明のロールバック後の自動制御移行方式は、コンパ
イラ及びリンカによって生成されるオブジェクトプログ
ラムと、前記オブジェクトプログラムでデータベースの
コミット要求が行なわれた時に呼び出されるコミット機
構と、前記コミット機構から呼び出されるスタックセー
ブ機構と、前記オブジェクトプログラムで自動的にデッ
ドロックの発生を検出した時に呼び出されるロールバッ
ク機構と、前記ロールバック機構から呼び出されるスタ
ックリストア機構と、翻訳単位の前記オブジェクトプロ
グラム内のモジュール間のコールメカニズムの制御に使
用されるスタック機構と、前記スタック領域をセーブす
るスタックセーブ領域とを備えて構成される。
イラ及びリンカによって生成されるオブジェクトプログ
ラムと、前記オブジェクトプログラムでデータベースの
コミット要求が行なわれた時に呼び出されるコミット機
構と、前記コミット機構から呼び出されるスタックセー
ブ機構と、前記オブジェクトプログラムで自動的にデッ
ドロックの発生を検出した時に呼び出されるロールバッ
ク機構と、前記ロールバック機構から呼び出されるスタ
ックリストア機構と、翻訳単位の前記オブジェクトプロ
グラム内のモジュール間のコールメカニズムの制御に使
用されるスタック機構と、前記スタック領域をセーブす
るスタックセーブ領域とを備えて構成される。
次に、本発明について図面を参照して説明する。
第1図は本発明の一実施例の構成を示すブロック図であ
る。本実施例は、オブジェクトプログラム1と、コミッ
ト機構2と、ロールバック機構3と、スタックセーブ機
構4と、スタックリストア機構5と、スタック領域6と
、スタックセーブ領域7とからその主要部が構成されて
いる。また、第2図は本実施例の動作を示す説明図、第
3図(a)および(b)はそれぞれスタックセーブ領域
およびスタック領域の状態を示す説明図である。そして
、オブジェクトプログラム1は主プログラム11と副プ
ログラム12とからなり、プログラム実行の各時点をP
、〜P8で示している。
る。本実施例は、オブジェクトプログラム1と、コミッ
ト機構2と、ロールバック機構3と、スタックセーブ機
構4と、スタックリストア機構5と、スタック領域6と
、スタックセーブ領域7とからその主要部が構成されて
いる。また、第2図は本実施例の動作を示す説明図、第
3図(a)および(b)はそれぞれスタックセーブ領域
およびスタック領域の状態を示す説明図である。そして
、オブジェクトプログラム1は主プログラム11と副プ
ログラム12とからなり、プログラム実行の各時点をP
、〜P8で示している。
それらの各時点に対応したスタックの遷移を61〜66
で示している。
で示している。
ここで、このように構成されたロールバック後の自動制
御移行方式の動作について説明する。
御移行方式の動作について説明する。
オブジェクトプログラム1の主プログラム11のモジュ
ール内でコミットが実行されると、コミット機構2が呼
び出され実行時点P1のときスタック領域6は状態遷移
61に示すように、主プログラム11とコミット機構2
のモジュールとのスタックの2個が格納されている。コ
ミット機構2の中では、データベースファイルの静止点
の確立とファイルの現在指示子の保存やユーザデータの
メモリのセーブ等を行なった後、スタックセーブ機構4
を呼び出す。実行時点P2ではスタック領域6は62で
示す状態であるが、スタックセーブ機構内で主プログラ
ムのスタックとコミット機構のスタックをスタックセー
ブ領域7にセーブする。各スタック中にはそのモジュー
ルを呼び出したモジュールの戻り点のアドレスがコール
メカニズムにより格納される為、この時コミット機構2
のスタックにはコミット機構2を呼び出した主プログラ
ム11の中のユニット命令の直後のアドレスが格納され
る。
ール内でコミットが実行されると、コミット機構2が呼
び出され実行時点P1のときスタック領域6は状態遷移
61に示すように、主プログラム11とコミット機構2
のモジュールとのスタックの2個が格納されている。コ
ミット機構2の中では、データベースファイルの静止点
の確立とファイルの現在指示子の保存やユーザデータの
メモリのセーブ等を行なった後、スタックセーブ機構4
を呼び出す。実行時点P2ではスタック領域6は62で
示す状態であるが、スタックセーブ機構内で主プログラ
ムのスタックとコミット機構のスタックをスタックセー
ブ領域7にセーブする。各スタック中にはそのモジュー
ルを呼び出したモジュールの戻り点のアドレスがコール
メカニズムにより格納される為、この時コミット機構2
のスタックにはコミット機構2を呼び出した主プログラ
ム11の中のユニット命令の直後のアドレスが格納され
る。
次に実行時点P3では主プログラム11から副プログラ
ム12を呼び出している為、スタックは63の状態とな
り副プログラム12内でデータベースをアクセスした際
にデッドロックステータスを検出した場合、ロールバッ
ク命令の実行によりロールバック機構3が呼び出される
。従って実行時点P4ではスタックは64の状態となり
、ロールバック機構3の中で、直前のコミット実行以降
に実行したデータベースファイルの更新を無効にすると
ともに、データベースファイルの現在指示子、ユーザデ
ータのメモリを直前のコミット実行時点に戻した後スタ
ックリストア機構5を呼び出す。よって実行時点P5で
はスタック6は65の状態となっているがスタックリス
トア機構5でスタックセーブ領域7の内容をスタック領
域6に移送することにより、実行時点P6の実行スタッ
クは66の状態となる。この状態で、スタックリストア
機構5から呼び出し元のモジュールに戻ると、現在のス
タック(コミット機構のスタックとなっている)の戻り
アドレスは主プログラム11の中のコミット命令の直後
となっている為そこに戻ることとなる。
ム12を呼び出している為、スタックは63の状態とな
り副プログラム12内でデータベースをアクセスした際
にデッドロックステータスを検出した場合、ロールバッ
ク命令の実行によりロールバック機構3が呼び出される
。従って実行時点P4ではスタックは64の状態となり
、ロールバック機構3の中で、直前のコミット実行以降
に実行したデータベースファイルの更新を無効にすると
ともに、データベースファイルの現在指示子、ユーザデ
ータのメモリを直前のコミット実行時点に戻した後スタ
ックリストア機構5を呼び出す。よって実行時点P5で
はスタック6は65の状態となっているがスタックリス
トア機構5でスタックセーブ領域7の内容をスタック領
域6に移送することにより、実行時点P6の実行スタッ
クは66の状態となる。この状態で、スタックリストア
機構5から呼び出し元のモジュールに戻ると、現在のス
タック(コミット機構のスタックとなっている)の戻り
アドレスは主プログラム11の中のコミット命令の直後
となっている為そこに戻ることとなる。
上記のように、コミット命令は何度記述されていてもま
たどのモジュールで実行されていても、最後に実行した
コミット命令の時点のスタックがスタックセーブ領域7
にセーブされる為、ロールバックリストア機構5により
必ず直前のコミット命令の直後に制御を戻すことができ
る。
たどのモジュールで実行されていても、最後に実行した
コミット命令の時点のスタックがスタックセーブ領域7
にセーブされる為、ロールバックリストア機構5により
必ず直前のコミット命令の直後に制御を戻すことができ
る。
以上説明したように本発明は、コミット命令実行時にス
タックセーブ機構によりその時点のスタックをスタック
領域に保存し、ロールバック命令実行時に、スタックリ
ストア機構によりその時点のスタックの内容をコミット
時点に保存したスタックの内容でリストアすることによ
り、直前に実行したコミット命令の直後にシステムで自
動的に制御を移行することができ、ユーザ自身でロール
バック後の制御の移行を行なう必要がないようにした。
タックセーブ機構によりその時点のスタックをスタック
領域に保存し、ロールバック命令実行時に、スタックリ
ストア機構によりその時点のスタックの内容をコミット
時点に保存したスタックの内容でリストアすることによ
り、直前に実行したコミット命令の直後にシステムで自
動的に制御を移行することができ、ユーザ自身でロール
バック後の制御の移行を行なう必要がないようにした。
このことにより、デッドロックが発生した後にシステム
で自動的にロールバックを行ない、更に直前のコミット
の直後に制御も戻すことでユーザからはデッドロックが
あたかも発生し、なかったかのように動作させることが
可能となり、プログラムの生産性を大きく向上させるこ
とができるという効果がある。
で自動的にロールバックを行ない、更に直前のコミット
の直後に制御も戻すことでユーザからはデッドロックが
あたかも発生し、なかったかのように動作させることが
可能となり、プログラムの生産性を大きく向上させるこ
とができるという効果がある。
第1図は本発明の一実施例の構成を示すブロック図、第
2図は本実施例のロールバック後の各実行時点のスタッ
クの状態遷移を示す説明図、第3図(a)はスタックの
セーブ領域を示す説明図、第3図(b)はスタック領域
の状態を示す説明図。 1・・・オブジェクトプログラム、2・・・コミット機
構、3・・・ロールバック機構、4・・・スタックセー
ブ機構、5・・・スタックリストア機構、6・・・スタ
ック領域、7・・・スタックセーブ領域。
2図は本実施例のロールバック後の各実行時点のスタッ
クの状態遷移を示す説明図、第3図(a)はスタックの
セーブ領域を示す説明図、第3図(b)はスタック領域
の状態を示す説明図。 1・・・オブジェクトプログラム、2・・・コミット機
構、3・・・ロールバック機構、4・・・スタックセー
ブ機構、5・・・スタックリストア機構、6・・・スタ
ック領域、7・・・スタックセーブ領域。
Claims (1)
- コンパイラ及びリンカによって生成されるオブジェクト
プログラムと、前記オブジェクトプログラムでデータベ
ースのコミット要求が行なわれた時に呼び出されるコミ
ット機構と、前記コミット機構から呼び出されるスタッ
クセーブ機構と、前記オブジェクトプログラムで自動的
にデッドロックの発生を検出した時に呼び出されるロー
ルバック機構と、前記ロールバック機構から呼び出され
るスタックリストア機構と、翻訳単位の前記オブジェク
トプログラム内のモジュール間のコールメカニズムの制
御に使用されるスタック機構と、前記スタック領域をセ
ーブするスタックセーブ領域とを備えて成ることを特徴
とするロールバック後の自動制御移行方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2159141A JPH0448333A (ja) | 1990-06-18 | 1990-06-18 | ロールバック後の自動制御移行方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2159141A JPH0448333A (ja) | 1990-06-18 | 1990-06-18 | ロールバック後の自動制御移行方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0448333A true JPH0448333A (ja) | 1992-02-18 |
Family
ID=15687149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2159141A Pending JPH0448333A (ja) | 1990-06-18 | 1990-06-18 | ロールバック後の自動制御移行方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0448333A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013117955A (ja) * | 2009-09-15 | 2013-06-13 | Chicago Mercantile Exchange Inc | フォールトトレラント動作をする金融取引所用突き合わせサーバ |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63228245A (ja) * | 1987-03-17 | 1988-09-22 | Nec Corp | デ−タベ−ス自動復旧方式 |
JPS642151A (en) * | 1987-06-25 | 1989-01-06 | Nec Corp | File data abnormality evading system |
JPH02109141A (ja) * | 1988-10-19 | 1990-04-20 | Nec Corp | トランザクション制御方式 |
-
1990
- 1990-06-18 JP JP2159141A patent/JPH0448333A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63228245A (ja) * | 1987-03-17 | 1988-09-22 | Nec Corp | デ−タベ−ス自動復旧方式 |
JPS642151A (en) * | 1987-06-25 | 1989-01-06 | Nec Corp | File data abnormality evading system |
JPH02109141A (ja) * | 1988-10-19 | 1990-04-20 | Nec Corp | トランザクション制御方式 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013117955A (ja) * | 2009-09-15 | 2013-06-13 | Chicago Mercantile Exchange Inc | フォールトトレラント動作をする金融取引所用突き合わせサーバ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1273434A (en) | Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log | |
US7178062B1 (en) | Methods and apparatus for executing code while avoiding interference | |
US8473783B2 (en) | Fault tolerance in distributed systems | |
Kalaiselvi et al. | A survey of checkpointing algorithms for parallel and distributed computers | |
US20060089975A1 (en) | Online system recovery system, method and program | |
US5734896A (en) | Recovery of a remotely initiated distributed prepared transaction by status report from a second database to an external coordinator | |
CN1099631C (zh) | 双执行部件处理器的反回逻辑线路 | |
JPH06324885A (ja) | 例外条件処理方法及び装置 | |
US20020073409A1 (en) | Telecommunications platform with processor cluster and method of operation thereof | |
CN111176907B (zh) | 硬件数据库回滚方法、软件数据库回滚方法及装置 | |
US6092084A (en) | One system of a multisystem environment taking over log entries owned by another system | |
JPH0448333A (ja) | ロールバック後の自動制御移行方式 | |
JPH02148223A (ja) | レジスタ退避復活装置 | |
US6076095A (en) | Method of one system of a multisystem environment taking over log entries owned by another system | |
Garbacki et al. | Transparent fault tolerance for grid applications | |
JP2001034595A (ja) | 複数システム間業務統合方法および装置 | |
JP2005107819A (ja) | コンピュータネットワークシステムのフェイルセーフ方法 | |
JPH01217635A (ja) | レジスタ退避方式 | |
JPH03286230A (ja) | メモリ領域の自動退避/復元方式 | |
JP4604032B2 (ja) | 非共有データベースシステムにおける1段階コミット | |
JPH03265951A (ja) | 故障回復型計算機 | |
JPH0628199A (ja) | 並行処理の同期方法 | |
JPH02178855A (ja) | データベースのデッドロック処理方式 | |
JPH0259837A (ja) | データリカバリ処理方式 | |
JP2757768B2 (ja) | 会話処理におけるデータベース条件検索結果引継ぎ方式 |