(57)【要約】      （修正有）【課題】二重化処理から離脱した場合でも、可能なかぎり早期に正確な情報を正系から副系に提供する。【解決手段】現用装置は、データが格納されたことを記録する更新記録情報に通知順を示す順序番号を付して、通信路を通じて予備装置に通知し、更新記録情報の通知の完了を確認できないときに、更新記録情報を蓄積する。予備装置から、更新記録情報の再送依頼を受けたときに、再度通知する。予備装置は、現用装置から通知される更新記録情報を監視し、それぞれの更新記録情報に付された順序番号の規則性に基づいて更新記録情報の受信漏れを検知する。更新記録情報の受信漏れが検知されたときに、更新記録情報の再送を要求し、受信漏れのあった更新記録情報に付されるべき順序番号を基に、現用装置の第１の格納手段と当該予備装置の第２の格納手段との間での格納されているデータの整合に係る情報を報知する。【選択図】図２
2010033467.tif 000002
【特許請求の範囲】
【請求項１】
通信路を通じて接続される現用装置と予備装置とを含む情報管理システムであって、
前記現用装置は、
データを格納する第１の格納手段と、
前記第１の格納手段にデータを格納したときに、前記データが格納されたことを記録する更新記録情報に通知順を示す順序番号を付して、前記通信路を通じて前記予備装置に通知する通知手段と、
前記通知手段による前記通信路を通じた更新記録情報の通知の完了を確認できないときに、前記更新記録情報を蓄積する蓄積手段と、
前記予備装置から、前記更新記録情報の再送依頼を受けたときに、前記蓄積手段に蓄積された前記更新記録情報を前記通知手段によって再度通知する手段と、を備え、
前記予備装置は、
前記現用装置から通知される更新記録情報を監視し、それぞれの更新記録情報に付された順序番号の規則性に基づいて前記更新記録情報の受信漏れを検知する手段と、
データを格納する第２の格納手段と、
前記現用装置から通知される更新記録情報にしたがって前記第２の格納手段のデータを更新する手段と、
前記更新記録情報の受信漏れが検知されたときに、前記更新記録情報の再送を要求する手段と、
前記受信漏れのあった更新記録情報に付されるべき順序番号を基に、前記現用装置の第１の格納手段と当該予備装置の第２の格納手段との間での格納されているデータの整合に係る情報を報知する手段と、を備える情報管理システム。
【請求項２】
前記現用装置は、当該情報管理システムにサービスの提供を要求する連携装置と通信する手段と、
前記蓄積手段に蓄積された更新記録情報の前記予備装置への転送を前記連携装置に要求する手段と、をさらに備える請求項１に記載の情報管理システム。
【請求項３】
前記現用装置の通知手段は、前記蓄積手段に更新記録情報が蓄積されており、かつ、前記予備装置から前記再送依頼を受けていない場合には、前記蓄積手段に蓄積された更新記録情報に含まれる順序番号に後続する順序番号を前記第１の格納手段に新たに格納されたデータの更新記録情報に付して通知する請求項１または２に記載の情報管理システム。
【請求項４】
通信路を通じて接続される現用装置と予備装置とを含む情報管理システムが実行する情報管理方法であって、
前記現用装置は、
データを第１の格納手段に格納するステップと、
前記第１の格納手段にデータを格納したときに、前記データが格納されたことを記録する更新記録情報に通知順を示す順序番号を付して、前記通信路を通じて前記予備装置に通知する通知ステップと、
前記通知ステップにて、前記通信路を通じた更新記録情報の通知の完了を確認できないときに、前記更新記録情報を蓄積手段に蓄積するステップと、
前記予備装置から、前記更新記録情報の再送依頼を受けたときに、前記蓄積手段に蓄積された前記更新記録情報を再度通知するステップと、を実行し、
前記予備装置は、
前記現用装置から通知される更新記録情報を監視し、それぞれの更新記録情報に付された順序番号の規則性に基づいて前記更新記録情報の受信漏れを検知するステップと、
データを第２の格納手段に格納するステップと、
前記現用装置から通知される更新記録情報にしたがって前記第２の格納手段のデータ
を更新するステップと、
前記更新記録情報の受信漏れが検知されたときに、前記更新記録情報の再送を要求するステップと、
前記受信漏れのあった更新記録情報に付されるべき順序番号を基に、前記現用装置の第１の格納手段と当該予備装置の第２の格納手段との間での格納されているデータの整合に係る情報を報知するステップと、を実行する情報管理方法。
【請求項５】
通信路を通じて接続される現用装置と予備装置とを、情報管理システムとして機能させるコンピュータプログラムであって、
前記現用装置に、
データを第１の格納手段に格納するステップと、
前記第１の格納手段にデータを格納したときに、前記データが格納されたことを記録する更新記録情報に通知順を示す順序番号を付して、前記通信路を通じて前記予備装置に通知する通知ステップと、
前記通知ステップにて、前記通信路を通じた更新記録情報の通知の完了を確認できないときに、前記更新記録情報を蓄積手段に蓄積するステップと、
前記予備装置から、前記更新記録情報の再送依頼を受けたときに、前記蓄積手段に蓄積された前記更新記録情報を再度通知するステップと、を実行させるプログラムと、
前記予備装置に、
前記現用装置から通知される更新記録情報を監視し、それぞれの更新記録情報に付された順序番号の規則性に基づいて前記更新記録情報の受信漏れを検知するステップと、
データを第２の格納手段に格納するステップと、
前記現用装置から通知される更新記録情報にしたがって前記第２の格納手段のデータを更新するステップと、
前記更新記録情報の受信漏れが検知されたときに、前記更新記録情報の再送を要求するステップと、
前記受信漏れのあった更新記録情報に付されるべき順序番号を基に、前記現用装置の第１の格納手段と当該予備装置の第２の格納手段との間での格納されているデータの整合に係る情報を報知するステップと、を実行させるプログラムとを含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、データベース等の情報管理に関する。
【背景技術】
【０００２】
データベースは企業の情報システムにおいて最も重要なデータを管理している。そのため、データベースに含まれるハードウェアの一部が故障した場合でも、データベースには、高度の安定稼働が求められる。このようなクリティカルな要件が課されたデータベースシステムでは一般に、クラスタ構成によるサーバの冗長化が行なわれてきた。クラスタ構成とは、複数のコンピュータ（ノードという）を組み合わせて、ユーザにサービスを提供するシステムをいう。
しかし、近年、このようなシステムにおいて、以下の点が課題となってきている。
【０００３】
第１に、ストレージなど共用部分の部品の故障により業務停止となる場合が生じる。
【０００４】
第２に、クラスタを構成するノードの１つを他のノードに切り替える場合に、切り替え時間が規模に応じて長時間、例えば、数十秒から数分以上必要となる。
【０００５】
上記の課題に対しては、共有部分（従来のクラスタ構成における共用ディスクなど）を持たない完全二重化構成とすることが、最も有効な対策となる。その場合、待機ノードにデータベースの複製環境を常に起動状態でスタンバイしておくことで、高速にノードを切り替えて、迅速な業務再開を実現することになる。このような完全二重化システムをデュープレックスシステムという。
【０００６】
一般的なデュープレックスシステムでは、データベースが正系と副系とによって二重化されて管理される。正系と副系とは、データ搬送路を通じて情報を交換する。そして、二重化されたデータベースの一方を正系とし、アプリケーションからは正系のみ更新可能にする。このような構成によって、デュープレックスシステムでのデータベースの整合性が保証される。また、デュープレックスシステムでは、正系と副系とがアプリケーションを実行するサーバ（以下、アプリケーションサーバという）からは意識されない。したがって、デュープレックスシステムでは、アプリケーションサーバに対して正系のデータベースに自動接続する機能を提供している。
【０００７】
また、デュープレックスシステムは、データ搬送路の一時的な障害、あるいは、副系の保守に備えて、正系にログを蓄積する。そして、データ搬送路の障害からの復旧後、あるいは、副系の保守完了後、自動的に二重化を復活する機能を有する。
【０００８】
さらに、デュープレックスシステムのような完全二重化システムは、正系ノードで故障した場合でも、副系ノードへの切り替えを行い、業務を継続することが可能となり、可用性が向上する。しかし、完全二重化システムは、通常、ネットワークの異常など、データの搬送路が異常となった場合、二重化処理の実行が不可能として二重化処理から離脱する。さらに、二重化処理からの離脱となった場合には、再度二重化処理を復旧するためには、二重化処理離脱後のデータを正系から副系にコピーする必要がある。このため、復旧時のシステムの負荷が高くなる。
【０００９】
そこで、ネットワークの異常など、障害が容易に解消する可能性がある場合は、正系にログを蓄積し、障害解消後、自動的に再送することで二重化が復活するようなシステムが求められている。
【特許文献１】特許第２９０４１００号公報
【特許文献２】特開２００１−０２２６２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、ネットワークの異常などにより正系でログ蓄積中に、さらに、正系に異常が発生する場合が想定される。このような場合、早急に、正系から副系に切り替えたいとの要請が生じる。しかし、副系にはログが搬送されていないため、完全同期の状態では切り替えできない。すなわち、正系から副系への切り替えには、データロストのリスクが伴う。
【００１１】
このためログ蓄積中・障害復旧時は、ユーザが以下の情報を認識し、運用・切り替えの判断を行う必要がある。一般的に、この判断は健全なサーバ（例えば、副系など）の情報に基づいてなされる。
【００１２】
正系でログ蓄積が行われているか。正系でログ蓄積が行われた場合、ネットワークおよび二重化処理が復旧したか。復旧した場合、どれくらいの時間でデータ完全同期状態となるか。すなわち、データロストのリスクが消滅するか。このように、二重化システムでは、可能なかぎり早期に正確な情報を副系へ提供することが求められている。
【００１３】
本開示技術は、二重化システムがネットワークの障害等によって、二重化処理から離脱した場合でも、可能なかぎり早期に正確な情報を正系から副系に提供することを目的とする。
【課題を解決するための手段】
【００１４】
本技術の一態様は、通信路を通じて接続される現用装置と予備装置とを含む情報管理システムとして例示できる。ここで、現用装置は、データを格納する第１の格納手段と、第１の格納手段にデータを格納したときに、データが格納されたことを記録する更新記録情報に通知順を示す順序番号を付して、通信路を通じて予備装置に通知する通知手段と、通知手段による通信路を通じた更新記録情報の通知の完了を確認できないときに、更新記録情報を蓄積する蓄積手段と、予備装置から、更新記録情報の再送依頼を受けたときに、蓄積手段に蓄積された更新記録情報を通知手段によって再度通知する手段と、を備えるようにすればよい。一方、予備装置は、現用装置から通知される更新記録情報を監視し、それぞれの更新記録情報に付された順序番号の規則性に基づいて更新記録情報の受信漏れを検知する手段と、データを格納する第２の格納手段と、現用装置から通知される更新記録情報にしたがって第２の格納手段のデータを更新する手段と、更新記録情報の受信漏れが検知されたときに、更新記録情報の再送を要求する手段と、受信漏れのあった更新記録情報に付されるべき順序番号を基に、現用装置の第１の格納手段と当該予備装置の第２の格納手段との間での格納されているデータの整合に係る情報を報知する手段と、を備えるようにすればよい。
【００１５】
本情報管理システムによれば、現用装置は、順序番号を付して更新記録情報を通知するともに、通知手段による通信路を通じた更新記録情報の通知の完了を確認できないときに、更新記録情報を蓄積する。このような手順を繰り返すことで、予備装置が、更新記録情報に付された順序番号の規則性に基づいて更新記録情報の受信漏れを検知することができる。したがって、現用装置の第１の格納手段と当該予備装置の第２の格納手段との間での格納されているデータの整合に係る情報を報知することが可能となる。
【００１６】
より具体的には、現用装置の通知手段は、蓄積手段に更新情報を蓄積した状態で、予備装置から再送依頼を受けていない場合には、蓄積手段に蓄積された更新記録情報に含まれ
る順序番号に後続する順序番号を新たに格納されたデータの更新記録情報に付して通知すればよい。このようにすることで、予備装置側で、順序番号の抜けが検出された場合には、その抜けた順序番号に相当する更新記録情報が現用装置の蓄積手段に蓄積されていることが分かる。
【発明の効果】
【００１７】
本情報管理システムによれば、二重化システムがネットワークの障害等によって、二重化処理から離脱した場合でも、可能なかぎり早期に正確な情報を正系から副系に提供することができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本技術の最良の形態（以下、実施形態という）に係る情報管理システムについて説明する。以下の実施形態の構成は例示であり、本技術は実施形態の構成には限定されない。
【００１９】
＜システムの概要＞
図１に、本情報管理システムのデータフローを例示する。本情報管理システムは、運用ノードと、待機ノードとをネットワークで接続して構成される。運用ノードは、正系ノード、あるいは現用装置ともいい、データベース管理システム（ＤＢＭＳ）、データベース複製装置、二重化監視装置、データベースおよび差分ログファイルを含む。また、待機ノードは、副系ノード、予備装置あるいは、予備系ノードともいい、基本的には、運用ノードと同一の構成を含む。
【００２０】
データベース管理システムは、データベースにアクセスする他の装置（例えば、アプリケーションプログラムを実行するアプリケーションサーバ等）からの要求を受け付け、その要求にしたがって、データベースに対して処理を実行する。処理とは、例えば、データベースへのデータの格納、データベースからのデータの読み出し等である。
【００２１】
なお、本情報管理システムは、同期転送モードで稼働している。同期転送モードとは、アプリケーションサーバ等からデータベースに対するコミット操作に対して、運用ノードでデータベースが更新され、さらに、待機ノードにデータを転送した後に、アプリケーションサーバ等に完了を報告するモードである。なお、非同期のモードでは、運用ノードでのデータベースが更新されても、直ちに、待機ノードにログが送付されていることが保証されるとは限らない。すなわち、アプリケーションサーバ等への完了報告とは切り離されたタイミングで、待機ノードにログが転送される。
【００２２】
データベース複製装置は、データベースに格納されたデータ、あるいは、データベースにて更新されたデータにしたがって、差分ログファイルを作成し、ネットワークを通じて、待機ノードに引き渡す。これによって、待機ノード側で、運用ノードと同様に、データベースにデータが格納され、あるいは、データベースにてデータが更新される。すなわち、待機ノードのデータベース複製装置は、運用ノードから転送された差分ログにしたがって、データベースのデータを更新する。
【００２３】
二重化監視装置は、データベース複製装置によるネットワークを通じた複製処理が正常に実行されているか否かを監視する。ネットワークを通じた複製処理が正常に実行されなくなった場合、二重化監視装置は、データベース複製装置および本情報管理システムを蓄積モードに移行し、差分ログファイルを所定の蓄積先に蓄積させる。また、二重化監視装置は、ネットワークを通じた複製処理が復旧し、再度正常に実行されるようになったか否かを確認する。そして、ネットワークを通じた複製処理が復旧し、再度正常に実行されるようになると、二重化監視装置は、データベース複製装置および本情報管理システム（運
用ノードおよび待機ノード）を再び同期モードに移行する。
【００２４】
なお、運用ノードおよび待機ノードは、いずれも、ＣＰＵ、メモリ、ハードディスク駆動装置、着脱可能記憶媒体の駆動装置、通信インターフェース等を備えたコンピュータで構成される。このようなコンピュータの構成そのものは周知であるので、その説明を省略する。
【００２５】
図２に、一般的な情報管理システムの処理概要を例示する。以下、本実施形態では、運用ノードを正システム１と呼び、待機ノードを副システム２と呼ぶことにする。
【００２６】
また、図２には、アプリケーションサーバ３が示されている。アプリケーションサーバ３は、通常、正システム１に対して、データベース１１（第１の格納手段に相当）の更新を依頼する。正システム１は、アプリケーションサーバ３の依頼に応じてデータベース１１を更新するとともに、ログ搬送路４を通じて、副システム２に、データベース１１の更新を示すログデータを転送する。副システム２は、転送されたログデータを基に、データベース２１（第２の格納手段に相当）を更新する。これによって、正システム１のデータベース１１の更新結果が、副システム２のデータベース２１において複製されることになる。
【００２７】
ログ搬送路４に、障害が発生し、正システム１から副システム２にログデータを転送できなくなると、正システム１は、同期転送モードでのログデータの副システム２への転送を休止し、ログデータを蓄積ログ５として格納する。蓄積ログ５のログデータは、正システム１でのデータベースの更新時とは異なるタイミングで、副システム２に転送される。このため、ログデータが蓄積ログ５として蓄積される運用モードを蓄積モードという。
【００２８】
図２の情報管理システムでは、正システム１においてログデータを蓄積した後、ログ搬送路４の障害が解消してログデータの再送を行う際は、先入れ先だしにしたがう。すなわち、正システム１は、その場合に、未送信データのうち、最も古いデータから送信していく。そのため、正システム１を監視し、切り替えを制御している副システム２からは、ログ搬送路４の障害によって正システム１が蓄積モードに移行し、本来副システム２に転送されるべきログが蓄積された状態にあるのか、あるいは、正システム１自体に更新がなくログが発生していないのか、不明である。また、ログが蓄積された状態で、正システム１から副システム２に運用ノードが切り替えられると、データロストの可能性がある。また、その場合に、完全同期状態にはいつ復帰するのかも不明である。
【００２９】
図２の情報管理システムでの蓄積ログ５のログデータの転送技術を以下に示す。以下の（１）から（９）の処理は、図２の矢印に付加した（１）から（９）に対応している。また、その処理に対応して作成されるログにも、（１）から（９）の番号を付して示す。
【００３０】
（正システムの動き）
（１）正システム１に更新ログが存在する場合、それをデータとして副システム２に搬送する。通常は、副システム２にて、正常に、更新ログが受信されたことの応答が正システム１に返される。これによって、正システム１は、同期転送がなされたことを認識し、例えば、コミット操作に対して、応答をアプリケーションサーバ３に返すことができる。
（２）ネットワーク障害が発生した場合、ポーリング等による状態監視、あるいはデータ転送の失敗によってその情報を得る。その結果、ログ搬送路４によるログデータの転送ができなくなり、データは蓄積ログ５に蓄積される。データ転送の失敗は、例えば、ログ搬送路４にて転送したデータに対する受信確認が所定時間経過しても戻らないことによって検出される。
（３）ネットワークの状態監視（正常動作可能か否かの監視）をポーリングによって試み
る。
（４）ネットワークの状態監視によって復旧が確認できた場合、先入れ先出しの原則より、蓄積ログ５のデータを搬送する。その結果、その後に発生する新規データは、依然として蓄積ログ５に蓄積される。
【００３１】
（副システムの動き）
（５）正常にデータを一時ファイル６に格納する。
（６）ポーリング等による状態監視結果により、正システム１の異常を認識する。
（７）その場合には、データベースが完全同期状態かどうか不明な状態となる。
（８）正システム１が先入れ先だしで、昇順の順序番号のデータを送信してくるため、受信したデータを一時ファイル６に蓄積する。
（９）データベースへの反映が可能となった場合（すなわち、コミットログ受信時）、所定の順に整合されたログデータの組み立てを行い、データベースに反映する。
【００３２】
この情報管理システムでは以下の問題が発生する。
（問題ａ）（４）において先入れ先だしで蓄積ログ５の先頭データを副システム２に搬送するため、（８）の時点で副システム２では、蓄積ログ５にログデータの蓄積が行われたかどうかの判断ができない。また、現在蓄積ログ５にどの程度ログデータが蓄積されているのか、判定できない。したがって、データ搬送路４に障害がある状態で、さらに、正システム１に障害が発生し、正システム１から副システム２に運用ノードを切り替える必要が生じた場合、その切り替えによってデータロストのリスクがどの程度あるのかの判断ができない。
（問題ｂ）（８）時点で、副システム２はデータ搬送路が復旧したことは認識できるが、蓄積ログ５のデータ量が不明である。このため、データロストの可能性があるデータ量と完全同期状態までの時間を見積もることができない。ユーザは正システム１において、蓄積ログ５の内容を調査する必要がある。
【００３３】
そこで、本情報管理システムは、データベース１１、２１の二重化処理において、データ搬送路４に障害があった場合、正システム１に一時的に蓄積したログデータを管理する際、データベース１１、２１の管理・運用上必要な情報、例えば、データロストのリスク有無、完全同期状態への復帰時間等をできるだけ早期に、副システム２に認識可能とする機能を提供する。これによって、ユーザは、副システム２から得られる情報から、副システム２への運用ノードの切り替えの可否等の判断を早期に行うことを可能とする。
【００３４】
ただし、本実施形態では、データロストを回避するため、データベースのコミットに対して同期転送で運用することを前提に説明する。一般的に正システム１と副システム２との間の通信には以下がある。
（Ａ）ネットワークの接続確認・相手サーバの状態確認として管理情報の送受信を行う。この通信は、一定時間隔でのポーリングとなる。
（Ｂ）発生したログデータを正システム１から副システム２に搬送し、その搬送結果を得る。この通信は、データの発生した時点で行うため不定期である。また、この通信は、（Ａ）の通信によって通信が確立している場合のみ行われる。また、本実施形態では、（Ａ）（Ｂ）通信は、以下の理由で、それぞれ別の通信手段によって構成する。
【００３５】
（Ａ）と（Ｂ）とで、通信契機・通信量が異なる。さらに、情報管理システムの形態によっては、正システム１、副システム２以外に、第３者サーバ（監視サーバ）が設けられることがあり、（Ａ）の通信については、第３者サーバが行うことがある。
【００３６】
図３に、本情報管理システムの処理概要を例示する。以下、正システム１および副システム２に分けて、その動作を説明する。
（正システムの動き）
（１）正システム１に更新ログが存在する場合、ログ搬送路４を通じて、更新ログを副システム２に転送する。
（２）更新ログが存在しない場合、ログ搬送路４を通じて、一定時間ごとにＮＵＬＬデータの転送を継続する。この転送は、ある種の状態監視を目的としたものである。この転送によって、ログ搬送路４の健全性、あるいは、副システム２の状態確認を実行できる。
（３）（１）の転送に失敗するか、（２）の状態監視により、ネットワーク障害が発生した場合、正システム１側の蓄積ログ５にデータを蓄積する。これにより、蓄積状態、すなわち、蓄積モードに移行する。
（４）正システム１は、次回ポーリング時・更新ログ発生時に、最新ログデータにより副システム２に転送を試みる。すなわち、正システム１は、最新ログデータのログ搬送路４を通じたログデータの転送を試行することによって、ログ搬送路４の復旧、あるいは、副システム２の状態確認を実行できる。なお、更新ログが頻発する場合は、正システム１は、一定間隔でその更新ログを副システム２に送信する。一方、所定時間経過しても更新ログが発生しない場合は、正システム１は、ＮＵＬＬデータを副システム２に送信する。
（５）最新ログデータの転送が成功した場合、以降蓄積ログ５のログデータから順次データ搬送を行う。ただし、本実施形態の情報管理システムでは、蓄積モードに移行後、最新ログデータの転送が成功した場合には、受信確認として、副システム２側から、受信済の最新ログデータの順序番号が正システム１側に返信される。したがって、この返信によって、正システム１は、最優先すべき、蓄積ログ５のログデータを特定する。このとき、送信する優先度は以下とする。すなわち、第１優先：再送依頼のあったログ、第２優先：蓄積ログ５に存在するログ、第３優先：新規更新ログの順である。
【００３７】
また、本情報管理システムでは、このような蓄積モードに移行後、最新ログデータの転送が成功した場合には、副システム２は、受信確認とともに、蓄積ログ５のログデータの再送依頼を送信する。したがって、そのような再送依頼の中に、優先すべきログデータ（全部か、最新のログデータか、あるいは、特定の順序番号のログデータか）を指定できるようにしてもよい。
【００３８】
（副システムの動き）
（６）副システム２は、通常、ログ搬送路４から正常にログデータを受信し、一時ファイルに格納する。
（７）ポーリング等の状態監視結果により、正システム１の異常を認識する。
（８）状態監視が到達しないことより、正システム１またはネットワーク異常を認識する。
（９）順序番号に抜けのあるデータを受信したことより、抜けデータの存在が確認可能となる。そこで、副システム２は、抜けた順序番号に該当するデータの再送依頼を行う。図４に示すようにデータのサイズは決定しているため、順序番号から抜けた個数が把握できることよりデータ量の計算が可能となり、ユーザにインフォメーションメッセージによって報知する。報知にはデータ量、および、予測時間を含めることも可能である。
（１０）抜けたログデータが再送され、データベース２１への反映が可能となった場合（コミットログ受信時）、副システム２は、受信したログデータから、整合されたデータベースへの更新要求を再構築し、データベース１２に反映する。
【００３９】
＜データ構造＞
図４から図７により、本情報システムが処理するデータのデータ構造を説明する。これらのデータを格納する格納媒体としては、本実施形態では、ハードディスク上のファイル等を例示できる。この場合、格納媒体は、不揮発性記憶媒体ということができる。
【００４０】
図４は、本情報管理システムが取り扱う更新ログの典型的な構成要素を例示している。
更新ログには、送信情報、順序番号、およびデータが含まれる。このうち、送信情報は、副システム２への送信が成功したか否かを示す情報である。送信情報には、送信完了を示す「済」または未送信を示す「未」が格納される。
【００４１】
順序番号は、更新データ発生時に採番される昇順で一意の番号である。データは、更新ログが存在する場合は、そのログデータそのものであり、更新ログが存在しない場合はＮＵＬＬデータとなる。
【００４２】
図５に、正システム１に格納されるデータ構造を例示する。正システム１には、発生した更新ログのすべてが格納される。上述のように、送信情報は、副システム２への送信が成功したか否かの情報である。正システム１では、送信済更新ログも、不慮の事態に備えて保存するようにしてもよい。ただし、送信済更新ログは、消去可能である。
【００４３】
本情報管理システムでは、更新ログが副システム２に転送できず、副システム２で更新ログを受信できなかった場合、副システム２は、例えば、順序番号を指定して、あるいは最新の更新ログを転送するように指定して、さらには、蓄積した未送信のすべての更新ログを指定して、再送を依頼する。このため、正システム１では、順序番号によって、更新ログを検索可能な状態で格納している。
【００４４】
そこで、正システム１は、送信した更新ログおよび送信すべき更新ログと、その更新ログを管理する管理情報を有している。正システム１の管理情報は、最小未送信番号と、最大未送信番号を含む。図５の例では、順序番号１のデータを送信し、順序番号２のＮＵＬＬデータを送信した後、順序番号３、４のデータの送信に失敗し、その後、順序番号５のデータが送信できたことを示している。この場合、正システム１の管理情報は、最小未送信番号＝３、最大未送信番号＝４となる。すなわち、管理情報は、副システム２から再送依頼が必ず来るはずの未送信番号をポイントしている。このような構成によって、再送の依頼があった場合の検索効率を向上させている。なお、正システム１の管理情報、例えば、最小未送信番号および最大未送信番号は、不揮発性の記憶媒体に格納される。また、本実施形態では、送信済の更新ログは、受信した副システム２において、不揮発性の記憶媒体に格納されるため、正システム１側では消去可能である。
【００４５】
図６に、副システム２が保持するデータ構造を例示する。副システム２は、受信した更新ログと、その更新ログを管理する管理情報を有している。副システム２の管理情報は、最小未反映番号を含む。すなわち、管理情報は、反映済情報の次番号をポイントすることになる。なお、副システム２の管理情報、すなわち、最小未反映番号は、不揮発性の記憶媒体に格納される。図６の例では、副システム２は、順序番号１のデータ、および順序番号２のＮＵＬＬデータを受信した後、順序番号５のデータを受信している。この場合、最小未反映番号＝３のときに、順序番号５のデータを受信することになる。
【００４６】
このようなデータ構造によって、副システム２がデータを受信した際は、順序番号によって、更新ログの抜けを判定可能となる。抜けがあった場合は、正システム１にその番号の再送を依頼する。また、何個のデータが抜けたのかが把握可能のため、データ量の見積もりが可能となる。なぜなら、本情報管理システムでは、図４に示すデータ構造よりデータのサイズが決定しているからである。なお、反映済の更新ログは、消去可能である。
【００４７】
図７に、非同期転送時に、蓄積ログ５に格納されるログデータのデータ構造を例示する。正システム１で蓄積ログ５に蓄積されるログデータは、副システム２に搬送に失敗したデータであり、副システム２の一時ファイル６にないことが保証されている。よって、搬送路復旧後は、優先的に搬送されるべきデータであり、一括転送を行うよう実装してもよい。ただし、副システム２の要求に応じて、蓄積ログ５中の特定のログデータを優先して
送信するようにしてもよい。
【００４８】
＜ユーザに通知されるインフォメーションメッセージ例＞
本情報管理システムは、例えば、以下のようなインフォメーションメッセージをユーザに通知する。まず、データ転送の結果判定で異常を検出し、蓄積状態に移行した場合に正システム１に出力するインフォメーションメッセージ例は、次の通りである。「データ転送に失敗したため、正システム１にデータを蓄積します。」また、副システム２にて、順序番号確認時、抜けを検出した場合に出力するインフォメーションメッセージ例は、次の通りである。「データを再送中です。データの同期までにxxバイトの転送、yy秒が必要です。」
なお、このような表示において、復旧に要する時間としては、これまでの統計情報から平均値等を算出し、推定値として表示してもよい。また、例えば、ログ搬送路４の復旧に要する平均時間と、蓄積されたログ情報転送に要する転送時間によって推定値を算出すればよい。
【実施例１】
【００４９】
図８に、正システム１の処理フローを例示する。この処理フローは、正システム１を構成するコンピュータのＣＰＵがコンピュータプログラムを実行することによって実現される。なお、図８の処理フローの前提として、本情報管理システムは、正システム１と副システム２とが、同期モードで動作しているものとする。
【００５０】
また、この処理は、複数のタスクに分かれて処理される。図８のように、正システム１のタスクには、再送依頼・蓄積ログ確認タスクＴＳ１、ログデータ抽出タスクＴＳ２、タイマタスクＴＳ３およびログデータ送信タスクＴＳ４が含まれる。
【００５１】
このうち、再送依頼・蓄積ログ確認タスクＴＳ１は、副システム２からの再送依頼に応答して実行されるタスクである。このタスクでは、正システム１は、副システム２から、蓄積ログ５内のデータ確認および再送依頼の要求を受け付ける（Ｓ１１）。この要求は、ログ搬送路４を通じて、副システム２から正システム１に送信されたものである。ただし、第３者サーバ（監視サーバ）が存在するシステムでは、第３者サーバ（監視サーバ）を通じて、蓄積ログ５内のデータ確認および再送依頼を正システム１に引き渡すようにしてもよい。
【００５２】
すると、正システム１は、蓄積ログ５内のデータから、送信依頼するログデータを組み立てる（Ｓ１２）。すでに、図６で説明したように、正システム１は、最小未送信番号および最大未送信番号を管理情報として保持している。本実施形態では、副システム２は、順序番号を指定し、あるいは、全部の未送信ログデータを指定し、あるいは、最新ログデータを指定して、再送を依頼する。正システム１は、最小未送信番号と最大未送信番号とで指定される範囲をポイントしているので、副システム２からの再送依頼に対応して適切なログデータを再送すればよい。例えば、全ログをまとめて送信するようにすればよい。また、正システム１は、指定された順序番号のログデータを選択して送信してもよい。
【００５３】
そして、正システム１は、再送モードで、送信依頼を待ちキューに登録する（Ｓ１３）。
【００５４】
ログデータ抽出タスクＴＳ２は、正システム１でのデータベース１１の更新等に伴って発生したログデータを副システム２に反映するためのタスクである。このタスクでは、正システム１は、ログデータの発生を示す情報を受信する（Ｓ２１）。すると、正システム１は、副システム２に送付すべきログデータを組み立てる。具体的には、データベース管理システムが出力したログデータを読み出し、送信依頼時に、ログデータ送信タスク５に
引き渡す形式でログデータを組み立てる。そして、正システム１は、通常モードで待ちキューに送信依頼を登録する（Ｓ２３）。通常のモードとは、再送モードではないという意味である。
【００５５】
タイマタスクＴＳ３は、タイマ監視にしたがって、空き（ＮＵＬＬ）のログデータを送信するタスクである。所定時間以上、ログが発生しないと、その間正システム１と副システム２との間でデータの交換がなされないことになる。そこで、所定時間ログが発生しない場合に、タイマ監視によって、空き（ＮＵＬＬ）のログデータを送信し、正システム１と副システム２との間の通信を確認する。
【００５６】
このタスクでは、正システム１は、タイマ監視によってデータ送信のタイミングを調整する待ち合わせ処理を実行する（Ｓ３１）。そして、正システム１は、空き（ＮＵＬＬ）データを基に、副システム２に送信するログデータを組み立てる（Ｓ３２）。そして、正システム１は、通常モードで待ちキューに送信依頼を登録する（Ｓ３３）。
【００５７】
再送依頼・蓄積ログ確認タスクＴＳ１、ログデータ抽出タスクＴＳ２、タイマタスクＴＳ３は、ログデータ送信タスク４への送信依頼を生成する。ただし、再送依頼・蓄積ログ確認タスクＴＳ１による送信依頼は、最優先の優先順位でログデータ送信タスク４により処理される。一方、タイマタスクＴＳ３の送信依頼は、優先順位が最も低く、待ちキューに、他のタスクからの送信依頼があると、タイマタスクＴＳ３の送信依頼は、無効になる。その場合には、タイマタスクＴＳ３の送信依頼は、待ちキューから削除される。
【００５８】
ログデータ送信タスクＴＳ４は、待ちキューから優先順位にしたがって送信依頼を取り出し、送信する処理を繰り返し実行している。いま、制御の状態は、ループの開始位置（Ｓ４０）にあるとする。ループの先頭では、正システム１は、待ちキューから送信依頼を取り出す。ただし、待ちキューが空きの場合には、正システム１（ログデータ送信タスクＴＳ５）は、待ち状態となる。
【００５９】
待ちキューから１つの送信依頼を取り出すと、正システム１は、その送信依頼の依頼モードを判定する（Ｓ４１）。送信依頼が通常モードの場合、正システム１は、副システム２へ、送信依頼されたログデータを送信する（Ｓ４２）。この処理を実行する正システム１のＣＰＵが、通知手段に相当する。そして、正システム１は、データ転送の結果を判定する（Ｓ４３）。そして、データ転送が正常に終了した場合には、正システム１は、送信情報を更新する（Ｓ４７）。すなわち、正システム１は、送信したログデータに対応する順序番号の送信情報を「済」に変更する。その後、正システム１は、制御をループ開始（Ｓ４０）に戻す。
【００６０】
一方、Ｓ４３の判定で、データ転送が正常に終了しなかったと判断した場合には、正システム１は、システムを蓄積モードへ移行する（Ｓ４４）。蓄積モードでは、正システム１は、蓄積ログ５にログデータを格納する（Ｓ４５）。この処理を実行する正システム１のＣＰＵが、蓄積手段に相当する。その後、正システム１は、制御をループ開始（Ｓ４０）に戻す。
【００６１】
また、Ｓ４１の判定で依頼モードが再送依頼の場合、正システム１は、再送依頼に付与された順序番号から、蓄積ログ５を参照し、送信可能なデータを構築する（Ｓ４８）。この場合に、副システム２からの再送依頼に対応して、指定順序番号のログデータ、蓄積ログ５の全ログデータ、あるいは、最新ログデータ等によって、送信すべきデータを構築する。そして、正システム１は、構築したデータを副システム２へ送信する（Ｓ４９）。この処理を実行する正システム１のＣＰＵが、再度通知する手段に相当する。その後、正システム１は、制御をループ開始（Ｓ４０）に戻す。
【００６２】
図９に、副システム２で実行されるログデータ受信タスクＴＳ５の処理フローを例示する。ログデータ送信タスクＴＳ５は、通常、ログデータ受信待ちの状態でループの開始位置（Ｓ５０）にある。ループの先頭では、副システム２は、受信されたログデータを取り出す。そして、副システム２は、受信したログデータの順序番号を確認する（Ｓ５１）。
【００６３】
受信したログデータの順序番号が、すでに受信済の順序番号に対して抜けのない番号であるとき、副システム２は、ＯＫであると判定する。そして、ＯＫの場合には、副システム２は、一時ファイル６にデータを格納する（Ｓ５２）。そして、副システム２は、受信したデータからログデータを基に、正システム１での更新結果としてトランザクションの組み立てを行う。そして、副システム２は、組み立てられたトランザクションをデータベース２１に反映する（Ｓ５３）。その後、副システム２は、制御をＳ５０に戻す。
【００６４】
一方、Ｓ５１の判定で、受信したログデータの順序番号が、すでに受信済の順序番号に対して抜けのある番号であるとき、副システム２は、ＮＧであると判定する。この処理を実行する副システム２のＣＰＵが、受信漏れを検知する手段に相当する。そして、ＮＧの場合には、副システム２は、抜けた順序番号のログを再送するように、再送依頼を正システム１に送信する（Ｓ５４）。この処理を実行する正システム１のＣＰＵが、再送を要求する手段に相当する。この場合の再送依頼の仕方としては、順序番号を指定した再送依頼、最新の未送信ログを指定した再送依頼、全指定の再送依頼がある。これらの再送依頼のどれを実行するかは、事前に、システム設定で定めておけばよい。
【００６５】
次に、副システム２は、完全同期が回復するまでの時間等の回復に関連する情報をインフォメーションメッセージでユーザ（または、アプリケーションサーバ３）に通知する（Ｓ５５）。この処理を実行する副システム２のＣＰＵが、報知する手段に相当する。
【００６６】
なお、一旦、Ｓ５４の処理が実行されると、副システム２は、情報管理システムが蓄積モードになったことを認識し、同期モードが回復するまで、Ｓ５４およびＳ５５の処理を所定の時間間隔で繰り返す。
【００６７】
本実施形態では、ログ搬送路４は、正システム４と副システム２との間を専用で接続すればよい。このため、正システム１と副システム２との間は、汎用業務ネットワークとは異なる、専用線、専用ＬＡＮ、Fibre Channel等で接続する。また、正システム１と副シ
ステム２とが、近接した位置に設置されているようなシステムでは、正システム１と副システム２との間は、バス接続、コンピュータのクラスタを構成するハードウェア等によって、接続してもよい。なお、状態監視、例えば、正システム１と副システム２との間のポーリングの通信についても、以上のような専用の通信で構成すればよい。ただし、状態監視を汎用の通信で構成してもよい。
【００６８】
＜効果＞
本情報システムによれば、ログ搬送路４での障害が解消した時点で、ログデータに抜けがあるかどうかが判断可能となるので、切り替えた場合のデータロスト量分析が可能となる。障害が復旧した時点で、ログ抜けしたデータ量の見積もりが可能となるため、完全同期状態となるまでの時間が把握可能となり、ユーザのリスク判断が可能となる。
【００６９】
また、常に最新データによって状態確認を兼ねた更新ログの搬送を行う。すなわち、最新のログデータを副システム２に送信し続けることを可能にする。障害発生時にログデータが多い場合、管理情報の送受信の代わりになるためネットワーク負荷が軽減され、精度が高くなる。
【００７０】
送信に成功した場合、副システム２は直前に受信したデータの順序番号と、最後に受信したデータの順序番号を比較する。そして、本情報管理システムは、抜けたデータ量、および回復時間の見積もり処理を実行する。このため、利用者は早期に上記情報を判断可能となる。送信データに付加された順序番号により、抜けデータの個数が判明し、正確な再送データ量を把握可能である。この再送データ量を基に、再開までの予測を提示することが可能になり、利用者が二重化状態への回復時間による運用判断を行うための重要な情報となる。例えば、回復途中に、運用ノードを正システム１から副システム２に切り替えるかどうかの判断などである。
【実施例２】
【００７１】
上記実施例１では、正システム１から副システム２にログデータが送信され、正システム１と副システム２とが同期する情報管理システムを説明した。そして、ログ搬送路４に異常があって、正システム１から副システム２にログデータが送信できないとき、正システム１と副システム２とが蓄積モードとなり、副システム２から正システム１にログデータの再送依頼を送信した。
【００７２】
本実施例では、さらに、蓄積モードでの動作時間が長期化し、蓄積ログ５に格納されたログデータが増加した場合に、ログ搬送路４に代えて、アプリケーションサーバ３経由で、ログデータを正システム１から副システム２に転送する情報管理システムについて説明する。他の構成および作用は実施例１と同様である。そこで、同一の構成要素については、実施例１と同一の符号を付して、その説明を省略する。
【００７３】
実施例２では、実施例１のタスクに加えて、さらに、ＡＰ（アプリケーション）サーバ通信タスクＴＳ６が実行される。ＡＰサーバ通信タスクＴＳ６は、蓄積モードの状態が所定期間経過した場合に、蓄積ログ５のログデータをアプリケーションサーバ３経由で、正システム１から副システム２に転送するタスクである。ＡＰサーバ通信タスクＴＳ６はログデータ発生で常に動作する必要はないため、ＡＰサーバ通信タスクＴＳ６はタイマタスクＴＳ３内に内包してもよい。
【００７４】
アプリケーションサーバ３は、本情報管理システムと連携して動作し、各種業務アプリケーションを実行している。アプリケーションサーバ３と、正システム１あるいは副システム２との間は、例えば、基幹ネットワーク、あるいは、通常の業務ネットワーク（以下、業務ネットワークという）で接続されている。このアプリケーションサーバ３と、正システム１あるいは副システム２との間の業務ネットワークは、通常、ログ搬送路４を構成するネットワークとは、異なるネットワーク媒体で運用される。
【００７５】
本実施形態でも、実施例１と同様にログ搬送路４は、正システム１と副システム２との間を専用で接続すればよい。
【００７６】
一方、上述のように、本情報管理システム（正システム１および副システム２を含む）とアプリケーションサーバ３との間は、汎用の業務用ＬＡＮで接続する。したがって、ログ搬送路４が通信不良の場合であっても、業務ネットワークは利用可能である可能性が高い。また、業務ネットワークが通信不能となった場合には、アプリケーションサーバ３を含む業務システム全体が機能不全となる。したがって、業務ネットワークが通信不能となることは通常ありない。
【００７７】
そのため、正システム１と副システム２とが、ログ搬送路４の通信不良によって蓄積モードに移行したとしても、業務ネットワークを経由した通信が機能している状態は、十分に生じえる。そのような状態では、アプリケーションサーバ３経由で、正システム１から副システム２に管理情報を転送することで、蓄積ログ５のログデータを早期に副システム
２側に反映できる。また、ログ搬送路４が通信不良であっても、正システム１が蓄積モードで正常動作中であることを副システム１側に通知することができる。
【００７８】
図１０に、このようなＡＰサーバ通信タスクＴＳ６を含む処理フローを例示する。この処理で、図８と同一の処理については、同一の符号を付して、その説明を省略する。この処理では、データ転送の結果、データ転送が正常に終了しなかったと判断した場合には（Ｓ４３で異常の場合）、正システム１は、現在、すでに、正システム１が蓄積モード（すなわち、ログデータを蓄積ログ５に格納するモード、蓄積状態ともいう）にあって、ＡＰサーバ通信タスクＴＳ６による転送実行モードであるか、否かを判定する（Ｓ４３）。Ｓ４３Ａの判定で、肯定の判定の場合、正システム１は、アプリケーションサーバ３の二重化管理に対して、副システム２への蓄積ログ５のログデータの転送を依頼する（Ｓ４３Ｂ）。アプリケーションサーバ３の二重化管理は、ＡＰサーバ通信タスクＴＳ６が処理するキューに転送依頼を登録する。その後、正システム１は、制御をＳ４０に戻す。なお、Ｓ４３Ａ否定判定の場合には、実施例１と同様、Ｓ４４以下の処理を実行する。
【００７９】
一方、ＡＰサーバ通信タスクＴＳ６では、正システム１は、蓄積モードにおいて、タイマ監視している（Ｓ６１）。そして、タイマが計時した所定時間が経過すると、正システム１は、その送信依頼にしたがって、蓄積ログ５を基に、ログデータを送信する通信データ（パケットともいう）を組み立てる（Ｓ６２）。そして、アプリケーションサーバ３経由の通信（ＡＰモードという）で、ログデータを副システム２に転送する（Ｓ６３）。具体的には、正システム１から、アプリケーションサーバ３上の通信タスクに対して、副システム２への転送を指定して、ログデータが引き渡される。アプリケーションサーバ３上の通信タスクは、正システム１からの転送依頼を受け取ると、指定された転送先である副システム２に対して、引き渡されたログデータを転送する。
【００８０】
この場合のログデータの送信手順は、図１０で説明したログ搬送路４を通じて送信する場合（ログデータ送信タスクＴＳ４のＳ４２）と同様である。すなわち、蓄積モードになった後は、副システム２へのログデータの送信が試行される。
【００８１】
そして、一旦、ＡＰサーバ通信タスクＴＳ６によって、アプリケーションサーバ３を通じて最新ログデータの送信が成功すると、副システム２では、ユーザにデータ量、および、予測時間をインフォメーションメッセージによって報知可能となる。
【００８２】
以上述べたように、本実施例では、蓄積状態が所定以上長く継続すると、アプリケーションサーバ３経由での通信によって、蓄積ログ５のログデータが正システム１から副システム２に転送される。これによって、早期に、副システム２において、正システム１の動作状態の把握が容易となる。また、アプリケーションサーバ３を含む業務ネットワークが通信不良の場合には、業務アプリケーション自体が運用不能となるので、ＡＰサーバ通信タスクＴＳ６による転送を行うことによって、システムが運用不能となる限界まで、正システム１から副システム２に、ログデータを転送することこが可能となる。
【実施例３】
【００８３】
上記実施例１および２では、副システム２が受信したログデータは、一時ファイル６に格納された。この場合一時ファイル６としては、ハードディスクのファイル等の不揮発性の記憶装置を想定している。しかし、本発明の実施は、そのような構成に限定される訳ではない。
【００８４】
本実施例では、副システム２が受信したログデータを揮発性の一時ファイル６（例えば、メモリ）に保持するようにしてもよい。その場合には、正システム１側で、送信ログ４を再送用ログとして、保存する。再送用ログは、副システム２から、ログデータを受信し
、さらに、データベース２１への更新が完了した旨の通知があったときに削除すればよい。
【００８５】
この場合、例えば、副システム２が一時ファイル６の内容をデータベース２１に反映前に、副システム２がダウンしたような場合には、一時ファイル６のログデータはデータベース２１に反映されることなく、消滅する。したがって、この場合には、副システム２が正常復帰後、正システム１に、再送用ログからログデータを再送するように要求すればよい。そのため、副システム２は、少なくとも、データベース２１に反映済の順序番号を不揮発性メモリに、保存しておけばよい。
【００８６】
《コンピュータ読み取り可能な記録媒体》
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【００８７】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD-ROM、CD-R/W、DVD、DAT、８mmテープ、メモリカード等がある。
【００８８】
また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（リードオンリーメモリ）等がある。
【図面の簡単な説明】
【００８９】
【図１】情報管理システムのデータフローを例示する図である。
【図２】一般的な情報管理システムの処理概要を例示する図である。
【図３】情報管理システムの処理概要を例示する図である。
【図４】更新ログの典型的な構成要素を例示する図である。
【図５】正システムに格納されるデータ構造を例示する図である。
【図６】副システムが保持するデータ構造を例示する図である。
【図７】非同期転送時に、蓄積ログに格納されるデータのデータ構造を例示する図である。
【図８】正システムの処理フローを例示する図である。
【図９】副システムで実行されるログデータ受信タスクの処理フローを例示する図である。
【図１０】ＡＰサーバ通信タスクを含む処理フローを例示する図である。
【符号の説明】
【００９０】
１  正システム
２  副システム
３  アプリケーションサーバ
４  送信ログ
５  蓄積ログ
６  一時ファイル
【図１】
2010033467.tif 000003
【図２】
2010033467.tif 000004
【図３】
2010033467.tif 000005
【図４】
2010033467.tif 000006
【図５】
2010033467.tif 000007
【図６】
2010033467.tif 000008
【図７】
2010033467.tif 000009
【図８】
2010033467.tif 000010
【図９】
2010033467.tif 000011
【図１０】
2010033467.tif 000012