(57)【特許請求の範囲】
【請求項１】
複数のコンピュータの何れかが情報処理装置に対して排他的な処理を行うシステムに用いられる情報処理プログラムであって、コンピュータに、
他のコンピュータによる前記処理が実行されていない場合、自装置の識別情報と前記処理の進捗を示す情報とを含む制御情報を前記情報処理装置に格納して、前記情報処理装置に対する前記処理を実行するとともに前記処理の進捗を示す情報を更新し、
前記他のコンピュータによる前記処理が実行されている場合、前記情報処理装置に格納された制御情報を監視し、当該制御情報に含まれる識別情報および前記処理の進捗を示す情報が所定時間以上同じであることを検出すると、当該識別情報に基づいて前記他のコンピュータで障害が発生したと判断する、
処理を実行させる情報処理プログラム。
【請求項２】
前記他のコンピュータで障害が発生したと判断すると、前記他のコンピュータの代わりに前記処理を実行する、請求項１記載の情報処理プログラム。
【請求項３】
前記他のコンピュータの代わりに前記処理を実行する際に、前記情報処理装置に格納された制御情報に含まれる前記処理の進捗を示す情報に基づいて、前記処理を途中から引き継ぐ、請求項２記載の情報処理プログラム。
【請求項４】
前記所定時間として、前記処理の進捗を示す情報が示す処理段階ごとのタイムアウト時間を用いる、請求項１乃至３の何れか一項に記載の情報処理プログラム。
【請求項５】
前記他のコンピュータで障害が発生したと判断すると、前記他のコンピュータで障害が発生した旨を報知する、請求項１乃至４の何れか一項に記載の情報処理プログラム。
【請求項６】
前記処理の実行指示が入力されると、前記情報処理装置に記憶された制御情報を更新できるかを前記情報処理装置に問い合わせ、当該制御情報を更新できる場合は前記他のコンピュータによる前記処理が実行されていないと判断し、当該制御情報を更新できない場合は前記他のコンピュータによる前記処理が実行されていると判断する、請求項１乃至５の何れか一項に記載の情報処理プログラム。
【請求項７】
前記情報処理装置は、制御情報を格納するためのデータベースを管理するデータベース管理システムを有しており、
当該制御情報を更新できるかの問い合わせに対して、前記データベース管理システムにより当該制御情報が前記他のコンピュータによってロックされていない場合は更新できる旨の応答を前記情報処理装置から受信し、前記データベース管理システムにより当該制御情報が前記他のコンピュータによってロックされている場合は更新できない旨の応答を前記情報処理装置から受信する、
請求項６記載の情報処理プログラム。
【請求項８】
複数の情報処理装置の何れかが処理対象装置に対して排他的な処理を行うシステムが実行する制御方法であって、
情報処理装置が、他の情報処理装置による前記処理が実行されていない場合、自装置の識別情報と前記処理の進捗を示す情報とを含む制御情報を前記処理対象装置に格納して、前記処理対象装置に対する前記処理を実行するとともに前記処理の進捗を示す情報を更新し、
前記情報処理装置が、前記他の情報処理装置による前記処理が実行されている場合、前記処理対象装置に格納された制御情報を監視し、当該制御情報に含まれる識別情報および前記処理の進捗を示す情報が所定時間以上同じであることを検出すると、当該識別情報に基づいて前記他の情報処理装置で障害が発生したと判断する、
制御方法。
【請求項９】
複数の情報処理装置の何れかが処理対象装置に対して排他的な処理を行うシステムに用いられる情報処理装置であって、
他の情報処理装置による前記処理が実行されていない場合、自装置の識別情報と前記処理の進捗を示す情報とを含む制御情報を前記処理対象装置に格納して、前記処理対象装置に対する前記処理を実行するとともに前記処理の進捗を示す情報を更新する実行手段と、
前記他の情報処理装置による前記処理が実行されている場合、前記処理対象装置に格納された制御情報を監視し、当該制御情報に含まれる識別情報および前記処理の進捗を示す情報が所定時間以上同じであることを検出すると、当該識別情報に基づいて前記他の情報処理装置で障害が発生したと判断する監視手段と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は排他的な処理を行う情報処理プログラム、制御方法および情報処理装置に関する。
【背景技術】
【０００２】
現在、複数の情報処理装置をネットワークで接続した情報処理システムが利用されている。このような情報処理システムでは、例えば、複数のサーバ装置が１つのデータベース装置にアクセスして処理を行うことがある。その場合、同時に発生した複数のアクセスにより、データの整合性が損なわれるおそれがある。そこで、排他制御を行うことがある。
【０００３】
例えば、共有するファイルに使用中かどうかを示す排他制御レコードを設け、オンライン処理またはバッチ処理で使用中の場合には、当該レコードに使用中状態をセットして、当該ファイルへのアクセスの排他制御を行う提案がある（例えば、特許文献１参照）。また、共有するファイルが使用されるときは占有中が表示されるロックファイルを設けて、当該ロックファイルを参照することで、当該ファイルへのアクセスの排他制御を行う提案がある（例えば、特許文献２参照）。
【０００４】
なお、実行中の処理が共有データに対するアクセスを排他されると、処理状態をサスペンドし、その後、中断した地点から当該処理を再開する提案がある（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−１３４９１４号公報
【特許文献２】特開平１０−２４７１５８号公報
【特許文献３】特開２０１１−７６３０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、あるサーバ装置がデータベース装置に排他的にアクセスしている際に、当該サーバ装置に障害が発生することがある。その場合、当該障害への対策を迅速に行うため、当該障害がどのサーバ装置で発生したかを把握したいことがある。このとき、障害のあったサーバ装置を容易に特定する仕組みをどのようにして実現するかが問題となる。例えば、各サーバ装置に監視用のソフトウェアを導入して、障害を検出することが考えられる。しかし、各サーバ装置に監視用のソフトウェアを導入するためのコストが生じてしまう。
【０００７】
本発明はこのような点に鑑みてなされたものであり、障害の発生した装置を容易に検出することができる情報処理プログラム、制御方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
コンピュータが実行する情報処理プログラムであって、複数のコンピュータの何れかが情報処理装置に対して排他的な処理を行うシステムに用いられる情報処理プログラムが提供される。この情報処理プログラムは、コンピュータに、他のコンピュータによる処理が実行されていない場合、自装置の識別情報と処理の進捗を示す情報とを含む制御情報を情報処理装置に格納して、情報処理装置に対する処理を実行するとともに処理の進捗を示す情報を更新し、他のコンピュータによる処理が実行されている場合、情報処理装置に格納された制御情報を監視し、当該制御情報に含まれる識別情報および処理の進捗を示す情報が所定時間以上同じであることを検出すると、当該識別情報に基づいて他のコンピュータで障害が発生したと判断する、処理を実行させる。
【０００９】
複数の情報処理装置の何れかが処理対象装置に対して排他的な処理を行うシステムで実行される制御方法が提供される。この制御方法では、情報処理装置が、他の情報処理装置による処理が実行されていない場合、自装置の識別情報と処理の進捗を示す情報とを含む制御情報を処理対象装置に格納して、処理対象装置に対する処理を実行するとともに処理の進捗を示す情報を更新する。情報処理装置が、他の情報処理装置による処理が実行されている場合、処理対象装置に格納された制御情報を監視し、当該制御情報に含まれる識別情報および処理の進捗を示す情報が所定時間以上同じであることを検出すると、当該識別情報に基づいて他の情報処理装置で障害が発生したと判断する。
【００１０】
複数の情報処理装置の何れかが処理対象装置に対して排他的な処理を行うシステムに用いられる情報処理装置が提供される。この情報処理装置は実行手段と監視手段とを有する。実行手段は、他の情報処理装置による処理が実行されていない場合、自装置の識別情報と処理の進捗を示す情報とを含む制御情報を処理対象装置に格納して、処理対象装置に対する処理を実行するとともに処理の進捗を示す情報を更新する。監視手段は、他の情報処理装置による処理が実行されている場合、処理対象装置に格納された制御情報を監視し、当該制御情報に含まれる識別情報および処理の進捗を示す情報が所定時間以上同じであることを検出すると、当該識別情報に基づいて他の情報処理装置で障害が発生したと判断する。
【発明の効果】
【００１１】
障害の発生した装置を容易に検出できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の情報処理システムを示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】ＡＰサーバのハードウェア例を示す図である。
【図４】情報処理システムのソフトウェア例を示す図である。
【図５】ロック制御テーブルおよび比較テーブルの例を示す図である。
【図６】タイムアウト時間テーブルの例を示す図である。
【図７】日付変更処理の例を示すフローチャートである。
【図８】監視処理の例を示すフローチャートである。
【図９】日付変更処理の具体例を示す図である。
【図１０】日付変更処理の具体例を示す図（続き）である。
【図１１】日付変更処理の具体例を示す図（続き）である。
【図１２】日付変更処理の他の例を示す第１の図である。
【図１３】日付変更処理の他の例を示す第２の図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理システムを示す図である。第１の実施の形態の情報処理システムは、情報処理装置１，２，３を有する。情報処理装置１，２，３は、ＣＰＵ（Central Processing Unit）などのプロセッサとＲＡＭ（Random Access Memory）などのメモリとを備えてもよく、メモリに記憶されたプログラムをプロセッサが実行するコンピュータであってもよい。情報処理装置３は記憶手段３ａを有する。第１の実施の形態の情報処理システムでは、情報処理装置１，２が情報処理装置３に対する排他的な処理を行う。情報処理装置３は、情報処理装置１，２に対する処理対象装置である。当該処理中は、情報処理装置１，２の何れかが情報処理装置３を占有する。例えば、情報処理装置２が当該処理を行っている場合、記憶手段３ａに格納されたデータの情報処理装置１による当該処理の実行は行えない（排他制御）。情報処理装置１は、実行手段１ａおよび監視手段１ｂを有する。情報処理装置２は、実行手段２ａおよび監視手段２ｂを有する。
【００１４】
実行手段１ａは、当該処理の実行指示の入力を受け付ける。実行手段１ａは、情報処理装置２による当該処理が実行されていない場合、自装置（情報処理装置１）の識別情報と当該処理の進捗を示す情報とを含む制御情報を情報処理装置３に格納する。
【００１５】
ここで、識別情報とは、装置を識別するための情報である（例えば、ホスト名）。例えば、情報処理装置１にホスト名“ノードＡ１”が、情報処理装置２にホスト名“ノードＡ２”が付与されている場合、これらホスト名を情報処理装置１，２の識別情報とする。
【００１６】
また、処理の進捗を示す情報とは、情報処理装置３に対して実行している処理が、現在どの段階であるかを示す情報である。例えば、処理を開始した段階、前処理の段階、１段階目、２段階目、後処理の段階などの処理段階を識別するための情報であって、情報処理装置１，２間で予め合意されたものを格納する。
【００１７】
実行手段１ａは、情報処理装置３に対する当該処理を実行するとともに当該処理の進捗を示す情報を更新する。
監視手段１ｂは、情報処理装置２による当該処理が実行されている場合、情報処理装置３に格納された制御情報Ｄ１を監視する。ここで、制御情報Ｄ１は、記憶手段３ａに格納されている。制御情報Ｄ１は実行手段２ａによって格納されたものである。制御情報Ｄ１には、情報処理装置２のホスト名“ノードＡ２”が識別情報として登録されている。また、制御情報Ｄ１には、“処理段階２”が処理の進捗を示す情報として登録されている。実行手段２ａは、情報処理装置３に対する処理を実行するとともに、その処理の進捗に応じて、制御情報Ｄ１に含まれる処理の進捗を示す情報を更新する。
【００１８】
監視手段１ｂは、制御情報Ｄ１に含まれる識別情報および処理の進捗を示す情報が所定時間ＴＨ以上同じであることを検出すると、当該識別情報に基づいて情報処理装置２で障害が発生したと判断する。所定時間ＴＨは、例えば、当該処理のタイムアウト時間である。タイムアウト時間以上処理の進捗がない場合に障害と判断するのは、その場合に情報処理装置２上で当該処理に係るアプリケーションや通信で障害が発生している可能性が高いからである。
【００１９】
例えば、監視手段１ｂはあるタイミングで処理の進捗を示す情報の更新を検出する（ステップＴ１）。監視手段１ｂは、ステップＴ１のタイミングから時間ＴＡ経過後のタイミングで、処理の進捗を示す情報の更新を検出する（ステップＴ２）。時間ＴＡは所定時間ＴＨより短い時間である。監視手段１ｂは、ステップＴ２のタイミングから時間ＴＢ経過後のタイミングで、識別情報および処理の進捗を示す情報が更新されていない（ステップＴ２のときと同じである）ことを検出する（ステップＴ３）。時間ＴＢは、所定時間ＴＨと同じか、あるいは所定時間ＴＨよりも長い時間である。すると、監視手段１ｂは、当該識別情報に基づいて、情報処理装置２で障害が発生したと判断する。
【００２０】
監視手段１ｂは、障害検知後、情報処理装置２が実行していた処理を実行手段１ａに代わりに実行させてもよい。処理を代替する場合、実行手段１ａは情報処理装置２が実行済の段階から当該処理を継続してもよい。また、監視手段１ｂは、障害検知後、情報処理装置２で障害が発生した旨を情報処理システムの管理者に通知してもよい。
【００２１】
情報処理装置１によれば、情報処理装置２による情報処理装置３に対する（排他的な）処理が実行されていない場合、実行手段１ａにより、自装置の識別情報と処理の進捗を示す情報とを含む制御情報が情報処理装置３に格納される。実行手段１ａにより、情報処理装置３が占有され、情報処理装置３に対する処理が実行されるとともに、制御情報に含まれる処理の進捗を示す情報が更新される。情報処理装置２による情報処理装置３に対する（排他的な）処理が実行されている場合、監視手段１ｂにより、情報処理装置３に格納された制御情報Ｄ１が監視される。監視手段１ｂにより、制御情報Ｄ１に含まれる識別情報および処理の進捗を示す情報が所定時間同じであることが検出されると、当該識別情報に基づいて情報処理装置２で障害が発生したと判断される。
【００２２】
これにより、障害の発生した装置を容易に検出できる。具体的には、実行手段１ａ，２ａは、情報処理装置３に対する処理を行うとともに、自身の識別情報を含む制御情報を情報処理装置３に格納する。このため、監視手段１ｂ，２ｂは当該制御情報に含まれる識別情報を参照して、障害の発生した装置を容易に特定できる。このため、例えば、管理者に対して、障害の発生した装置を指定した障害対応の指示を迅速に行える。また、例えば、情報処理装置２で障害が発生した場合にも、情報処理装置２が実行していた処理を情報処理装置１で容易に代替できる。特に、当該制御情報には、処理の段階を示す情報が含まれる。例えば、実行手段１ａは、当該処理の段階を示す情報に基づき、実行済の段階を省いて、情報処理装置２による処理を継続してもよい。このようにすれば、同じ処理の二重実行を抑制できる。このため、引き継いだ処理を効率的に実行できる。
【００２３】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、金融機関の窓口業務の運用に利用される。第２の実施の形態の情報処理システムは、ＡＰ（APplication）サーバ１００，１００ａ，１００ｂ、ＤＢ（DataBase）サーバ２００，２００ａ、ホスト装置３００および管理端末装置４００を含む。ＡＰサーバ１００，１００ａ，１００ｂ、ＤＢサーバ２００，２００ａおよび管理端末装置４００は、ネットワーク１０に接続されている。ネットワーク１０は、例えばＬＡＮ（Local Area Network）である。ＡＰサーバ１００，１００ａ，１００ｂおよびホスト装置３００は、ネットワーク２０に接続されている。ネットワーク２０は、例えばＬＡＮやＷＡＮ（Wide Area Network）である。ネットワーク１０，２０は、この情報処理システムのために設けられた専用のネットワークでもよい。
【００２４】
ＡＰサーバ１００，１００ａ，１００ｂは、ＤＢサーバ２００，２００ａに格納されたデータを用いた処理を行うサーバコンピュータである。以下の説明において、ＡＰサーバ１００のホスト名を“ＡＰ０１”、ＡＰサーバ１００ａのホスト名を“ＡＰ０２”、ＡＰサーバ１００ｂのホスト名を“ＡＰ０３”とする。例えば、ＡＰサーバ１００，１００ａ，１００ｂは、ネットワーク１０を介して、窓口業務を行う窓口端末装置（図示を省略）と接続される。ＡＰサーバ１００，１００ａ，１００ｂは、窓口端末装置で入力された振込や引出の内容を示す業務データを取得し、ＤＢサーバ２００，２００ａに格納する。
【００２５】
ＤＢサーバ２００，２００ａは、ＡＰサーバ１００，１００ａ，１００ｂの処理に用いるデータを記憶するサーバコンピュータである。ＤＢサーバ２００，２００ａは、所定の関係データベース管理システム（ＲＤＢＭＳ：Relational DB Management System）によりデータを管理している。
【００２６】
ホスト装置３００は、ＡＰサーバ１００，１００ａ，１００ｂにオンラインバッチ処理（以下、バッチ処理ということがある）の実行を指示するホストコンピュータである。
管理端末装置４００は、情報処理システムの運用管理を行う管理者が利用するクライアントコンピュータである。
【００２７】
ここで、第２の実施の形態では、バッチ処理として、運用日付などの変更処理（以下、日付変更処理ということがある）を例示する。
運用日付とは、当該情報処理システム内で共通に利用する日付であり、各サーバ装置で管理する日付（各サーバ装置のＯＳ（Operating System）で管理されるカレンダー日付）とは異なるものである。運用日付は、一日のうちの所定のタイミング（例えば、午前０時になるタイミング）で変更される。具体的には、ホスト装置３００は、ＡＰサーバ１００，１００ａ，１００ｂに日付変更を通知する。当該通知を受けると、ＡＰサーバ１００，１００ａ，１００ｂは、ＤＢサーバ２００，２００ａに対する日付変更処理を実行する。例えば、ＡＰサーバ１００は、ＤＢサーバ２００に対する日付変更処理として、次の処理を順次行う（他のＡＰサーバの他のＤＢサーバに対する日付変更処理も同様）。
【００２８】
（１）ＡＰサーバ１００は、ＤＢサーバ２００の運用状態を解除する（以下の一連の処理を実行可能な状態となる）。これを“処理段階１”とする。
（２）ＡＰサーバ１００は、ＤＢサーバ２００に格納されたデータを参照して、業務データを更新する（過去日付の不要な業務データの削除、当日未処理分の業務データの翌日への繰越など）。これを“処理段階２”とする。
【００２９】
（３）ＡＰサーバ１００は、ＤＢサーバ２００に登録された運用日付の変更を行う。これを“処理段階３”とする
（４）ＡＰサーバ１００は、ＤＢサーバ２００を窓口業務の運用が可能な状態に戻す。これを“処理段階４”とする。
【００３０】
１つのＤＢサーバに対する日付変更処理は、上記所定のタイミングごとに１度行われればよい。当該情報処理システムではＤＢサーバ２００，２００ａの２台に対して日付変更処理を行うので、ＡＰサーバ１００，１００ａ，１００ｂの何れか１つまたは２つがＤＢサーバ２００，２００ａに対する日付変更処理を行えばよい。
【００３１】
ここで、上記（１）〜（４）の一連の処理（日付変更処理）は、ＡＰサーバ１００，１００ａ，１００ｂの何れかが、例えばＤＢサーバ２００を占有して行う。例えば、ＡＰサーバ１００がＤＢサーバ２００を占有している場合には、ＡＰサーバ１００ａ，１００ｂからＤＢサーバ２００内の（占有箇所の）データ変更を行うことは禁止される（排他制御）。すなわち、ＤＢサーバ２００を先着で占有したＡＰサーバが当該ＤＢサーバ２００に対する日付変更処理を実行することとなる。
【００３２】
図３は、ＡＰサーバのハードウェア例を示す図である。ＡＰサーバ１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ（Hard Disk Drive）１０３、画像信号処理部１０４、入力信号処理部１０５、ディスクドライブ１０６および通信部１０７を有する。各ユニットがＡＰサーバ１００のバスに接続されている。ＡＰサーバ１００ａ，１００ｂ、ＤＢサーバ２００，２００ａ、ホスト装置３００および管理端末装置４００もＡＰサーバ１００と同様のハードウェアを用いて実装できる。
【００３３】
ＣＰＵ１０１は、ＯＳプログラムやアプリケーションプログラムを実行して、ＡＰサーバ１００全体を制御する。
ＲＡＭ１０２は、ＣＰＵ１０１が実行するＯＳプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、ＣＰＵ１０１の処理に用いられるデータの少なくとも一部を一時的に記憶する。
【００３４】
ＨＤＤ１０３は、ＯＳプログラムやアプリケーションプログラムを記憶する。また、ＨＤＤ１０３は、ＣＰＵ１０１の処理に用いられるデータを記憶する。なお、ＨＤＤ１０３に代えて（または、ＨＤＤ１０３と併せて）、ＳＳＤ（Solid State Drive）など他の種類の不揮発性の記憶装置を用いてもよい。
【００３５】
画像信号処理部１０４は、ＣＰＵ１０１の命令に従って、ＡＰサーバ１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、例えば、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイを用いることができる。
【００３６】
入力信号処理部１０５は、ＡＰサーバ１００に接続された入力デバイス１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１２としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００３７】
ディスクドライブ１０６は、記録媒体１３に格納されたデータを読み取る読取装置である。記録媒体１３には、例えば、ＡＰサーバ１００に実行させるプログラムが記録されている。ディスクドライブ１０６は、例えば、ＣＰＵ１０１の命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。ＣＰＵ１０１は、例えば、当該プログラムを実行することで、後述するような機能を実現できる。当該プログラムは、コンピュータ読み取り可能な記録媒体１３に記録して配布可能である。
【００３８】
記録媒体１３としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−Ｒ／ＲＷ／ＲＡＭなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。半導体メモリには、ＵＳＢ（Universal Serial Bus）メモリなどのフラッシュメモリがある。
【００３９】
通信部１０７は、ネットワーク１０を介してＤＢサーバ２００，２００ａおよび管理端末装置４００と通信を行う通信インタフェースである。通信部１０８は、ネットワーク２０を介してホスト装置３００と通信を行う通信インタフェースである。通信部１０７，１０８は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
【００４０】
図４は、情報処理システムのソフトウェア例を示す図である。図４に示すユニットの一部または全部は、ＡＰサーバ１００，１００ａ，１００ｂおよびＤＢサーバ２００，２００ａが実行するプログラムのモジュールであってもよい。また、図４に示すユニットの一部または全部は、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などの電子回路であってもよい。ＡＰサーバ１００ａ，１００ｂもＡＰサーバ１００と同様のユニットを用いて実装できる。ＤＢサーバ２００ａもＤＢサーバ２００と同様のユニットを用いて実装できる。また、以下では、ＡＰサーバ１００がＤＢサーバ２００に対して処理を行う場合を想定して説明するが、他のＡＰサーバおよびＤＢサーバに関しても同様である。
【００４１】
ＡＰサーバ１００は、日付変更実行部１１０、制御情報ＤＢ１２０、監視部１３０および通知部１４０を有する。
日付変更実行部１１０は、ホスト装置３００の日付変更の通知に応じて、ＤＢサーバ２００に対する日付変更処理を実行する。日付変更実行部１１０は、日付変更処理を実行する前に、ＤＢサーバ２００に制御情報を登録する。日付変更実行部１１０は、制御情報を登録することでＤＢサーバ２００を占有する。制御情報には、自装置（ＡＰサーバ１００）のホスト名と日付変更処理の進捗を示す情報（以下、処理進捗ということがある）とが含まれる。日付変更実行部１１０は、日付変更処理の進捗に応じて、ＤＢサーバ２００に格納された制御情報にアクセスし、処理進捗を更新する。
【００４２】
ここで、日付変更実行部１１０は、日付変更処理を実行する前に、ＤＢサーバ２００の所定の制御情報ＤＢ（後述する）に対するロック状況を確認することで、ＤＢサーバ２００の占有状態を判断する。ＤＢサーバ２００が他のＡＰサーバにより占有されている場合、日付変更実行部１１０は、ＤＢサーバ２００に対して日付変更処理を行えない。その場合、日付変更実行部１１０は、ＤＢサーバ２００に格納された制御情報の監視を監視部１３０に指示する。ＤＢサーバ２００が他のＡＰサーバにより占有されていない場合、日付変更実行部１１０は、ＤＢサーバ２００の制御情報ＤＢをロックし、制御情報ＤＢに制御情報を登録できる。
【００４３】
制御情報ＤＢ１２０は、監視部１３０がＤＢサーバ２００から読み出した比較用の制御情報を記憶する。
監視部１３０は、ＤＢサーバ２００に対する他のＡＰサーバの日付変更処理の状況を監視する。具体的には、監視部１３０は、ＤＢサーバ２００に格納された制御情報を参照して、制御情報に含まれる識別情報および処理進捗が所定時間以上同じであるかを判断する。より具体的には、監視部１３０は、あるタイミングでＤＢサーバ２００から読み出した制御情報を制御情報ＤＢ１２０に格納しておく。監視部１３０は、所定周期でＤＢサーバ２００上の制御情報と内容を比較することで、制御情報の更新の有無を判断する。なお、制御情報に含まれる識別情報および処理進捗が所定時間以上同じである、とは、制御情報が所定時間以上同じである（更新されていない）ことを意味する。監視部１３０は、制御情報が所定時間以上同じである場合、次の処理を行う。すなわち、（１）監視部１３０は、通知部１４０に障害通知を行うよう指示する。（２）監視部１３０は、日付変更実行部１１０に処理の代替を指示する。
【００４４】
通知部１４０は、監視部１３０からの指示に応じて、管理端末装置４００に障害通知のメッセージを送信する。通知部１４０は、障害通知のための電子メールを生成し、管理者の電子メールアドレスに送信してもよい。通知部１４０には、当該メッセージや電子メールの宛先となる、管理端末装置４００のＩＰ（Internet Protocol）アドレスや管理者の電子メールアドレスが予め設定される。
【００４５】
ＤＢサーバ２００は、アクセス制御部２１０、業務ＤＢ２２０、制御情報ＤＢ２３０および運用日付管理部２４０を有する。
アクセス制御部２１０は、ＡＰサーバ１００，１００ａ，１００ｂからのアクセスを制御する。アクセス制御部２１０は、ＡＰサーバ１００，１００ａ，１００ｂからの要求（ロック要求）に応じて制御情報ＤＢ２３０をロックする。ロックの単位は、レコード単位、テーブル単位およびＤＢ単位とすることが考えられる。制御情報ＤＢ２３０がロックされると、アクセス制御部２１０は、ロックしたＡＰサーバからの書き込み要求のみを許容し、他のＡＰサーバからの書き込み要求を禁止する。アクセス制御部２１０の機能は、ＲＤＢＭＳにより実現できる。ロック要求は、制御情報ＤＢ２３０に格納された制御情報を更新できるかの問い合わせということができる。
【００４６】
アクセス制御部２１０は、ＡＰサーバ１００からの書き込み要求に応じて、業務ＤＢ２２０や制御情報ＤＢ２３０にデータを書き込む。アクセス制御部２１０は、ＡＰサーバ１００からの読み出し要求に応じて、業務ＤＢ２２０や制御情報ＤＢ２３０からデータを読み出す。アクセス制御部２１０は、ＡＰサーバ１００から日付変更処理の指示を受信すると、当該指示を運用日付管理部２４０に出力する。このように、ＡＰサーバ１００，１００ａ，１００ｂは、アクセス制御部２１０を介して、業務ＤＢ２２０、制御情報ＤＢ２３０および運用日付管理部２４０にアクセスする。更に、アクセス制御部２１０は、所定のタイミング（受付中の処理がタイムアウトしたタイミングあるいは、当該タイムアウトから所定時間経過したタイミング）で制御情報ＤＢ２３０のロック状態を解除する。
【００４７】
業務ＤＢ２２０は、金融機関の窓口業務に用いる業務データを記憶する。業務データは、ＡＰサーバ１００，１００ａ，１００ｂにより取得され業務ＤＢ２２０に格納される。
制御情報ＤＢ２３０は、制御情報を記憶する。制御情報は、ＡＰサーバ１００，１００ａ，１００ｂによって格納される。制御情報ＤＢ２３０をロックし、制御情報ＤＢ２３０に制御情報を書き込んだＡＰサーバが、ＤＢサーバ２００を占有するＡＰサーバである。
【００４８】
運用日付管理部２４０は、運用日付を管理する。運用日付管理部２４０は、アクセス制御部２１０から日付変更処理の指示を受信すると、運用日付を変更する。
図５は、ロック制御テーブルおよび比較テーブルの例を示す図である。図５（Ａ）はロック制御テーブル２３１を例示している。ロック制御テーブル２３１は、制御情報ＤＢ２３０に格納される。ロック制御テーブル２３１は、制御情報を格納するためのテーブルの一例である。ロック制御テーブル２３１は、ＡＰサーバ名および処理進捗の項目を含む。
【００４９】
ＡＰサーバ名の項目には、ＡＰサーバのホスト名が登録される。ホスト名は、ＦＱＤＮ（Fully Qualified Domain Name）、ＦＱＤＮの一部またはＩＰアドレスなどで指定できる。処理進捗の項目には、日付変更処理の進捗が登録される。例えば、ＡＰサーバ１００ａがＤＢサーバ２００を占有している場合、ＡＰサーバ名の項目には、ＡＰサーバ１００ａのホスト名“ＡＰ０２”が登録される。そのとき、ＤＢサーバ２００に対する日付変更処理が、“処理段階２”の段階であれば、処理進捗の項目には、“処理段階２”が登録される。処理進捗の項目の設定がどの処理段階を示すものであるかは、ＡＰサーバ１００，１００ａ，１００ｂで予め合意される。
【００５０】
図５（Ｂ）は比較テーブル１２１を例示している。比較テーブル１２１は、制御情報ＤＢ１２０に格納される。比較テーブル１２１は、比較用の制御情報を格納するためのテーブルの一例である。比較テーブル１２１は、ロック制御テーブル２３１と同様に、ＡＰサーバ名および処理進捗の項目を含む。各項目に登録される内容は、ロック制御テーブル２３１と同様である。
【００５１】
図６は、タイムアウト時間テーブルの例を示す図である。タイムアウト時間テーブル１２２は、制御情報ＤＢ１２０に格納される。タイムアウト時間テーブル１２２は、処理段階名およびタイムアウト時間の項目を含む。
【００５２】
処理段階名の項目には、日付変更処理の各処理段階を示す名称が登録される。タイムアウト時間の項目には、当該処理段階において障害と判断するまでの時間が登録される。例えば、処理段階名“処理段階１”に対して、タイムアウト時間“３秒”が登録される。
【００５３】
タイムアウト時間テーブル１２２と同様の管理情報は、ＤＢサーバ２００，２００ａの制御情報ＤＢ２３０にも格納される。
次に、以上の構成の情報処理システムの処理手順を説明する。なお、以下では、ＡＰサーバ１００がＤＢサーバ２００に対して日付変更処理を行う場合を想定する。ＡＰサーバ１００がＤＢサーバ２００ａに対して日付変更処理を行う場合や、ＡＰサーバ１００ａ，１００ｂがＤＢサーバ２００，２００ａに対して日付変更処理を行う場合も同様である。
【００５４】
図７は、日付変更処理の例を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
（ステップＳ１１）日付変更実行部１１０は、ホスト装置３００から日付変更通知を受信する。
【００５５】
（ステップＳ１２）日付変更実行部１１０は、ＤＢサーバ２００の占有を試みる。具体的には、日付変更実行部１１０は、制御情報ＤＢ２３０に記憶されたロック制御テーブル２３１のロックをアクセス制御部２１０に要求する。アクセス制御部２１０は、ロック制御テーブル２３１のロックが解除されていれば、ロック制御テーブル２３１をロックし、日付変更実行部１１０にロックした旨を応答する（ロック成功）。アクセス制御部２１０は、他のＡＰサーバによりロック制御テーブル２３１がロックされていれば、ロックできない旨を日付変更実行部１１０に応答する（ロック失敗）。
【００５６】
（ステップＳ１３）日付変更実行部１１０は、ロックに成功したか否かを判定する。ロックに成功した場合、処理をステップＳ１４に進める。ロックに成功しなかった場合（ロック失敗の場合）、日付変更実行部１１０は監視部１３０に監視開始を指示して処理をステップＳ１５に進める。
【００５７】
（ステップＳ１４）日付変更実行部１１０は、ロック制御テーブル２３１への制御情報の書き込み要求を、アクセス制御部２１０に送信する。アクセス制御部２１０は、受信した書き込み要求に応じて、ロック制御テーブル２３１に制御情報を登録する。制御情報には、ＡＰサーバ１００の識別情報（“ＡＰ０１”）および処理進捗（“処理段階１”）の情報が含まれる。
【００５８】
（ステップＳ１５）監視部１３０は、日付変更実行部１１０からの指示に応じて、制御情報ＤＢ２３０の監視を行う（詳細は後述する）。
（ステップＳ１６）日付変更実行部１１０は、日付変更が完了済であるか否かを運用日付管理部２４０に問い合わせる。日付未変更である場合、処理をステップＳ１７へ進める。日付変更済である場合、処理をステップＳ１８に進める。例えば、運用日付管理部２４０は、日付変更が直近の所定時間内（例えば、１時間以内）に行われたか否かを記録しておけば、日付変更実行部１１０からの当該問い合わせに対して、日付変更済／未変更を応答できる。
【００５９】
（ステップＳ１７）日付変更実行部１１０は、日付変更処理の各処理段階を“処理段階１”から順次実行する。その際、日付変更実行部１１０は、各処理段階に進むたびに、制御情報ＤＢ２３０に記憶されたロック制御テーブル２３１の処理進捗の項目を更新する。例えば、“処理段階２”に進めば、ロック制御テーブル２３１の処理進捗の項目を“処理段階１”から“処理段階２”に更新する。
【００６０】
（ステップＳ１８）日付変更実行部１１０は、ＤＢサーバ２００の占有を解除する。具体的には、日付変更実行部１１０は、ロック制御テーブル２３１のロック解除をアクセス制御部２１０に要求する。アクセス制御部２１０は、ロック制御テーブル２３１のロックを解除し（ロック制御テーブル２３１の設定をクリアする）、日付変更実行部１１０に解除完了を応答する。ロック制御テーブル２３１の各項目の設定がクリアされて設定なしとなった状態を初期状態と呼ぶこととする。
【００６１】
このようにして、ＡＰサーバ１００はＤＢサーバ２００に対する日付変更処理を実行する。なお、ＤＢサーバ２００，２００ａの両方の日付変更の完了を確認すると、ＡＰサーバ１００，１００ａ，１００ｂは、ＤＢサーバ２００，２００ａに格納された業務データを用いた通常の業務処理に移行する。
【００６２】
ＡＰサーバ１００は、ＤＢサーバ２００の占有に失敗した場合には、ＤＢサーバ２００に格納された制御情報の監視を行う。次に、当該監視処理（ステップＳ１５）の手順を説明する。
【００６３】
図８は、監視処理の例を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
（ステップＳ２１）監視部１３０は、制御情報ＤＢ１２０に記憶された比較テーブル１２１を初期化する。また、監視部１３０は、自身が備えるタイマを初期化する（タイマ値＝０）。
【００６４】
（ステップＳ２２）監視部１３０は、アクセス制御部２１０を介してロック制御テーブル２３１を参照し、設定内容を取得する。なお、ロック制御テーブル２３１の各項目の設定内容がクリアされて初期状態になっている場合、監視部１３０は設定内容を取得できない。その場合、監視部１３０は日付変更処理が他のＡＰサーバにより正常終了されたと判断して、監視処理を終了する。
【００６５】
（ステップＳ２３）監視部１３０は、ステップＳ２２で取得した設定内容と、比較テーブル１２１の設定内容を比較して、両設定内容が一致するか否かを判定する。一致する場合、処理をステップＳ２６に進める。一致しない場合、処理をステップＳ２４に進める。ここで、一致する場合とは、各テーブルのＡＰサーバ名の項目および処理進捗の項目の両方の設定内容が同一である場合である。一致しない場合とは、各テーブルのＡＰサーバ名の項目および処理進捗の項目の何れか一方または両方の設定内容が同一でない場合である。なお、比較テーブル１２１を初期化した直後は、比較テーブル１２１の各項目の設定は“ｎｕｌｌ”（設定なし）である。この場合、本ステップＳ２３の判定では、比較テーブル１２１とロック制御テーブル２３１の設定内容は一致しないと判断されることになる。
【００６６】
（ステップＳ２４）監視部１３０は、ステップＳ２２で取得した設定内容（ＡＰサーバ名および処理進捗）を比較テーブル１２１に設定する。
（ステップＳ２５）監視部１３０は、自身が備えるタイマをリセットする。監視部１３０は、当該タイマをスタートする。そして、処理をステップＳ２２に進める。
【００６７】
（ステップＳ２６）監視部１３０は、制御情報ＤＢ１２０に記憶されたタイムアウト時間テーブル１２２を参照して、タイムアウト時間が経過したか否かを判定する。タイムアウト時間テーブル１２２によれば、処理段階ごとにタイムアウト時間が定義されている。監視部１３０は、現処理段階のタイムアウト時間を抽出し、タイマのカウントと比較することで、タイムアウト時間が経過したか否かの判断を行える。タイムアウト時間を経過した場合、処理をステップＳ２７に進める。タイムアウト時間を経過していない場合、処理をステップＳ２２に進める。
【００６８】
（ステップＳ２７）監視部１３０は、比較テーブル１２１のＡＰサーバ名の項目を参照して、何れのＡＰサーバによる処理でタイムアウトとなったかを特定する。監視部１３０は、特定したＡＰサーバで障害が発生したと判断し、障害通知を行うよう通知部１４０に指示する。通知部１４０は、障害通知のメッセージを生成し、管理端末装置４００に送信する。監視部１３０は、処理の代替を日付変更実行部１１０に指示する。監視部１３０は監視を停止する。なお、当該処理段階でタイムアウトとなった場合（あるいはタイムアウト後、更に所定時間経過した後に）、アクセス制御部２１０はそれを検出して、ロック制御テーブル２３１のロックを解除する（他のＡＰサーバによってロック可能な状態となる）。
【００６９】
（ステップＳ２８）日付変更実行部１１０は、監視部１３０から処理の代替の指示を受け付けると、ＤＢサーバ２００の占有を試みる。具体的には、日付変更実行部１１０は、制御情報ＤＢ２３０に記憶されたロック制御テーブル２３１のロックをアクセス制御部２１０に要求する。アクセス制御部２１０は、ロック制御テーブル２３１のロックが解除されていれば、ロック制御テーブル２３１をロックし、日付変更実行部１１０にロックした旨を応答する（ロック成功）。アクセス制御部２１０は、他のＡＰサーバによりロック制御テーブル２３１がロックされていれば、ロックできない旨を日付変更実行部１１０に応答する（ロック失敗）。
【００７０】
（ステップＳ２９）日付変更実行部１１０は、ロックに成功したか否かを判定する。ロックに成功した場合、処理をステップＳ３０に進める。ロックに成功しなかった場合（ロック失敗の場合）、日付変更実行部１１０は監視部１３０に監視の再開を指示して処理をステップＳ２２に進める。
【００７１】
（ステップＳ３０）日付変更実行部１１０は、ロック制御テーブル２３１への制御情報の書き込み要求を、アクセス制御部２１０に送信する。アクセス制御部２１０は、受信した書き込み要求に応じて、ロック制御テーブル２３１に制御情報を登録する。制御情報には、ＡＰサーバ１００の識別情報（ホスト名）および処理進捗（例えば、“処理段階１”）の情報が含まれる。そして、処理を図７のステップＳ１６に進める。
【００７２】
このようにして、監視部１３０は制御情報ＤＢ２３０に記憶された制御情報を監視する。そして、監視部１３０は同一のＡＰサーバがある処理段階でタイムアウトとなったときに、当該ＡＰサーバで障害が発生したと判断する。すると、通知部１４０は障害通知のメッセージを管理端末装置４００に送信する。通知部１４０は、障害通知のメッセージを記述した電子メールを所定の電子メールアドレスに送信してもよい。なお、ステップＳ２７で示した障害通知メッセージの送信処理は、ステップＳ２９またはステップＳ３０の直後に実行されてもよい。
【００７３】
また、日付変更実行部１１０は、障害と判断されたＡＰサーバの代わりに日付変更処理を実行する。日付変更実行部１１０は、当該処理を代替する際、図７のステップＳ１７で示したように、日付変更処理の最初の段階（“処理段階１”）から順次実行することが考えられる。一方、途中まで処理段階が進んでいる場合には、日付変更実行部１１０は途中の処理段階から処理を引き継いでもよい。実行済の処理段階を省き、処理の効率化を図るためである。
【００７４】
この場合、ステップＳ２７で、監視部１３０は処理の代替の指示とともに、ロック制御テーブル２３１に設定された処理段階（例えば、“処理段階３”）を、日付変更実行部１１０に通知する。すると、ステップＳ３０で、日付変更実行部１１０は通知された処理段階を、ロック制御テーブル２３１に設定する。その後、図７で示したステップＳ１７では、日付変更実行部１１０は当該処理段階（例えば、“処理段階３”）から順次処理を実行していけばよい。このようにすれば、他のＡＰサーバによって、日付変更処理が“処理段階２”まで完了しているとき、日付変更実行部１１０は“処理段階１”および“処理段階２”を省いて“処理段階３”から日付変更処理を引き継げる。
【００７５】
次に、以上で示した日付変更処理の具体例を説明する。以下では、ＡＰサーバ１００，１００ａ，１００ｂとＤＢサーバ２００との間の処理を説明するが、ＡＰサーバ１００，１００ａ，１００ｂとＤＢサーバ２００ａとの間の処理も同様である。
【００７６】
図９は、日付変更処理の具体例を示す図である。以下、図９に示す処理をステップ番号に沿って説明する。
（ステップＳＴ１０１）ＡＰサーバ１００，１００ａ，１００ｂは、ホスト装置３００から日付変更の通知を受ける。すると、ＡＰサーバ１００，１００ａ，１００ｂは、ＤＢサーバ２００の占有を試みる。すなわち、ＡＰサーバ１００，１００ａ，１００ｂは、制御情報ＤＢ２３０に格納されたロック制御テーブル２３１のロックをＤＢサーバ２００に要求する。このとき、ＡＰサーバ１００がロックに成功したとする。すると、ＡＰサーバ１００ａ，１００ｂからロック制御テーブル２３１に対するデータ更新は禁止される（ＡＰサーバ１００ｂはロックに失敗する）。
【００７７】
（ステップＳＴ１０２）ＡＰサーバ１００は、自身のＡＰサーバ名“ＡＰ０１”および処理進捗“処理段階１”を、ロック制御テーブル２３１に登録する。以後、ＡＰサーバ１００は、次の処理段階に進むたびに、ロック制御テーブル２３１の処理進捗の項目を“処理段階２”、“処理段階３”、・・・と順次更新する。一方、ＡＰサーバ１００ａ，１００ｂは、ロック制御テーブル２３１の監視を行う。そして、図１０のステップＳＴ１０３，１０３ａの何れかに進む。
【００７８】
図１０は、日付変更処理の具体例を示す図（続き）である。以下、図１０に示す処理をステップ番号に沿って説明する。ここで、ステップＳＴ１０３は、ステップＳＴ１０２の次の状態を示しており、ＡＰサーバ１００による日付変更処理が正常に終了する場合を例示している（ＡＰサーバ１００ｂは図示を省略）。
【００７９】
（ステップＳＴ１０３）ＡＰサーバ１００は、ＤＢサーバ２００の占有を解除する。具体的には、ＡＰサーバ１００は、ＤＢサーバ２００にロック解除の要求を送信する。すると、ＤＢサーバ２００は、ロック制御テーブル２３１の設定をクリアし、初期状態（設定なしの状態）に戻す。すると、ＡＰサーバ１００，１００ａ，１００ｂは、ＤＢサーバ２００に格納された業務データを用いた業務処理を開始可能となる。これにより、日付変更処理は正常に終了する。
【００８０】
一方、ステップＳＴ１０３ａは、ステップＳＴ１０２の次の状態を示しており、ＡＰサーバ１００で障害が発生した場合を例示している（ＡＰサーバ１００ｂは図示を省略）。
（ステップＳＴ１０３ａ）ＡＰサーバ１００は、障害により、日付変更処理を続行できない状態となる。すると、ＤＢサーバ２００を監視していたＡＰサーバ１００ａは、ロック制御テーブル２３１に設定されたＡＰサーバ名および処理進捗の情報が更新されないまま、タイムアウト時間が経過したことを検出する。そして、ＡＰサーバ１００ａは、ロック制御テーブル２３１に設定されたＡＰサーバ名“ＡＰ０１”に基づいてＡＰサーバ１００で障害が発生したと判断する。ＡＰサーバ１００ａは、ＡＰサーバ１００で障害が発生した旨を通知するメッセージを管理端末装置４００に送信する。そして、図１１のステップＳＴ１０４に進む。
【００８１】
図１１は、日付変更処理の具体例を示す図（続き）である。以下、図１１に示す処理をステップ番号に沿って説明する。
（ステップＳＴ１０４）ＤＢサーバ２００は、タイムアウト時間（あるいはタイムアウト時間に所定時間を加算した時間）を経過したことにより、ロック制御テーブル２３１のロックを解除する。ＡＰサーバ１００ａは、ＤＢサーバ２００の占有を試みる。すなわち、ＡＰサーバ１００ａは、制御情報ＤＢ２３０に格納されたロック制御テーブル２３１のロックをＤＢサーバ２００に要求する。ＡＰサーバ１００ａは当該ロックに成功したとする。この場合、ＡＰサーバ１００ｂはＤＢサーバ２００にロック要求をしても、既にＡＰサーバ１００ａによりロック済のため、ロックは失敗する。
【００８２】
（ステップＳＴ１０５）ＡＰサーバ１００ａは、自身のＡＰサーバ名“ＡＰ０２”および処理進捗“処理段階１”を、ロック制御テーブル２３１に登録する。以後、ＡＰサーバ１００ａは、次の処理段階に進むたびに、ロック制御テーブル２３１の処理進捗の項目を“処理段階２”、“処理段階３”、・・・と順次更新する。一方、ＡＰサーバ１００ｂは、ロック制御テーブル２３１の監視を行う。以降の処理は、ステップＳＴ１０３，ＳＴ１０３ａで説明した処理と同様である。
【００８３】
なお、ステップＳＴ１０５において、ＡＰサーバ１００ａがＡＰサーバ１００の処理を途中から引き継ぐ場合には、ロック制御テーブル２３１の処理進捗の項目に“処理段階３”を登録する。そして、ＡＰサーバ１００ａは、“処理段階３”から順次処理を行う。
【００８４】
このようにして、ＡＰサーバ１００，１００ａ，１００ｂは、ＤＢサーバ２００に対する日付変更処理を行う。
次に、日付変更処理を行うための他のシステム例を示し、第２の実施の形態の日付変更処理と対比する。
【００８５】
図１２は、日付変更処理の他の例を示す第１の図である。図１２（Ａ）は第１のシステム例を示す。第１のシステム例では、１つのＡＰサーバに対し、日付変更処理の対象とする１つのＤＢサーバを対応付ける。第１のシステム例は、ホスト装置５１０、ＡＰサーバ５２０，５２０ａ，５２０ｂおよびＤＢサーバ５３０，５３０ａを含む。
【００８６】
ＡＰサーバ５２０は、ＤＢサーバ５３０に対して日付変更処理を行う。ＡＰサーバ５２０ａは、ＤＢサーバ５３０ａに対して日付変更処理を行う。しかし、この場合、ＡＰサーバ５２０，５２０ａで障害が発生すると、ＤＢサーバ５３０，５３０ａに対する日付変更処理を行うのが困難となる。
【００８７】
図１２（Ｂ）は第２のシステム例を示す。第２のシステム例では、ＡＰサーバがＤＢサーバ上のアプリケーションに対して、日付変更の指示を行う。第２のシステム例は、ホスト装置６１０、ＡＰサーバ６２０，６２０ａ，６２０ｂおよびＤＢサーバ６３０，６３０ａ，６３０ｂ，６３０ｃを含む。
【００８８】
ＤＢサーバ６３０，６３０ａはクラスタ構成であり、ＤＢサーバ６３０ａの運用日付はＤＢサーバ６３０に同期される。また、ＤＢサーバ６３０ｂ，６３０ｃはクラスタ構成であり、ＤＢサーバ６３０ｃの運用日付はＤＢサーバ６３０ｂに同期される。ＤＢサーバ６３０，６３０ａ，６３０ｂ，６３０ｃは、それぞれ運用日付を管理するためのアプリケーションである運用日付管理アプリ６３１，６３１ａ，６３１ｂ，６３１ｃを備えている。
【００８９】
この場合、ＡＰサーバ６２０，６２０ａ，６２０ｂは、運用日付管理アプリ６３１，６３１ｂに運用日付の変更指示を行えばよい。しかし、例えば、運用日付管理アプリ６３１，６３１ａ間で同期を行う際に、ＤＢサーバ６３０，６３０ａ間で日付変更処理のための通信が発生し、ＤＢサーバ６３０，６３０ａ間の高可用性機能（死活監視やレプリケーションなど）に悪影響を及ぼす可能性がある。また、何れかのＤＢサーバ間で運用日付変更を行えなかった場合に、当該日付変更を確実に完了することが困難になる。
【００９０】
図１３は、日付変更処理の他の例を示す第２の図である。図１３は第３のシステム例を示す。第３のシステム例では、複数のＡＰサーバ間で協調してどのＡＰサーバがどのＤＢサーバに対する日付変更処理を行うかを決定する。第３のシステム例は、ホスト装置７１０、ＡＰサーバ７２０，７２０ａ，７２０ｂおよびＤＢサーバ７３０，７３０ａを含む。
【００９１】
ＡＰサーバ７２０，７２０ａ，７２０ｂは、相互に通信して、何れのＡＰサーバが何れのＤＢサーバに対して日付変更処理を行うかを決定する。しかし、この場合、ＡＰサーバ間の通信量が増大して制御が煩雑になり、ＡＰサーバの数が増加するとＡＰサーバおよびネットワークの負荷が増大する可能性がある。また、制御が複雑化して、当該制御を記述するプログラムのバグが増大する可能性もある。
【００９２】
このように、図１２，１３で示した何れのシステム例においても、ＤＢサーバに対して日付変更処理を確実に行うことが困難となり得る。
一方、図１１までで説明した第２の実施の形態の情報処理システムにおける日付変更処理では、障害の発生したＡＰサーバを検出して、ＤＢサーバに対する日付変更処理を確実に完了させることができる。
【００９３】
具体的には、ＡＰサーバ１００，１００ａ，１００ｂは、ＤＢサーバ２００，２００ａに格納した制御情報によって、他のＡＰサーバが実行する日付変更処理の状況を監視できる。このため、ＡＰサーバ間での制御が発生せず、例えば第３のシステム例に比べてネットワークに対する負荷の増大を抑えられ、また、制御を簡易化することができる。特に、排他制御にＲＤＢＭＳの機能を利用することで、実装に要する作業コストを軽減できる。
【００９４】
ＡＰサーバ１００，１００ａ，１００ｂは、当該制御情報に基づいて、ＡＰサーバの障害を検出できる。このとき、制御情報に含まれるＡＰサーバ名によって、障害の検出されたＡＰサーバを特定できる。したがって、情報処理システムの管理者に障害対象を的確に通知でき、当該通知による迅速な障害対応が可能となる。
【００９５】
更に、あるＡＰサーバによって日付変更処理を続行できなくなった場合でも、他のＡＰサーバにより処理を代替できる。これにより、各ＤＢサーバに対する日付変更処理を確実に完了させることができる。特に、他のＡＰサーバで日付変更処理を代替する場合、制御情報に含まれる処理進捗を参照して、それまでに実行済の処理段階を省いて、途中の段階から処理を引き継ぐこともできる。これにより、引き継ぎ後の処理を効率化することができる。また、このように自動的に他のＡＰサーバで日付変更を継続できるので、万一何れかのＡＰサーバによる日付変更で障害が発生しても、運用への影響を軽減できる。
【００９６】
なお、第２の実施の形態では、ＤＢサーバ２００，２００ａの運用日付を変更する処理を例示して説明したが、当該例に限られず、ＡＰサーバがＤＢサーバを占有して行う他の処理に対しても適用することができる。
【００９７】
以上、本発明の情報処理プログラム、制御方法および情報処理装置を説明したが、本発明はこれに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や行程が付加されてもよい。また、本発明は前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【００９８】
１，２，３  情報処理装置
１ａ，２ａ  実行手段
１ｂ，２ｂ  監視手段
３ａ  記憶手段
Ｄ１  制御情報
【図１】
0005596001.tif 000002
【図２】
0005596001.tif 000003
【図３】
0005596001.tif 000004
【図４】
0005596001.tif 000005
【図５】
0005596001.tif 000006
【図６】
0005596001.tif 000007
【図７】
0005596001.tif 000008
【図８】
0005596001.tif 000009
【図９】
0005596001.tif 000010
【図１０】
0005596001.tif 000011
【図１１】
0005596001.tif 000012
【図１２】
0005596001.tif 000013
【図１３】
0005596001.tif 000014