JP4712283B2 - データ管理システム、バッチ制御システム、及びバッチ制御プログラム - Google Patents
データ管理システム、バッチ制御システム、及びバッチ制御プログラム 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
【発明の属する技術分野】
本発明は、共通の業務データベースに対し、複数のデータ処理装置を用いてバッチ処理と常時稼動のオンライン処理とを実行するデータ管理システム、並びに同種のシステムで用いられるバッチ制御システム及びバッチ制御プログラム等に関し、コンピュータを用いたデータ処理技術の分野に関する。
【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 記憶装置
Claims (8)
- 共通の業務データベースに対してバッチ処理と常時稼動するオンライン処理とを並行して実行するデータ管理システムであって、
上記業務データベースを処理する複数のデータ処理装置と、
外部端末から送信されるトランザクションメッセージを上記複数のデータ処理装置のいずれかに割り当てて処理させるオンライン制御装置と、
入力ファイルから読み込んだトランザクションメッセージを上記複数のデータ処理装置のいずれかに割り当てて処理させるバッチ制御装置とを有し、
各データ処理装置は、上記オンライン制御装置又は上記バッチ制御装置によって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムを備えており、かつ、
上記バッチ制御装置は、
上記複数のデータ処理装置の負荷の状況を監視する負荷監視手段と、
該監視手段で監視している負荷の状況に基づき、いずれかのデータ処理装置を選定して、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てる割り当て手段と、
上記監視手段が、上記割り当て手段で割り当てられたプロセスの処理の実行中に、選定されたデータ処理装置の負荷が所定値を超えたことを検出したときに、そのデータ処理装置によるプロセスの処理を該プロセスに含まれるトランザクションメッセージを単位として停止させると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理を他のデータ処理装置に割り当てる再割り当て手段とを有することを特徴とするデータ管理システム。 - バッチ制御装置は、全データ処理装置で負荷が所定値を超えているときにバッチ処理を停止させるバッチ処理停止手段を有することを特徴とする請求項1に記載のデータ管理システム。
- 各データ処理装置は、オンライン制御装置又はバッチ制御装置によって割り当てられたトランザクションメッセージを1件ごとに処理する共通の業務アプリケーションプログラムを備えていることを特徴とする請求項1又は請求項2に記載のデータ管理システム。
- 複数のデータ処理装置のうちのいくつかは、バッチ処理のための許容リソース使用率が0%とされて、オンライン処理専用に設定されていることを特徴とする請求項1から請求項3のいずれか1項に記載のデータ管理システム。
- 共通の業務データベースを処理する複数のデータ処理装置を対象として、常時稼動するオンライン処理と並行動作するバッチ処理の制御システムであって、
各データ処理装置は、当該バッチ制御システムによって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムを備えており、
入力ファイルから読み込んだトランザクションメッセージを記録するトランザクションメッセージ記録手段と、
上記複数のデータ処理装置の負荷の状況を監視する負荷監視手段と、
該監視手段で監視している負荷の状況に基づき、いずれかのデータ処理装置を選定して、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てる割り当て手段と、
該割り当て手段で割り当てられたプロセスに含まれるトランザクションメッセージを上記記録手段から1件づつ読み出し、これを選定されたデータ処理装置で実行させるトランザクションメッセージ処理手段と、
上記監視手段が、上記割り当て手段で割り当てられたプロセスの処理の実行中に、選定されたデータ処理装置の負荷が所定値を超えたことを検出したときに、そのデータ処理装置によるプロセスの処理を該プロセスに含まれるトランザクションメッセージを単位として停止させると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理を他のデータ処理装置に割り当てる再割り当て手段とを有することを特徴とするバッチ制御システム。 - 全データ処理装置で負荷が所定値を超えているときにバッチ処理を停止させるバッチ処理停止手段が設けられていることを特徴とする請求項5に記載のバッチ制御システム。
- 共通の業務データベースを処理する複数のデータ処理装置を対象として、常時稼動するオンライン処理と並行動作するバッチ処理の制御プログラムであって、
各データ処理装置は、当該バッチ制御プログラムによって割り当てられたトランザクションメッセージを1件ごとに処理する業務アプリケーションプログラムを備えており、
コンピュータを、
入力ファイルから読み込んだトランザクションメッセージを記録するトランザクションメッセージ記録手段、
上記複数のデータ処理装置の負荷の状況を監視する負荷監視手段、
該監視手段で監視している負荷の状況に基づき、いずれかのデータ処理装置を選定して、1処理単位を複数に分割したものであって複数のトランザクションメッセージからなるプロセスの処理を割り当てる割り当て手段、
該割り当て手段で割り当てられたプロセスに含まれるトランザクションメッセージを上記記録手段から1件づつ読み出し、これを選定されたデータ処理装置で実行させるトランザクションメッセージ処理手段、及び、
上記監視手段が、上記割り当て手段で割り当てられたプロセスの処理の実行中に、選定されたデータ処理装置の負荷が所定値を超えたことを検出したときに、そのデータ処理装置によるプロセスの処理を該プロセスに含まれるトランザクションメッセージを単位として停止させると共に、そのプロセスに含まれる未処理のトランザクションメッセージの処理を他のデータ処理装置に割り当てる再割り当て手段として機能させることを特徴とするバッチ制御プログラム。 - コンピュータを、
全データ処理装置で負荷が所定値を超えているときにバッチ処理を停止させるバッチ処理停止手段として機能させることを特徴とする請求項7に記載のバッチ制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003070790A JP4712283B2 (ja) | 2003-03-14 | 2003-03-14 | データ管理システム、バッチ制御システム、及びバッチ制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003070790A JP4712283B2 (ja) | 2003-03-14 | 2003-03-14 | データ管理システム、バッチ制御システム、及びバッチ制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004280457A JP2004280457A (ja) | 2004-10-07 |
JP4712283B2 true JP4712283B2 (ja) | 2011-06-29 |
Family
ID=33287449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003070790A Expired - Fee Related JP4712283B2 (ja) | 2003-03-14 | 2003-03-14 | データ管理システム、バッチ制御システム、及びバッチ制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4712283B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442227C (zh) * | 2005-09-15 | 2008-12-10 | 华为技术有限公司 | 一种软件加载***和软件加载实现方法 |
JP4853717B2 (ja) | 2007-02-23 | 2012-01-11 | 日本電気株式会社 | サーバ移行計画作成システム、サーバ移行計画作成方法 |
JP5458615B2 (ja) * | 2009-03-17 | 2014-04-02 | 日本電気株式会社 | 並行処理システム、オンライン処理装置、バッチ処理装置、並行処理方法、および並行処理プログラム |
CN113807710B (zh) * | 2021-09-22 | 2023-06-20 | 四川新网银行股份有限公司 | 一种***批量任务分段并行及动态调度方法及存储介质 |
-
2003
- 2003-03-14 JP JP2003070790A patent/JP4712283B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004280457A (ja) | 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 (ja) | ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
JP2012094030A (ja) | 計算機システム及び処理制御方法 | |
JP2007102452A (ja) | システム管理プログラムおよびシステム管理方法 | |
US9164849B2 (en) | Backup jobs scheduling optimization | |
JP2005166052A (ja) | 待機リソースの資格を移転するためのシステム | |
US20210240575A1 (en) | Dynamic backup management | |
JP5250955B2 (ja) | データ処理システムのバックアップ制御装置及びシステム | |
JP6115575B2 (ja) | データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム | |
JP4712283B2 (ja) | データ管理システム、バッチ制御システム、及びバッチ制御プログラム | |
CN102576294B (zh) | 含有多个存储装置的存储***和方法 | |
US20070174836A1 (en) | System for controlling computer and method therefor | |
JP5116304B2 (ja) | 未返還待機リソース使用率を確定するためのシステム | |
JP6019940B2 (ja) | 情報処理装置、コピー制御プログラム、およびコピー制御方法 | |
JP4733458B2 (ja) | 検索システム及び検索方法 | |
JP4571090B2 (ja) | スケジューラプログラム、サーバシステム、スケジューラ装置 | |
CN113051063B (zh) | 分布式任务的任务调度方法、装置及电子设备 | |
JP6657725B2 (ja) | データベースシステム、レプリケーション制御装置、レプリケーション方法、及びプログラム | |
JP4045482B2 (ja) | 定期的自動バックアップスケジュール方法及び装置 | |
JP2003186686A (ja) | リソース制御装置、方法及び記憶媒体 | |
JP4997063B2 (ja) | 計算機の起動方法及び計算機システム | |
JP5413378B2 (ja) | データ管理プログラム、データ管理方法、およびコンピュータ | |
EP1340228B1 (en) | Data storage system with selectively triggered transparent swapping of continuously mounted removable data storage media | |
JP2006268594A (ja) | 管理プログラムの自動スケジューリング方法 |
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 |