(57)【要約】【課題】  オンライン中に、更新を伴うバッチ処理を実行しても、常に全ての系に対する参照結果を一致させること。【解決手段】  実行系３Ａは、端末装置からの更新バッチ実行要求に従って更新バッチを実行し、各待機系３Ｂにバッチ実行を指示する。各系は、更新されたデータの内容「１００」を更新バッファ５３Ａ、５３Ｂに保持し、各系の更新バッチが終了したことを条件に、更新後のデータの内容「１００」をデータベース５２Ａ、５２Ｂに反映する。この間、実行系３Ａと待機系３Ｂは、端末装置からの参照要求を受け付け、バッチ未実行またはバッチ実行中３００であれば、データベース５２Ａ、５２Ｂを検索して、その内容「１０」を端末装置に戻し、更新内容反映中４００であれば、データベース５２Ａ、５２Ｂまたは更新バッファ５３Ａ、５３Ｂを検索して、その内容「１００」を端末装置に戻す。【選択図】        図１
2011039733.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する複数の記憶部を有する記憶装置と、前記記憶装置のデータを処理するデータ処理装置とを含むユニットとして、複数のユニットを備え、
前記複数のユニットのうち少なくとも１つのユニットに属する前記データ処理装置は、
処理の要求元となる端末装置からバッチ実行要求を受けたときに、前記記憶装置のデータに対して、更新を伴うバッチ処理を実行する第１のバッチ実行ステップを備え、
前記各ユニットに属する前記各データ処理装置は、
前記第１のバッチ実行ステップで更新された更新後データを前記各記憶装置の第２の記憶部に格納する第１の格納ステップと、
前記各記憶装置の第２の記憶部に前記更新後データを格納する処理が完了したことを条件に、前記各記憶装置の第２の記憶部に格納された前記更新後データを前記各記憶装置の第１の記憶部に同時に反映を開始し、反映を実行する第１の反映ステップと、
前記バッチ実行要求の後、前記端末装置から参照要求を受けたときに、前記第１のバッチ実行ステップにおける前記バッチ処理の実行状態を判定する第１の判定ステップと、
前記第１の判定ステップの判定結果に従って前記各記憶装置の第１の記憶部の内容または前記各記憶装置の第２の記憶部の内容を参照結果として前記端末装置に送信する第１の送信ステップを備えてなる、データ処理方法。
【請求項２】
前記複数のデータ処理装置のうち前記バッチ処理を実行したデータ処理装置は、前記第１のバッチ実行ステップでは、前記バッチ処理を実行していないデータ処理装置に前記バッチ処理で更新された前記更新後データを転送し、
前記バッチ処理を実行していないデータ処理装置は、前記第１の格納ステップでは、前記バッチ処理を実行したデータ処理装置から転送された前記更新後データを受信したときに、前記受信した前記更新後データを、前記バッチ処理を実行していないデータ処理装置と同じユニットに属する前記記憶装置の第２の記憶部に格納する、請求項１に記載のデータ処理方法。
【請求項３】
前記各データ処理装置は、
前記第１のバッチ実行ステップでは、それぞれ前記バッチ処理を実行し、
前記第１の格納ステップでは、前記各バッチ処理で更新された前記更新後データを前記各記憶装置の第２の記憶部に格納する、請求項１に記載のデータ処理方法。
【請求項４】
前記各データ処理装置は、
前記第１の判定ステップでは、前記各記憶装置の第２の記憶部に前記更新後データを格納する処理が完了したか否かを判定し、
前記第１の送信ステップでは、前記第１の判定ステップで肯定の判定結果を得たときには、前記各記憶装置の第２の記憶部の内容として、前記更新後データを前記端末装置に送信し、
前記第１の判定ステップで否定の判定結果を得たときには、前記各記憶装置の第１の記憶部の内容として、前記バッチ処理で更新される前のデータを前記端末装置に送信する、請求項１に記載のデータ処理方法。
【請求項５】
前記各データ処理装置は、
前記バッチ処理の実行状態に示すデータとして、前記第１の格納ステップと前記第１の反映ステップにおける処理結果を前記各記憶装置の第３の記憶部に格納する第２の格納ステップを備え、
前記第１の判定ステップでは、前記各記憶装置の第３の記憶部を参照して、前記バッチ処理の実行状態を判定する、請求項１に記載のデータ処理方法。
【請求項６】
前記各データ処理装置は、
前記第１の判定ステップでは、前記バッチ処理で更新された前記更新後データを前記各記憶装置の第２の記憶部に格納した後の処理として、前記各記憶装置の第１の記憶部に前記更新後データを反映する処理を完了したか否かを判定し、
前記第１の送信ステップでは、前記第１の判定ステップで前記更新後データを反映する処理を完了したとの肯定の判定結果を得たときには、前記各記憶装置の第１の記憶部または第２の記憶部の内容として、前記更新後データを前記端末装置に送信し、
前記第１の判定ステップで前記更新後データを前記各記憶装置の第１の記憶部に反映する処理を完了していないとの否定の判定結果を得たときには、前記各記憶装置の第２の記憶部の内容として、前記更新後データを前記端末装置に送信する、請求項１に記載のデータ処理方法。
【請求項７】
前記各データ処理装置は、
前記第１の格納ステップでは、前記各記憶装置の第２の記憶部に前記更新後データが格納されたことを条件に、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータを格納し、
前記第１の判定ステップでは、前記バッチ処理の実行状態を判定するに先立って、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されているか否かを判定し、かつ、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されているとの肯定の判定結果を得たときに、前記各記憶装置の第２の記憶部に前記更新後データを格納する処理が完了したか否かを判定し、
前記第１の送信ステップでは、前記第１の判定ステップで、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されているとともに、前記各記憶装置の第２の記憶部に前記更新後データを格納する処理が完了したとの肯定の判定結果を得たときには、前記各記憶装置の第２の記憶部の内容として、前記更新後データを前記端末装置に送信し、
前記第１の判定ステップで、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されていない、または前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されているが、前記各記憶装置の第２の記憶部に前記更新後データを格納する処理が完了していないとの否定の判定結果を得たときには、前記各記憶装置の第１の記憶部の内容として、前記バッチ処理で更新される前のデータを前記端末装置に送信する、請求項１に記載のデータ処理方法。
【請求項８】
前記各データ処理装置は、
前記第１の格納ステップでは、前記各記憶装置の第２の記憶部に前記更新後データが格納されたことを条件に、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータを格納し、
前記第１の判定ステップでは、前記バッチ処理の実行状態を判定するに先立って、前記バッチ実行要求は、全てのデータ処理装置で一致する参照結果を必要としているか否かを判定し、かつ、当該判定で、前記バッチ実行要求は、全てのデータ処理装置で一致する参照結果を必要としているとの肯定の結果を得たときに、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されているか否かを判定し、さらに、当該判定で、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されているとの肯定の結果を得たときに、前記各記憶装置の第２の記憶部に前記更新後データを格納する処理が完了したか否かを判定し、
前記第１の送信ステップでは、前記第１の判定ステップで、前記バッチ実行要求は、全てのデータ処理装置で一致する参照結果を必要としていて、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されているとともに、前記各記憶装置の第２の記憶部に前記更新後データを格納する処理が完了したとの肯定の結果を得たときには、前記各記憶装置の第２の記憶部の内容として、前記更新後データを前記端末装置に送信し、
前記第１の判定ステップで、前記バッチ実行要求は、全てのデータ処理装置で一致する参照結果を必要としていない、または、前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されていない、あるいは前記各記憶装置の第１の記憶部に、前記バッチ処理に伴う更新状態として更新済みを示すデータが格納されているが、前記各記憶装置の第２の記憶部に前記更新後データを格納する処理が完了していないとの否定の結果を得たときには、前記各記憶装置の第１の記憶部の内容として、前記バッチ処理で更新される前のデータを前記端末装置に送信する、請求項１に記載のデータ処理方法。
【請求項９】
請求項１〜８のうちいずれか１項に記載のデータ処理方法における各ステップを、コンピュータで構成された前記各データ処理装置に実行させるためのデータ処理プログラム。
【請求項１０】
データを格納する複数の記憶部を有する記憶装置と、前記記憶装置のデータを処理するデータ処理装置とを含むユニットとして、複数のユニットを備え、
前記複数のユニットのうち少なくとも１つのユニットに属する前記データ処理装置は、
処理の要求元となる端末装置からバッチ実行要求を受けたときに、バッチ処理に関連する指示を生成して出力するバッチ実行制御部を備え、
前記各ユニットに属する各データ処理装置は、
前記バッチ実行制御部からの指示を基に前記各記憶装置に対する処理を実行するとともに、前記各記憶装置に対する処理の結果を前記バッチ実行制御部に通知するデータ更新部と、
前記端末装置から参照要求を受けたときに、前記参照要求に従って前記各記憶装置を参照し、前記参照結果を前記端末装置に送信するデータ参照部を備え、
前記バッチ実行制御部は、
前記端末装置からバッチ実行要求を受けたときにバッチ実行開始を前記各データ更新部に指示し、前記各データ更新部からバッチ実行完了通知を全て受けたことを条件に、前記各データ更新部に更新内容反映を指示し、前記各データ更新部から更新内容反映完了通知を全て受けたことを条件に、前記各データ更新部にバッチ終了を指示し
前記バッチ実行制御部から前記バッチ実行開始の指示を受けた前記各データ更新部のうち少なくとも１つのデータ更新部は、前記記憶装置のデータに対して、バッチ処理を実行し、
前記各データ更新部は、
前記バッチ実行制御部から前記バッチ実行開始の指示を受けたときに、前記バッチ処理で更新された更新後データを前記各記憶装置の第２の記憶部に格納し、前記バッチ実行完了を前記バッチ実行制御部に通知し、
前記バッチ実行制御部から前記更新内容反映の指示を受けたときに、前記各記憶装置の第２の記憶部に格納された前記更新後データを前記各記憶装置の第１の記憶部に反映するとともに、前記更新内容反映完了を前記バッチ実行制御部に通知し、
前記バッチ処理の実行状態を示すデータを前記各記憶装置の第１の記憶部または第２の記憶部に対する処理に対応付けて前記各記憶装置の第３の記憶部に格納し、
前記各データ参照部は、
前記端末装置から参照要求を受けたときに、前記各記憶装置の第３の記憶部を参照して、前記バッチ処理の実行状態を判定し、前記判定結果に従って前記各記憶装置の第１の記憶部の内容または前記各記憶装置の第２の記憶部の内容を参照結果として前記端末装置に送信してなる、データ処理システム。
【請求項１１】
前記複数のデータ更新部のうち前記バッチ処理を実行したデータ更新部は、前記バッチ処理を実行していないデータ更新部に前記バッチ処理で更新された更新後データを転送し、
前記バッチ処理を実行していないデータ更新部は、
前記バッチ処理を実行したデータ更新部から転送された前記更新後データを受信したときに、前記受信した前記更新後データを、前記記憶装置の第２の記憶部に格納してなる、請求項１０に記載のデータ処理システム。
【請求項１２】
前記各データ更新部は、
それぞれ前記バッチ処理を実行し、
前記各バッチ処理で更新された前記更新後データを前記各記憶装置の第２の記憶部に格納してなる、請求項１０に記載のデータ処理システム。
【請求項１３】
前記各データ参照部は、
前記各記憶装置の前記第３の記憶部を参照して、前記第３の記憶部に、前記更新後データが前記各記憶装置の第１の記憶部に反映される前の状態であって、前記更新後データが前記各記憶装置の第２の記憶部に格納されていることを示すデータが存在するか否かを判定し、
前記判定で肯定の結果を得たときには、前記各記憶装置の第２の記憶部の内容として、前記更新後データを前記端末装置に送信し、
前記判定で否定の結果を得たときには、前記各記憶装置の第１の記憶部の内容として、前記バッチ処理で更新される前のデータを前記端末装置に送信してなる、請求項１０、１１または１２にのうちいずれか１項に記載のデータ処理システム。
【請求項１４】
前記各データ参照部は、
前記各記憶装置の前記第３の記憶部を参照して、前記第３の記憶部に、前記更新後データが前記各記憶装置の第２の記憶部に格納された後の状態であって、前記更新後データが前記各記憶装置の第１の記憶部に反映されたことを示すデータが存在するか否かを判定し、
前記判定で肯定の結果を得たときには、前記各記憶装置の第１の記憶部または第２の記憶部の内容として、前記更新後データを前記端末装置に送信し、
前記判定で否定の結果を得たときには、前記各記憶装置の第２の記憶部の内容として、前記更新後データを前記端末装置に送信してなる、請求項１０、１１または１２にのうちいずれか１項に記載のデータ処理システム。
【請求項１５】
前記各記憶装置の第１の記憶部は、データベースで構成されてなる、請求項１０、１１、１２、１３または１４にのうちいずれか１項に記載のデータ処理システム。
【請求項１６】
前記各記憶装置の第１の記憶部は、メモリデータベースで構成されてなる、請求項１０、１１、１２、１３または１４にのうちいずれか１項に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースで管理されたデータを利用してオンラインサービスをユーザの端末装置に提供するための技術に関する。
【背景技術】
【０００２】
情報化社会の発展に伴い、多くの企業がデータベースを用いたオンラインサービスを提供している。例えば、銀行のＡＴＭシステムや道路や鉄道の経路検索システムがオンラインサービスの例として挙げられる。
【０００３】
近年、企業間競争の激化に伴い、各企業は他企業との差別化を図るため、サービスの拡充やサービス提供時間の長時間化、さらにはオンラインサービスの常時提供を行なっている。
【０００４】
また、インターネット端末や携帯電話など、オンラインサービスを利用する端末の増加に伴い、オンラインサービスに対するアクセス量が増大している。そのため、例えば、道路や鉄道の経路検索サービスといった、端末からの、大量のデータ参照要求を処理するオンラインサービスでは、複数の装置に同一内容のデータベースを配置し、端末からの参照要求を分散して処理している。
【０００５】
データベース管理システムでは、日々の定型業務の実行をバッチ処理として一括処理することがある。例えば、オンラインサービスが参照するデータに対する定期的な更新処理などが例として挙げられる。バッチ処理では、大量のデータにアクセスすることから、システム負荷が増大しやすい。そのため、バッチ処理は、負荷が比較的小さく、オンラインサービス時間外である夜間などに実行する場合が多い。
【０００６】
しかし、各企業はオンラインサービスを常時提供しており、オンラインサービスを停めることなく、バッチ処理を実行することが求められている。そこで、複数の装置に同一内容のデータベースを配置している場合に、オンラインシステムを停めることなく、バッチ処理を含むメンテナンスを実行する技術として、ローリングアップグレードが挙げられている（非特許文献１参照）。
【０００７】
ローリングアップグレードでは、複数の装置が順に、オンラインサービスを停止し、メンテナンスを実行することで、システム全体としてオンラインサービスを停止することなくバッチ処理を実行している。
【先行技術文献】
【非特許文献】
【０００８】
E.A.Brewer「Lessons from giant-scale services」、Internet Computating、IEEE、Vol.5、Issue 4、July-Aug、2001、P.54
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、ローリングアップグレードによって、各装置のデータベースに対して、更新を伴うバッチ処理を実行すると、装置ごとにバッチ終了時刻が異なるため、各装置に対して、同一時刻で、同一の参照要求を実行しても、各装置の参照結果が異なる。
【００１０】
例えば、３台の装置に同一のデータベースを配置し、第１の装置、第２の装置、第３の装置の順に、オンラインサービスを停止し、更新を伴うバッチ処理を実行し、オンラインサービスを再開するという一連の手続きを行う場合を考える。このとき、第２の装置に対する更新を伴うバッチ処理の実行中に、第１の装置と第３の装置に対して、同一の参照要求を実行すると、第１の装置からは、バッチ処理実行後の参照結果が得られ、第３の装置からは、バッチ処理実行前の参照結果が得られ、両者の参照結果が異なってしまう。
【００１１】
そこで、本発明は、前記従来技術の課題に鑑みて為されたものであり、その目的は、オンライン中に、更新を伴うバッチ処理を実行しても、常に全てのデータ処理装置に対する参照結果を一致させることができるデータ処理方法とデータ処理プログラムおよびデータ処理システムを提供することにある。
【課題を解決するための手段】
【００１２】
前記目的を達成するために、本発明は、データを格納する複数の記憶部を有する記憶装置と、記憶装置のデータを処理するデータ処理装置とを含むユニットとして、複数のユニットを備え、複数のユニットのうち少なくとも１つのユニットに属するデータ処理装置は、処理の要求元となる端末装置からバッチ実行要求を受けたときに、記憶装置のデータに対して、更新を伴うバッチ処理を実行し、各ユニットに属する各データ処理装置は、バッチ処理で更新された更新後データを各記憶装置の第２の記憶部に格納し、第２の記憶部に更新後データを格納する処理が完了したことを条件に、第２の記憶部に格納された更新後データを各記憶装置の第１の記憶部に同時に反映を開始し、反映を実行する。バッチ処理の過程で、端末装置から参照要求を受けたときに、バッチ処理の実行状態を判定し、この判定結果に従って各記憶装置の第１の記憶部の内容または第２の記憶部の内容を参照結果として端末装置に送信することを特徴とするものである。
【発明の効果】
【００１３】
オンライン中に、更新を伴うバッチ処理を実行しても、常に全てのデータ処理装置に対する参照結果を一致させることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の概念図である。
【図２】本発明の一実施形態を示すデータ処理システムの構成図である。
【図３】本発明の一実施形態を示す主記憶装置の機能ブロックを示す図である。
【図４】本発明の一実施形態を示すデータベースの構成図である。
【図５】本発明の一実施形態を示す更新バッファの構成図である。
【図６】本発明の一実施形態に関するバッチ実行制御処理を示すフローチャートである。
【図７】本発明の一実施形態に関するバッチ実行を実行系で行い、データ更新内容を各系に転送する場合における実行系での更新バッチ実行処理を示すフローチャートである。
【図８】本発明の一実施形態に関するバッチ実行を実行系で行い、データ更新内容を各系に転送する場合における待機系での更新バッチ実行処理を示すフローチャートである。
【図９】本発明の一実施形態に関するバッチ実行を各系で行う場合における更新バッチの実行処理を示すフローチャートである。
【図１０】本発明の一実施形態に関するデータ参照処理を示すフローチャートである。
【図１１】本発明の一実施形態に関するデータ参照要求の指示がある場合のデータ参照処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本発明が適用されるデータ処理システムの一実施形態について、図面を参照して詳細に説明する。
【００１６】
まず、本発明の概念を図１に従って簡単に説明する。図１において、本発明に係るデータ処理システムは、実行系３Ａおよび２台以上の複数の待機系３Ｂを具備する。
【００１７】
この際、実行系３Ａは、記憶装置としてのデータベース５２Ａおよび更新バッファ５３Ａと、データベース５２Ａおよび更新バッファ５３Ａのデータなどを処理するデータ処理装置（図示せず）とを含むユニットとして構成され、各待機系３Ｂは、記憶装置としてのデータベース５２Ｂおよび更新バッファ５３Ｂと、データベース５２Ｂおよび更新バッファ５３Ｂのデータなどを処理するデータ処理装置（図示せず）とを含むユニットとして構成されている。
【００１８】
実行系３Ａは、オンライン中に、処理を要求する要求元である端末装置（図示せず）から、更新バッチ実行要求１０００を受け付け、複数の待機系３Ｂにおけるバッチ処理の実行を制御するとともに、データの更新を伴うバッチ処理（以下、更新バッチと称する。）を実行する。同時に、実行系３Ａは、端末装置からの参照要求６０００Ａもしくは８０００Ａを受け付け、参照結果７０００Ａもしくは９０００Ａを端末装置に戻す。
【００１９】
各待機系３Ｂは、オンライン中に、実行系３Ａからのバッチ実行指示に従い、更新バッチを実行する。同時に、各待機系３Ｂは、端末装置からの参照要求６０００Ｂもしくは８０００Ｂを受け付け、参照結果７０００Ｂもしくは９０００Ｂを端末装置に戻す。
【００２０】
この際、実行系３Ａおよび待機系３Ｂは、ともに１プロセスもしくは複数のプロセスによって実現される。
【００２１】
具体的には、更新バッチ実行要求１０００を受け取った実行系３Ａは、バッチ実行要求に従って更新バッチを実行すると共に、複数の待機系３Ｂにバッチ実行を指示する（２０００Ａ）。複数の待機系３Ｂは、それぞれ更新バッチを実行する。このとき、実行系３Ａおよび複数の待機系３Ｂは、更新バッチによって更新されたデータの内容を更新バッファ５３Ａもしくは５３Ｂに保持する（３０００Ａおよび３０００Ｂ）。例えば、行ＩＤが１００１の行データが更新された場合、実行系３Ａおよび複数の待機系３Ｂは、更新後の行データ「１００」を更新バッファ５３Ａもしくは５３Ｂに格納する。
【００２２】
この後、実行系３Ａは、実行系３Ａおよび複数の待機系３Ｂの更新バッチ実行を待ち合わせる（２１００Ａ）。そして、実行系３Ａおよび複数の待機系３Ｂの更新バッチ実行の終了通知を受け取ると、実行系３Ａおよび複数の待機系３Ｂに対して、更新バッファ５３Ａもしくは５３Ｂに保持している更新後のデータの内容をデータベース５２Ａまたは５２Ｂに反映させるための指示を行う（２２００Ａ）。
【００２３】
続いて、実行系３Ａおよび複数の待機系３Ｂは、それぞれ更新バッファ５３Ａもしくは５３Ｂに保持している更新後のデータの内容を、データベース５２Ａもしくは５２Ｂに反映する（４０００Ａおよび４０００Ｂ）。
【００２４】
例えば、更新バッファ５３Ａもしくは５３Ｂに保持している更新後データが、行ＩＤが１００１の行データ「１００」である場合、データベース５２Ａもしくは５２Ｂ内のうち、行ＩＤが１００１の行データ「１０」に、行データ「１００」を反映する。
【００２５】
バッチ処理と並行して、実行系３Ａおよび待機系３Ｂは、端末装置からの参照要求（６０００Ａ、６０００Ｂ、８０００Ａ、８０００Ｂ）を受け付けると、データ処理システムにおける更新バッチの実行状態およびデータベース内の行データの更新状況を判断し、更新バッチを実行していない（以下、「バッチ未実行」）もしくは更新バッチを実行中（以下、「バッチ実行中３００」）であれば、それぞれの系が持つデータベース５２Ａもしくは５２Ｂを検索し、バッチ処理実行前のデータベース５２Ａもしくは５２Ｂの内容を基に検索結果（７０００Ａまたは７０００Ｂ）を端末装置に戻す。
【００２６】
一方、更新バッチの更新結果をデータベース５２Ａもしくは５２Ｂに反映中（以下、「更新内容反映中４００」）であれば、実行系３Ａおよび待機系３Ｂは、それぞれの系が持つデータベース５２Ａもしくは５２Ｂおよび更新バッファ５３Ａもしくは５３Ｂを検索し、更新バッチ実行後のデータベース５２Ａもしくは５２Ｂの内容を基に検索結果（９０００Ａまたは９０００Ｂ）を端末装置に戻す（５０００Ａもしくは５０００Ｂ）。
【００２７】
例えば、バッチ実行中３００の場合、全ての更新バッファ５３Ａ、５３Ｂに、更新バッチで更新された更新後データが格納されているとは限らないが、データベース５２Ａ、５２Ｂには、更新バッチで更新される前のデータが格納されているので、実行系３Ａおよび待機系３Ｂは、データベース５２Ａ、５２Ｂを参照して、更新前のデータである「１０」を端末装置に戻す。
【００２８】
一方、更新内容反映中４００の場合、更新バッチで更新された更新後データが更新バッファ５３Ａ、５３Ｂに格納されるとともに、更新バッファ５３Ａ、５３Ｂに格納された更新後データがデータベース５２Ａ、５２Ｂに反映されているので、実行系３Ａおよび待機系３Ｂは、更新バッファ５３Ａ、５３Ｂまたはデータベース５２Ａ、５２Ｂを参照して、更新後のデータである「１００」を端末装置に戻す。
【００２９】
以上のように、オンライン中に、実行系３Ａがバッチ実行を制御することで、データ処理システム全体のバッチの実行状態を制御することができる。そのため、実行系３Ａおよび２台以上の複数の待機系３Ｂは、同一のバッチの実行状態を判断して、参照結果を端末装置に戻すため、同一時刻での同一の参照要求の結果が常に一致する。
【００３０】
次に、図２に本実施形態のデータ処理システムのハードウェア構成を示す。図２において、データ処理システムは、実行系３Ａと、２台以上の待機系３Ｂを備え、実行系３Ａと各待機系３Ｂが互いにネットワーク２を介して接続されているとともに、ネットワーク２を介して端末装置１に接続されている。
【００３１】
実行系３Ａは、インタフェース３１Ａと、ＣＰＵ（中央演算装置、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２Ａと、主記憶装置３３Ａと、を備えるコンピュータで構成され、各待機系３Ｂは、インタフェース３１Ｂと、ＣＰＵ（中央演算装置、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２Ｂと、主記憶装置３３Ｂと、を備えるコンピュータで構成されている。
【００３２】
インタフェース３１Ａ、３１Ｂは、実行系３Ａと各待機系３Ｂが互いにネットワーク２を介してデータの通信を行うためのインタフェースとして機能するとともに、実行系３Ａと各待機系３Ｂがネットワーク２を介して端末装置１とデータの通信を行うためのインタフェースとして機能する。
【００３３】
主記憶装置３３Ａ、３３Ｂは、バッチ処理の対象となるデータやバッチ処理に関連するデータなど各種データを格納するとともに、プログラムを格納する記憶装置として機能し、例えば、揮発性半導体メモリや不揮発性半導体メモリを含む半導体メモリ、ハードディスクドライブ（ＨＤＤ）などの記憶媒体を備えて構成されている。ＣＰＵ３２Ａ、３２Ｂは、主記憶装置３３Ａ、３３Ｂに格納されたプログラムに従ってデータを処理するデータ処理装置として機能する。この際、データ処理システムは、主記憶装置３３Ａ、３３Ｂに同一構造のデータベースを構築し、このデータベースを用いて、データを管理することとしている。
【００３４】
端末装置１は、実行系３Ａに対して、ネットワーク２を介して更新バッチ実行要求を送信し、実行系３Ａ、待機系３Ｂに対して、ネットワーク２を介して参照要求を送信する。
【００３５】
実行系３Ａは、ＣＰＵ３２Ａが、オンライン中に、端末装置１からの更新バッチ実行要求および参照要求を受け取り、主記憶装置３３Ａ内のデータを操作する。一方、待機系３Ｂは、実行系３Ａの冗長系装置として動作する。つまり、実行系３Ａが現用系として動作している間は待機し、実行系３Ａに障害が発生すると、実行系３Ａの処理を代行する。待機系３Ｂは、実行系３Ａの処理を代行するため、少なくとも実行系３Ａの構成要素と同じ構成要素を有する。
【００３６】
このように、１台の実行系３Ａおよび２台以上の待機系３Ｂは、互いに冗長系装置として動作する。以下、実行系３Ａおよび待機系３Ｂを、冗長系装置と総称する。
【００３７】
ただし、待機系３Ｂは、待機している間も、実行系３ＡのＣＰＵ３２Ａからの指示や端末装置１からの参照要求をＣＰＵ３２Ｂが受け取り、ＣＰＵ３２Ｂが、オンライン中に、ＣＰＵ３２Ａからの指示や端末装置１からの参照要求に従って主記憶装置３３Ｂ内のデータを操作する。
【００３８】
図３は、図２の実行系３Ａの主記憶装置３３Ａ内にある実行系データベース管理システムおよび図２の待機系３Ｂの主記憶装置３３Ｂ内にある待機系データベース管理システムの機能ブロックを表す図である。
【００３９】
実行系３Ａの主記憶装置３３Ａには、実行系データベース管理システム４０Ａに関する情報が記憶されている。実行系データベース管理システム４０Ａは、バッチ実行制御部４１Ａと、データ更新部４２Ａと、データ参照部５１Ａと、を構成するためのプログラムであって、ＣＰＵ３２Ａによって実行されるプログラムと、バッチ処理に関連するデータを格納する記憶部としてのバッチ実行状態部４３Ａとデータベース５２Ａおよび更新バッファ５３Ａによって構成される。
【００４０】
待機系３Ｂの主記憶装置３３Ｂには、待機系データベース管理システム４０Ｂに関する情報が記憶されている。待機系データベース管理システム４０Ｂは、バッチ実行制御部４１Ｂ、データ更新部４２Ｂと、データ参照部５１Ｂと、を構成するためのプログラムであって、ＣＰＵ３２Ｂによって実行されるプログラムと、バッチ処理に関連するデータを格納する記憶部としてのバッチ実行状態部４３Ｂとデータベース５２Ｂおよび更新バッファ５３Ｂによって構成される。
【００４１】
この際、データベース５２Ａ、５２Ｂは、例えば、ハードディスクドライブで構成されたデータベースや半導体メモリで構成されたメモリデータベースを用いて、同一の構造に形成され、バッチ処理に関連するデータを格納する第１の記憶部として機能する。更新バッファ５３Ａ、５３Ｂは、バッチ処理で更新された更新後データを格納する第２の記憶部として機能する。バッチ実行状態部４３Ａ、４３Ｂは、バッチ処理の実行状態を示すデータを格納する第３の記憶部として機能する。
【００４２】
一方、バッチ実行制御部４１Ａは、端末装置１からバッチ実行要求を受けたときに、バッチ処理に関連する指示を生成してデータ更新部４２Ａ、４２Ｂに出力する。データ更新部４２Ａ、４２Ｂは、バッチ実行制御部４１Ａからの指示を基にいずれかの記憶部に対する処理を実行するとともに、記憶部に対する処理の結果をバッチ実行制御部４１Ａに通知する。データ参照部４２Ａ、４２Ｂは、端末装置１から参照要求を受けたときに、参照要求に従っていずれかの記憶部を参照し、参照結果を端末装置１に送信する。
【００４３】
以下、図４〜図１１を参照して、図３の各構成要素の詳細を明らかにする。
【００４４】
図４は、データベース５２Ａの一例を示す構成図である。データベース５２Ａは、行ＩＤ５２１Ａと、行データ５２２Ａと、更新状態５２３Ａが対応付けて構成されている。行ＩＤ５２１Ａには、データベース５２Ａの行を識別するための情報であるＩＤ（ＩＤｅｎｔｉｆｉｒｅ）が格納される。行データ５２２Ａには、行ＩＤ５２１Ａで指定された行データが格納される。更新状態５２３Ａには、バッチ処理で更新された更新後データが更新バッファ５３Ａに格納されたか否かを示す情報として、更新後データが更新バッファ５３Ａに格納されていないときには、「未更新」が格納され、更新後データが更新バッファ５３Ａに格納されたときには、「更新済み」が格納される。なお、待機系３Ｂの主記憶装置３３Ｂに記憶されているデータベース５２Ｂもデータベース５２Ａと同一の構成となっている。
【００４５】
以上説明した図４のデータベース５２Ａは、あくまで一例であり、データベース５２Ａ内のデータの管理方法は、この一例だけに限定するものではない。例えば、データベース５２Ａ内のデータを、行ＩＤではなく、表もしくは列を識別する単位で管理してもよい。
【００４６】
図５は、更新バッファ５３Ａの一例を示す構成図である。更新バッファ５３Ａは、行ＩＤ５３１Ａと行データ５３２Ａが互いに対応付けて構成されている。行ＩＤ５３１Ａには、バッチ処理によって更新されたデータベース内の行を識別するためのＩＤが格納される。行データ５３２Ａには、行ＩＤ５３１Ａが示す列のデータが、バッチ処理によって更新されたときに、更新後データである行データの内容が格納される。なお、待機系３Ｂの主記憶装置３３Ｂに記憶されている更新バッファ５３Ｂも更新バッファ５３Ａと同一の構成となっている。
【００４７】
以上説明した図５の更新バッファ５３Ａは、あくまで一例であり、バッチ処理によって更新されたデータベース５３Ａ内のデータの管理方法は、この一例だけに限定するものではない。例えば、更新されたデータベース５３Ａ内のデータを、行ＩＤではなく、表もしくは列を識別する単位で管理してもよい。
【００４８】
図６は、バッチ実行制御部４１Ａによるデータ処理システム全体のバッチ実行の制御を示すフローチャートである。
【００４９】
ステップ４１０Ａにおいて、バッチ実行制御部４１Ａは、オンライン中に、端末装置１からバッチ実行要求を受信する。
【００５０】
ステップ４１１Ａにおいて、バッチ実行制御部４１Ａは、実行系３Ａのデータ更新部４２Ａと全ての待機系３Ｂのデータ更新部４２Ｂに対して、バッチ処理の実行開始を指示する。
【００５１】
ステップ４２０Ａにおいて、データ更新部４２Ａは、ステップ４１１Ａにおけるバッチ処理の実行開始指示を受信し、バッチ実行状態部（第３の記憶部）４３Ａに、バッチ処理の実行状態を示すデータとして「バッチ実行中」を設定する。
【００５２】
ステップ４２０Ｂにおいて、データ更新部４２Ｂは、オンライン中に、ステップ４１１Ａにおけるバッチ処理の実行開始指示を受信し、バッチ実行状態部（第３の記憶部）４３Ｂに「バッチ実行中」を設定する。
【００５３】
ステップ４２１Ａにおいて、データ更新部４２Ａは、バッチ処理によるデータベース５２Ａの更新を実行し、更新後のデータベース内容を更新バッファ５３Ａに保持する。例えば、データ更新部４２Ａは、行ＩＤ５３１Ａにおける行１００１の更新後データ５３２Ａに、更新後データとして「ＤＡＴＡ２０」を格納する。
【００５４】
ステップ４２１Ｂにおいて、データ更新部４２Ｂは、バッチ処理によるデータベース５２Ｂの更新を実行し、更新後のデータベース内容を更新バッファ５３Ｂに保持する。
【００５５】
ステップ４２２Ａにおいて、データ更新部４２Ａは、バッチ実行完了をバッチ実行制御部４１Ａに通知する。すなわち、データ更新部４２Ａは、バッチ実行制御部４１Ａからバッチ実行開始の指示を受けたときに、バッチ処理で更新される前のデータがデータベース（第１の記憶部）５２Ａに格納されていることを条件に、バッチ処理で更新された更新後データを更新バッファ（第２の記憶部）５３Ａに格納し、その後、バッチ実行完了をバッチ実行制御部４１Ａに通知する。
【００５６】
例えば、データ更新部４２Ａは、データベース５２Ａの行ＩＤ５２１Ａの行１００１に対応した行データ５２２Ａに、更新前のデータとして「ＤＡＴＡ２」が格納されていることを条件に、バッチ処理で更新された更新後データ「ＤＡＴＡ２０」を、更新バッファ（第２の記憶部）５３Ａの行ＩＤ５３１Ａの行１００１に対応した更新後データ５３２Ａに格納する。
【００５７】
ステップ４２２Ｂにおいて、データ更新部４２Ｂは、バッチ実行完了をバッチ実行制御部４１Ａに通知する。データ更新部４２Ｂは、バッチ実行制御部４１Ａからバッチ実行開始の指示を受けたときに、バッチ処理で更新される前のデータがデータベース（第１の記憶部）５２Ｂに格納されていることを条件に、バッチ処理で更新された更新後データを更新バッファ（第２の記憶部）５３Ｂに格納し、その後、バッチ実行完了をバッチ実行制御部４１Ａに通知する。
【００５８】
ステップ４１２Ａにおいて、バッチ実行制御部４１Ａは、実行系３Ａのデータ更新部４２Ａからのバッチ実行完了通知の受信および全ての待機系３Ｂのデータ更新部４２Ｂからのバッチ実行完了通知の受信を待ち合わせる。
【００５９】
ステップ４１３Ａにおいて、バッチ実行制御部４１Ａは、実行系３Ａのデータ更新部４２Ａと全ての待機系３Ｂのデータ更新部４２Ｂからバッチ実行完了通知を受けたことを条件に、実行系３Ａのデータ更新部４２Ａと全ての待機系３Ｂのデータ更新部４２Ｂに対して、バッチ処理による更新内容（更新後データ）のデータベース５２Ａ、５２Ｂへの反映を指示する。
【００６０】
ステップ４２３Ａにおいて、データ更新部４２Ａは、ステップ４１３Ａにおけるバッチ処理による更新内容のデータベース５２Ａへの反映指示を受信し、バッチ実行状態部４３Ａに、バッチ処理の実行状態を示すデータとして「更新内容反映中」を設定する。
【００６１】
ステップ４２３Ｂにおいて、データ更新部４２Ｂは、ステップ４１３Ａにおけるバッチ処理による更新内容のデータベース５２Ｂへの反映指示を受信し、バッチ実行状態部４３Ｂに「更新内容反映中」を設定する。
【００６２】
ステップ４２４Ａにおいて、データ更新部４２Ａは、更新バッファ５３Ａに保持してある更新後のデータベース内容（バッチ処理で更新された更新後データ）を、データベース５２Ａに反映する。例えば、データ更新部４２Ａは、データベース５２Ａの行ＩＤ５２１Ａの行１００１に対応した行データ５２２Ａに「ＤＡＴＡ２０」を格納する。
【００６３】
ステップ４２４Ｂにおいて、データ更新部４２Ｂは、更新バッファ５３Ｂに保持してある更新後のデータベース内容（バッチ処理で更新された更新後データ）を、データベース５２Ｂに反映する。
【００６４】
ステップ４２５Ａにおいて、データ更新部４２Ａは、更新内容のデータベース５２Ａへの反映完了をバッチ実行制御部４１Ａに通知する。
【００６５】
ステップ４２５Ｂにおいて、データ更新部４２Ｂは、更新内容のデータベース５２Ｂへの反映完了をバッチ実行制御部４１Ａに通知する。
【００６６】
ステップ４１４Ａにおいて、データ実行制御部４１Ａは、実行系３Ａのデータ更新部４２Ａからの更新内容反映完了通知の受信および全ての待機系３Ｂのデータ更新部４２Ｂからの更新内容反映完了通知の受信を待ち合わせる。
【００６７】
ステップ４１５Ａにおいて、データ実行制御部４１Ａは、実行系３Ａのデータ更新部４２Ａと全ての待機系３Ｂのデータ更新部４２Ｂから、更新内容反映完了通知を受けたことを条件に、実行系３Ａのデータ更新部４２Ａと全ての待機系３Ｂのデータ更新部４２Ｂに対して、バッチ処理の終了を通知する。
【００６８】
ステップ４２６Ａにおいて、データ更新部４２Ａは、ステップ４１５Ａにおけるバッチ処理の終了通知を受信し、バッチ実行状態部４３Ａに、バッチ処理の実行状態を示すデータとして「バッチ未実行」を設定する。
【００６９】
ステップ４２６Ｂにおいて、データ更新部４２Ｂは、ステップ４１５Ａにおけるバッチ処理の終了通知を受信し、バッチ実行状態部４３Ｂに「バッチ未実行」を設定する。
【００７０】
以上の処理によって、図１に示した実行系３Ａによる各系に対するバッチ実行（２０００Ａ）および各系の更新バッチ実行を待ち合わせる（２１００Ａ）および各系に対する更新内容反映の指示（２２００Ａ）を実現し、データ処理システム全体のバッチ実行状態をバッチ実行中（３００）もしくは更新内容反映中（４００）とすることを実現できる。
【００７１】
図７は、図６の更新バッチ実行４２１Ａの処理の詳細を示したフローチャート図である。
【００７２】
ステップ６０１において、データ更新部４２Ａは、データベース５２Ａに対するバッチ処理を実行するとともに、バッチ処理の内容とデータベース５２Ａの内容から更新後のデータベース内容を作成し、更新後のデータベース内容（バッチ処理で更新された更新後データ）を更新バッファ５３Ａに保持する。
【００７３】
ステップ６０２において、データ更新部４２Ａは、ステップ６０１において作成した更新後のデータベース内容（バッチ処理で更新された更新後データ）を待機系３Ｂのデータベース更新部４２Ｂに転送する。
【００７４】
以上の処理によって、図１に示した実行系３Ａによる更新バッチの実行（３０００Ａ）を実現し、更新バッファ５３Ａへの更新後のデータベース内容の保持を実現する。
【００７５】
図８は、図６の更新バッチ実行４２１Ｂの処理の詳細を示したフローチャートである。
【００７６】
ステップ６１１において、データ更新部４２Ｂは、図７のステップ６０２における更新後のデータベース内容（バッチ処理で更新された更新後データ）を受信する。
【００７７】
ステップ６１２において、データ更新部４２Ｂは、ステップ６１１における更新後のデータベース内容（バッチ処理で更新された更新後データ）を受信した後、受信内容を更新内容として更新バッファ５３Ｂに格納する。
【００７８】
以上の処理によって、図１に示した待機系３Ｂによる更新バッチの実行（３０００Ｂ）を実現し、更新バッファ５３Ａへの更新後のデータベース内容の保持を実現する。
【００７９】
図９は、図６の実行系３Ａの更新バッチ実行４２１Ａおよび待機系３Ｂの更新バッチ実行の詳細の別の一例を示したフローチャート図である。
【００８０】
ステップ６２１において、実行系３Ａのデータ更新部４２Ａもしくは待機系３Ｂのデータ更新部４２Ｂは、データベース５２Ａもしくはデータベース５２Ｂに対するバッチ処理を実行し、バッチ処理の内容とデータベース５２Ａもしくはデータベース５２Ｂの内容から更新後のデータベース内容を作成し、更新後のデータベース内容を更新バッファ５３Ａもしくは更新バッファ５３Ｂに保持する。
【００８１】
図１０は、データ参照部５１Ａによるデータ参照処理を示すフローチャート図である。なお、以下の処理は、データ参照部５１Ｂについても同様の処理となる。
【００８２】
ステップ７０１において、データ参照部５１Ａは、オンライン中に、端末装置１から参照要求を受信し、受信した参照要求に従って、データベース５２Ａのうち参照対象の行を検索する。
【００８３】
ステップ７０２において、データ参照部５１Ａは、ステップ７０１で検索した参照対象の行の更新状態５２３Ａを参照し、参照結果が更新済みであるかどうかを判定する。このとき、データ参照部５１Ａは、判定結果がＹＥＳであればステップ７０３に、判定結果がＮＯであればステップ７０４に進む。
【００８４】
ステップ７０３において、データ参照部５１Ａは、バッチ実行状態部４３Ａを参照して、「更新内容反映中」であるかどうかを判定する。このとき、データ参照部５１Ａは、判定結果がＹＥＳであればステップ７０５に、判定結果がＮＯであればステップ７０４に進む。
【００８５】
ステップ７０４において、データ参照部５１Ａは、ステップ７０１で検索した参照対象の行の行データ５２２Ａを端末装置１に返却する。例えば、データ参照部５１Ａは、ステップ７０１で検索した参照対象の行の行ＩＤ５２１Ａが行１００１のときには、「ＤＡＴＡ２」を端末装置１に返却する。
【００８６】
ステップ７０５において、データ参照部５１Ａは、更新バッファ５３Ａのうち、ステップ７０１で検索した参照対象の行の行ＩＤ５２１Ａと同一の行ＩＤ５３１Ａを持つ行を検索する。例えば、データ参照部５１Ａは、ステップ７０１で検索した参照対象の行の行ＩＤ５２１Ａが行１００１のときには、更新バッファ５３Ａのうち行ＩＤ５３１Ａの行１００１の更新後データ５３２Ａを検索する。
【００８７】
ステップ７０６において、データ参照部５１Ａは、ステップ７０５で更新バッファ５３Ａより検索した行の更新後データ５３２Ａを端末装置１に返却する。例えば、データ参照部５１Ａは、更新バッファ５３Ａのうち行ＩＤ５３１Ａの行１００１の更新後データ５３２Ａを検索したときには、「ＤＡＴＡ２０」を端末装置１に返却する。
【００８８】
上述したように、データ参照部５１Ａは、端末装置１から参照要求を受けたときに、データベース（第１の記憶部）５２Ａの参照対象の行を参照して、更新済みか否かを判定し、更新済みでないと判定したときには、データベース（第１の記憶部）５２Ａの内容を参照結果として、端末装置１に送信し、更新済みと判定したときには、バッチ実行状態部（第３の記憶部）４３Ａを参照して、バッチ処理の実行状態として、更新内容反映中か否かを判定し、バッチ実行中で更新内容反映中でないときには、データベース（第１の記憶部）５２Ａの内容を参照結果として端末装置１に送信し、バッチ実行が完了し、更新内容反映中であるときには、更新バッファ（第２の記憶部）５３Ａの内容を参照結果として、端末装置１に送信することになる。
【００８９】
以上の処理によって、図１に示した実行系３Ａにおける参照要求（６０００Ａ、８０００Ａ）に伴う参照結果（７０００Ａ、９０００Ａ）および待機系３Ｂにおける参照要求（６０００Ｂ、８０００Ｂ）に伴う参照結果（７０００Ｂ、９０００Ｂ）を実現する。
【００９０】
なお、図６におけるステップ４２４Ａ、４２４Ｂにおいて、データ更新部４２Ａ、４２Ｂがそれぞれ更新内容をデータベース５２Ａ、５２Ｂに反映した後、バッチ実行状態部４３Ａ、４３Ｂにそれぞれ更新内容完了反映を設定したことを条件に、データ更新部４２Ａ、４２Ｂからバッチ実行制御部４１Ａに対して、更新内容反映完了を通知するようにした場合、ステップ７０３において、バッチ実行状態は、「更新内容反映中」の代わりに、「更新内容反映完了」したか否かをデータ更新部４２Ａが判定することもできる。
【００９１】
この場合、更新内容反映は完了したと判定したときには、更新バッファ５３Ａの内容がデータベース５２Ａに反映済みであるので、ステップ７０５、７０６において、ユーザから参照要求のあった行について、更新バッファ５３Ａまたはデータベース５２Ａを参照しても、同じ更新後データを参照結果として、端末装置１に送信することができる。
【００９２】
図１１は、データ参照部５１Ａによるデータ参照処理の別の一例を示すフローチャート図である。なお、以下の処理はデータ参照部５１Ｂについても同様の処理となる。
【００９３】
ステップ７１１において、データ参照部５１Ａは、オンライン中に、端末装置１から参照要求を受信し、受信した参照要求に従って、データベース５２Ａのうち参照対象の行を検索する。この場合、参照要求は、データベース５２Ａ内のいずれの行を参照するかという指定と、返却する参照結果が実行系３Ａおよび全ての待機系３Ｂで一致するものとするか否かの指定から構成される。
【００９４】
ステップ７１２において、データ参照部５１Ａは、ステップ７１１における参照要求を参照し、返却する参照結果が実行系３Ａおよび全ての待機系３Ｂで一致するものとする指定であるかを判定する。このとき、データ参照部５１Ａは、判定結果がＹＥＳであればステップ７１３に進み、判定結果がＮＯであれば、ステップ７１５に進む。
【００９５】
ステップ７１３において、データ参照部５１Ａは、ステップ７１１で検索した参照対象の行の更新状態５２３Ａを参照し、参照結果が更新済みであるかどうかを判定する。このとき、データ参照部５１Ａは、判定結果がＹＥＳであればステップ７１４に、判定結果がＮＯであればステップ７１５に進む。
【００９６】
ステップ７１４において、データ参照部５１Ａは、バッチ実行状態部４３Ａを参照して、「バッチ反映中」であるかどうかを判定する。このとき、データ参照部５１Ａは、判定結果がＹＥＳであればステップ７１６に、判定結果がＮＯであればステップ７１５に進む。
【００９７】
ステップ７１５において、データ参照部５１Ａは、ステップ７１１で検索した参照対象の行の行データ５２２Ａを端末装置１に返却する。
【００９８】
ステップ７１６において、データ参照部５１Ａは、更新バッファ５３Ａから、ステップ７１１で検索した参照対象の行の行ＩＤ５２１Ａと同一の行ＩＤ５３１Ａを持つ行を検索する。
【００９９】
ステップ７１７において、データ参照部５１Ａは、ステップ７１６で更新バッファ５３Ａより検索した行の更新後データ５３２Ａを端末装置１に返却する。
【０１００】
上述したように、データ参照部５１Ａは、端末装置１から参照要求を受けたときに、データベース（第１の記憶部）５２Ａの参照対象の行を参照して、参照要求は、「全ての装置で一致する参照結果」であるか否かを判定し、ＮＯと判定したときには、バッチ処理の途中での状態を示すデータとして、データベース（第１の記憶部）５２Ａの内容を参照結果として、端末装置１に送信する。
【０１０１】
一方、ＹＥＳと判定したときには、データ参照部５１Ａは、データベース（第１の記憶部）５２Ａの参照対象の行を参照して、更新済みか否かを判定し、更新済みでないと判定したときには、データベース（第１の記憶部）５２Ａの内容を参照結果として、端末装置１に送信し、更新済みと判定したときには、バッチ実行状態部（第３の記憶部）４３Ａを参照して、バッチ処理の実行状態として、更新内容反映中か否かを判定し、バッチ実行中で更新内容反映中でないときには、データベース（第１の記憶部）５２Ａの内容を参照結果として端末装置１に送信し、バッチ実行が完了し、更新内容反映中であるときには、更新バッファ（第２の記憶部）５３Ａの内容を参照結果として、端末装置１に送信することになる。
【０１０２】
なお、図６におけるステップ４２４Ａ、４２４Ｂにおいて、データ更新部４２Ａ、４２Ｂがそれぞれ更新内容をデータベース５２Ａ、５２Ｂに反映した後、バッチ実行状態部４３Ａ、４３Ｂにそれぞれ更新内容完了反映を設定したことを条件に、データ更新部４２Ａ、４２Ｂからバッチ実行制御部４１Ａに対して、更新内容反映完了を通知するようにした場合、ステップ７１４において、バッチ実行状態は、「更新内容反映中」の代わりに、「更新内容反映完了」したか否かをデータ更新部４２Ａが判定することもできる。
【０１０３】
この場合、更新内容反映は完了したと判定したときには、更新バッファ５３Ａの内容がデータベース５２Ａに反映済みであるので、ステップ７１６、７１７において、ユーザから参照要求のあった行について、更新バッファ５３Ａまたはデータベース５２Ａを参照しても、同じ更新後データを参照結果として、端末装置１に送信することができる。
【０１０４】
以上説明したように、本実施形態によれば、実行系３Ａのバッチ実行制御部４１Ａが、実行系３Ａおよび２台以上の待機系３Ｂにおけるバッチ実行を制御するようにしたため、データ処理システム全体として、バッチの実行状態が一意となる。
【０１０５】
また、本実施形態によれば、端末装置１から実行系３Ａまたは２台以上の待機系３Ｂへの参照要求時には、バッチの実行状態を判定し、判定結果に従って参照結果を端末装置１に返却するようにしたため、同一時刻の同一の参照に対しては参照結果が一致することを実現できる。
【０１０６】
また、本実施形態によれば、各系の主記憶装置３３Ａ、３３Ｂに同一構造のデータベース５２Ａ、５２Ｂを配置し、データベース５２Ａ、５２Ｂの更新状態を参照対象としているので、各系に対する参照結果を迅速に端末装置１に返却することができる。
【符号の説明】
【０１０７】
１  端末装置
２  ネットワーク
３Ａ  実行系
３Ｂ  待機系
３１Ａ  インタフェース
３２Ａ  ＣＰＵ
３３Ａ  主記憶装置
３１Ｂ  インタフェース
３２Ｂ  ＣＰＵ
３３Ｂ  主記憶装置
４１Ａ  バッチ実行制御部
４２Ａ  データ更新部
４３Ａ  バッチ実行状態部
５１Ａ  データ参照部
５２Ａ  データベース
５３Ａ  更新バッファ
４１Ｂ  バッチ実行制御部
４２Ｂ  データ更新部
４３Ｂ  バッチ実行状態部
５１Ｂ  データ参照部
５２Ｂ  データベース
５３Ｂ  更新バッファ
５２１Ａ  行ＩＤ
５２２Ａ  行データ
５２３Ａ  更新状態
５３１Ａ  行ＩＤ
５３２Ａ  更新後データ
【図１】
2011039733.tif 000003
【図２】
2011039733.tif 000004
【図３】
2011039733.tif 000005
【図４】
2011039733.tif 000006
【図５】
2011039733.tif 000007
【図６】
2011039733.tif 000008
【図７】
2011039733.tif 000009
【図８】
2011039733.tif 000010
【図９】
2011039733.tif 000011
【図１０】
2011039733.tif 000012
【図１１】
2011039733.tif 000013