JPH0447428A - ファイル更新装置 - Google Patents
ファイル更新装置Info
- Publication number
- JPH0447428A JPH0447428A JP2152673A JP15267390A JPH0447428A JP H0447428 A JPH0447428 A JP H0447428A JP 2152673 A JP2152673 A JP 2152673A JP 15267390 A JP15267390 A JP 15267390A JP H0447428 A JPH0447428 A JP H0447428A
- Authority
- JP
- Japan
- Prior art keywords
- record
- update
- file
- status
- state
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は、オフィスコンピュータ等において、ファイル
上のレコード更新中にエラーが発生した場合、そのファ
イルを復旧する機能を備えたファイル更新装置に関する
。
上のレコード更新中にエラーが発生した場合、そのファ
イルを復旧する機能を備えたファイル更新装置に関する
。
[発明の概要コ
本発明のファイル更新装置は、ファイル更新時、更新前
のファイルに対するレコード状態をレコード単位で保持
しておき、ファイル復旧時に、上記各レコード状態を判
別して直ちにファイルを復旧するようにしたものである
。
のファイルに対するレコード状態をレコード単位で保持
しておき、ファイル復旧時に、上記各レコード状態を判
別して直ちにファイルを復旧するようにしたものである
。
[従来技術]
従来のオフィスコンピュータ等におけるファイル更新装
置は、既に作成されているファイルに対して更新を行な
う場合、他のプロセスによりデータが書替えられないよ
うにファイル全体にロックを掛け、ファイル単位にレコ
ード情報を全て更新させ、エラー(矛盾)が発生した場
合、そのエラーとなったレコードをNGレコードとして
別のファイルに保存しておき、全ての更新が終了した段
階で保存されたNGレコードをプリンタ等に出力させ、
その後のりカバリ−はユーザーが行なうようになってい
る。ファイルが重要で、その復旧を確実に行ないたい場
合は、ユーザーがファイル更新に際して予めファイル単
位にバックアップをとっておき、エラーが発生するとバ
ックアップデータを元に戻すようにしている。
置は、既に作成されているファイルに対して更新を行な
う場合、他のプロセスによりデータが書替えられないよ
うにファイル全体にロックを掛け、ファイル単位にレコ
ード情報を全て更新させ、エラー(矛盾)が発生した場
合、そのエラーとなったレコードをNGレコードとして
別のファイルに保存しておき、全ての更新が終了した段
階で保存されたNGレコードをプリンタ等に出力させ、
その後のりカバリ−はユーザーが行なうようになってい
る。ファイルが重要で、その復旧を確実に行ないたい場
合は、ユーザーがファイル更新に際して予めファイル単
位にバックアップをとっておき、エラーが発生するとバ
ックアップデータを元に戻すようにしている。
[発明が解決しようとする課題]
従来のファイル更新装置は、上記のようにファイル更新
によりエラーが発生すると、更新終了後にNGレコード
を出力してユーザーに知らせるだけであり、その後の処
理はユーザーが行なわなければならず、ファイルの復旧
操作が非常に面倒であると共に、復旧に時間がかかると
いう問題があった。
によりエラーが発生すると、更新終了後にNGレコード
を出力してユーザーに知らせるだけであり、その後の処
理はユーザーが行なわなければならず、ファイルの復旧
操作が非常に面倒であると共に、復旧に時間がかかると
いう問題があった。
このような原因は、ファイル更新に際してユーザーが予
めファイルのバックアップをとるという操作を行なわな
ければならず、また、エラーが発生した場合には、デー
タ容量が大きいファイル単位でエラー復旧を行なうとこ
ろにあると考えられる。
めファイルのバックアップをとるという操作を行なわな
ければならず、また、エラーが発生した場合には、デー
タ容量が大きいファイル単位でエラー復旧を行なうとこ
ろにあると考えられる。
してみれば、ファイル更新時に更新前のレコード状態を
レコード単位で保持しておき、エラーが発生した場合に
は、上記各レコード状態を判別してファイルを自動的に
復旧させることにより、ユーザーは復旧操作を行なうこ
となく、ファイルの復旧を迅速に行なわせ得ることは明
らかである。
レコード単位で保持しておき、エラーが発生した場合に
は、上記各レコード状態を判別してファイルを自動的に
復旧させることにより、ユーザーは復旧操作を行なうこ
となく、ファイルの復旧を迅速に行なわせ得ることは明
らかである。
本発明の課題は、ファイル上のレコードを更新している
際にエラーが発生した場合、その復旧処理を自動的に、
かつ、高速で実行し得るファイル更新装置を提供するこ
とである。
際にエラーが発生した場合、その復旧処理を自動的に、
かつ、高速で実行し得るファイル更新装置を提供するこ
とである。
[課題を解決するための手段]
本発明の手段は次の通りである。
(1) 更新用レコードによるファイル更新時、更新前
のレコードを別途保存した上で、レコード単位で指示さ
れた更新種に応じてファイル更新を行なうファイル更新
手段。
のレコードを別途保存した上で、レコード単位で指示さ
れた更新種に応じてファイル更新を行なうファイル更新
手段。
例えば更新前のレコードを保存するバックアップメモリ
22、更新用レコードファイル16がら読出される更新
用レコードの更新種に応じて動作するCPUI 1であ
る。
22、更新用レコードファイル16がら読出される更新
用レコードの更新種に応じて動作するCPUI 1であ
る。
(2) 上記ファイル更新時、各更新レコードに対応し
て そのレコードが更新前のファイルに存在してファイルか
ら削除すべきものなのか、 そのレコードが更新前のファイルに存在して書替えられ
たものなのか、 そのレコードが更新前のファイルに存在せず、追加され
たものなのか、 の何れかの状態を保持する状態保持手段。
て そのレコードが更新前のファイルに存在してファイルか
ら削除すべきものなのか、 そのレコードが更新前のファイルに存在して書替えられ
たものなのか、 そのレコードが更新前のファイルに存在せず、追加され
たものなのか、 の何れかの状態を保持する状態保持手段。
例えば更新状態テーブル13及びレコード状態テーブル
14を参照して状態を保持する更新状態レジスタ17、
レコード状態レジスタ18である。
14を参照して状態を保持する更新状態レジスタ17、
レコード状態レジスタ18である。
(3) ファイル復旧時、更新済みの各レコード状態を
判別し、 追加状態であれば、そのレコードを削除して、この追加
状態を解除し、 書替状態であれば、更新時に保持された更新前のレコー
ドに書替えて、この書替状態を解除し、削除状態であれ
ば、この削除状態を解除する状態解除手段。
判別し、 追加状態であれば、そのレコードを削除して、この追加
状態を解除し、 書替状態であれば、更新時に保持された更新前のレコー
ドに書替えて、この書替状態を解除し、削除状態であれ
ば、この削除状態を解除する状態解除手段。
例えば更新状態管理メモリ21に記憶された各レコード
状態を判別して動作するCPUI 1である。
状態を判別して動作するCPUI 1である。
[作用〕
本発明の手段の作用は次の通りである。
更新用レコードによりファイルを更新する際、更新前の
レコードがバックアップメモリに保存され、その後、レ
コード単位で指示された更新種に応じてファイル更新が
行なわれる。このファイル更新時、各更新レコードの状
態が更新状態テーブル、レコード状態テーブルを参照し
て検出され、更新状態管理メモリに保持される。
レコードがバックアップメモリに保存され、その後、レ
コード単位で指示された更新種に応じてファイル更新が
行なわれる。このファイル更新時、各更新レコードの状
態が更新状態テーブル、レコード状態テーブルを参照し
て検出され、更新状態管理メモリに保持される。
そして、ファイル更新時にエラーが発生すると、上記更
新状態管理メモリに記憶されているレコード状態に基づ
いてファイルの復旧処理が行なわれる。
新状態管理メモリに記憶されているレコード状態に基づ
いてファイルの復旧処理が行なわれる。
[実施例]
以下、一実施例を第1図ないし第8図を参照しながら説
明する。
明する。
第1図は、全体の構成を示すブロック図である。
同図において、符号11は回路全体の制御を行なうCP
Uで、このCPUI 1にはパスライン12を介して更
新状態テーブル13、レコード状態テーブル14、更新
用レコードレジスタ15、更新用レコードファイル16
、更新状態レジスタ17、レコード状態レジスタ18、
更新用バッファ19、ワークメモリ20、更新状態管理
メモリ21、ノ(ツタアップメモリ22、ソースファイ
ル23が接続される。
Uで、このCPUI 1にはパスライン12を介して更
新状態テーブル13、レコード状態テーブル14、更新
用レコードレジスタ15、更新用レコードファイル16
、更新状態レジスタ17、レコード状態レジスタ18、
更新用バッファ19、ワークメモリ20、更新状態管理
メモリ21、ノ(ツタアップメモリ22、ソースファイ
ル23が接続される。
更新状態テーブル13には、第2図(a)、(b)に示
す更新状態テーブルI、■が設定される。
す更新状態テーブルI、■が設定される。
第2図(a)の更新状態テーブルは、同一ファイルの同
一レコードに対して最初の処理を実行する時の管理状態
を示すもので、更新種とファイル上のレコードの有無に
よって「削」、「追」、r訂」、「集」、「エラー」の
状態が設定されている。これらの各状態において、 「削」 :削除を意味し、レコードなしの状態にする、 「追」:追加を意味し、レコードを新規に作成する、 r訂」:訂正を意味し、対象レコードのフィールドの値
にフィールドの内容を修正する、「集」:集計で対象レ
コードのフィールドの値を加算する、 ことを示している。
一レコードに対して最初の処理を実行する時の管理状態
を示すもので、更新種とファイル上のレコードの有無に
よって「削」、「追」、r訂」、「集」、「エラー」の
状態が設定されている。これらの各状態において、 「削」 :削除を意味し、レコードなしの状態にする、 「追」:追加を意味し、レコードを新規に作成する、 r訂」:訂正を意味し、対象レコードのフィールドの値
にフィールドの内容を修正する、「集」:集計で対象レ
コードのフィールドの値を加算する、 ことを示している。
また、更新種としては、■「削除」、■「追加」、■「
追加・訂正」、■「追加・集計」、■U訂正」、■「集
計」の6種類がある。
追加・訂正」、■「追加・集計」、■U訂正」、■「集
計」の6種類がある。
上記更新種は、更新用レコードの作成に際して次のよう
な使い分けを行なう。
な使い分けを行なう。
追加;該当キーのレコードがファイル内に無ければ追加
したいが、有れば更新の必要が無い場合。
したいが、有れば更新の必要が無い場合。
訂正、削除、集計:該当キーのレコードがファイル内に
有れば更新処理(訂正、削除、集計)したいが、無けれ
ば更新の必要が無い場合。
有れば更新処理(訂正、削除、集計)したいが、無けれ
ば更新の必要が無い場合。
追加・訂正、追加・集計:該当キーのレコードにより必
ず更新する必要が有る場合。
ず更新する必要が有る場合。
上記更新状態テーブルIにおいて、例えば今回の更新種
が「削除」の場合、ファイル上のレコードがあれば「削
除」、レコードが無ければ「エラー」として更新状態を
認識する。
が「削除」の場合、ファイル上のレコードがあれば「削
除」、レコードが無ければ「エラー」として更新状態を
認識する。
第2図(b)に示す更新状態テーブル■は、更新種と前
回の更新状態との関係を示している。同一レコードに対
して2回目以降の更新を行なう場合、前回のレコード状
態と今回の更新種によりレコード状態を認識するもので
、その際に更新状態テーブル■が使用される。なお、今
回の更新種が「削除」で、前回のレコード状態が「追」
、r訂」、「集」であること、及び今回の更新種が「追
加」で、前回のレコード状態が「訂」、「集」であるこ
とは、更新種が■「削除」■「追加」 ■「追加・訂正
」 ■「追加・集計」、■「訂正」、■「集計」の昇順
にソートされていることを前提としているために論理的
に有り得ないので、状態設定は行なっていない。
回の更新状態との関係を示している。同一レコードに対
して2回目以降の更新を行なう場合、前回のレコード状
態と今回の更新種によりレコード状態を認識するもので
、その際に更新状態テーブル■が使用される。なお、今
回の更新種が「削除」で、前回のレコード状態が「追」
、r訂」、「集」であること、及び今回の更新種が「追
加」で、前回のレコード状態が「訂」、「集」であるこ
とは、更新種が■「削除」■「追加」 ■「追加・訂正
」 ■「追加・集計」、■「訂正」、■「集計」の昇順
にソートされていることを前提としているために論理的
に有り得ないので、状態設定は行なっていない。
上記更新状態テーブル■において、今回の高新種が例え
ば「訂正」の場合、前回の更新状態が「削」であれば「
エラー」 それ以外であれば「訂正」として更新状態を
認識する。
ば「訂正」の場合、前回の更新状態が「削」であれば「
エラー」 それ以外であれば「訂正」として更新状態を
認識する。
また、レコード状態テーブル14には、第3図(a)、
(b)に示すレコード状態テーブルI。
(b)に示すレコード状態テーブルI。
■が設定される。
第3図(a)のレコード状態テーブルIは、同一ファイ
ルの同一レコードに対して最初の処理を実行する時のレ
コード状態を示すもので、上記6種の更新種とファイル
上のレコードの有無によってrDELJ rエラー
」、rRWTJ、rAPDJ状態が決定される。これら
の各状態において、 DEL:ファイル上のレコード削除、 エラー:は論理的矛盾発生、 RWT :ファイル上のレコード書替、APD :ファ
イルへのレコード追加、を示している。
ルの同一レコードに対して最初の処理を実行する時のレ
コード状態を示すもので、上記6種の更新種とファイル
上のレコードの有無によってrDELJ rエラー
」、rRWTJ、rAPDJ状態が決定される。これら
の各状態において、 DEL:ファイル上のレコード削除、 エラー:は論理的矛盾発生、 RWT :ファイル上のレコード書替、APD :ファ
イルへのレコード追加、を示している。
そして、第3図(b)に示すレコード状態テーブル■は
、更新種と前回のレコード状態との関係を示している。
、更新種と前回のレコード状態との関係を示している。
同一レコードに対して2回目以降の更新を行なう場合、
前回のレコード状態と今回の更新種によりレコード状態
を認識するもので、その際にレコード状態テーブル■が
使用される。
前回のレコード状態と今回の更新種によりレコード状態
を認識するもので、その際にレコード状態テーブル■が
使用される。
なお、今回の更新種が「削除」の場合、前回のレコード
状態がrAPDJ、rRWTJであることは、上記した
ように更新種によりソートされていることを前提として
いるために論理的に有り得ないので、状態設定は行なっ
ていない。
状態がrAPDJ、rRWTJであることは、上記した
ように更新種によりソートされていることを前提として
いるために論理的に有り得ないので、状態設定は行なっ
ていない。
更新状態管理メモリ21には、第4図に示すようにファ
イル識別子21a1対象レコードのレングス21b1対
象レコードのキーワード数21c。
イル識別子21a1対象レコードのレングス21b1対
象レコードのキーワード数21c。
対象レコードのレコード番号21d、更新状態21e、
レコード状態21fが、更新対象レコードの数だけ設定
される。上記ファイル識別子21aは更新対象ファイル
のオーブン時の識別子、対象レコードのレングス21b
はバックアップした更新対象レコードのレングス、対象
レコードのキーワード数21cは更新対象レコードのキ
ーワード数、対象レコードのレコード番号21dは更新
対象レコードの物理レコード番号を示している。
レコード状態21fが、更新対象レコードの数だけ設定
される。上記ファイル識別子21aは更新対象ファイル
のオーブン時の識別子、対象レコードのレングス21b
はバックアップした更新対象レコードのレングス、対象
レコードのキーワード数21cは更新対象レコードのキ
ーワード数、対象レコードのレコード番号21dは更新
対象レコードの物理レコード番号を示している。
また、更新状態21eは第2図における「削除」、「追
加」、「訂正」、「集計」の状態を示し、レコード状態
21fは第3図における更新レコードの状態モードを示
している。
加」、「訂正」、「集計」の状態を示し、レコード状態
21fは第3図における更新レコードの状態モードを示
している。
更新用レコードファイル16には、第5図に示すように
「ファイル名」、「更新種」、「キーワードK」、「デ
ータワードA」〜「データワードG」からなる更新用レ
コードが記憶される。
「ファイル名」、「更新種」、「キーワードK」、「デ
ータワードA」〜「データワードG」からなる更新用レ
コードが記憶される。
また、ソースファイル23には、第6図に示すように「
キーワードK」、「データワードA」〜「データワード
G」からなるソースレコードが記憶される。
キーワードK」、「データワードA」〜「データワード
G」からなるソースレコードが記憶される。
次に上記実施例の動作を説明する。
予め作成された更新用レコードは、更新用レコードファ
イル16に蓄えられている。そして、この更新用レコー
ドファイル16に蓄えられた更新用レコードにより、ソ
ースファイル23に対するファイル更新が行なわれる。
イル16に蓄えられている。そして、この更新用レコー
ドファイル16に蓄えられた更新用レコードにより、ソ
ースファイル23に対するファイル更新が行なわれる。
以下、このファイル更新の処理動作を第7図のフローチ
ャートに従って説明する。このフローチャートは、CP
UIIの制御に従って実行される。
ャートに従って説明する。このフローチャートは、CP
UIIの制御に従って実行される。
まず、更新用レコードファイル16に記憶されている更
新用レコードをキー分類別に、つまり、■「削除」、■
「追加」、■「追加・訂正」、■「追加・集計」、■「
訂正」、■「集計」の昇順にソートする(ステップAl
)。上記のソート処理は、ワークメモリ20を利用して
行なわれる。
新用レコードをキー分類別に、つまり、■「削除」、■
「追加」、■「追加・訂正」、■「追加・集計」、■「
訂正」、■「集計」の昇順にソートする(ステップAl
)。上記のソート処理は、ワークメモリ20を利用して
行なわれる。
このソート終了後、更新用レコードファイル16から更
新用レコードを更新用レコードレジスタ15に読出しく
ステップA2)、ソースファイル23上に該当するレコ
ードが存在するが否がを判断する(ステップA3)。そ
して、このファイル上のレコードの有無と今回の更新種
に基づいて、更新状態テーブル13及びレコード状態テ
ーブル14の内のテーブルI(第2図(a)、第3図(
a)参照)より、今回の更新状態、レコード状態を読出
しくステップA4)、エラーであるか否かを判別する(
ステップA5)。この場合、更新状態テーブル13及び
レコード状態テーブル14の何れにおいても、更新種が
「追加」であればレコード有りの状態、更新種が「削除
」、「訂正」、「集計」であればレコード無しの状態が
エラーとなる。
新用レコードを更新用レコードレジスタ15に読出しく
ステップA2)、ソースファイル23上に該当するレコ
ードが存在するが否がを判断する(ステップA3)。そ
して、このファイル上のレコードの有無と今回の更新種
に基づいて、更新状態テーブル13及びレコード状態テ
ーブル14の内のテーブルI(第2図(a)、第3図(
a)参照)より、今回の更新状態、レコード状態を読出
しくステップA4)、エラーであるか否かを判別する(
ステップA5)。この場合、更新状態テーブル13及び
レコード状態テーブル14の何れにおいても、更新種が
「追加」であればレコード有りの状態、更新種が「削除
」、「訂正」、「集計」であればレコード無しの状態が
エラーとなる。
上記ステップA5でエラーと判断された場合は、詳細を
後述するステップA6のエラー処理を実行し、エラーで
なければ上記更新状態を更新状態レジスタ17に、レコ
ード状態をレコード状態レジスタ18に記憶する(ステ
ップA7)。そして、上記更新用レコードレジスタ15
に保持している更新用レコード、更新状態レジスタ17
及びレコード状態レジスタ18の保持データから第4図
に示す更新状態管理レコードを作成し、更新状態管環メ
モリ21に記憶する(ステップA8)。
後述するステップA6のエラー処理を実行し、エラーで
なければ上記更新状態を更新状態レジスタ17に、レコ
ード状態をレコード状態レジスタ18に記憶する(ステ
ップA7)。そして、上記更新用レコードレジスタ15
に保持している更新用レコード、更新状態レジスタ17
及びレコード状態レジスタ18の保持データから第4図
に示す更新状態管理レコードを作成し、更新状態管環メ
モリ21に記憶する(ステップA8)。
更に、上記レコード状態レジスタ18に保持されている
レコード状態が「RWT (書替)」、rAPD(追加
)」、rDEL(削除)」の何れであるかを判別しくス
テップA9)、rRWTJであればステップAl01r
APDJであればステップA14、rDELJであれば
ステップA18の処理に進む。
レコード状態が「RWT (書替)」、rAPD(追加
)」、rDEL(削除)」の何れであるかを判別しくス
テップA9)、rRWTJであればステップAl01r
APDJであればステップA14、rDELJであれば
ステップA18の処理に進む。
上記レコード状態レジスタ18におけるレコード状態が
rRWTJでステップAIOに進んだ場合、ソースファ
イル23における更新対象ファイルの該当レコードを外
部からアクセスできないようにロックする。次いで上記
該当レコードをバックアップメモリ22に書き込んでバ
ックアップする(ステップA11)。その後、ソースフ
ァイル23から上記の該当レコードを更新用バッファ1
9に読出して、更新用レコードレジスタ15に保持して
いる更新用レコードにより修正する(ステップA12.
A13)。
rRWTJでステップAIOに進んだ場合、ソースファ
イル23における更新対象ファイルの該当レコードを外
部からアクセスできないようにロックする。次いで上記
該当レコードをバックアップメモリ22に書き込んでバ
ックアップする(ステップA11)。その後、ソースフ
ァイル23から上記の該当レコードを更新用バッファ1
9に読出して、更新用レコードレジスタ15に保持して
いる更新用レコードにより修正する(ステップA12.
A13)。
上記レコード状態レジスタ18におけるレコード状態が
rAPDJでステ・ツブA14に進んだ場合、ソースフ
ァイル23における対象ファイルを更新し、その該当レ
コードを口・ツクする(ステ、ツブA15)。次いで上
記該当レコードをノ<・ンクア・ノブメモリ22に書き
込んでバ・ソファ・ツブすると共に、その該当レコード
を更新用/く・ソファ19へ転送する(ステップAle
、 A17)。
rAPDJでステ・ツブA14に進んだ場合、ソースフ
ァイル23における対象ファイルを更新し、その該当レ
コードを口・ツクする(ステ、ツブA15)。次いで上
記該当レコードをノ<・ンクア・ノブメモリ22に書き
込んでバ・ソファ・ツブすると共に、その該当レコード
を更新用/く・ソファ19へ転送する(ステップAle
、 A17)。
上記レコード状態レジスタ18におけるレコード状態が
rDELJでステップA18に進んた場合、ソースファ
イル23における対象ファイルの該当レコードをロック
する。次いで上記該当レコードをバックアップメモリ2
2に書き込んでノ<・ツクアップすると共に、その該当
レコードを更新用ツク、ソファ19へ転送する(ステ・
ツブA20. A21)。
rDELJでステップA18に進んた場合、ソースファ
イル23における対象ファイルの該当レコードをロック
する。次いで上記該当レコードをバックアップメモリ2
2に書き込んでノ<・ツクアップすると共に、その該当
レコードを更新用ツク、ソファ19へ転送する(ステ・
ツブA20. A21)。
そして、上記ステップA13、A17、A20の処理を
終了すると、ステップA21に進んで更新用レコードフ
ァイル16から次の更新用レコードを更新用レコードレ
ジスタ15に読出し、前回と同一キーか否かを判別する
(ステ・ツブA22)。
終了すると、ステップA21に進んで更新用レコードフ
ァイル16から次の更新用レコードを更新用レコードレ
ジスタ15に読出し、前回と同一キーか否かを判別する
(ステ・ツブA22)。
前回と同一キーの場合は、前回の更新状態、レコード状
態に対する今回の更新種に基づいて、更新状態テーブル
13及びレコード状態テーブル14の内のテーブル■(
第2図(b)、第3図(b)参照)より、今回の更新状
態、レコード状態の読出しを行ない、エラーか否かをチ
エツクする。この場合、更新状態テーブル13では、前
回の更新状態が「削」で今回の更新種として「削除」、
「訂正」、「集計」が指定された時、及び前回の更新状
態が「追」で今回の更新種として「追加」が指定された
時にエラーとなる。また、レコード状態テーブル14で
は、前回の更新状態がrDELJで今回の更新種として
「削除」、「訂正」、「集計」が指定された時、前回の
更新状態がAPDJで今回の更新種として「追加」が指
定された時、前回の更新状態がrRWTJで今回の更新
種として「追加」が指定された時にエラーとなる。
態に対する今回の更新種に基づいて、更新状態テーブル
13及びレコード状態テーブル14の内のテーブル■(
第2図(b)、第3図(b)参照)より、今回の更新状
態、レコード状態の読出しを行ない、エラーか否かをチ
エツクする。この場合、更新状態テーブル13では、前
回の更新状態が「削」で今回の更新種として「削除」、
「訂正」、「集計」が指定された時、及び前回の更新状
態が「追」で今回の更新種として「追加」が指定された
時にエラーとなる。また、レコード状態テーブル14で
は、前回の更新状態がrDELJで今回の更新種として
「削除」、「訂正」、「集計」が指定された時、前回の
更新状態がAPDJで今回の更新種として「追加」が指
定された時、前回の更新状態がrRWTJで今回の更新
種として「追加」が指定された時にエラーとなる。
上記ステップA24でエラーと判断された場合は、エラ
ー処理(ステップAS)を実行し、エラーでなければ上
記更新状態テーブル13のテーブル■から読出した更新
状態を更新状態レジスタ17に、レコード状態テーブル
14のテーブル■から読出したレコード状態をレコード
状態レジスタ18に記憶する(ステップA25)。次い
で更新用バッファ19の内容を今回の更新用レコード及
び更新状態に基づいて更新する(ステップA26)。ま
た、上記更新用レコードレジスタ15に保持している更
新用レコード、更新状態レジスタ17及びレコード状態
レジスタ18の保持データから第4図に示す更新状態管
理レコードを作成し、更新状態管理メモリ21に記憶す
る(ステップA27)。
ー処理(ステップAS)を実行し、エラーでなければ上
記更新状態テーブル13のテーブル■から読出した更新
状態を更新状態レジスタ17に、レコード状態テーブル
14のテーブル■から読出したレコード状態をレコード
状態レジスタ18に記憶する(ステップA25)。次い
で更新用バッファ19の内容を今回の更新用レコード及
び更新状態に基づいて更新する(ステップA26)。ま
た、上記更新用レコードレジスタ15に保持している更
新用レコード、更新状態レジスタ17及びレコード状態
レジスタ18の保持データから第4図に示す更新状態管
理レコードを作成し、更新状態管理メモリ21に記憶す
る(ステップA27)。
その後、上記ステップA21に進んで更新用レコードフ
ァイル16から次の更新用レコードを更新用レコードレ
ジスタ15に読出し、前回と同一キーか否かを判別する
(ステップA22)。前回と同一キーの場合は、上記ス
テップA23〜A27の処理を繰り返し実行するが、同
一キーでない場合は更に更新用レコードファイル16に
次のレコードが有るか否かをチエツクする(ステップA
28)。
ァイル16から次の更新用レコードを更新用レコードレ
ジスタ15に読出し、前回と同一キーか否かを判別する
(ステップA22)。前回と同一キーの場合は、上記ス
テップA23〜A27の処理を繰り返し実行するが、同
一キーでない場合は更に更新用レコードファイル16に
次のレコードが有るか否かをチエツクする(ステップA
28)。
更新用レコードファイル]86に次のレコードがある場
合は、レコード状態レジスタ18の記憶内容から、現在
のレコード状態がrAPDJ、「RWT」、「DEL」
の何れであるかを判別する(ステップA29)。
合は、レコード状態レジスタ18の記憶内容から、現在
のレコード状態がrAPDJ、「RWT」、「DEL」
の何れであるかを判別する(ステップA29)。
レコード状態がrAPDJの場合は、更に更新状態レジ
スタ17により現在の更新状態が「追加」、「訂正」、
「集計」の何れであるかを判別しくステップA30)、
「訂正」あるいは「集計」であれば更新用バッファ19
に保持されている内容をソースファイル23に書き込み
(ステップ八31) 該当レコードをロックする(ス
テップA32)。また、上記ステップA29おいて現在
のレコード状態が「RWTJであると判別された場合も
上記ステップA3L、A32の処理を実行する。
スタ17により現在の更新状態が「追加」、「訂正」、
「集計」の何れであるかを判別しくステップA30)、
「訂正」あるいは「集計」であれば更新用バッファ19
に保持されている内容をソースファイル23に書き込み
(ステップ八31) 該当レコードをロックする(ス
テップA32)。また、上記ステップA29おいて現在
のレコード状態が「RWTJであると判別された場合も
上記ステップA3L、A32の処理を実行する。
そして、上記ステップA32の処理を終了した場合、ス
テップA30で現在の更新状態が「追加」であると判別
された場合、ステップA29で現在のレコード状態が「
DELJであると判別された場合は、ステップA3に戻
り、更新用レコードレジスタ15に保持されている更新
用レコードに従って上記した処理を繰り返して実行する
。
テップA30で現在の更新状態が「追加」であると判別
された場合、ステップA29で現在のレコード状態が「
DELJであると判別された場合は、ステップA3に戻
り、更新用レコードレジスタ15に保持されている更新
用レコードに従って上記した処理を繰り返して実行する
。
上記した処理により更新用レコードファイル16に保持
されている更新用レコードか全て読出され、ステップA
2gにおいて更新用レコードファイル16には次のレコ
ードが記憶されていないと判断されると、ステップA3
3に進んで更新状態管理メモリ21から先頭レコードを
ワークメモリ20に読出し、そのレコード状態がrDE
LJであるか、またはrAPDJ、「RWT」であるか
を判別する(ステップA34)。
されている更新用レコードか全て読出され、ステップA
2gにおいて更新用レコードファイル16には次のレコ
ードが記憶されていないと判断されると、ステップA3
3に進んで更新状態管理メモリ21から先頭レコードを
ワークメモリ20に読出し、そのレコード状態がrDE
LJであるか、またはrAPDJ、「RWT」であるか
を判別する(ステップA34)。
レコード状態が「DEL」の場合は、該当レコードをソ
ースファイル23から削除する。このステップA35の
処理を終了した場合、あるいは上記ステップA34でレ
コード状態がrADDJまたはrRWTJであると判別
された場合は、ステップA3Bに進んで、更新状態管理
メモリ21からのレコード読出しを全て終了したか否か
をチエツクし、終了していなければ更新状態管理メモリ
21から次のレコードをワークメモリ20に読出しくス
テップA37)、その後、ステップA34に戻って同様
の処理を繰り返して実行する。そして、上記更新状態管
理メモリ21に記憶されているレコードに対する処理を
全て終了すると、ステ・ツブA36よりステップA38
に進んでソースファイル23における全レコードのロッ
クを解除し、ファイル更新処理を終了する。
ースファイル23から削除する。このステップA35の
処理を終了した場合、あるいは上記ステップA34でレ
コード状態がrADDJまたはrRWTJであると判別
された場合は、ステップA3Bに進んで、更新状態管理
メモリ21からのレコード読出しを全て終了したか否か
をチエツクし、終了していなければ更新状態管理メモリ
21から次のレコードをワークメモリ20に読出しくス
テップA37)、その後、ステップA34に戻って同様
の処理を繰り返して実行する。そして、上記更新状態管
理メモリ21に記憶されているレコードに対する処理を
全て終了すると、ステ・ツブA36よりステップA38
に進んでソースファイル23における全レコードのロッ
クを解除し、ファイル更新処理を終了する。
次に上記ステップA6のエラー処理の詳細を第8図のフ
ローチャートに従って説明する。
ローチャートに従って説明する。
このエラー処理では、まず、更新状態管理メモリ21か
ら先頭レコードをワークメモリ2゜に読出しくステップ
Bl) レコード状態がrRWTJ、rAPDJ、r
DELJの何れであるかを判別しくステップB2)、r
RWTJであればステップB3、「APD」であればス
テップB6、rDELJであればステップB8の処理に
進む。
ら先頭レコードをワークメモリ2゜に読出しくステップ
Bl) レコード状態がrRWTJ、rAPDJ、r
DELJの何れであるかを判別しくステップB2)、r
RWTJであればステップB3、「APD」であればス
テップB6、rDELJであればステップB8の処理に
進む。
上記レコード状態がrRWTJでステップB3に進んだ
場合、バックアップメモリ22がら該当キーの更新前の
レコードを読出し、ソースファイル23の該当レコード
を更新前の状態に書替え(ステップB4)、該当レコー
ドのロックを解除する。
場合、バックアップメモリ22がら該当キーの更新前の
レコードを読出し、ソースファイル23の該当レコード
を更新前の状態に書替え(ステップB4)、該当レコー
ドのロックを解除する。
また、上記レコード状態がrAPDJでステップB6に
進んだ場合、バックアップメモリ22から対応するレコ
ードのキーを読出し、ソースファイル23の該当するキ
ーのレコードを削除する(ステップB7)。
進んだ場合、バックアップメモリ22から対応するレコ
ードのキーを読出し、ソースファイル23の該当するキ
ーのレコードを削除する(ステップB7)。
また、上記レコード状態がrDELJでステップB8に
進んだ場合、バックアップメモリ22から対応するレコ
ードのキーを読出し、ソースファイル23の該当するキ
ーのレコードのロックを解除する(ステップB7)。
進んだ場合、バックアップメモリ22から対応するレコ
ードのキーを読出し、ソースファイル23の該当するキ
ーのレコードのロックを解除する(ステップB7)。
上記ステップB5、B7、B9の何れtXの処理を終了
すると、更新状態管理メモリ21からのレコード読出し
を全て終了したか否かを判断しくステップBIO)、レ
コード読出しか終了していなければ、更新状態管理メモ
リ21から次のレコードをワークメモリ20に読出しく
ステップB11)、その後、ステップB2に戻ってレコ
ード状態を判別し、その判別結果に従って上記した処理
を実行する。
すると、更新状態管理メモリ21からのレコード読出し
を全て終了したか否かを判断しくステップBIO)、レ
コード読出しか終了していなければ、更新状態管理メモ
リ21から次のレコードをワークメモリ20に読出しく
ステップB11)、その後、ステップB2に戻ってレコ
ード状態を判別し、その判別結果に従って上記した処理
を実行する。
そして、上記更新状態管理メモリ21に記憶されている
レコードに対する処理を全て終了すると、その状態がス
テップBIOにより判別されてエラー処理を終了する。
レコードに対する処理を全て終了すると、その状態がス
テップBIOにより判別されてエラー処理を終了する。
[発明の効果]
以上詳記したように本発明によれば、ファイル更新時に
更新前のレコード状態をレコード単位で保持しておき、
エラーが発生した場合には、上記各レコード状態を判別
してファイルを自動的に復旧させるようにしたので、エ
ラーが発生してもユーザーは復旧操作を行なうことなく
、その復旧処理を自動的に、かつ、高速で実行させるこ
とができる。
更新前のレコード状態をレコード単位で保持しておき、
エラーが発生した場合には、上記各レコード状態を判別
してファイルを自動的に復旧させるようにしたので、エ
ラーが発生してもユーザーは復旧操作を行なうことなく
、その復旧処理を自動的に、かつ、高速で実行させるこ
とができる。
第1図は本発明の一実施例によるファイル更新装置の回
路構成を示すブロック図、第2図(a)。 (b)は更新状態テーブルの設定内容を示す図、第3図
(a)、(b)はレコード状態テーブルの設定内容を示
す図、第4図は更新状態管理メモリの記憶構成を示す図
、第5図は更新用【ノコードファイルのレコード形態を
示す図、第6図はソースファイルのレコード形態を示す
図、第7図はファイル更新処理を示すフローチャート、
第8図はエラー処理を示すフローチャートである。 11・・・CPU、12・・・パスライン、13・・・
更新状態テーブル、14・・・レコード状態テーブル、
15・・・更新用レコードレジスタ、16・・・更新用
レコードファイル、17・・・更新状態レジスタ、18
・・・レコード状態レジスタ、19・・・更新用バッフ
ァ、20・・・ワークメモリ、21・・・更新状態管理
メモリ、22・・・バックアップメモリ、23・・・ソ
ースファイル。
路構成を示すブロック図、第2図(a)。 (b)は更新状態テーブルの設定内容を示す図、第3図
(a)、(b)はレコード状態テーブルの設定内容を示
す図、第4図は更新状態管理メモリの記憶構成を示す図
、第5図は更新用【ノコードファイルのレコード形態を
示す図、第6図はソースファイルのレコード形態を示す
図、第7図はファイル更新処理を示すフローチャート、
第8図はエラー処理を示すフローチャートである。 11・・・CPU、12・・・パスライン、13・・・
更新状態テーブル、14・・・レコード状態テーブル、
15・・・更新用レコードレジスタ、16・・・更新用
レコードファイル、17・・・更新状態レジスタ、18
・・・レコード状態レジスタ、19・・・更新用バッフ
ァ、20・・・ワークメモリ、21・・・更新状態管理
メモリ、22・・・バックアップメモリ、23・・・ソ
ースファイル。
Claims (1)
- 【特許請求の範囲】 更新用レコードによるファイル更新時、更新前のレコー
ドを別途保存した上で、レコード単位で指示された更新
種に応じてファイル更新を行なうファイル更新手段と、 上記ファイル更新時、各更新レコードに対応して そのレコードが更新前のファイルに存在してファイルか
ら削除すべきものなのか、 そのレコードが更新前のファイルに存在して書替えられ
たものなのか、 そのレコードが更新前のファイルに存在せず、追加され
たものなのか、 の何れかの状態を保持する状態保持手段と、ファイル復
旧時、更新済みの各レコード状態を判別し、 追加状態であれば、そのレコードを削除して、この追加
状態を解除し、 書替状態であれば、更新時に保持された更新前のレコー
ドに書替えて、この書替状態を解除し、削除状態であれ
ば、この削除状態を解除する状態解除手段とを具備した
ことを特徴とするファイル更新装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2152673A JPH0447428A (ja) | 1990-06-13 | 1990-06-13 | ファイル更新装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2152673A JPH0447428A (ja) | 1990-06-13 | 1990-06-13 | ファイル更新装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0447428A true JPH0447428A (ja) | 1992-02-17 |
Family
ID=15545607
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2152673A Pending JPH0447428A (ja) | 1990-06-13 | 1990-06-13 | ファイル更新装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0447428A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5575783A (en) * | 1992-09-28 | 1996-11-19 | The Procter & Gamble Company | Absorbent article with dynamic elastic feature comprising elasticized hip panels |
| US5669896A (en) * | 1994-06-16 | 1997-09-23 | Kimberly-Clark Worldwide, Inc. | Absorbent garment comprising dual containment flaps |
-
1990
- 1990-06-13 JP JP2152673A patent/JPH0447428A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5575783A (en) * | 1992-09-28 | 1996-11-19 | The Procter & Gamble Company | Absorbent article with dynamic elastic feature comprising elasticized hip panels |
| US5669896A (en) * | 1994-06-16 | 1997-09-23 | Kimberly-Clark Worldwide, Inc. | Absorbent garment comprising dual containment flaps |
| US5824172A (en) * | 1994-06-16 | 1998-10-20 | Kimberly-Clark Worldwide, Inc. | Method of making an absorbent garment comprising dual containment flaps |
| US6110158A (en) * | 1994-06-16 | 2000-08-29 | Kimberly-Clark Worldwide, Inc. | Absorbent garment comprising dual containment flaps |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111316245B (zh) | 使用完全水合备份还原数据库 | |
| CA2626227C (en) | Apparatus and method for creating a real time database replica | |
| JP3856855B2 (ja) | 差分バックアップ方式 | |
| US6898688B2 (en) | Data management appliance | |
| EP1461700B1 (en) | Appliance for management of data replication | |
| US7340645B1 (en) | Data management with virtual recovery mapping and backward moves | |
| US6938056B2 (en) | System and method for restoring a file system from backups in the presence of deletions | |
| US10235375B1 (en) | Persistent file system objects for management of databases | |
| US8504528B2 (en) | Duplicate backup data identification and consolidation | |
| US10642696B2 (en) | Copying compressed pages without uncompressing the compressed pages | |
| US20060200698A1 (en) | Information replication system mounting partial database replications | |
| US20030131253A1 (en) | Data management appliance | |
| JPH01261746A (ja) | データベースを回復する方法 | |
| US7290100B2 (en) | Computer system for managing data transfer between storage sub-systems | |
| US20020065834A1 (en) | Maintenance of data integrity during transfer among computer networks | |
| JPH11134235A (ja) | 外部記憶装置故障時の回復支援方法 | |
| US10671488B2 (en) | Database in-memory protection system | |
| JPH0447428A (ja) | ファイル更新装置 | |
| CN109325005B (zh) | 一种数据处理方法和电子设备 | |
| JP3220182B2 (ja) | ファイル複写装置 | |
| JPH09274581A (ja) | データバックアップ方法 | |
| JPH0447427A (ja) | ファイル更新装置 | |
| JPH0322152A (ja) | ファイル復元方式 | |
| JPH01140353A (ja) | データベースのデータ保全方式 | |
| JP2001337857A (ja) | データベース復旧システム |