(57)【要約】    【課題】  冗長構成を有するシステムにおいて、正系システムから副系システムへの切り換えを直ちに行う。    【解決手段】  正系業務サーバ１は、入力メッセージを受信し、その入力メッセージに基づいて所定の処理を実行する業務処理部１３と、業務処理の実行結果情報を記憶する業務データ記憶部１４と、業務データ記憶部１４に記憶されている実行結果情報を、副系業務サーバ２へ転送するデータ転送部１５と、を備える。副系業務サーバ２は、正系業務サーバ１と同じ入力メッセージを受信し、これを記憶するエントリーキュー２２と、正系業務サーバ１から転送された実行結果情報を記憶する業務データ記憶部２４と、正系業務サーバ１の障害時に、エントリーキュー２２に記憶されている入力メッセージに基づいて正系業務サーバ１と同一の処理を実行し、その実行結果情報を業務データ記憶部２４に格納する業務処理部２３と、を備える。    【選択図】  図１
2006330782.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータシステムと、前記第１のコンピュータシステムのバックアップをするための第２のコンピュータシステムとを有する冗長構成のシステムであって、
前記第１のコンピュータシステムは、
入力メッセージを受信する第１の受信手段と、
前記第１の受信手段が受信した入力メッセージに基づいて所定の処理を実行する処理手段と、
前記処理手段による処理の実行結果情報を記憶する第１の実行結果記憶手段と、
前記第１の実行結果記憶手段に記憶されている実行結果情報を、前記第２のコンピュータシステムへ転送する転送手段と、を備え、
前記第２のコンピュータシステムは、
前記第１のコンピュータシステムと同じ入力メッセージを受信する第２の受信手段と、
前記第２の受信手段が受信した入力メッセージを記憶する第２の入力メッセージ記憶手段と、
前記第１のコンピュータシステムから転送された実行結果情報を記憶する第２の実行結果記憶手段と、
前記第１のコンピュータシステムの障害時に、前記第２の入力メッセージ記憶手段に記憶されている入力メッセージに基づいて前記第１のコンピュータシステムと同一の処理を実行し、その実行結果情報を前記第２の実行結果記憶手段に格納するリカバリ手段と、を備えた冗長構成システム。
【請求項２】
前記第１のコンピュータシステムは、
前記第１の受信手段が、それぞれの識別情報を含む複数の入力メッセージを順次受信し、
前記第１の実行結果記憶手段に記憶されている実行結果情報は、入力メッセージの識別情報と、当該識別情報の入力メッセージに基づいて実行された前記所定の処理の実行結果とが関連付けられていて、
前記第２のコンピュータシステムは、
前記第１のコンピュータシステムから転送された実行結果情報に含まれている入力メッセージの識別情報に基づいて、前記第２の入力メッセージ記憶手段に記憶されている情報を更新する手段をさらに備える請求項１記載の冗長構成システム。
【請求項３】
前記第１のコンピュータシステムの転送手段は、前記第１のコンピュータシステムの処理手段とは非同期に前記実行結果情報の転送を行う請求項１または２に記載の冗長構成システム。
【請求項４】
第１のコンピュータシステムに障害が発生したときに第２のコンピュータシステムが直ちにリカバーする方法であって、
前記第１のコンピュータシステム及び第２のコンピュータシステムが、入力メッセージを受信するステップと、
前記第２のコンピュータシステムが、受信した入力メッセージを前記第２のコンピュータシステムの入力メッセージ記憶手段に記憶するステップと、
前記第１のコンピュータシステムが、受信した入力メッセージに基づいて所定の処理を実行するステップと、
前記処理の実行結果情報を、前記第１のコンピュータシステムの第１の実行結果記憶手段に記憶するステップと、
前記第１の実行結果記憶手段に記憶されている実行結果情報を、前記第１のコンピュータシステムから前記第２のコンピュータシステムへ転送するステップと、
前記転送された実行結果情報を、前記第２のコンピュータシステムの第２の実行結果記憶手段に記憶するステップと、
前記第１のコンピュータシステムの障害時に、前記入力メッセージ記憶手段に記憶されている入力メッセージに基づいて前記第１のコンピュータシステムと同一の処理を実行し、その実行結果情報を前記第２の実行結果記憶手段に格納するステップと、を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長構成を有するシステムでのリカバリを高速に行うための技術に関し、特に、極めて短時間にリカバーするための技術に関する。
【背景技術】
【０００２】
コンピュータシステムの信頼性を向上するために、通常時に動作する正系のシステムの他、正系のシステムの障害時にこれをバックアップするための副系のシステムを備え、冗長性を有するシステムが構築されている。この場合、正系システムで障害が発生したときに速やかに副系システムで処理を開始するためには、正系システムの処理結果のデータを副系システムへ引き継ぐ必要がある。従って、多くの場合、正系及び副系システムが一つのデータベースを共有するか、または正系システムのデータを副系システムへ転送する形態がとられる。
【特許文献１】特開平７−２３９７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
例えば、大量のデータを高速で処理し、かつ、一時的なシステムダウンも許されないようなシステムの場合にも、システムの二重化が行われている。そして、このようなシステムでは、正系システムで障害が発生したときは、副系システムへ瞬時に（例えば、１秒程度）切り換えなければならない。
【０００４】
しかしながら、従来のようなデータの引き継ぎのやり方では、副系システムが共有データベースを利用できるようになるには時間がかかったりして、副系システムへの切り換えを瞬時に行うことはできない。
【０００５】
そこで、本発明の目的は、冗長構成を有するシステムにおいて、正系システムから副系システムへの切り換えを直ちに行うことである。
【課題を解決するための手段】
【０００６】
本発明の一実施態様に従うシステムは、第１のコンピュータシステムと、前記第１のコンピュータシステムのバックアップをするための第２のコンピュータシステムとを有する冗長構成システムである。前記第１のコンピュータシステムは、入力メッセージを受信する第１の受信手段と、前記第１の受信手段が受信した入力メッセージに基づいて所定の処理を実行する処理手段と、前記処理手段による処理の実行結果情報を記憶する第１の実行結果記憶手段と、前記第１の実行結果記憶手段に記憶されている実行結果情報を、前記第２のコンピュータシステムへ転送する転送手段と、を備える。前記第２のコンピュータシステムは、前記第１のコンピュータシステムと同じ入力メッセージを受信する第２の受信手段と、前記第２の受信手段が受信した入力メッセージを記憶する第２の入力メッセージ記憶手段と、前記第１のコンピュータシステムから転送された実行結果情報を記憶する第２の実行結果記憶手段と、前記第１のコンピュータシステムの障害時に、前記第２の入力メッセージ記憶手段に記憶されている入力メッセージに基づいて前記第１のコンピュータシステムと同一の処理を実行し、その実行結果情報を前記第２の実行結果記憶手段に格納するリカバリ手段と、を備える。
【０００７】
好適な実施形態では、前記第１のコンピュータシステムは、前記第１の受信手段が、それぞれの識別情報を含む複数の入力メッセージを順次受信する。そして、前記第１の実行結果記憶手段に記憶されている実行結果情報は、入力メッセージの識別情報と、当該識別情報の入力メッセージに基づいて実行された前記所定の処理の実行結果とが関連付けられていてもよい。そして、前記第２のコンピュータシステムは、前記第１のコンピュータシステムから転送された実行結果情報に含まれている入力メッセージの識別情報に基づいて、前記第２の入力メッセージ記憶手段に記憶されている情報を更新する手段をさらに備えていてもよい。
【０００８】
好適な実施形態では、前記第１のコンピュータシステムは、前記第１の受信手段が受信した入力メッセージを記憶する第１の入力メッセージ記憶手段をさらに備えてもよい。前記第２のコンピュータシステムは、前記第２の入力メッセージ記憶手段に格納が完了した入力メッセージの識別情報を、前記第１のコンピュータへ通知する手段をさらに備えてもよい。そして、前記第１のコンピュータシステムの処理手段は、前記第２のコンピュータから通知された入力メッセージの識別情報に基づいて、前記第１の入力メッセージ記憶手段から入力メッセージを取得して、前記所定の処理を実行するものでもよい。
【０００９】
好適な実施形態では、前記第１のコンピュータシステムの前記処理手段は、入力メッセージに含まれる入力データのバリデーション処理を実行するものであってもよい。
【００１０】
好適な実施形態では、前記第１のコンピュータシステムの転送手段は、前記第１のコンピュータシステムの処理手段とは非同期に前記実行結果情報の転送を行うようにしてもよい。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の一実施形態に係る冗長構成を備えたデータ処理システムについて、図面を参照しながら説明する。
【００１２】
図１は、本実施形態に係るデータ処理システムの構成図である。
【００１３】
本システムは、同図に示すように、データ送信装置５から送信された入力メッセージ７を受信して、これに基づいて所定の処理を実行する業務サーバ１，２を有する。業務サーバは、正系業務サーバ１と副系業務サーバ２とを有する冗長構成が採用されている。
【００１４】
正系業務サーバ１及び副系業務サーバ２は、いずれも例えば汎用的なコンピュータシステムにより構成され、以下に説明する各装置１，２内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１５】
正系業務サーバ１は、データ送信装置５から送信された入力メッセージ７を受信する受信処理部１０と、入力メッセージ７の処理結果をデータ送信装置５へ通知する応答送信部１１と、受信した入力メッセージ７を蓄積するエントリーキュー１２と、入力メッセージ７に基づいて所定の業務処理を実行する業務処理部１３と、業務処理部１３により生成された業務データを記憶する業務データ記憶部１４と、業務データを副系業務サーバ２へ転送するデータ転送部１５と、業務データを外部の装置に対して提供するための外部インタフェース部１６とを有する。
【００１６】
一方、副系業務サーバ２は、正系業務サーバ１で障害が発生したときのバックアップ用サーバであるから、正系業務サーバ１と同様の構成と、副系に固有の構成とを備える。すなわち、副系業務サーバ２は、入力メッセージ７を受信する受信処理部２０と、業務処理部２３での入力メッセージ７の処理結果をデータ送信装置５へ通知する応答送信部２１と、受信した入力メッセージ７を蓄積するエントリーキュー２２と、入力メッセージ７に基づいて所定の業務処理を実行する業務処理部２３と、業務処理部２３により生成された業務データを記憶する業務データ記憶部２４と、正系業務サーバ１から転送された業務データを受信するデータ受信部２５と、業務データを外部の装置に対して提供するための外部インタフェース部２６と、エントリーキュー２２内の入力メッセージ７を管理するエントリーキュー管理部２７とを有する。
【００１７】
まず、上記の構成を備える正系及び副系業務サーバ１，２の正常時の処理について説明する。
【００１８】
データ送信装置５から正系業務サーバ１及び副系業務サーバ２の両方に対して、複数の入力メッセージ７が順次送信される。正系業務サーバ１の受信処理部１０及び副系業務サーバ２の受信処理部２０は、それぞれ入力メッセージ７を受信して、それぞれのエントリーキュー１２，２２へ順次格納する。つまり、正系及び副系業務サーバ１，２のいずれもが同一の入力メッセージ７を受信する。ここで、各入力メッセージ７には、それぞれの入力メッセージを一意に識別するためのメッセージＩＤが含まれている。
【００１９】
図２に、エントリーキュー１２，２２のデータ構造を示す。すなわち、エントリーキュー１２，２２では、入力メッセージ５１と、入力メッセージが読み出されたか否かを示す読み出しフラグ５２とが対応付けて記憶されている。
【００２０】
正系業務サーバ１では、業務処理部１３がエントリーキュー１２に格納されている入力メッセージ５１を一つずつ読み出し、その読み出した入力メッセージ５１に対応する読み出しフラグ５２に読み出し済みを示すフラグをセットする。そして、業務処理部１３は、読み出した入力メッセージ５１について、所定の業務処理を実行する。ここで行う業務処理は、例えば、入力メッセージ５１に含まれる入力データの属性、桁数などが予め定められた範囲であるか否かをチェックするバリデーション、あるいは入力データに基づく様々な業務処理、またはこれらの組み合わせなどでよい。
【００２１】
業務処理部１３は、一つの入力メッセージ５１に対して業務処理が完了すると、その業務処理により生成された業務データを業務データ記憶部１４に格納する。このとき、業務処理部１３は、業務処理が完了した入力メッセージ５１に含まれているメッセージＩＤを応答送信部１１へ通知する。
【００２２】
応答送信部１１は、業務処理部１３からメッセージＩＤの通知を受けると、このメッセージＩＤの処理が正常終了したことを示す応答メッセージをデータ送信装置５へ通知する。
【００２３】
なお、受信処理部１０、２０と業務処理部１３、２３とはそれぞれ別スレッドで動作するようにしてもよい。これにより、受信処理部１０、２０と業務処理部１３、２３とは、互いに非同期で動作することができる。
【００２４】
次に、図３に業務データ記憶部１４，２４のデータ構造を示す。すなわち、業務データ記憶部１４，２４には、メッセージＩＤ６１と業務処理実行後の業務データ６２とが対応付けられて記憶されている。
【００２５】
副系業務サーバ２の業務処理部２３は、正系業務サーバ１の業務処理部１３と同じ処理を実行することができる。しかし、正系業務サーバ１が正常に動作しているときには、業務処理部２３は処理を実行しない。副系業務サーバ２の業務データ記憶部２４には、以下のようにしてデータが蓄積される。
【００２６】
正系業務サーバ１のデータ転送部１５は、業務データ記憶部１４に格納されているメッセージＩＤ６１及び業務データ６２を取得して、副系業務サーバ２へ転送する。これは、正系業務サーバ１及び副系業務サーバ２が、業務データ記憶部１４，２４を共有しない構成となっているので、業務データ記憶部１４，２４に記憶されているデータを整合させる必要があるからである。このデータ転送処理は、業務処理部１３の処理とは非同期に行うことができる。
【００２７】
本実施形態では、正系業務サーバ１及び副系業務サーバ２が業務データ記憶部１４，２４を共有していないし、かつ、正系業務サーバ１から副系業務サーバ２へのデータ転送も非同期でよいので、正系業務サーバ１の業務処理部１３は、副系業務サーバ２の存在を意識せずに処理を実行することができ、処理の高速化が可能である。
【００２８】
副系業務サーバ２では、転送されてきた業務データをデータ受信部２５が受信して、業務データ記憶部２４へ格納する。さらに、データ受信部２５が受信したデータのメッセージＩＤ６１をエントリーキュー管理部２７へ通知する。
【００２９】
エントリーキュー管理部２７は、転送されてきた業務データに含まれているメッセージＩＤ６１に基づいて、エントリーキュー２２に格納されている情報を更新する。例えば、エントリーキュー管理部２７は、正系業務サーバ１から転送されてきたデータのメッセージＩＤ６１と同一のメッセージＩＤの入力メッセージをエントリーキュー２２から削除するか、あるいは、読み出しフラグ５２に、読み出し済みを示すフラグを立てる。これにより、後述するリカバリ処理のときに、業務データ記憶部２４にデータが記憶されていない入力メッセージの判別が可能である。
【００３０】
正系業務サーバ１の外部インタフェース部１６は、図示しない外部システムが、業務データ記憶部１４に格納されている業務データ６２を参照可能にする。
【００３１】
副系業務サーバ２の外部インタフェース部２６は、正系業務サーバ１の外部インタフェース部１６と同様に、外部システムに業務データ記憶部２４を参照させる。正系業務サーバ１が正常に動作しているときには参照を制限してもよい。
【００３２】
以上に説明した正系業務サーバ１が正常に動作しているときの処理により、業務データ記憶部１４に業務データが蓄積されていく。一方、副系業務サーバ２では、業務データ記憶部２４に正系業務サーバ１で生成され、転送を受けた業務データが蓄積されるとともに、正系業務サーバ１からまだ転送を受けていない入力データに対応する入力メッセージ５１がエントリーキュー２２に残っている。正系業務サーバ１が正常動作している間は、このような状態が継続する。
【００３３】
そして、正系業務サーバ１で何らかの障害が生じたときに、副系業務サーバ２が以下のような処理を実行してリカバーする。
【００３４】
すなわち、正系業務サーバ１で障害が発生すると、副系業務サーバ２にその旨が通知される。副系業務サーバ２は、この通知を受けると、業務処理部２３が処理を開始する。例えば、業務処理部２３は、エントリーキュー２２から入力メッセージを取得して、業務処理部１３と同じ入力処理を実行し、業務データ記憶部２４に処理後のデータを格納する。
【００３５】
ここで、エントリーキュー２２に残っている入力メッセージは、すべて未処理のものであるか、または未処理であるか否かの判別が可能であるので、処理済みデータを再度処理してしまうような時間のロスがない。
【００３６】
さらには、副系業務サーバ２は、業務データ記憶部２４を正系業務サーバ１と共有していない。このため、業務データ記憶部２４をハードディスクなどの外部記憶装置上ではなく、副系業務サーバ２内のＲＡＭなどのアクセス速度が速いメモリ上に実現することができる。従って、業務処理部２３がリカバリのための処理を開始するタイミングも早くなり、正系業務サーバ１の障害発生から、極めて短時間でリカバリ処理を開始できる。
【００３７】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【００３８】
例えば、業務データ記憶部１４，２４は、１つのテーブルで構成されていても、複数のテーブルで構成されていてもよい。複数テーブルの場合は、これらのテーブルの更新を１トランザクションとして扱う。
【００３９】
また、副系業務サーバ２の受信処理部２０が、受信した入力メッセージ７のエントリーキュー２２への格納が完了すると、その入力メッセージ７のメッセージＩＤを含む確認メッセージを生成して、正系業務サーバ１へ通知するようにしてもよい。この場合、正系業務サーバ１では、副系業務サーバ２から確認メッセージを受信すると、業務処理部１３が、その確認メッセージに含まれているメッセージＩＤの入力メッセージ５１をエントリーキュー１２から読み出して所定の業務処理を実行する。
【図面の簡単な説明】
【００４０】
【図１】本発明の一実施形態に係るデータ処理システムの構成図である。
【図２】エントリーキュー１２，２２のデータ構造の一例を示す図である。
【図３】業務データ記憶部１４，２４のデータ構造の一例を示す図である。
【符号の説明】
【００４１】
１    正系業務サーバ
２    副系業務サーバ
５    データ送信装置
７    入力メッセージ
１０，２０    受信処理部
１１，２１    応答送信部
１２，２２    エントリーキュー
１３，２３    業務処理部
１４，２４    業務データ記憶部
１５    データ転送部
１６，２６    外部インタフェース部
２７    エントリーキュー管理部
【図１】
2006330782.tif 000003
【図２】
2006330782.tif 000004
【図３】
2006330782.tif 000005