JP4712283B2 - Data management system, batch control system, and batch control program - Google Patents
Data management system, batch control system, and batch control program Download PDFInfo
- Publication number
- JP4712283B2 JP4712283B2 JP2003070790A JP2003070790A JP4712283B2 JP 4712283 B2 JP4712283 B2 JP 4712283B2 JP 2003070790 A JP2003070790 A JP 2003070790A JP 2003070790 A JP2003070790 A JP 2003070790A JP 4712283 B2 JP4712283 B2 JP 4712283B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- data processing
- batch
- load
- transaction message
- 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
Description
【0001】
【発明の属する技術分野】
本発明は、共通の業務データベースに対し、複数のデータ処理装置を用いてバッチ処理と常時稼動のオンライン処理とを実行するデータ管理システム、並びに同種のシステムで用いられるバッチ制御システム及びバッチ制御プログラム等に関し、コンピュータを用いたデータ処理技術の分野に関する。
【0002】
【従来の技術】
コンピュータを用いたデータ管理システムとして、オンライン処理とバッチ処理とを並行して実行するものが存在するが、従来のものは、両処理を1日の時間帯によって使い分けるものが通例であった。
【0003】
これに対し、例えば引用文献1や引用文献2によれば、オンライン処理用の主システム又は現用系のデータ処理装置と、バッチ処理用の副システム又は待機系のデータ処理装置とを備えて、システムを二重化することにより、オンライン処理中にバッチ処理を実行可能としたものが提案されている。
【0004】
【特許文献1】
特開平4−256141号公報
【特許文献2】
特開2001−337844号公報
【発明が解決しようとする課題】
しかし、上記特許文献1、2に記載されたものは、いずれも、二重化されたシステム又は装置のそれぞれに業務データベースとしてマスタファイル又はデータファイルを備えると共に、所定の時期に両ファイルの同期をとるようにしたもので、ハードウエアの構成及び処理動作に無駄が多いという欠点があり、また、バッチ処理用に使用できる装置が一つであるため、十分なバッチ処理能力の実現が困難であり、しかも、上記ファイルの同期のために、オンライン処理の円滑な動作が阻害されるおそれがある等の問題がある。
【0005】
そこで、本発明は、処理対象の業務データベースを共通化することにより同期処理を不要とすると共に、常時稼動するオンライン処理と並行して大量のバッチ処理を効率よく行うことができ、しかも、オンライン処理を遅延させることなく、常にリアルタイムで実行することができるシステムを実現することを課題とする。
【0006】
【課題を解決するための手段】
上記課題を解決するため、本発明は次のように構成したことを特徴とする。
【0007】
まず、本願の請求項1に記載の発明は、共通の業務データベースに対してバッチ処理と常時稼動するオンライン処理とを並行して実行するデータ管理システムに関するものであって、上記業務データベースを処理する複数のデータ処理装置と、外部端末から送信されるトランザクションメッセージを上記複数のデータ処理装置のいずれかに割り当てて処理させるオンライン制御装置と、入力ファイルから読み込んだトランザクションメッセージを上記複数のデータ処理装置のいずれかに割り当てて処理させるバッチ制御装置とを有し、各データ処理装置は、上記オンライン制御装置又は上記バッチ制御装置によって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムを備えており、かつ、上記バッチ制御装置は、上記複数のデータ処理装置の負荷の状況を監視する負荷監視手段と、該監視手段で監視している負荷の状況に基づき、いずれかのデータ処理装置を選定して、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てる割り当て手段と、上記監視手段が、上記割り当て手段で割り当てられたプロセスの処理の実行中に、選定されたデータ処理装置の負荷が所定値を超えたことを検出したときに、そのデータ処理装置によるプロセスの処理を該プロセスに含まれるトランザクションメッセージを単位として停止させると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理を他のデータ処理装置に割り当てる再割り当て手段とを有することを特徴とする。
【0008】
ここで、上記再割り当て手段は、再割り当てするデータ処理装置を自ら選定する場合と、割り当て手段に再割り当てを指示する場合とがある。
【0009】
この発明によれば、オンライン処理及びバッチ処理が複数のデータ処理装置に振り分けて実行されるので、共通の業務データベースに対し、オンライン処理の稼働下で、大量のトランザクションメッセージに基づくバッチ処理を効率よく実行することが可能となる。
【0010】
そして、特にこの発明によれば、バッチ制御装置の割り当て手段が、複数のデータ処理装置のうちから負荷の状況に基づいていずれかの装置を選定し、その装置に、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てるので、例えば負荷に余裕があるデータ処理装置から優先的に選定することにより、各データ処理装置の稼働状況が均等化されて、システム全体としての処理効率が向上することになる。
【0011】
また、いずれかのデータ処理装置でのバッチ処理中に、負荷が予め設定された所定値を超えたときには、再割り当て手段の動作により、その装置によるプロセスの処理が該プロセスに含まれるトランザクションメッセージを単位として停止されると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理が負荷に余裕のある他の装置に再割り当てされて続行されることになるので、バッチ処理の停滞を回避しながら、各データ処理装置には常にオンライン処理のための余裕が確保されることになる。したがって、バッチ処理のためにオンライン処理が遅延するといった不具合が防止される。
そして、特に大量のトランザクションメッセージを一括して実行するバッチ処理においても、オンライン処理の場合と同様に、トランザクションメッセージが1件ごとに処理されるので、例えば各トランザクションメッセージについての処理が複数のデータベースに亘る場合において、バッチ処理の途中でオンライン処理を割り込み実行するときに、各データベースの内容が不整合な状態でオンライン処理を実行することによる処理ミスが回避されることになる。
【0012】
また、請求項2に記載の発明は、上記請求項1に記載のデータ管理システムにおいて、バッチ制御装置は、全データ処理装置で負荷が所定値を超えているときにバッチ処理を停止させるバッチ処理停止手段を有することを特徴とする。
【0013】
この発明によれば、バッチ処理の開始時において、全データ処理装置の負荷が所定値を超えているとき、或いはバッチ処理の途中で全データ処理装置の負荷が所定値を超えたときには、バッチ制御装置によるバッチ処理全体が停止されることになる。したがって、各データ処理装置には、オンライン処理のための余裕が常に確実に確保されることになり、オンライン処理の遅延が一層確実に防止されることになる。
【0014】
さらに、請求項3に記載の発明は、上記請求項1又は請求項2に記載のデータ管理システムにおいて、各データ処理装置は、オンライン制御装置又はバッチ制御装置によって割り当てられたトランザクションメッセージを1件ごとに処理する共通の業務アプリケーションプログラムを備えていることを特徴とする。
【0015】
この発明によれば、各データ処理装置に備えられて、オンライン制御装置又はバッチ制御装置によって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムが共通なので、ソフトウエアの構成が簡素化されることになる。
【0016】
そして、請求項4に記載の発明は、上記請求項1から請求項3のいずれか1項に記載のデータ管理システムにおいて、複数のデータ処理装置のうちのいくつかは、バッチ処理のための許容リソース使用率が0%とされて、オンライン処理専用に設定されていることを特徴とする。
【0017】
一方、請求項5に記載の発明は、共通の業務データベースを処理する複数のデータ処理装置を対象として、常時稼動するオンライン処理と並行動作するバッチ処理の制御システムに関するものであって、各データ処理装置は、当該バッチ制御システムによって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムを備えており、入力ファイルから読み込んだトランザクションメッセージを記録するトランザクションメッセージ記録手段と、上記複数のデータ処理装置の負荷の状況を監視する負荷監視手段と、該監視手段で監視している負荷の状況に基づき、いずれかのデータ処理装置を選定して、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てる割り当て手段と、該割り当て手段で割り当てられたプロセスに含まれるトランザクションメッセージを上記記録手段から1件づつ読み出し、これを選定されたデータ処理装置で実行させるトランザクションメッセージ処理手段と、上記監視手段が、上記割り当て手段で割り当てられたプロセスの処理の実行中に、選定されたデータ処理装置の負荷が所定値を超えたことを検出したときに、そのデータ処理装置によるプロセスの処理を該プロセスに含まれるトランザクションメッセージを単位として停止させると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理を他のデータ処理装置に割り当てる再割り当て手段とを有することを特徴とする。
【0018】
ここで、上記再割り当て手段は、再割り当てするデータ処理装置を自ら選定する場合と、割り当て手段に再割り当てを指示する場合とがある。また、トランザクションメッセージ処理手段は、各データ処理装置ごとに設ける場合と、各データ処理装置に共通のものを設ける場合とがある。
【0019】
また、請求項6に記載の発明は、上記請求項5に記載のバッチ制御システムにおいて、全データ処理装置で負荷が所定値を超えているときにバッチ処理を停止させるバッチ処理停止手段が設けられていることを特徴とする。
【0020】
この請求項5及び請求項6に記載の発明に係るバッチ制御システムは、上記請求項1及び請求項2に記載のデータ管理システムにおけるバッチ制御装置にそれぞれ対応するものであり、まず請求項5に記載の発明によれば、請求項1の発明と同様に、割り当て手段が、複数のデータ処理装置のうちから負荷の状況に基づいていずれかの装置を選定し、その装置に、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てるので、各装置の稼働状況が均等化されることになる。
【0021】
また、いずれかのデータ処理装置でのバッチ処理中に、負荷が予め設定された所定値を超えたときには、再割り当て手段の動作により、その装置によるプロセスの処理が該プロセスに含まれるトランザクションメッセージを単位として停止されると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理が負荷に余裕のある他の装置に再割り当てされて続行されるので、バッチ処理の停滞を回避しながら、各データ処理装置には常にオンライン処理のための余裕が確保されることになる。
【0022】
そして、請求項6に記載の発明によれば、請求項2の発明と同様に、バッチ処理の開始時において、全データ処理装置の負荷が所定値を超えているとき、或いはバッチ処理の途中で全データ処理装置の負荷が所定値を超えたときには、バッチ制御装置によるバッチ処理全体が停止されるので、各データ処理装置にオンライン処理のための余裕が一層確実に確保されることになる。
【0025】
さらに、請求項7に記載の発明は、共通の業務データベースを処理する複数のデータ処理装置を対象として、常時稼動するオンライン処理と並行動作するバッチ処理の制御プログラムに関するものであって、各データ処理装置は、当該バッチ制御プラグラムによって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムを備えており、コンピュータを、入力ファイルから読み込んだトランザクションメッセージを記録するトランザクションメッセージ記録手段、上記複数のデータ処理装置の負荷の状況を監視する負荷監視手段、該監視手段で監視している負荷の状況に基づき、いずれかのデータ処理装置を選定して、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てる割り当て手段、該割り当て手段で割り当てられたプロセスに含まれるトランザクションメッセージを上記記録手段から1件づつ読み出し、これを選定されたデータ処理装置で実行させるトランザクションメッセージ処理手段、及び、上記監視手段が、上記割り当て手段で割り当てられたプロセスの処理の実行中に、選定されたデータ処理装置の負荷が所定値を超えたことを検出したときに、そのデータ処理装置によるプロセスの処理を該プロセスに含まれるトランザクションメッセージを単位として停止させると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理を他のデータ処理装置に割り当てる再割り当て手段として機能させることを特徴とする。
【0026】
ここで、このプログラムは、上記再割り当て手段として機能する場合に、再割り当てするデータ処理装置を自ら選定するように機能する場合と、割り当て手段に再割り当てを指示するように機能する場合とがある。また、このプログラムのうちのトランザクションメッセージ処理手段として機能する部分は、個々のデータ処理装置ごとに機能する場合と、全データ処理装置を対象として機能する場合とがある。
【0027】
また、請求項8に記載の発明は、上記請求項7に記載のバッチ制御プログラムにおいて、コンピュータを、全データ処理装置で負荷が所定値を超えているときにバッチ処理を停止させるバッチ処理停止手段として機能させることを特徴とする。
【0029】
この請求項7及び請求項8に記載の発明によれば、当該プログラムをコンピュータに搭載することにより、請求項5及び請求項6に記載のバッチ制御システムが構成されることになり、そのプログラムを実行することにより、請求項5及び請求項6のいずれかに記載のバッチ制御システムについての上記作用と同様の作用が得られる。
【0030】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。なお、以下の実施の形態に係るデータ管理システムは、本発明をクレジットカードの管理システムに適用したもので、そのシステム全体は本発明のデータ管理システムの実施の形態を構成すると共に、その構成要素であるバッチ制御サーバ及び該サーバで実行されるプログラムは、本発明のバッチ制御システムやバッチ制御プログラムの実施の形態を構成する。
【0031】
図1は本実施の形態に係るデータ管理システム10の全体の構成を示すもので、このシステム10は、バッチ制御用サーバコンピュータ(以下、「バッチ制御サーバ」と記す)11と、オンライン制御用サーバコンピュータ(以下、「オンライン制御サーバ」と記す)12と、複数のデータ処理用サーバコンピュータ(以下、「処理サーバ」と記す)13(13A、13B…)とを有し、また、これらのサーバ11、12、13によるバッチ処理及びオンライン処理の対象となるデータベースを格納した記憶装置14を有する。
【0032】
上記バッチ制御サーバ11は、売上情報ファイルAから多量のトランザクションメッセージを読み込んで、上記データベースに対するバッチ処理を複数の処理サーバ13A、13B…に割り当てて実行させ、また、オンライン制御サーバ12は、外部端末Bからオンラインで投入されるトランザクションメッセージに基づいて、上記データベースに対するオンライン処理を、同じく複数の処理サーバ13A、13B…に割り当てて実行させるようになっている。
【0033】
上記バッチ制御サーバ11の構成を詳しく説明すると、図2に示すように、該サーバ11には、バッチ制御用データベースとして、トランザクションメッセージデータベースD1と、負荷管理データベースD2と、割り当て管理データベースD3とが備えられている。
【0034】
また、バッチ制御用プログラムとして、スケジュール管理プログラムP1と、トランザクションメッセージ取得プログラムP2と、負荷監視プログラムP3と、割り当て制御プログラムP4と、再割り当て指示プログラムP5とが搭載されており、さらに、上記負荷監視プログラム起動用のクロックC1と、割り当て制御プログラム起動用のクロックC2とが備えられている。
【0035】
一方、各処理サーバ13A、13B…には、トランザクションメッセージ処理プログラムP6と、業務内容に応じた複数のプログラムでなる業務アプリケーションプログラム群P7とがそれぞれ搭載されている。
【0036】
さらに、記憶装置14には、オンライン処理及びバッチ処理の対象となる共通の業務データベースとして、加盟店月別売上情報データベースD4と、会員月別利用明細データベースD5とが備えられている。
【0037】
ここで、上記各データベースD1〜D5の構成を説明すると、まず、バッチ制御サーバ11に備えられたトランザクションメッセージデータベースD1は、バッチ処理の実行待ちメッセージを管理するキューであって、図3に示すように、メッセージの種類、換言すれば処理に用いる業務アプリケーションプログラムの種類を特定するためのトランザクションIDと、読み込んだメッセージに付される連番と、メッセージの内容とを1件ごとに記録するようになっている。
【0038】
今、例えば売上情報ファイルAの1件のレコードが、図4に示すように、クレジットカードを用いた1つの取引についての会員番号、加盟店番号、購入日、商品番号、及び金額の各データで構成されているものとすると、トランザクションメッセージデータベースD1の各レコードには、トランザクションIDとして、上記のようなデータ構成を示す例えば「A0101」というトランザクションIDが記録されると共に、メッセージとして、上記会員番号から金額までの各データの内容をそれぞれ示す5つの数字が記録される。
【0039】
また、負荷管理データベースD2は、各処理サーバ13A、13B…の負荷の状況等を記録するもので、図5に示すように、各処理サーバ13A、13B…について、そのIDをキーとして、予めその処理サーバについて設定された許容リソース使用率と、その処理サーバの処理能力に応じて設定された重みと、その処理サーバの現時点のリソース使用率とを記録するようになっている。ここで、重みの数値は、値が大きいほど当該処理サーバの処理能力が高いことを示し、また、許容リソース使用率が0%の処理サーバはオンライン処理専用に設定されていることを示す。
【0040】
また、割り当て管理データベースD3は、図6に示すように、1処理単位ごとに付される処理IDと、1つの処理を複数のプロセスに分割して並行処理する場合の各プロセスについて付されるプロセスIDと、そのプロセスに割り当てられた処理サーバのIDと、そのプロセスの現時点の状況を示すステータスとを記録するようになっている。
【0041】
ここで、図例は、ID「A−01」で示される例えば図4の売上情報ファイルAについての処理を5つのプロセスに分割して並行処理する場合を示すもので、この場合、プロセス1では、図3のトランザクションメッセージデータベースD1に記録されているメッセージのうち、連番が、1、6、11、16…のメッセージを処理し、プロセス2では、2、7、12、17…のメッセージを処理し、プロセス3では、3、8、13、18…のメッセージを処理し、プロセス4では、4、9、14、19…のメッセージを処理し、プロセス5では、5、10、15、20…のメッセージを処理することになる。
【0042】
なお、上記ステータスとしては、当該プロセスへの処理サーバの割り当てが完了していないことを示す「初期状態」、処理サーバが割り当てられて実行を開始したことを示す「実行開始」、処理サーバのリソース使用率が許容リソース使用率をオーバーしているために当該プロセスを他の処理サーバに割り当てるべきことを示す「再割り当て」、全処理サーバのリソース使用率が許容リソース使用率をオーバーしているために当該バッチ処理自体を停止する「停止」、及び当該プロセスが完了したことを示す「実行完了」とが設定されている。
【0043】
また、記憶装置14に備えられたデータベースのうち、加盟店売上情報データベースD4は、図7に示すように、加盟店番号と集計年月とをキーとし、各加盟店の売上金額を年月別に記録するようになっており、会員月別利用明細データベースD5は、図8に示すように、会員番号と集計年月とをキーとし、各会員のクレジットカード利用金額を年月別に記録するようになっている。
【0044】
次に、本システム10の動作、特にオンライン処理の実行中にバッチ処理が行われる場合の動作を、バッチ制御サーバ11に搭載された各プログラムP2〜P5の動作に従って説明する。
【0045】
まず、売上情報ファイルAが投入されると、スケジュール管理プログラムP1からの指令を受けて、所定のタイミングで、トランザクションメッセージ取得プログラムP2が起動する。
【0046】
このプログラムP2は、図9に示すフローチャートに従って動作し、まずステップS1で、図4に示す売上情報ファイルAから売上データを1件読み込み、ステップS2で、これを新たなレコードとして、図3に示すトランザクションメッセージデータベースD1に書き込む。その場合に、今回のデータの種類を示すトランザクションIDと各レコードごとの連番とが付され、かつ、会員番号、加盟店番号、購入日、商品番号及び金額の各データの内容を示す数字がメッセージとして記録される。
【0047】
そして、ステップS3で、売上情報ファイルAの全データについての読み込み及び書き込みを終了したことを判定するまで、上記ステップS1、S2を繰り返す。これにより、上記売上情報ファイルAの全データがトランザクションメッセージとしてデータベースD1に記録されることになる。
【0048】
一方、バッチ制御サーバ11が起動すると、負荷監視プログラムP3が動作する。このプログラムP3は、各処理サーバ13A、13B…の負荷状態、即ち各サーバを構成するハードウエアやソフトウエア等のリソースの使用状況を監視するもので、クロックC1からの信号で、一定時間ごとに、図10に示すフローチャートに従って動作する。
【0049】
即ち、まずステップS11で、1つの処理サーバ13にアクセスして、そのサーバ13におけるリソース使用率を取得し、ステップS12で、そのリソース使用率を、図5の負荷管理データベースD2における当該処理サーバ13についてのレコードの現リソース使用率の欄に記録する。その場合に、現リソース使用率としては、一定時間内の平均値が記録される。
【0050】
そして、ステップS13で、全処理サーバ13A、13B…についての現リソース使用率の記録が終了したことを判定するまで上記ステップS11、S12を繰り返す。これにより、上記負荷管理データベースD2における各処理サーバ13A、13B…の現リソース使用率が常に最新の値に更新されることになる。
【0051】
このようにして、上記トランザクションメッセージ取得プログラムP2によるトランザクションメッセージの取得ないしデータベースD1への記録が終了し、かつ、負荷監視プログラムP3による各処理サーバ13A、13B…の負荷の状態が常時監視されている状態で、上記スケジュール管理プログラムP1からの指令を受けて、割り当て制御プログラムP4が起動する。
【0052】
このプログラムP4は、バッチ処理を実行する処理サーバ13を処理のプロセス単位で選定するもので、図11に示すフローチャートに従って動作する。
【0053】
即ち、まずステップS21で、今回の動作がバッチ処理の実行開始後、最初の動作であるか否かを判定する。そして、最初の動作である場合には、ステップS22で、図6に示すように、割り当て管理データベースD3に、予め当該バッチ処理について設定されている並行処理数、即ち同時に並行処理するプロセス数に応じた数のレコードを新規作成し、各レコードの処理ID欄に、今回の処理のID、例えば「A−01」と書き込むと共に、プロセスIDの欄には、例えば並行処理数が「5」の場合、「1」〜「5」をそれぞれ書き込む。また、ステータスの欄には、いずれも「初期状態」と書き込む。
【0054】
次に、ステップS23で、上記割り当て管理データベースD3の今回の処理「A−01」に関する各レコードを参照し、ステップS24で、全てのレコードのステータスが「実行完了」であるか否かを判定する。全てのレコードのステータスが「実行完了」である場合は、今回の処理が完了した場合であるので、バッチ制御サーバ11自体の動作を終了する。
【0055】
実行開始直後は、全てのレコードのステータスが「実行完了」ではないから、次にステップS25を実行し、全レコードについて各プロセスへの処理サーバの割り当てが完了しているか否かを判定する。そして、実行開始直後は、割り当てが完了していないから、次にステップS26以下の処理サーバの割り当て制御を実行する。
【0056】
即ち、まずステップS26で、割り当て管理データベースD3の処理「A−01」の1つのレコードのステータスを参照し、ステップS27で、そのステータスが「初期状態」、「停止」、「再割り当て」のいずれかであるか否かを判定する。ステータスがこれ以外の「実行開始」又は「実行完了」である場合には、改めて処理サーバを割り当てる必要はないから、上記ステップS25、S26に戻って次のレコードについての割り当て制御に移行する。
【0057】
バッチ制御システム11の実行開始直後は、各プロセスについてのレコードのステータスはいずれも「初期状態」であるから、次にステップS28を実行し、負荷管理データベースD2に記録されているデータに基づき、各処理サーバ13A、13B…についての負荷計算として、負荷に対する余裕度を算出する。
【0058】
ここで、この計算は、次式、
余裕度=(許容リソース使用率−現リソース使用率)×重み
に従って行われ、各処理サーバ13A、13B…の余裕度が算出される。
【0059】
この計算の結果、余裕度がプラス、即ち現リソース使用率が許容リソース使用率未満である処理サーバ13が1つでもあれば、次のステップS29で、実行可能サーバ「あり」と判定される。そして、ステップS30で、計算された余裕度の大きいものから優先的に処理サーバ13を選定し、当該プロセスを割り当てる。
【0060】
その場合に、余裕度が大きな処理サーバ13については複数のプロセスが割り当てられることがあり、その割り当てプロセス数は、次式、
割り当てプロセス数=
(1−現リソース使用率/許容リソース使用率)×並行処理プロセス数
に従って計算される。
【0061】
今、例えば、並行処理プロセス数が5で、ある処理サーバ13の許容リソース使用率が70%、現リソース使用率が40%であるとすると、割り当てプロセス数は約2.1となるので、その処理サーバ13には2つのプロセスが割り当てられる。その場合に、小数点以下は切り捨てられるが、値が1未満のときは、割り当て数は1とされる。
【0062】
以上のようにして、処理サーバ13が割り当てられたプロセスについては、ステップS31で、割り当て管理データベースD3の当該プロセスのレコードのサーバID欄に割り当てた処理サーバのIDを書き込むと共に、ステータスを「実行開始」とする。
【0063】
そして、ステップS32で、割り当てた処理サーバ13で当該プロセスを処理するように、その処理サーバ13のトランザクションメッセージ処理プログラムP6を起動する。
【0064】
以上のようにして、割り当て管理データベースD3の各レコードに記録されたプロセスにいずれかの処理サーバ13を割り当てれば、それらの処理サーバ13でトランザクションメッセージの処理が開始されると共に、当該割り当て制御プログラムP4の状態は、上記ステップS25からステップS33に移行し、動作を一旦終了して、再起動のためのイベント待ち状態となる。
【0065】
その場合に、この処理サーバ割り当て制御において、例えば5つのプロセスのうちの一部にいずれかの処理サーバ13を割り当てた時点で、余裕度がプラスのサーバがなくなることがある。この場合、残りのプロセスについては、処理サーバ13が割り当てられず、ステータスが「初期状態」のまま、ステップS33のイベント待ち状態となる。
【0066】
また、上記ステップS29で、全ての処理サーバ13A、13B…の現リソース使用率が許容リソース使用率を上回っていて、実行可能サーバ「なし」と判定されたときは、次にステップS34を実行し、割り当て管理データベースD3の処理「A−01」に係る全レコードのステータスを「停止」とする。
【0067】
そして、ステップS35で、いずれの処理サーバ13のトランザクションメッセージ処理プログラムP6も起動させることなく、即ち当該バッチ処理を全く実行することなく、クロックC2を始動させ、上記ステップS33のイベント待ち状態に移行して、当該プログラムP4の動作を一旦停止する。
【0068】
このイベント待ち状態は、イベントとしての上記クロックC2のタイムアウト、又はいずれかの処理サーバ13におけるトランザクションメッセージ処理プログラムP6の動作終了により解消され、上記ステップS23以下の処理サーバ割り当て制御が再開される。
【0069】
したがって、前回の割り当て制御時に「初期状態」のままイベント待ち状態に移行したプロセスについても、各処理サーバ13の余裕度の変動により、次回以降の割り当て制御時にいずれかの処理サーバ13が割り当てられて「実行開始」となり、また、全プロセスのステータスが「停止」とされて、当該バッチ処理が全く実行されていないときでも、各処理サーバ13の余裕度の変動により、全部又は一部のプロセスが「実行開始」となって、処理が開始されることになる。
【0070】
また、以上の処理サーバ割り当て制御と並行して、再割り当て指示プログラムP5が動作する。
【0071】
このプログラムP5は、クロックC1からの指令で負荷監視プログラムP3が起動し、負荷管理データベースD2の更新処理が行われたときに、これに連動して起動し、図12に示すフローチャートに従って次のように動作する。
【0072】
まず、ステップS41で、負荷管理データベースD2から1つの処理サーバの現リソース使用率を読み取り、ステップS42で、その値がその処理サーバについて予め設定されている許容リソース使用率を超えているか否かを判定する。
【0073】
現リソース使用率が許容リソース使用率を超えている場合は、ステップS43で、割り当て管理データベースD3に記録されている当該処理サーバが割り当てられているプロセスのステータスを「再割り当て」に変更する。そして、この動作を、ステップS44で、全処理サーバについて終了したことを判定するまで繰り返す。
【0074】
以上のようにして、バッチ制御サーバ11においては、負荷監視プログラムP3により、各処理サーバ13A、13B…の負荷の状態が管理され、また、割り当て制御プログラムP4により、当該バッチ処理の各プロセスの状態が管理されている状態で、これらのプロセスを並行処理する処理サーバが割り当てられる。そして、プロセスが割り当てられた処理サーバでは、トランザクションメッセージ処理プログラムP6が起動する。
【0075】
このプログラムP6は、図13に示すフローチャートに従い、次のように動作する。なお、1つの処理サーバに複数のプロセスが割り当てられている場合は、各プロセスについて次の動作を並行して実行する。
【0076】
まず、ステップS51で、割り当て管理データベースD3から割り当てられているプロセスのステータスを読み取り、ステップS52で、そのステータスが「実行開始」か「再割り当て」かを判定する。ここで、このトランザクションメッセージ処理プログラムP6は、「実行開始」及び「再割り当て」以外のステータスで実行されることはない。
【0077】
ステータスが「実行開始」の場合は、ステップS53で、トランザクションメッセージデータベースD1から1件のメッセージを取り出すと共に、ステップS54で、そのメッセージが、当該プロセスの処理を終了させるための終了メッセージであるか否かを判定する。そして、図3に示すような通常処理のためのメッセージである場合には、ステップS55で、そのメッセージを、業務アプリケーションプログラム群P7のうちのトランザクションIDによって特定されるプログラムに受け渡し、後述するフローチャートに従って、記憶装置14に設けられている加盟店月別売上情報データベースD4及び会員月別利用明細データベースD5に対する更新処理を実行させる。
【0078】
割り当て管理データベースD3の当該プロセスのステータスが「実行開始」である間、上記ステップS53〜S55を繰り返し実行し、そのプロセスが処理すべきトランザクションメッセージ、例えばIDが「1」のプロセスを処理する処理サーバは、連番が1、6、11のメッセージを順次処理し、上記加盟店月別売上情報データベースD4及び会員月別利用明細データベースD5を更新する。
【0079】
そして、上記ステップS53で、当該プロセスの最後に設けられた終了メッセージを取り出したときに、ステップS54からステップS56を実行し、そのプロセスについての処理が終了したことを示すために、割り当て管理データベースD3の当該プロセスのステータスを「実行完了」とし、この処理サーバ13でのトランザクションメッセージ処理プログラムP6の動作を終了する。
【0080】
一方、当該処理サーバの負荷が増大し、上記再割り当て指示プログラムP5によって、割り当て管理データベースD3における当該プロセスのステータスが「再割り当て」に変更され、ステップS52で、ステータスが「再割り当て」に変更されたことを判定すると、トランザクションメッセージ処理プログラムP6は動作を終了し、当該処理サーバ13によるトランザクションメッセージの処理を一旦停止する。
【0081】
このとき、図11の割り当て制御プログラムP4のステップS33のイベント待ち状態が解消され、該割り当て制御プログラムP4が再起動する。
【0082】
そして、この割り当て制御プログラムP4は、ステップS23からステップS26以下の割り当て制御を再び実行し、他に実行可能な処理サーバが見つかれば、ステップS30〜S32で、当該プロセスの処理を新たに見つかった処理サーバに割り当て、割り当て管理データベースD3の当該プロセスのレコードのサーバIDの欄にその処理サーバのIDを書き込むと共に、ステータスを「実行開始」とし、その新たな処理サーバのトランザクションメッセージ処理プログラムP6を起動させる。
【0083】
また、図13のトランザクションメッセージ処理プログラムP6が、割り当てられたプロセスを完了し、ステップS56で割り当て管理データベースD3のステータスを「実行完了」に変更して動作を終了したときも、図11の割り当て制御プログラムP4のステップS33のイベント待ち状態が解消され、該割り当て制御プログラムP4が再起動する。
【0084】
そして、プロセスの処理を割り当てられた各処理サーバ13のトランザクションメッセージ処理プログラムP6が、いずれも割り当て管理データベースD3のステータスを「実行完了」として終了したときには、図11の割り当て制御プログラムP4のステップS24で、割り当て管理データベースD3の今回の処理に係る全レコードのステータスが「実行完了」であると判定され、当該バッチ処理が完全に終了する。
【0085】
以上のように、バッチ制御サーバ11においては、バッチ処理の開始時に、現リソース使用率が許容リソース使用率を超えている処理サーバについてはプロセスの割り当てが見合わされると共に、全ての処理サーバの現リソース使用率が許容リソース使用率を超えている場合、或いは処理の途中で全ての処理サーバの現リソース使用率が許容リソース使用率を超えた場合には、そのバッチ処理自体が停止されることになる。
【0086】
また、バッチ処理の途中で、いずれかの処理サーバ13の現リソース使用率が許容リソース使用率を超えたときには、その処理サーバ13でのプロセスの処理が停止されると共に、現リソース使用率が許容リソース使用率を超えていない他の処理サーバ13にそのプロセスが再割り当てされて、処理が続行されることになる。
【0087】
したがって、バッチ処理の実行をいたずらに犠牲にすることなく、いずれの処理サーバも許容リソース使用率を超えた状態でバッチ処理を実行することが回避され、常に負荷に対する一定量の余裕が確保されることになる。
【0088】
これにより、オンライン処理の常時稼動下で、バッチ処理を並行して実行するシステムにおいて、バッチ処理の効率の低下を抑制しながら、このバッチ処理のためにオンライン処理が遅延することが防止される。
【0089】
なお、各処理サーバ13において、上記トランザクションメッセージ処理プログラムP6のステップS55で起動される業務アプリケーションプログラムP7は、図14に示すフローチャートに従い、次のように動作する。
【0090】
まず、ステップS61で、上記トランザクションメッセージ処理プログラムP6のステップS53で取得した1件のトランザクションメッセージを受け取り、ステップS62で、そのメッセージが示す加盟店番号と購入日とを参照し、その加盟店番号と集計年月とをキーとして、図7に示す加盟店月別売上情報データベースD4から該当するレコードを検索する。
【0091】
そして、ステップS63で、そのレコードに記録されている売上金額に、上記トランザクションメッセージが示す金額を加算し、ステップ64で、そのレコードの売上金額の欄を加算した金額に更新する。
【0092】
また、ステップS65で、上記トランザクションメッセージが示す会員番号と購入日とを参照し、その会員番号と集計年月とをキーとして、図8に示す会員月別利用明細データベースD5から該当するレコードを検索する。
【0093】
そして、ステップS66で、そのレコードに記録されている利用金額に、上記トランザクションメッセージが示す金額を加算し、ステップ67で、そのレコードの利用金額の欄を加算した金額に更新する。
【0094】
このようにして、売上情報ファイルAから読み取ったデータに基づき、加盟店月別売上情報データベースD4と会員月別利用明細データベースD5の2つの業務データベースの更新処理がバッチ処理として実行されることになるが、その場合に、業務アプリケーションプログラムP7は、1トランザクションメッセージごとに上記の2つの業務データベースD4、D5に対する処理を完結するから、バッチ処理の途中にオンライン処理が割り込んでも、データベースD4、D5の内容が不整合な状態でオンライン処理が実行されることがない。
【0095】
したがって、バッチ処理と常時稼動のオンライン処理とが並行して実行されるシステムにおいて、複数のデータベースの内容が不整合な状態でオンライン処理が実行されることによる処理ミスが防止される。
【0096】
なお、以上の実施の形態では、データ処理装置としてサーバコンピュータを用いたが、トランザクションメッセージ処理プログラムP6や業務アプリケーションプログラムP7の搭載、及びバッチ制御サーバ11やオンライン制御サーバ12との接続が可能であり、かつ所要の処理機能を備えていれば、パーソナルコンピュータ等の使用も可能である。
【0097】
【発明の効果】
以上のように本発明によれば、共通の業務データベースに対してバッチ処理と常時稼動するオンライン処理とを並行して実行するシステムにおいて、これらの処理が複数のデータ処理装置に振り分けて実行されることになるので、共通の業務データベースに対し、オンライン処理の稼働下で大量のバッチ処理用トランザクションメッセージを効率よく処理することが可能となる。
【0098】
そして、特に本発明によれば、上記データ処理装置が所定の負荷状態を超えてバッチ処理を実行することが回避されて、各処理装置に常に一定量の余裕が確保されることになる。これにより、バッチ処理のためにオンライン処理が遅延するといった不具合が防止され、オンライン処理が常にリアルタイムで実行されることになる。
【図面の簡単な説明】
【図1】 本発明に係るデータ管理システムの実施の形態の構成を示すブロック図である。
【図2】 同システムにおけるバッチ制御サーバ及び処理サーバの構成を示すブロック図である。
【図3】 同システムで用いられるトランザクションメッセージデータベースの構成を示すテーブルである。
【図4】 売上情報ファイルの構成を示すテーブルである。
【図5】 負荷管理データベースの構成を示すテーブルである。
【図6】 割り当て管理データベースの構成を示すテーブルである。
【図7】 加盟店月別売上情報データベースの構成を示すテーブルである。
【図8】 会員月別利用明細データベースの構成を示すテーブルである。
【図9】 トランザクションメッセージ取得プログラムの動作を示すフローチャートである。
【図10】 負荷監視プログラムの動作を示すフローチャートである。
【図11】 割り当て制御プログラムの動作を示すフローチャートである。
【図12】 再割り当て指示プログラムの動作を示すフローチャートである。
【図13】 トランザクションメッセージ処理プログラムの動作を示すフローチャートである。
【図14】 業務アプリケーションプログラムの動作を示すフローチャートである。
【符号の説明】
10 データ管理システム
11 バッチ制御装置(バッチ制御サーバ)
12 オンライン制御装置(オンライン制御サーバ)
13(13A、13B…) データ処理装置(処理サーバ)
14 記憶装置[0001]
BACKGROUND OF THE INVENTION
The present invention uses a plurality of data processing apparatuses to perform batch processing and always-online online operation for a common business database.NThe present invention relates to a data management system that executes processing, a batch control system and a batch control program used in the same type of system, and the like in the field of data processing technology using a computer.
[0002]
[Prior art]
Some data management systems using a computer execute online processing and batch processing in parallel, but conventional ones are usually used separately depending on the time of day.
[0003]
On the other hand, for example, according to Cited Document 1 and
[0004]
[Patent Document 1]
JP-A-4-256141
[Patent Document 2]
JP 2001-337844 A
[Problems to be solved by the invention]
However, in each of the documents described in
[0005]
Therefore, the present invention makes the synchronization process unnecessary by sharing the business database to be processed, and is always online.NIt is an object of the present invention to realize a system that can efficiently perform a large amount of batch processing in parallel with processing and that can always be executed in real time without delaying online processing.
[0006]
[Means for Solving the Problems]
In order to solve the above problems, the present invention is configured as follows.
[0007]
First, the invention according to claim 1 of the present application relates to a data management system that executes batch processing and always-online processing in parallel for a common business database, and processes the business database. A plurality of data processing devices, an online control device for assigning and processing a transaction message transmitted from an external terminal to one of the plurality of data processing devices, and a transaction message read from an input file of the plurality of data processing devices. Each of the data processing devices has a business application program for processing the transaction messages assigned by the online control device or the batch control device one by one. And above Pitch control device includes a load monitoring means for monitoring the load conditions of the plurality of data processing devices, based on the load conditions that are monitored by the monitoring means, and selecting one of the data processing device,1 processing unit is divided into multipleThe assigning means for assigning the process of a plurality of transaction messages, and the monitoring means, while executing the process of the process assigned by the assigning means, the load of the selected data processing device has exceeded a predetermined value. Is detected, the processing of the process by the data processing device is stopped in units of transaction messages included in the process, and the processing of unprocessed transaction messages included in the process is reassigned to another data processing device. And assigning means.
[0008]
Here, the reassignment means may select a data processing device to be reassigned, or may instruct the assignment means to reassign.
[0009]
According to the present invention, since online processing and batch processing are executed by being distributed to a plurality of data processing devices, batch processing based on a large number of transaction messages can be efficiently performed on a common business database under online processing. It becomes possible to execute.
[0010]
In particular, according to the present invention, the assigning means of the batch control device selects one of the plurality of data processing devices based on the load status, and the device1 processing unit is divided into multipleSince process processing consisting of a plurality of transaction messages is assigned, for example, by preferentially selecting data processing devices with sufficient load, the operating status of each data processing device is equalized, and the processing efficiency of the entire system Will be improved.
[0011]
Also, during batch processing in any data processing device, when the load exceeds a predetermined value set in advance, the operation of the reallocation means causes the device toProcessProcessingThe transaction message included in the process as a unitAs well as being stoppedOf outstanding transaction messages in the processSince processing is reassigned to other devices with sufficient load and continued, each data processing device must always have room for online processing while avoiding stagnation of batch processing. become. Therefore, the problem that online processing is delayed due to batch processing is prevented.
And especially in batch processing that executes a large number of transaction messages at once, as in the case of online processing, transaction messages are processed one by one. For example, processing for each transaction message is performed in a plurality of databases. In such a case, when the online process is interrupted and executed in the middle of the batch process, a processing error caused by executing the online process in a state where the contents of each database are inconsistent is avoided.
[0012]
The invention according to
[0013]
According to this invention, when the load of all the data processing devices exceeds a predetermined value at the start of batch processing, or when the load of all the data processing devices exceeds a predetermined value during the batch processing, batch control is performed. The entire batch processing by the device will be stopped. Therefore, each data processing device is always ensured with a margin for online processing, and delays in online processing are more reliably prevented.
[0014]
Furthermore, the invention according to
[0015]
According to this invention, each data processing device is equipped withBecause business application programs that process transaction messages assigned by the online control device or batch control device one by one are common,The software configuration will be simplified.
[0016]
AndAccording to a fourth aspect of the present invention, in the data management system according to any one of the first to third aspects, some of the plurality of data processing devices use an allowable resource for batch processing. It is characterized in that the rate is set to 0% and is set exclusively for online processing.
[0017]
On the other hand, the invention described in
[0018]
Here, the reassignment means may select a data processing device to be reassigned, or may instruct the assignment means to reassign. The transaction message processing means may be provided for each data processing device or may be provided for each data processing device.
[0019]
Claims6The invention described in claim 15The batch control system described in 1) is characterized in that batch processing stop means is provided for stopping batch processing when the load exceeds a predetermined value in all data processing apparatuses.
[0020]
The batch control system according to the invention described in
[0021]
Also, during batch processing in any data processing device, when the load exceeds a predetermined value set in advance, the operation of the reallocation means causes the device toProcessProcessingThe transaction message included in the process as a unitAs well as being stoppedOf outstanding transaction messages in the processSince processing is reassigned to another device with sufficient load and continued, each data processing device always has room for online processing while avoiding stagnation of batch processing.
[0022]
And claims6According to the invention described in
[0025]
Furthermore, the invention described in claim 7 relates to a batch processing control program that operates in parallel with an always-on-line process for a plurality of data processing apparatuses that process a common business database, and each data process The apparatus includes a business application program that processes the transaction messages assigned by the batch control program one by one, the transaction message recording means for recording the transaction message read from the input file by the computer, the plurality of data Based on the load monitoring means for monitoring the load status of the processing device, the load status monitored by the monitoring means, select one of the data processing devices,1 processing unit is divided into multipleAllocating means for allocating the process of a process consisting of a plurality of transaction messages, transaction messages included in the process allocated by the allocating means, one by one from the recording means, and executed by the selected data processing apparatus When the processing means and the monitoring means detect that the load of the selected data processing device exceeds a predetermined value during execution of the process assigned by the assigning means, the data processing device The processing of the process is stopped in units of transaction messages included in the process, and the processing of unprocessed transaction messages included in the process is functioned as a reallocation unit that allocates the processing to other data processing devices. To.
[0026]
Here, when this program functions as the above-mentioned reallocation means, there are a case where it functions to select a data processing device to be reallocated by itself and a case where it functions to instruct the allocation means to perform reallocation. . In addition, a part of the program that functions as a transaction message processing unit may function for each individual data processing device or may function for all data processing devices.
[0027]
The invention described in claim 8 is the batch control program according to claim 7, wherein the batch processing stop means for stopping the batch processing when the load exceeds a predetermined value in all data processing apparatuses. It is made to function as.
[0029]
This claim 7as well asClaim8According to the invention described in claim 1, by installing the program in a computer,5 andThe batch control system according to claim 6 is configured, and the program is executed by executing the program.5 andThe same operation as that of the batch control system according to claim 6 can be obtained.
[0030]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below. The data management system according to the following embodiment is an application of the present invention to a credit card management system, and the entire system constitutes an embodiment of the data management system of the present invention and its constituent elements. The batch control server and the program executed by the server constitute an embodiment of the batch control system and the batch control program of the present invention.
[0031]
FIG. 1 shows the overall configuration of a
[0032]
The
[0033]
The configuration of the
[0034]
As a batch control program, a schedule management program P1, a transaction message acquisition program P2, a load monitoring program P3, an allocation control program P4, and a reallocation instruction program P5 are installed. A clock C1 for starting the program and a clock C2 for starting the allocation control program are provided.
[0035]
On the other hand, a transaction message processing program P6 and a business application program group P7 made up of a plurality of programs according to the business content are mounted on each
[0036]
Further, the
[0037]
Here, the configuration of each of the databases D1 to D5 will be described. First, the transaction message database D1 provided in the
[0038]
Now, for example, one record of the sales information file A includes, as shown in FIG. 4, each member number, member store number, purchase date, product number, and amount data for one transaction using a credit card. Assuming that it is configured, in each record of the transaction message database D1, for example, a transaction ID “A0101” indicating the data configuration as described above is recorded as a transaction ID, and from the above member number as a message. Five numbers indicating the contents of each data up to the amount of money are recorded.
[0039]
Further, the load management database D2 records the load status of each
[0040]
Further, as shown in FIG. 6, the allocation management database D3 is a process ID assigned to each process unit and a process assigned to each process when one process is divided into a plurality of processes for parallel processing. The ID, the ID of the processing server assigned to the process, and the status indicating the current status of the process are recorded.
[0041]
Here, the example shows a case where the process for the sales information file A shown in FIG. 4 indicated by the ID “A-01” is divided into five processes and processed in parallel. , Among messages recorded in the transaction message database D1 in FIG. 3, messages with
[0042]
Note that the status includes “initial state” indicating that the allocation of the processing server to the process is not completed, “execution start” indicating that the processing server has been allocated and started execution, and processing server resources "Reassign" to indicate that the process should be assigned to another processing server because the usage rate exceeds the allowable resource usage rate, because the resource usage rate of all processing servers exceeds the allowable resource usage rate Are set to “stop” for stopping the batch processing itself, and “execution complete” indicating that the process is completed.
[0043]
Further, among the databases provided in the
[0044]
Next, the operation of the
[0045]
First, when the sales information file A is inserted, the transaction message acquisition program P2 is started at a predetermined timing in response to an instruction from the schedule management program P1.
[0046]
This program P2 operates according to the flowchart shown in FIG. 9, and first, in step S1, one piece of sales data is read from the sales information file A shown in FIG. 4, and in step S2, this is set as a new record and shown in FIG. Write to the transaction message database D1. In that case, a transaction ID indicating the type of data this time and a serial number for each record are attached, and a number indicating the contents of each data of member number, member store number, purchase date, product number and amount is Recorded as a message.
[0047]
Then, steps S1 and S2 are repeated until it is determined in step S3 that reading and writing of all data in the sales information file A have been completed. As a result, all data of the sales information file A is recorded in the database D1 as a transaction message.
[0048]
On the other hand, when the
[0049]
That is, first, in step S11, one processing server 13 is accessed to acquire the resource usage rate in the server 13, and in step S12, the resource usage rate is converted to the processing server 13 in the load management database D2 of FIG. Record the current resource usage in the record for. In this case, an average value within a predetermined time is recorded as the current resource usage rate.
[0050]
In step S13, steps S11 and S12 are repeated until it is determined that the recording of the current resource usage rate for all the
[0051]
In this way, the acquisition of the transaction message by the transaction message acquisition program P2 or the recording to the database D1 is completed, and the load status of each
[0052]
This program P4 selects the processing server 13 that executes batch processing in units of processes, and operates according to the flowchart shown in FIG.
[0053]
That is, first, in step S21, it is determined whether or not the current operation is the first operation after the start of execution of batch processing. In the case of the first operation, in step S22, as shown in FIG. 6, according to the number of parallel processes set in advance in the assignment management database D3 for the batch process, that is, according to the number of processes simultaneously processed in parallel. When the number of records is newly created, the current process ID, for example, “A-01” is written in the process ID column of each record, and the number of parallel processes is “5”, for example, in the process ID column. , “1” to “5” are written respectively. Also, “initial state” is written in the status column.
[0054]
Next, in step S23, each record related to the current process “A-01” in the allocation management database D3 is referred to, and in step S24, it is determined whether or not the status of all the records is “execution complete”. . When the status of all the records is “execution complete”, since the current process is completed, the operation of the
[0055]
Immediately after the start of execution, since the status of all records is not “execution complete”, step S25 is executed next to determine whether or not the allocation of processing servers to each process has been completed for all records. Since the assignment has not been completed immediately after the start of execution, the process server assignment control in step S26 and subsequent steps is executed.
[0056]
That is, first, in step S26, the status of one record of the process “A-01” in the allocation management database D3 is referred to, and in step S27, the status is any one of “initial state”, “stop”, and “reassignment”. It is determined whether or not. If the status is “execution start” or “execution completion” other than this, there is no need to assign a processing server again, so the process returns to steps S25 and S26 to shift to the assignment control for the next record.
[0057]
Immediately after the start of the execution of the
[0058]
Where this calculation is:
Margin = (Allowable resource usage rate-Current resource usage rate) x Weight
The margin of each
[0059]
As a result of this calculation, if there is at least one processing server 13 whose margin is positive, that is, the current resource usage rate is less than the allowable resource usage rate, it is determined in next step S29 that the executable server is “present”. Then, in step S30, the processing server 13 is preferentially selected from those having a large margin, and the process is assigned.
[0060]
In that case, a plurality of processes may be assigned to the processing server 13 having a large margin, and the number of assigned processes is given by the following equation:
Number of allocated processes =
(1-current resource usage rate / allowable resource usage rate) x number of parallel processing processes
According to the totalCalculatedIt is.
[0061]
For example, if the number of parallel processing processes is 5, the allowable resource usage rate of a processing server 13 is 70%, and the current resource usage rate is 40%, the number of allocated processes is about 2.1. Two processes are assigned to the processing server 13. In this case, the decimal part is rounded down, but when the value is less than 1, the number of assignments is 1.
[0062]
As described above, for the process to which the processing server 13 is assigned, in step S31, the ID of the processing server assigned to the server ID column of the record of the process in the assignment management database D3 is written, and the status is set to “Start execution”. "
[0063]
In step S32, the transaction message processing program P6 of the processing server 13 is activated so that the assigned processing server 13 processes the process.
[0064]
As described above, if any of the processing servers 13 is allocated to the process recorded in each record of the allocation management database D3, the processing of the transaction message is started in those processing servers 13, and the allocation control program The state of P4 shifts from the above step S25 to step S33, once ends the operation, and enters an event waiting state for restart.
[0065]
In this case, in this processing server allocation control, for example, when any processing server 13 is allocated to some of the five processes, there is a case where there is no server with a plus margin. In this case, the processing server 13 is not assigned to the remaining processes, and the status remains in the “initial state”, and the event wait state of step S33 is entered.
[0066]
If the current resource usage rate of all the
[0067]
In step S35, the clock C2 is started without activating the transaction message processing program P6 of any processing server 13, that is, without executing the batch processing at all, and the process proceeds to the event waiting state in step S33. Then, the operation of the program P4 is temporarily stopped.
[0068]
This event waiting state is canceled by the time-out of the clock C2 as an event or the end of the operation of the transaction message processing program P6 in one of the processing servers 13, and the processing server allocation control after step S23 is resumed.
[0069]
Therefore, even for a process that has shifted to the event waiting state in the “initial state” during the previous allocation control, any processing server 13 is allocated during the next or subsequent allocation control due to fluctuations in the margin of each processing server 13. Even when the status of all processes is “stopped” and the batch processing is not executed at all, all or a part of the processes can be performed due to the fluctuation of the margin of each processing server 13. The process is started with “execution start”.
[0070]
Further, the reallocation instruction program P5 operates in parallel with the above processing server allocation control.
[0071]
The program P5 is started in conjunction with the load monitoring database P2 when the load monitoring program P3 is started in response to a command from the clock C1 and the load management database D2 is updated. According to the flowchart shown in FIG. To work.
[0072]
First, in step S41, the current resource usage rate of one processing server is read from the load management database D2, and in step S42, whether or not the value exceeds an allowable resource usage rate preset for the processing server. judge.
[0073]
If the current resource usage rate exceeds the allowable resource usage rate, in step S43, the status of the process assigned to the processing server recorded in the allocation management database D3 is changed to “reassignment”. This operation is repeated until it is determined in step S44 that all processing servers have been completed.
[0074]
As described above, in the
[0075]
The program P6 operates as follows according to the flowchart shown in FIG. If a plurality of processes are assigned to one processing server, the following operations are executed in parallel for each process.
[0076]
First, in step S51, the status of the process assigned from the assignment management database D3 is read. In step S52, it is determined whether the status is “execution start” or “reassignment”. Here, the transaction message processing program P6 is not executed with a status other than “execution start” and “reassignment”.
[0077]
When the status is “execution start”, one message is extracted from the transaction message database D1 in step S53, and whether or not the message is an end message for ending the process of the process in step S54. Determine whether. If it is a message for normal processing as shown in FIG. 3, in step S55, the message is transferred to the program specified by the transaction ID in the business application program group P7, and according to the flowchart described later. Then, update processing is performed on the member store monthly sales information database D4 and the member monthly usage details database D5 provided in the
[0078]
While the status of the process in the allocation management database D3 is “execution start”, the processing server that repeatedly executes the above steps S53 to S55 and processes the transaction message to be processed by the process, for example, the process with ID “1” Sequentially processes messages with
[0079]
In step S53, when an end message provided at the end of the process is extracted, steps S54 to S56 are executed, and the assignment management database D3 is used to indicate that the process for the process has ended. The status of the process is “execution complete”, and the operation of the transaction message processing program P6 in the processing server 13 is terminated.
[0080]
On the other hand, the load on the processing server increases, and the status of the process in the allocation management database D3 is changed to “reassignment” by the reassignment instruction program P5. In step S52, the status is changed to “reassignment”. When it is determined that the transaction message processing program P6 has finished, the operation ends, and the transaction message processing by the processing server 13 is temporarily stopped.
[0081]
At this time, the event waiting state in step S33 of the allocation control program P4 in FIG. 11 is canceled, and the allocation control program P4 is restarted.
[0082]
Then, the allocation control program P4 executes the allocation control from step S23 to step S26 again, and if another executable processing server is found, a process in which the process of the process is newly found in steps S30 to S32. Assigned to the server, writes the ID of the processing server in the server ID column of the record of the process in the allocation management database D3, sets the status to “start execution”, and starts the transaction message processing program P6 of the new processing server .
[0083]
Also, when the transaction message processing program P6 in FIG. 13 completes the assigned process, and changes the status of the assignment management database D3 to “execution complete” in step S56, the operation is terminated, and the assignment control in FIG. The event waiting state in step S33 of the program P4 is canceled, and the allocation control program P4 is restarted.
[0084]
When the transaction message processing program P6 of each processing server 13 to which the processing of the process is allocated ends with the status of the allocation management database D3 as “execution complete”, in step S24 of the allocation control program P4 of FIG. Then, it is determined that the status of all records related to the current process in the allocation management database D3 is “execution complete”, and the batch process is completely completed.
[0085]
As described above, in the
[0086]
Further, during the batch processing, when the current resource usage rate of any of the processing servers 13 exceeds the allowable resource usage rate, the process processing in the processing server 13 is stopped and the current resource usage rate is allowed. The process is reassigned to another processing server 13 that does not exceed the resource usage rate, and the processing is continued.
[0087]
Therefore, without sacrificing the execution of batch processing, it is avoided that any processing server executes batch processing in a state where the allowable resource usage rate is exceeded, and a certain amount of margin for the load is always secured. It will be.
[0088]
Thereby, in a system that executes batch processing in parallel under constant online processing, it is possible to prevent delay of online processing due to batch processing while suppressing a decrease in efficiency of batch processing.
[0089]
In each processing server 13, the business application program P7 activated in step S55 of the transaction message processing program P6 operates as follows according to the flowchart shown in FIG.
[0090]
First, in step S61, the aboveGOne transaction message acquired in step S53 of the transaction message processing program P6 is received. In step S62, the member store number and purchase date indicated by the message are referred to, and the member store number and date of aggregation are keyed. The corresponding record is searched from the member store monthly sales information database D4 shown in FIG.
[0091]
In step S63, the amount indicated by the transaction message is added to the sales amount recorded in the record. In step 64, the amount is updated to the amount obtained by adding the sales amount column of the record.
[0092]
In step S65, the member number and purchase date indicated by the transaction message are referred to, and the corresponding record is searched from the member-by-member usage details database D5 shown in FIG. 8 using the member number and the total date as a key. .
[0093]
In step S66, the amount indicated by the transaction message is added to the usage amount recorded in the record, and in step 67, the usage amount is updated to the amount obtained by adding the usage amount column.
[0094]
Thus, based on the data read from the sales information file A, the update processing of the two business databases of the member store monthly sales information database D4 and the member monthly usage details database D5 is executed as a batch process. In this case, since the business application program P7 completes the processing for the two business databases D4 and D5 for each transaction message, even if online processing interrupts during the batch processing, the contents of the databases D4 and D5 are not correct. Online processing is not executed in a consistent state.
[0095]
Therefore, in a system where batch processing and always-online online processing are executed in parallel, processing errors due to online processing being executed in a state where the contents of a plurality of databases are inconsistent are prevented.
[0096]
In the above embodiment, the server computer is used as the data processing device. However, the transaction message processing program P6 and the business application program P7 can be mounted and connected to the
[0097]
【The invention's effect】
As described above, according to the present invention, batch processing and online operation that is always performed on a common business database.NIn a system that executes processes in parallel, these processes are distributed to a plurality of data processing devices, so a large number of batch processing transactions can be performed on a common business database under online processing. Messages can be processed efficiently.
[0098]
In particular, according to the present invention, it is avoided that the data processing device performs batch processing exceeding a predetermined load state, and a certain amount of margin is always secured in each processing device. This prevents a problem that the online process is delayed due to the batch process, and the online process is always executed in real time.
[Brief description of the drawings]
FIG. 1 shows a configuration of an embodiment of a data management system according to the present invention.TheFIG.
[Fig. 2] Configuration of batch control server and processing server in the same systemTheFIG.
FIG. 3 is a table showing a configuration of a transaction message database used in the system.
FIG. 4 is a table showing the structure of a sales information file.
FIG. 5 is a table showing a configuration of a load management database.
FIG. 6 is a table showing a configuration of an allocation management database.
FIG. 7 is a table showing the structure of a member store monthly sales information database;
FIG. 8 is a table showing a configuration of a member monthly usage detail database.
FIG. 9 is a flowchart showing the operation of a transaction message acquisition program.
FIG. 10 is a flowchart showing an operation of a load monitoring program.
FIG. 11 is a flowchart showing an operation of an allocation control program.
FIG. 12 is a flowchart showing the operation of the reallocation instruction program.
FIG. 13 is a flowchart showing the operation of a transaction message processing program.
FIG. 14 is a flowchart showing an operation of a business application program.
[Explanation of symbols]
10 Data management system
11 Batch control device (batch control server)
12 Online control device (online control server)
13 (13A, 13B ...) Data processing device (processing server)
14 Storage device
Claims (8)
上記業務データベースを処理する複数のデータ処理装置と、
外部端末から送信されるトランザクションメッセージを上記複数のデータ処理装置のいずれかに割り当てて処理させるオンライン制御装置と、
入力ファイルから読み込んだトランザクションメッセージを上記複数のデータ処理装置のいずれかに割り当てて処理させるバッチ制御装置とを有し、
各データ処理装置は、上記オンライン制御装置又は上記バッチ制御装置によって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムを備えており、かつ、
上記バッチ制御装置は、
上記複数のデータ処理装置の負荷の状況を監視する負荷監視手段と、
該監視手段で監視している負荷の状況に基づき、いずれかのデータ処理装置を選定して、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てる割り当て手段と、
上記監視手段が、上記割り当て手段で割り当てられたプロセスの処理の実行中に、選定されたデータ処理装置の負荷が所定値を超えたことを検出したときに、そのデータ処理装置によるプロセスの処理を該プロセスに含まれるトランザクションメッセージを単位として停止させると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理を他のデータ処理装置に割り当てる再割り当て手段とを有することを特徴とするデータ管理システム。A data management system that executes batch processing and always-online online processing in parallel for a common business database,
A plurality of data processing devices for processing the business database;
An online control device for allocating and processing a transaction message transmitted from an external terminal to any of the plurality of data processing devices;
A batch control device that assigns and processes a transaction message read from an input file to any of the plurality of data processing devices,
Each data processing device includes a business application program for processing the transaction messages assigned by the online control device or the batch control device one by one, and
The batch control device
Load monitoring means for monitoring the load status of the plurality of data processing devices;
Assigning means for selecting one of the data processing devices based on the status of the load monitored by the monitoring means, and dividing the processing unit into a plurality of processes and allocating the processing of a plurality of transaction messages When,
When the monitoring unit detects that the load of the selected data processing device exceeds a predetermined value during execution of the process assigned by the assigning unit, the monitoring unit executes the process of the process by the data processing device. A data management system comprising: a reassignment unit that stops a transaction message included in the process as a unit and assigns processing of an unprocessed transaction message included in the process to another data processing apparatus.
各データ処理装置は、当該バッチ制御システムによって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムを備えており、
入力ファイルから読み込んだトランザクションメッセージを記録するトランザクションメッセージ記録手段と、
上記複数のデータ処理装置の負荷の状況を監視する負荷監視手段と、
該監視手段で監視している負荷の状況に基づき、いずれかのデータ処理装置を選定して、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てる割り当て手段と、
該割り当て手段で割り当てられたプロセスに含まれるトランザクションメッセージを上記記録手段から1件づつ読み出し、これを選定されたデータ処理装置で実行させるトランザクションメッセージ処理手段と、
上記監視手段が、上記割り当て手段で割り当てられたプロセスの処理の実行中に、選定されたデータ処理装置の負荷が所定値を超えたことを検出したときに、そのデータ処理装置によるプロセスの処理を該プロセスに含まれるトランザクションメッセージを単位として停止させると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理を他のデータ処理装置に割り当てる再割り当て手段とを有することを特徴とするバッチ制御システム。A control system for batch processing that operates in parallel with online processing that is always in operation for multiple data processing devices that process a common business database,
Each data processing device includes a business application program that processes the transaction messages assigned by the batch control system one by one.
Transaction message recording means for recording a transaction message read from an input file;
Load monitoring means for monitoring the load status of the plurality of data processing devices;
Assigning means for selecting one of the data processing devices based on the status of the load monitored by the monitoring means, and dividing the processing unit into a plurality of processes and allocating the processing of a plurality of transaction messages When,
Transaction message processing means for reading transaction messages included in the process assigned by the assigning means one by one from the recording means, and executing them on the selected data processing device;
When the monitoring unit detects that the load of the selected data processing device exceeds a predetermined value during execution of the process assigned by the assigning unit, the monitoring unit executes the process of the process by the data processing device. A batch control system comprising: reallocation means for suspending a transaction message included in the process as a unit and allocating processing of an unprocessed transaction message included in the process to another data processing device.
各データ処理装置は、当該バッチ制御プログラムによって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムを備えており、
コンピュータを、
入力ファイルから読み込んだトランザクションメッセージを記録するトランザクションメッセージ記録手段、
上記複数のデータ処理装置の負荷の状況を監視する負荷監視手段、
該監視手段で監視している負荷の状況に基づき、いずれかのデータ処理装置を選定して、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てる割り当て手段、
該割り当て手段で割り当てられたプロセスに含まれるトランザクションメッセージを上記記録手段から1件づつ読み出し、これを選定されたデータ処理装置で実行させるトランザクションメッセージ処理手段、及び、
上記監視手段が、上記割り当て手段で割り当てられたプロセスの処理の実行中に、選定されたデータ処理装置の負荷が所定値を超えたことを検出したときに、そのデータ処理装置によるプロセスの処理を該プロセスに含まれるトランザクションメッセージを単位として停止させると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理を他のデータ処理装置に割り当てる再割り当て手段として機能させることを特徴とするバッチ制御プログラム。A control program for batch processing that operates in parallel with online processing that always operates, targeting multiple data processing devices that process a common business database,
Each data processing device includes a business application program that processes the transaction messages assigned by the batch control program one by one,
Computer
Transaction message recording means for recording the transaction message read from the input file,
Load monitoring means for monitoring the load status of the plurality of data processing devices;
Assigning means for selecting one of the data processing devices based on the status of the load monitored by the monitoring means, and dividing the processing unit into a plurality of processes and allocating the processing of a plurality of transaction messages ,
Transaction message processing means for reading out transaction messages included in the process assigned by the assignment means one by one from the recording means, and executing them on the selected data processing device, and
When the monitoring unit detects that the load of the selected data processing device exceeds a predetermined value during execution of the process assigned by the assigning unit, the monitoring unit executes the process of the process by the data processing device. A batch control program characterized by causing a transaction message included in the process to stop as a unit and functioning as a reallocation means for allocating processing of an unprocessed transaction message included in the process to another data processing apparatus.
全データ処理装置で負荷が所定値を超えているときにバッチ処理を停止させるバッチ処理停止手段として機能させることを特徴とする請求項7に記載のバッチ制御プログラム。Computer
The batch control program according to claim 7, wherein the batch control program functions as a batch processing stop unit that stops batch processing when the load exceeds a predetermined value in all data processing apparatuses.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003070790A JP4712283B2 (en) | 2003-03-14 | 2003-03-14 | Data management system, batch control system, and batch control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003070790A JP4712283B2 (en) | 2003-03-14 | 2003-03-14 | Data management system, batch control system, and batch control program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004280457A JP2004280457A (en) | 2004-10-07 |
JP4712283B2 true JP4712283B2 (en) | 2011-06-29 |
Family
ID=33287449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003070790A Expired - Fee Related JP4712283B2 (en) | 2003-03-14 | 2003-03-14 | Data management system, batch control system, and batch control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4712283B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442227C (en) * | 2005-09-15 | 2008-12-10 | 华为技术有限公司 | Software loading system and software loading realizing method |
JP4853717B2 (en) | 2007-02-23 | 2012-01-11 | 日本電気株式会社 | Server migration plan creation system, server migration plan creation method |
JP5458615B2 (en) * | 2009-03-17 | 2014-04-02 | 日本電気株式会社 | Parallel processing system, online processing device, batch processing device, parallel processing method, and parallel processing program |
CN113807710B (en) * | 2021-09-22 | 2023-06-20 | 四川新网银行股份有限公司 | System batch task segmentation parallel and dynamic scheduling method and storage medium |
-
2003
- 2003-03-14 JP JP2003070790A patent/JP4712283B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004280457A (en) | 2004-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11425194B1 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
JP4935595B2 (en) | Job management method, job management apparatus, and job management program | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
JP2012094030A (en) | Computer system and processing control method | |
JP2007102452A (en) | System management program and system management method | |
JP5323554B2 (en) | Job processing method, computer-readable recording medium storing job processing program, and job processing system | |
US9164849B2 (en) | Backup jobs scheduling optimization | |
JP2005166052A (en) | System for transferring standby resource entitlement | |
US20210240575A1 (en) | Dynamic backup management | |
JP5250955B2 (en) | Data processing system backup control apparatus and system | |
JP6115575B2 (en) | Data set multiplicity changing device, server, data set multiplicity changing method, and computer program | |
CN113051063B (en) | Task scheduling method and device for distributed tasks and electronic equipment | |
JP4712283B2 (en) | Data management system, batch control system, and batch control program | |
CN102576294B (en) | Storage system and method comprising a plurality of storage devices | |
US20070174836A1 (en) | System for controlling computer and method therefor | |
JP5116304B2 (en) | System for determining the unreturned standby resource usage rate | |
JP6019940B2 (en) | Information processing apparatus, copy control program, and copy control method | |
JP4733458B2 (en) | Search system and search method | |
JP4571090B2 (en) | Scheduler program, server system, scheduler device | |
JP4997063B2 (en) | Computer startup method and computer system | |
JP6657725B2 (en) | Database system, replication control device, replication method, and program | |
JP4045482B2 (en) | Periodic automatic backup schedule method and apparatus | |
JP5413378B2 (en) | Data management program, data management method, and computer | |
EP1340228B1 (en) | Data storage system with selectively triggered transparent swapping of continuously mounted removable data storage media | |
JP2006268594A (en) | Automatic scheduling method for management program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060313 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070723 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070807 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071005 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080507 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110323 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |