JP4048037B2 - データ書出プログラムおよび記録媒体 - Google Patents
データ書出プログラムおよび記録媒体 Download PDFInfo
- Publication number
- JP4048037B2 JP4048037B2 JP2001166142A JP2001166142A JP4048037B2 JP 4048037 B2 JP4048037 B2 JP 4048037B2 JP 2001166142 A JP2001166142 A JP 2001166142A JP 2001166142 A JP2001166142 A JP 2001166142A JP 4048037 B2 JP4048037 B2 JP 4048037B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- record
- output
- task
- file
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、順データを格納したレコードを分類して振り分けて該当出力ファイルに書き出すデータ書出プログラムおよび記録媒体に関するものである。
【0002】
【従来の技術】
従来、他の処理から受け取った多量の順データをキーにより分類し複数の出力ファイルに出力する場合、タスクを複数用意してこれらタスクがそれぞれの出力ファイルにデータを出力(格納)するようにしていた。
【0003】
このため、出力中に何等かの原因によりシステムダウンなどの異常が発生すると、異常の復旧後に、全ての処理をやり直していた。
【0004】
【発明が解決しようとする課題】
上述したように従来の多量の順データをキーにより分類して多数のタスクがそれぞれ並列に該当出力ファイルに出力して途中に異常が発生した場合、システムの復旧後に最初から全て多量のデータについて再試行していたため、当該再試行に非常に多くの時間が必要となってしまうと共に、以前のデータがあると2重書出みを行ってしまうなどの問題があった。
【0005】
本発明は、これらの問題を解決するため、多量のレコードをキーで振り分けて複数のタスクが出力ファイルにそれぞれ書き出す際に、複数のタスクのレコード書出の同期化を行って同期レコード番号を記憶すると共に各タスクで書出完了レコード番号を記憶しておき、異常発生して復旧したときに同期レコード番号の次から振分を再開すると共に各タスクは書出完了レコード番号の次から書出を再開し、多量レコードの分類振分および書出時に異常が発生して復旧したときに二重分類振分および二重書出を抑止して短時間で分類振分処理および書出処理を再開して続行することを目的としている。
【0006】
【課題を解決するための手段】
図1を参照して課題を解決するための手段を説明する。
図1において、入力ファイル(入力データ)1は、本願発明の分類振分対象となる順データであって、ここでは、レコードに分類用のキーと、例えばシーケンシャルなレコード番号と、実際のデータとから構成されるものである。
【0007】
データ振分手段2は、取り込んだレコードのキーについて、分類定義テーブル3を参照して振分先のタスク6に渡したり、所定のレコード数を処理したときあるいは指定されたときに同期要求レコードを全てのタスク6に渡したり、全タスク6から応答があったときに同期レコード番号を記憶域に記憶したり、分類振分処理中などに異常発生して復旧したときに記憶域中の同期レコード番号8の次のレコード番号から取り込んで分類振分を再開したりなどするものである。
【0008】
分類定義テーブル3は、キーに対応づけて出力するタスクあるいは出力ファイルを設定するものである。
同期レコード番号8は、同期化したレコード番号を記憶域(データ書出管理ファイル7)に記憶したものである。
【0009】
タスク6は、レコードを出力ファイル11に書き出したり、レコードが同期要求レコードであったときに応答をデータ振分手段2に返したりなどするものである。
【0010】
次に、動作を説明する。
データ振分手段2が入力されたレコード中のキーをもとに分類定義テーブル3を参照して該当タスク6に渡す、あるいは該当出力ファイル11にレコードを出力するタスク6に渡すと共に、所定のレコード数を処理したとき、あるいは指定されたときに同期要求レコードを全てのタスク6に渡し、全タスク6から応答があったときに記憶域に同期レコード番号を記憶し、タスク6が振分手段2から渡されたレコードを出力ファイル11に書き出すと共に、渡されたレコードが同期要求レコードであったときに応答をデータ振分手段2に返すようにしている。
【0011】
この際、データ振分手段2およびタスク6を含むシステムに異常発生して復旧したときに、データ振分手段2が記憶域に記憶されている同期レコード番号の次のレコードから振分処理を再開するようにしている。
【0012】
また、タスク6が渡されたレコードを出力ファイル11に書出完了したときに完了レコード番号を記憶しておき、異常発生して復旧したときに、各タスク6が渡されたレコードのうち、記憶しておいた完了レコード番号の次の番号のレコードから出力ファイル11への書き出しを再開するようにしている。
【0013】
従って、多量のレコードをキーで振り分けて複数のタスク6が出力ファイル11にそれぞれ書き出す際に、複数のタスク6のレコード書出の同期化を行って同期レコード番号を記憶すると共に各タスク6で書出完了レコード番号を記憶しておき、異常発生して復旧したときに同期レコード番号の次から振分を再開すると共に各タスク6は書出完了レコード番号の次から書出を再開することにより、多量レコードの分類振分および書出時に異常が発生して復旧したときに二重分類振分および二重書出を抑止して短時間で分類振分処理および書出処理を再開して続行することが可能となる。
【0014】
【発明の実施の形態】
次に、図1から図10を用いて本発明の実施の形態および動作を順次詳細に説明する。
【0015】
図1は、本発明のシステム構成図を示す。
図1において、入力ファイル(入力データ)1は、本願発明の振分対象となる順データであって、ここでは、図示のようにレコードに分類用のキー(図示の「キーA」など)と、例えばシーケンシャルなレコード番号(「レコード1」など)と、実際のデータ(例えばデータ「A」,「B」など)とから構成されるものである。
【0016】
データ振分手段2は、取り込んだレコードのキーについて、分類定義テーブル3を参照して振分先のタスク6に渡したり、所定のレコード数(同期インターバルとして設定されたレコード数)を処理したときあるいは指定されたときに同期要求レコードを全てのタスク6に渡したり、全タスク6から応答があったときに記憶域(データ書出管理ファイル7)に同期レコード番号(同期レコード番号)を記憶したり、振分処理中に異常発生して復旧したときに記憶域(データ書出管理ファイル7)中の同期レコード番号8の次のレコード番号から取り込んで振分処理を再開したりなどするものである(図2を用いて後述する)。
【0017】
分類定義テーブル3は、キーに対応づけて出力するタスク(処理タスク)6および出力ファイル11を設定するものである。
同期テーブル4は、データ振分手段2が同期化するときに使用するテーブルであって、ここでは、図示の下記の情報を設定して管理するものである。
【0018】
・同期インターバル:
・同期カウンタ:
・タスク(1)(タスク1から応答のあった同期レコード番号を設定するフィールド):
・タスク(2)(タスク2から応答のあった同期レコード番号を設定するフィールド):
・タスク(3)(タスク3から応答のあった同期レコード番号を設定するフィールド):
・その他:
ここで、同期インターバルはデータ振分手段2がここに設定されたレコード数だけ取り込んで振分処理を実行したとき、図では3つのレコードの振分処理を実行したときに、同期要求レコードを全タスク6に渡すという、インターバルを設定するものである。同期要求レコードを渡された各タスク6は、渡されたレコードを順番に出力ファイル11に書出処理を実行し、同期要求レコードを処理する段階になったときにデータ振分手段2に応答を返すので、当該応答を受け取ったデータ振分手段2がタスク(1)、(2)、(3)などの該当するフィールドに受け取ったレコード番号を設定し、全タスクのフィールドに設定されたときに同期完了とし、データ書出管理ファイル7の同期レコード番号8として書き込んで記憶させる。
【0019】
データ書出手段5は、データ振分手段2から渡されたレコードを順番に出力ファイル11に書き出したりなどするものであって、タスク(1)6、タスク(2)6、タスク(3)6などから構成されるものである。
【0020】
タスク(1)6、タスク(2)6、タスク(3)6などは、データ振分手段2から渡されたレコードを該当する出力ファイル11に書き出したり、書出を完了したときにデータ書出管理ファイル7中の該当処理済データ位置9に書出完了レコード番号をそれぞれ書き込んで記憶させたり、同期要求レコードのときに応答をデータ振分手段2に返送したり、異常発生して復旧したときに渡されたレコードについて、データ書出管理ファイル7の自己の処理済データ位置9から読み出した書出完了レコード番号の次のレコード番号から出力ファイル11への書出を再開したりなどするものである。
【0021】
データ書出管理ファイル7は、同期レコード番号8および各タスク6の処理済データ位置(書出完了レコード番号)を書き込んで記憶するものである。
同期レコード番号8は、データ振分手段2が同期インターバルとなったレコード数を振分処理したときに、同期要求レコードを全タスク6に渡してその応答が全てのタスク6からあったときに同期完了した当該同期レコード番号8を設定したものである。データ振分手段2やタスク6などに異常発生して復旧したときに、データ振分手段2は当該同期レコード番号8を取り出して、当該同期レコード番号の次の番号のレコードから振分処理を再開し、最初から全レコードについて処理を再開することなく、短時間に復旧処理を行うことが可能となる。
【0022】
処理済データ位置9は、各タスクで出力ファイル11に書出を完了した最終のレコード番号を書き込んで記憶するものである。データ振分手段2やタスク6などに異常発生して復旧したときに、データ振分手段2は既述した同期レコード番号の次の番号のレコードから各タスク6に渡してくるので、各タスク6では自己の処理済データ位置9に記憶されている最終の書出完了レコードの次の番号のレコード番号から出力ファイル11への書出を再開する。これにより、書出完了レコードの番号と同一および以前の番号のレコードについては、出力ファイル11への書き出しを抑止して二重書出みを防止すると共に、無駄な書出処理を抑止して迅速に復旧を行うことが可能となる。
【0023】
出力ファイル11は、タスクがレコードを書き出す出力ファイルである。
次に、図2のフローチャートの順番に従い、図1の構成の動作を図3から図6を用いて順次詳細に説明する。
【0024】
図2は、本発明の動作説明フローチャートを示す。
図2において、S1は、入力ファイルより入力データを読み込む。これは、後述する図3中のS1と記載した矢印で示すように、データ振分手段2が、入力ファイル1からレコードを1つ読み込む。
【0025】
S2は、分類定義テーブル3に従い入力データを渡すデータ書出手段5のタスク6を決定する。これは、図3中のS2の点線の矢印で示すように、データ振分手段2がS1で読み込んだ1つのレコード中のキーをもとに、分類定義テーブル3を参照してレコードを渡すデータ書出手段5のタスク6を決定する。
【0026】
S3は、入力データを渡すデータ書出手段5のタスク6にデータ書き出し依頼メッセージを送信する。これは、図3中のS3に示すように、分類定義テーブル3に従いデータ書き出し依頼のメッセージを、該当タスク6に送信する。
【0027】
S4は、同期テーブル4の同期カウンタを+1する。これは、図3中のS4の矢印で示すように、同期テーブル4中の同期カウンタの値を+1する。
S5は、同期インターバル=同期テーブル4の同期カウンタ+1か判別する。これは、データ振分手段2が振分処理したレコード数の設定されている同期テーブル中の同期カウンタの値+1が、同期インターバルに設定されている値(ここでは、3)と等しいか判別する。YESの場合には、同期化する必要があると判明したので、S6とS7で同期化を行う。一方、NOの場合には、同期化する必要が今回のレコードの振分処理では必要がないと判明したので、S6、S7をスキップしてS8に進む。
【0028】
S6は、S5のYESで同期化必要と判明したので、全タスク6に同期要求メッセージを送信する。後述する図4中のS6で示すように、ここでは、全タスク(1)から(3)に同期要求メッセージを送信する。
【0029】
S7は、同期テーブル4の同期カウンタ=0にする。これは、図4中のS7に示すように、同期テーブル4中の同期カウンタ=0とリセットする。
S8は、タスクのメッセージ受信する(No Waitモード)。これは、図5のS8に示すように、データ振分手段2が、S6で送信した同期要求メッセージに対する、タスク6からの応答メッセージの受信を待機する。
【0030】
S9は、メッセージ無しか判別する。YESの場合には、S1に戻り繰り返す。NOの場合には、S10に進む。
S10は、同期応答メッセージか判別する。YESの場合には、S11に進む。NOの場合には、S8に戻り繰り返す。
【0031】
S11は、S10のYESで同期応答メッセージを受信したと判明したので、同期テーブル4の該当タスクに対応するタスクフィールド=通知されたレコード番号を設定する。これは、例えば図5のS11に示すように、ここでは、データ振分手段2がタスク(3)から同期応答メッセージ(レコード3)を受信し、同期テーブル4の該当するタスク(3)のフィールドに、受信した同期応答メッセージ中の同期レコード番号(レコード3)を図示のように設定する。
【0032】
S12は、Loop(全タスクフィールド)を行う。
S13は、タスクフィールド<通知されたレコード番号か判別する。YESの場合には、S8に戻り繰り返す。NOの場合には、S12に戻り次のタスクフィールドについて順にS13を繰り返し、全てがNOとなったときにS14に進む(図6の同期テーブル4のタスク(1)、(2)、(3)のフィールドに示すように、レコード3(同期レコード番号=3)が全て設定された場合には、S14に進む)。
【0033】
S14は、トランザクション開始する。
S15は、データ書出管理ファイル7の同期レコード番号=通知されたレコード番号を設定する。例えば図6のデータ書出管理ファイル7の同期レコード番号8のフィールドに通知されたレコード番号(同期レコード番号=3)をここでは設定し、記憶する。
【0034】
S16は、トランザクション終了し、S8に進む。
以上のように、データ振分手段2が読み込んだレコード(入力データ)中のキーをもとに分類定義テーブル3を参照して振分先のタスク6に依頼メッセージを送信し、同期カウンタの値を+1して同期インターバルの値に等しくなったときに同期要求メッセージを全てのタスク6に送信し、全てのタスク6から同期完了応答があったときに同期レコード番号8に同期レコード番号を設定して記憶すると共に、各タスク6が通知されたレコードを出力ファイル11に書き出して完了したときに処理済レコード番号9にタスク毎に書出完了レコード番号を設定して記憶することが可能となる。そして、異常発生して復旧したときに、後述するように、同期レコード番号8に設定されている同期レコード番号の次のレコード番号からデータ振分手段2がレコードを読み込んで振分処理を再開すると共に、依頼メッセージを受信した各タスク6は処理済レコード番号9に設定されている書出完了レコード番号の次の番号のレコードから出力ファイル11に書出を再開することが可能となり、二重振分処理や二重書出処理を抑止して無駄な処理を無くし、短時間に振分処理と書出処理を再開して続行することが可能となる。
【0035】
図3から図6は、本発明の説明図を示す。これら図3から図6は、レコードの振分、同期化、書出処理などを説明するものである。ここで、入力データ1、データ振分手段2、分類定義テーブル3、同期テーブル4、データ書出手段5、タスク6、データ書出管理ファイル7、同期レコード番号8、処理済データ位置9、出力ファイル11は、既述した図1の同一番号のものと同一であるので説明を省略する。
【0036】
図3は、本発明の説明図(その1)を示す。図中のS1、S2、S3、S4は、既述した図2のS1、S2、S3、S4の処理の例を示す。
(1)データ振分手段2は、入力データ1から1レコードを読み込む(S1)。
【0037】
(2)データ振分手段2は、(1)で読み込んだレコード中のキーをもとに、分類定義テーブル3を参照して振分先のタスク(処理タスク)6を決定する(S2)。
【0038】
(3)データ振分手段2は、(2)で決定した振分先のタスク6に依頼メッセージを送信する(S3)。
(4)データ振分手段2は、(3)でレコードの依頼メッセージを送信した後、レコードの処理済をカウントするために、同期カウンタの値を+1して更新する(S4)。
【0039】
また、図示の状態では、タスク(1)にはレコード1、レコード2がキューにキューイングされて書出処理を待ち、タスク(2)にはレコード1がキューにキューイングされて書出処理を待ち、タスク(3)にはレコード3がキューにキューイングされて書出処理を待っている。
【0040】
図4は、本発明の説明図(その2)を示す。
(5)データ振分手段2が同期カウンタの値=3が、同期インターバル=3に到達したと検出したため、同期要求メッセージを全タスクに送信する(S5のYES,S6)。
【0041】
(6)(5)で同期要求メッセージを送信した後、同期カウンタをリセットする(S7)。
また、図示の状態では、タスク(1)にはレコード3(同期要求メッセージ)、レコード2がキューにキューイングされて処理を待ち、タスク(2)にはレコード3(同期要求メッセージ)、レコード1がキューにキューイングされて処理を待ち、タスク(3)にはレコード3(同期要求メッセージ)がキューにキューイングされて処理を待っている。処理済レコード番号9には、出力ファイル1にはレコード1(書出完了レコード番号)が設定され、出力ファイル2に0(初期状態のまま)が設定され、出力ファイル3にはレコード3が設定されている。
【0042】
図5は、本発明の説明図(その3)を示す。
(7)データ振分手段2がタスク(3)から同期完了応答メッセージ(同期完了レコード3)を受信し、同期テーブル4のタスク(3)のフィールドに設定する(S8、S11)。
【0043】
また、図示の状態では、タスク(1)にはレコード3(同期要求メッセージ)、レコード2がキューにキューイングされて処理を待ち、タスク(2)にはレコード3(同期要求メッセージ)がキューにキューイングされて処理を待ちかつレコード1のデータが出力ファイル11に書出最中であり、タスク(3)はレコード3(同期要求メッセージ)に対する同期応答を送信完了し状態にある。処理済レコード番号9には、出力ファイル1にはレコード1(書出完了レコード番号)が設定され、出力ファイル2にはレコード1が設定され、出力ファイル3にはレコード3が設定されている。
【0044】
以上の図5では、タスク(3)のみが同期完了し、同期テーブル4のタスク(3)のフィールドに同期レコード番号=3が設定され、他のタスク(1)、(2)は未だ同期完了していなく、処理中である。
【0045】
図6は、本発明の説明図(その4)を示す。
(8)データ振分手段2が、(7)に続けて、タスク(1)、(2)からも同期完了応答メッセージ(同期完了レコード3)を受信し、同期テーブル4のタスク(1)、(2)のフィールドにそれぞれ設定する(S8、S11)。
【0046】
(9)(8)で全タスク(1)、(2)、(3)から同期完了を受信してフィールドにそれぞれ、ここでは、レコード3(同期レコード番号)が設定されたと判明したので、同期レコード番号8のフィールドにレコード3(全てのタスクの同期完了レコード)を設定する(S15)。
【0047】
また、図示の状態では、タスク(1)にはレコード4がキューにキューイングされて処理を待ち、タスク(2)、(3)にはレコードがキューにキューイングされていない。処理済レコード番号9には、出力ファイル1にはレコード2(書出完了レコード番号)が設定され、出力ファイル2にはレコード1が設定され、出力ファイル3にはレコード3が設定されている。
【0048】
以上の図6では、全タスク(1)、(2)、(3)が同期応答をデータ振分手段2に応答し、同期化が完了したので、同期レコード番号8のフィールドに同期レコード番号=レコード3が設定されている。当該同期レコード番号=レコード3が設定された以降で異常発生して復旧したときは、データ振分手段2は当該設定されている同期レコード番号=レコード3の次の番号のレコードから読み込んで振分けて該当タスク6に依頼する。一方、依頼を受けたタスク6は処理済レコード番号のフィールドに設定されている自己用の書出完了レコード、例えば出力ファイル1に書出処理するタスク(1)はレコード2(書出完了レコード番号)の次の番号のレコード番号から出力ファイル11への書出を再開し、同一およびそれ以前の番号のレコードについては書出処理をしなく、二重書出を抑止し短時間に書出処理を再開することが可能となる。
【0049】
図7は、本発明の動作説明フローチャートを示す。
図7の(a)は、S21は、自タスクのメッセージ受信する。
S22は、データ書き出し依頼か判別する。YESの場合には、S23でデータ書き出し処理(後述する図7の(b)のS31からS34)を実行したらS21に戻る。一方、NOの場合には、受信したメッセージが、書き出し要求のメッセージでないと判明したので、S24に進む。
【0050】
S24は、同期要求か判別する。YESの場合には、S25で同期処理(後述する図7の(c)のS41)を実行したらS21に戻る。一方、NOの場合には、同期処理でもないと判明したので、ここでは、そのままS21に戻り繰り返す。
【0051】
以上のS21からS25によって、メッセージを受信した各タスク6は、データ書き出し要求メッセージを受信したときは書き出し処理(図7の(b))を実行し、同期要求メッセージを受信したときは同期処理(図7の(c))を実行したり、メッセージの種類に応じた適切な処理を実行することが可能となる。
【0052】
図7の(b)は、データ書き出し処理のフローチャートを示す。
図7の(b)において、S31は、トランザクション開始する。
S32は、出力ファイルにデータ出力する。これは、図8の例えばタスク(1)がトランザクション開始し、データ出力して出力ファイル11に書き出す。
【0053】
S33は、データ書出管理ファイル7の処理済レコード番号9の該当出力ファイルのフィールドに書出完了レコード番号を設定する(例えばレコード1を設定する)。
【0054】
S34は、トランザクション終了する。
以上のS31からS34によって、後述する図8の例えばタスク(1)は、データ出力して出力ファイル11にデータを書き出した後、データ管理ファイル7の処理済レコード番号9の出力ファイル1のフィールドにレコード1(書出完了レコード番号)を設定する。これにより、異常発生して復旧したときに当該設定した書出完了レコード(ここでは、レコード1)の次の番号のレコード番号から出力ファイル1への書き出しを再開して二重書き出しを抑止し、短時間に書き出し処理を再開することが可能となる。
【0055】
図7の(c)は、同期処理フローチャートを示す。
図7の(c)において、S41は、データ振分手段に同期応答メッセージを送信する。これは、タスク6がキューから取り出したメッセージが同期要求メッセージの場合に(図7の(a)のS24のYESの場合に)、同期応答メッセージ(データ振分手段2から通知された同期要求レコード番号を設定したメッセージ)をデータ振分手段2に返信する。これにより、データ振分手段2は、全てのタスクからの同期応答メッセージを受信したときに、既述した図6のS15の矢印に示すように、同期レコード番号8に同期レコード番号を設定し、同期化を行うことが可能となる。
【0056】
図8は、本発明の説明図(図7)を示す。
(1)タスク(1)がデータ出力し、出力ファイル11にデータを書き出し完了した後、データ書出管理ファイル7の処理済レコード番号9の該当出力フィル、例えば出力ファイル(1)のフィールドにレコード1(書出完了レコード番号)を設定(更新)する。同様に、タスク(3)も、出力ファイル(3)のフィールドには、レコード3(書出完了レコード番号)で更新する。
【0057】
図9は、本発明の動作説明フローチャートを示す。これは、異常発生して復旧したときに、データ振分手段2が実行する処理の例を示す。
図9において、S51は、同期レコード番号8の読み出しを行う。これは、異常発生して復旧したときに、データ振分手段2が、まず、データ書出管理ファイル7中の同期レコード番号8に設定されている同期レコード番号を読み出す。
【0058】
S52は、入力データより、レコード番号+1から読み込み再開する。これは、S51で読み出した同期レコード番号+1のレコード番号を、入力データより読み出し、当該読み出したレコードについて既述した振分処理を再開する。これにより、同期レコード番号と同一および以前の番号のレコードについて二重読み出して振分する事態を抑止し、短時間に振分処理を再開することが可能となる。尚、同期レコード番号+1のレコード番号を入力データより読み出して振り分けて該当タスク6に依頼し、タスク6では更に、データ書出管理ファイル7の処理済データ位置9の該当ファイルの書出完了レコード番号+1のレコード番号から出力ファイルへの書出を再開することにより、更に、二重書出を抑止して短時間に書出処理を再開することが可能となる。
【0059】
図10は、本発明の入力データ例を示す。これは、既述した入力データ1の例であって、ここでは、多数のオンライン処理端末21から受信したデータを複数のDB処理タスク23がDB22に保存すると共に、トランザクションマネージャ24がDB22に保存(更新、新規登録など)したデータ▲1▼,▲2▼,▲3▼を取りこみ、順データとして図示のようなレコード(データに、シーケンシャルな番号、検索用のキーを付加したレコード)を作成し、当該作成したレコードを本願発明で入力となる入力データ1として出力する。入力データが多量であって、キーをもとに分類定義テーブル2に設定されている定義に従い振り分けて該当出力ファイル11に書き出すようにしている。
【0060】
【発明の効果】
以上説明したように、本発明によれば、多量のレコードをキーで振り分けて複数のタスク6が出力ファイル11にそれぞれ書き出す際に、複数のタスク6のレコード書出の同期化を行って同期レコード番号を記憶すると共に各タスク6で書出完了レコード番号を記憶しておき、異常発生して復旧したときに同期レコード番号の次から振分を再開すると共に各タスク6は書出完了レコード番号の次から書出を再開する構成を採用しているため、多量レコードの分類振分および書出時に異常が発生して復旧したときに二重分類振分および二重書出を抑止して短時間で分類振分処理および書出処理を再開して続行することが可能となる。
【図面の簡単な説明】
【図1】本発明のシステム構成図である。
【図2】本発明の動作説明フローチャートである。
【図3】本発明の説明図(その1)である。
【図4】本発明の説明図(その2)である。
【図5】本発明の説明図(その3)である。
【図6】本発明の説明図(その4)である。
【図7】本発明の動作説明フローチャートである。
【図8】本発明の説明図(図7)である。
【図9】本発明の動作説明フローチャートである。
【図10】本発明の入力データ例である。
【符号の説明】
1:入力ファイル(入力データ)
2:データ振分手段
3:分類定義テーブル
4:同期テーブル
5:データ書出手段
6:タスク
7:データ書出管理ファイル
8:同期レコード番号
9:処理済データ位置
11:出力ファイル
Claims (4)
- 順データを格納したレコードを分類して振り分けて該当出力ファイルに書き出すデータ書出プログラムであって、
コンピュータを、
レコード番号と、出力すべきデータと、出力先と処理タスクとを分類する分類用キーとを持つレコードを入力ファイルから読み込んで、読み込んだ分類用キーをもとに、分類用キーと処理タスクと出力ファイルとを関連づけて持つ分類定義ファイルを参照して、出力すべきデータを渡すタスクと出力ファイルとを判断し、判断をしたタスクに出力すべきデータをキューイングし、読み込んだレコードの数が所定の数に達したと判断すると、読み込んだレコードの持つレコード番号を全てのタスクにキューイングし、全タスクから応答があると該レコード番号をデータ書出管理ファイルに記憶するデータ振分手段と、
前記出力すべきデータを渡すタスクを、前記データ振分手段からキューイングされた情報が出力すべきデータであれば出力ファイルに出力し、レコード番号であれば、タスクとレコード番号とを関連づけて記録する同期テーブルに、自タスクに関連するレコード番号としてキューイングされたレコード番号を記録するよう機能させるデータ書出手段と
して機能させることを特徴とするデータ書出プログラム。 - 異常が発生した後に復旧をしたときに、
前記データ振分手段を、前記データ書出管理ファイルに記録をしたレコード番号の次のレコード番号の入力ファイルから読み込むように機能をさせること、
を特徴とする請求項1に記載のデータ書出プログラム。 - 前記データ出力手段を、出力ファイルに出力すると、出力先と該出力先に出力をしたレコード番号とを関連づけてデータ書出管理ファイルに記録し、異常が発生して復旧したときに、データ書出管理ファイルに記録をした次のレコード番号から出力ファイルに出力する処理をさせるよう機能させること、
を特徴とする請求項2に記載のデータ書出プログラム。 - 順データを格納したレコードを分類して振り分けて該当出力ファイルに書き出すデータ書出プログラムを記録したコンピュータ読取可能な記録媒体であって、
コンピュータを、
レコード番号と、出力すべきデータと、出力先と処理タスクとを分類する分類用キーとを持つレコードを入力ファイルから読み込んで、読み込んだ分類用キーをもとに、分類用キーと処理タスクと出力ファイルとを関連づけて持つ分類定義ファイルを参照して、出力すべきデータを渡すタスクと出力ファイルとを判断し、判断をしたタスクに出力すべきデータをキューイングし、読み込んだレコードの数が所定の数に達したと判断すると、読み込んだレコードの持つレコード番号を全てのタスクにキューイングし、全タスクから応答があると該レコード番号をデータ書出管理ファイルに記憶するデータ振分手段と、
前記出力すべきデータを渡すタスクを、前記データ振分手段からキューイングされた情報が出力すべきデータであれば出力ファイルに出力し、レコード番号であれば、タスクとレコード番号とを関連づけて記録する同期テーブルに、自タスクに関連するレコード番号としてキューイングされたレコード番号を記録するよう機能させるデータ書出手段と
して機能させることを特徴とするデータ書出プログラムを記録したコンピュータ読取可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001166142A JP4048037B2 (ja) | 2001-06-01 | 2001-06-01 | データ書出プログラムおよび記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001166142A JP4048037B2 (ja) | 2001-06-01 | 2001-06-01 | データ書出プログラムおよび記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002358223A JP2002358223A (ja) | 2002-12-13 |
JP4048037B2 true JP4048037B2 (ja) | 2008-02-13 |
Family
ID=19008717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001166142A Expired - Fee Related JP4048037B2 (ja) | 2001-06-01 | 2001-06-01 | データ書出プログラムおよび記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4048037B2 (ja) |
-
2001
- 2001-06-01 JP JP2001166142A patent/JP4048037B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002358223A (ja) | 2002-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7090744B2 (ja) | 分散データベースクラスタシステム、及びデータ同期方法 | |
CN110741342B (zh) | 区块链交易提交排序 | |
CN101221573B (zh) | 将储存库还原到先前状态的方法 | |
US7844856B1 (en) | Methods and apparatus for bottleneck processing in a continuous data protection system having journaling | |
US7991745B2 (en) | Database log capture that publishes transactions to multiple targets to handle unavailable targets by separating the publishing of subscriptions and subsequently recombining the publishing | |
US6085200A (en) | System and method for arranging database restoration data for efficient data recovery in transaction processing systems | |
US11086850B2 (en) | Persisting of a low latency in-memory database | |
JP2708356B2 (ja) | データベースを更新するための方法、システム及び装置 | |
CN106953901A (zh) | 一种提高消息传递性能的集群通信系统及其方法 | |
US20030074600A1 (en) | Data backup/recovery system | |
CN102265277A (zh) | 数据存储系统的操作方法和装置 | |
JPH0423144A (ja) | データ管理システムおよびデータ管理方法 | |
US10055445B2 (en) | Transaction processing method and apparatus | |
TW200821863A (en) | Work item event procession | |
JP4048037B2 (ja) | データ書出プログラムおよび記録媒体 | |
CN113253924A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
JP3330006B2 (ja) | 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに | |
JPH11272628A (ja) | 共用データの転送方法および結合装置 | |
JPH05101015A (ja) | シミユレーシヨン装置及びシミユレーシヨン方法 | |
JP3903867B2 (ja) | オンライントランザクション処理システム及びホストコンピュータ並びにプログラム | |
JP2000020366A (ja) | レプリケーションシステム | |
JP2850757B2 (ja) | 階層型ファイルシステムにおける障害対応方式 | |
JPH04181461A (ja) | 分散ファイルの管理方法 | |
JPH0496838A (ja) | ファイルバックアップ方法 | |
JPH02118841A (ja) | 入力待ち行列管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070717 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070915 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071126 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101130 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4048037 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101130 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131130 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |