(57)【要約】【課題】高信頼かつ高性能なデータベースの同一化を実現すること。【解決手段】現用系ＴＭ部２２ａが、トランザクションの更新データを現用系ＤＢＭＳ部２３ａ、予備系ＴＭ部２２ｂに通知し、現用系ＤＢＭＳ部２３ａが、現用系ＴＭ部２２ａからの更新データを自身が管理するデータベースに反映するとともに、更新データを非同期通信で予備系ＤＢＭＳ部２３ｂに通知し、予備系ＴＭ２２部ｂが、通知された更新データを差分テーブル３６ｂに記憶し、所定契機において、差分テーブル３６ｂから更新データを読み取って予備系ＤＢＭＳ部２３ｂに反映し、予備系ＤＢＭＳ部２３ｂが、現用系ＤＢＭＳ部２３ａまたは予備系ＴＭ部２２ｂから取得した更新データを自身が管理するデータベースに反映する。【選択図】図３
2008310517.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションを処理する現用系ＴＭ（Transaction Manager）、および、前記トランザクションにより発生した更新データを反映する現用系ＤＢＭＳ（Data Base Management System）を機能させる現用系装置、ならびに、前記現用系ＴＭから前記更新データを通知される予備系ＴＭ、および、前記現用系ＤＢＭＳが格納するデータ内容を同一化する予備系ＤＢＭＳを機能させる予備系装置を有するデータベースシステムが実行するデータ同一化方法であって、
前記現用系ＴＭが、前記トランザクションを実行してそのトランザクションにより発生した前記更新データを取得し、取得した前記更新データを前記現用系ＤＢＭＳに通知するとともに、前記予備系ＴＭに同期通信で通知し、
前記現用系ＤＢＭＳが、前記現用系ＴＭからの前記更新データを自身が管理するデータベースに反映するとともに、前記更新データを非同期通信で前記予備系ＤＢＭＳに通知し、
前記予備系ＴＭが、通知された前記更新データを差分ファイルに記憶し、所定契機において、前記差分ファイルから前記更新データを読み取って前記予備系ＤＢＭＳに通知し、
前記予備系ＤＢＭＳが、前記現用系ＤＢＭＳまたは前記予備系ＴＭから取得した前記更新データを自身が管理するデータベースに反映することを特徴とする
データ同一化方法。
【請求項２】
前記予備系ＴＭは、前記所定契機として、前記現用系装置からの指示を受信したとき、または、前記現用系装置の障害を検出したときに、前記更新データを前記予備系ＤＢＭＳに通知することを特徴とする請求項１に記載のデータ同一化方法。
【請求項３】
前記現用系ＴＭは、反映する前記更新データを選択するための更新条件を前記予備系ＴＭに通知し、
前記予備系ＴＭは、前記差分ファイルから前記更新条件に合致する前記更新データを選択して、前記予備系ＤＢＭＳに反映することを特徴とする請求項１または請求項２に記載のデータ同一化方法。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載のデータ同一化方法を、データベースシステムの各装置に実行させるためのデータ同一化プログラム。
【請求項５】
トランザクションを処理する現用系ＴＭ（Transaction Manager）、および、前記トランザクションにより発生した更新データを反映する現用系ＤＢＭＳを機能させる現用系装置、ならびに、前記現用系ＴＭから前記更新データを通知される予備系ＴＭ、および、前記現用系ＤＢＭＳ（Data Base Management System）が格納するデータ内容を同一化する予備系ＤＢＭＳを機能させる予備系装置を有するデータベースシステムに用いられる前記現用系装置であって、
前記現用系ＴＭが、前記トランザクションを実行してそのトランザクションにより発生した前記更新データを取得し、取得した前記更新データを前記現用系ＤＢＭＳに通知するとともに、前記予備系ＴＭに同期通信で通知して所定契機において通知した前記更新データを反映させ、
前記現用系ＤＢＭＳが、前記現用系ＴＭからの前記更新データを自身が管理するデータベースに反映するとともに、前記更新データを非同期通信で前記予備系ＤＢＭＳに通知して反映させることを特徴とする
現用系装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ同一化方法、データ同一化プログラム、および、現用系装置に関する。
【背景技術】
【０００２】
基幹業務でデータベースを使用する際に、一方の計算機に障害が発生した場合に、別の計算機を使用して即座に業務を再開する方法が用いられる。これは、二台の計算機のデータベースの内容を互いに同一化（synchronization）することで、一方の計算機に障害が発生した場合に、他方の計算機で業務を代行して継続するものである。
【０００３】
このようなデータベースを同一化するシステムでは、一方のデータベースに更新が生じた場合に、他方のデータベースも同様に更新する必要がある。これは、障害時に基幹業務を即座に開始するためであり、両方のデータベースを同期（synchronous）通信で更新する、または障害時に迅速にデータベースを同一化させる方法がある。一般的には系切換え構成によるホットスタンバイ、コールドスタンバイにより実現されている。
【０００４】
またデータベース更新時には、回復用ジャーナルなどをファイルに出力することによるＩ／Ｏ（Input／Output）の負荷が、ＤＢＭＳ（Data Base Management System）の処理性能に大きく影響する。そのため、インメモリデータベースのように、データのファイル更新や、回復用ジャーナルの取得を行わない事で、飛躍的に処理性能を向上させているデータベースも存在する。
【０００５】
特許文献１では、これらのデータベースにおける同一化処理の負荷を減らすために、一方の計算機で更新データをまとめ、更新データの制御情報と共に送信し、他方の計算機で制御情報を基に更新データを組み立て、更新データをトランザクション単位に戻し他方のデータベースに反映させるデータベース同一化方法が提案されている。
【特許文献１】特開２００４−１３３５９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このような従来技術においては、一方の計算機で更新データをまとめる処理途中に障害が発生した場合、一方の計算機にあるデータベースと他方の計算機にあるデータベースは同一化できない。そのため、信頼性が低い。
【０００７】
また、インメモリデータベースでは、データベース更新時にメモリ上のデータ消失を防ぐ方法として、更新したデータをファイルにＩ／Ｏすることや、他方の計算機に同期通信で更新データを送信することを実行すると、更新における処理性能が著しく落ちてしまう。
【０００８】
そこで本発明は、高信頼かつ高性能なデータベースの同一化を実現することを、主な目的とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するため、本発明は、トランザクションを処理する現用系ＴＭ（Transaction Manager）、および、前記トランザクションにより発生した更新データを反映する現用系ＤＢＭＳ（Data Base Management System）を機能させる現用系装置、ならびに、前記現用系ＴＭから前記更新データを通知される予備系ＴＭ、および、前記現用系ＤＢＭＳが格納するデータ内容を同一化する予備系ＤＢＭＳを機能させる予備系装置を有するデータベースシステムが実行するデータ同一化方法であって、前記現用系ＴＭが、前記トランザクションを実行してそのトランザクションにより発生した前記更新データを取得し、取得した前記更新データを前記現用系ＤＢＭＳに通知するとともに、前記予備系ＴＭに通知し、前記現用系ＤＢＭＳが、前記現用系ＴＭからの前記更新データを自身が管理するデータベースに反映するとともに、前記更新データを非同期通信で前記予備系ＤＢＭＳに通知し、前記予備系ＴＭが、通知された前記更新データを差分ファイルに記憶し、所定契機において、前記差分ファイルから前記更新データを読み取って前記予備系ＤＢＭＳに通知し、前記予備系ＤＢＭＳが、前記現用系ＤＢＭＳまたは前記予備系ＴＭから取得した前記更新データを自身が管理するデータベースに反映することを特徴とする。その他の手段は、後記する。
【発明の効果】
【００１０】
本発明によれば、高信頼かつ高性能なデータベースの同一化を実現することが可能になった。
【発明を実施するための最良の形態】
【００１１】
以下、図面を用いて、本発明の一実施形態を説明する。
【００１２】
まず、本実施形態の同一化システムの概要を説明する。同一化システムの現用系装置から予備系装置への同一化処理は、以下の２種類の方式のいずれかにより実現される。
・現用系装置から予備系装置への非同期（asynchronous）通信処理（図１）により、同一化を行う方式
・現用系装置から予備系装置への同期（synchronous）通信処理（図２）、および、予備系装置内での反映処理（図３）により、同一化を行う方式
【００１３】
図１は、同一化システムにおける非同期通信処理を示す説明図である。非同期通信とは、更新対象のデータが発生した時刻にそのデータを送信するのではなく、発生した更新対象のデータを一時的に貯めておき、所定の契機で貯めておいたデータをまとめて送信することで、通信の発生回数を抑制する。さらに、更新対象のデータの更新制御を指示した処理部は、その更新完了応答を待たずに次の処理に進めるため、通信待ちの時間が抑制される。これにより、オンライン時の処理性能を向上できる。
【００１４】
同一化システムは、ＴＭ（Transaction Manager）部２２ａおよびＤＢＭＳ部２３ａを有する現用系装置１ａ、および、ＴＭ部２２ｂおよびＤＢＭＳ部２３ｂを有する予備系装置１ｂを接続して、互いに格納するデータをミラーリング（多重化）して構成される。ＴＭ部２２ａには、トランザクションを処理するトランザクション処理部３１ａが含まれている。ＴＭ部２２ａは、トランザクション処理部３１ａのトランザクションの処理により発生した更新データ（例えば、アドレス「００１１」の内容「７０００」）を、トランザクション完了前にＤＢＭＳ部２３ａに更新する。
【００１５】
ＤＢＭＳ部２３ａはデータベース４１ａを有し、ＤＢＭＳ部２３ｂはデータベース４１ｂを有する。データベース４１ａ，４１ｂは、データをメモリに記憶するメモリＤＢとして構成される。メモリＤＢのデータ内容の同一化のために更新データ（例えば、アドレス「００１１」の内容「７０００」）を通信するときに、前記した非同期通信が用いられる。ＤＢＭＳ部２３ｂは、通知された更新データをデータベース４１ｂに書き込む。なお、差分テーブル３６ｂへの更新データの書き込みも、併せて行われる（図２参照）。差分テーブル３６ｂには、トランザクションの実行順序に従って、更新データが書き込まれる。例えば、図１のトランザクションは、以下の実行順序で実行される。
・アドレス「００１０」の内容を「１０００」で更新。
・アドレス「００１２」の内容を「３０００」で更新。
・アドレス「００１１」の内容を「７０００」で更新。
【００１６】
図２は、図１の同一化システムにおける同期通信処理を示す説明図であり、図１と同じ
構成要素である。同期通信とは、更新対象のデータが発生した時刻にそのデータを送信する。非同期通信と異なり、発生した更新対象のデータを一時的に貯めておかないので、障害発生時にメモリ上に貯めておいたデータが消失してしまうことがなくなり、信頼性を向上することができる。図１と同様に、ＴＭ部２２ａは、トランザクション処理部３１ａのトランザクションの処理により発生した更新データ（例えば、アドレス「００１１」の内容「７０００」）を、トランザクション完了前にＤＢＭＳ部２３ａに更新する。
【００１７】
ＴＭ部２２ａは、トランザクション処理部３１ａのトランザクションの処理により発生した更新データ（例えば、アドレス「００１１」の内容「７０００」）を、データベース４１ａに書き込み、その書き込み時刻とほぼ同時刻かつトランザクション完了前にＴＭ部２２ｂに同期通信により通知する。ＴＭ部２２ｂは、通知された更新データを、共有メモリなどにより構成される差分テーブル３６ｂ（差分ファイル）に記録する。差分テーブル３６ｂは、データベース４１ａ，４１ｂ間のデータの差分を示す。
【００１８】
ここで、ＴＭ部２２ａは、トランザクションの処理により発生したデータベース４１ａへのアクセスのうち、全てのアクセス、または、更新を要するアクセスを選択してから、そのアクセスを同期通信する。ＤＢＭＳ部２３ａ，２３ｂは、同期通信処理にかかわらないので、メモリＤＢの高い参照更新性能への影響を少なくすることができる。
【００１９】
図３は、図２に示した処理の後に実行される、同一化システムにおける予備系装置内での反映処理を示す説明図である。現用系装置１ａに障害が発生したときには、メモリＤＢとして構成されているデータベース４１ａのデータ内容は、消えてしまう。
【００２０】
現用系装置１ａは、障害発生後の障害対処処理（詳細は後記）において、消失したデータベース４１ａのデータ内容を復旧する必要がある。そこで、差分テーブル３６ｂの内容をデータベース４１ｂに反映させる制御指示が発行される。これにより、ヒューマンエラーを無くし、同一化処理にかかる時間を短縮できる。
【００２１】
前記したデータ内容を反映させる旨の制御指示を受信したＴＭ部２２ｂは、差分テーブル３６ｂから更新データを取り出し、データベース４１ｂに更新する。これにより、消失したデータベース４１ａの更新データの内容が、データベース４１ｂに反映されることで、障害の復旧が実現される。
【００２２】
以上のように、正常動作時には図１の非同期通信を用いた高性能な同一化処理が、障害発生時には図２および図３の同期通信を用いた高信頼な同一化処理が、それぞれ実現される。
【００２３】
図４は、同一化システムに用いられる現用系装置の構成図である。現用系装置１ａは、ＣＰＵ１１ａ、メモリ１３ａ、および、ハードディスク１４ａを有し、ネットワークインタフェース１２ａを介してＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワーク９に接続する。なお、ネットワーク９は専用線やハードウェアを用いたものなどを使用しても構わない。また、ハードディスク１４ａは、フラッシュメモリなど、他の不揮発性の記憶手段により構成してもよい。
【００２４】
ハードディスク１４ａは、定義ファイル５１ａ、ジャーナルファイル５２ａ、ＤＢデータファイル５３ａ、および、プログラムファイル５４ａを格納する。定義ファイル５１ａは、ＴＭ部２２ａの統計情報、障害時のＤＢ更新指示の有無、および、更新条件の設定を含む。プログラムファイル５４ａは、メモリ１３ａで動作する各処理部を実現するためのプログラムである。
【００２５】
メモリ１３ａは、業務アプリケーション部２１ａ、業務アプリケーション部２１ａから呼び出されてトランザクションを管理するＴＭ部２２ａ、ＴＭ部２２ａのトランザクション処理により発生した更新データを管理するＤＢＭＳ部２３ａ、および、現用系装置１ａに障害が発生したことを検知し、あらかじめ設定されている障害対処処理を実行する障害検知処理部２４ａを格納する。障害対処処理は、例えば、ＴＭ部２２ａの再起動処理、または、ＴＭ部２２ｂを予備系から現用系への切り替え制御処理である。
【００２６】
ＴＭ部２２ａは、定義ファイル５１ａを読み込み起動する。ＴＭ部２２ａは、業務アプリケーション部２１ａからデータベース４１ａを更新するトランザクション処理要求があった場合には、トランザクション処理部３１ａによる処理を実行する。
【００２７】
トランザクション処理部３１ａは、すべての処理に成功した場合はジャーナルファイル５２ａに回復情報などを書き込む。また、ＴＭ部２２ａは、予備系装置１ｂの更新データ反映部３５ｂ（図５参照）で使用するデータの条件を変更する旨の入力があった場合には、更新条件３３ａを変更し、変更内容を更新データ送信部３２ａで予備系装置１ｂに送信する。
【００２８】
ＤＢＭＳ部２３ａは、起動時にＤＢデータファイル５３ａからデータベース４１ａにデータをロードする。なお、データベース４１ａは、メモリ上に全てのデータがなくても構わない。データ同一化部４２ａは、データベース４１ａの内容について、非同期通信により予備系装置１ｂのデータベース４１ｂと同一化処理を行う（図１参照）。
【００２９】
図５は、同一化システムに用いられる予備系装置の構成図である。予備系装置１ｂは、現用系装置１ａの予備系（待機系）の装置として構築され、現用系装置１ａの障害時には、現用系に切り替わって動作を開始する。そのため、現用系装置１ａと予備系装置１ｂとは同一のまたは対応する構成を有する。つまり、データベース４１ａ，４１ｂなど、符号の先頭の数字（４１）が同じ構成要素どうしが対応する。例えば、定義ファイル５１ａと定義ファイル５１ｂ、ジャーナルファイル５２ａとジャーナルファイル５２ｂ、ＤＢデータファイル５３ａとＤＢデータファイル５３ｂ、および、プログラムファイル５４ａとプログラムファイル５４ｂは、それぞれ同じデータ内容である。
【００３０】
予備系装置１ｂは、現用系装置１ａと同様にＣＰＵ１１ｂ、ネットワークインタフェース１２ｂ、メモリ１３ｂ、および、ハードディスク１４ｂを有する。
【００３１】
ＴＭ部２２ｂは、ＴＭ部２２ａで作成された更新データを更新データ受信部３４ｂで受信し、受信した更新データを差分テーブル３６ｂに蓄積する。そして、更新データ反映部３５ｂは、差分テーブル３６ｂから、更新条件３３ｂに合致する更新データを使用し、データベース４１ｂの更新処理を実行する。
【００３２】
ＤＢＭＳ部２３ｂは、データベース４１ｂ、データベース４１ａとデータベース４１ｂを同一化するためのデータ同一化部４２ｂを有する。なお、データベース４１ｂはメモリ上に全てのデータがなくても構わない。
【００３３】
障害検知処理部２４ｂは、障害検知処理部２４ａと連携し、現用系装置１ａに障害が発生したことを検知し、あらかじめ設定されている障害対処処理を予備系装置１ｂで実行する。
【００３４】
業務処理で使用するプログラムファイル５４ｂは、メモリ１３ｂで動作する各処理部を実現するためのプログラムに加え、待機系で動いていた予備系装置１ｂが現用系で動作するために必要な、現用系と同一の業務アプリケーション部２１ａ、トランザクション処理部３１ａ、および、更新データ送信部３２ａが含まれている。
【００３５】
図６は、障害の発生により予備系から現用系へと切り替わる旨を示す説明図である。図６（ａ）は障害発生前、図６（ｂ）は障害発生後をそれぞれ示す。図６（ａ）は、現用系装置１ａを現用系とし、予備系装置１ｂを待機系とした同一化システムを示す。図６（ｂ）は、予備系装置１ｂを現用系とし、第２予備系装置１ｃを予備系（待機系）とした同一化システムを示す。第２予備系装置１ｃは、予備系装置１ｂと同じ構成である。
【００３６】
図６（ａ）において、予備系装置１ｂは、現用系装置１ａが処理するトランザクションにより発生した更新データを受信して、自身のデータベース４１ｂに反映する。図６（ｂ）において、予備系装置１ｂは、現用系装置１ａのデータベース４１ａの更新内容が反映（図３参照）された後、現用系装置１ａの代わりにトランザクションを処理する必要がある。
【００３７】
そこで、予備系装置１ｂは、業務を始めるために、ＴＭ部２２ｂで行っていた更新データ受信部３４ｂ、ＤＢＭＳ部２３ｂのデータ同一化部４２ｂを停止し、プログラムファイル５４ｂから業務アプリケーション部２１ａやトランザクション処理部３１ａに必要なプログラムを起動し、業務を開始する。業務を開始した直後は、予備系装置１ｂは、第２予備系装置１ｃと連携せずに、単体での運用となるため、ＤＢＭＳ部２３ｂに更新が発生した場合には、すぐにジャーナルファイル５２ｂにログをとることで信頼性を確保する。
【００３８】
そして、現用系として動作を開始した予備系装置１ｂは、第２予備系装置１ｃを予備系として連携する。まず、ＤＢＭＳの複製機能を用いてデータベース４１ｂを第２予備系装置１ｃに複製する。次に、予備系装置１ｂおよび第２予備系装置１ｃのデータ同一化部４２ｂを起動して互いに連携させて非同期通信による同一化処理を実行する。そして、予備系装置１ｂが現用系として動作を開始したときのＴＭ部２２ａから、第２予備系装置１ｃが予備系として動作を開始したときのＴＭ部２２ｂに対して、同期通信による同一化処理が実行される。
【００３９】
同期通信による同一化処理が実行されたことにより、データの信頼性が保証される。よって、予備系装置１ｂと第２予備系装置１ｃとの連携前に、更新後すぐにジャーナルファイル５２ｂにログをとる動作を省略することができる。
【００４０】
図７は、主に現用系装置１ａに着目したトランザクション処理を示すフローチャートである。
【００４１】
まず、ＴＭ部２２ａは、起動処理を行う（Ｓ１０１）。次に、業務アプリケーション部２１ａは、ＴＭ部２２ａに対して、業務処理に関するトランザクション処理の開始を要求する（Ｓ１０２）。トランザクション処理部３１ａは、Ｓ１０２の要求を受け、トランザクション処理を開始する（Ｓ１０３）。
【００４２】
更新データ送信部３２ａは、Ｓ１０３で開始されたトランザクション処理によって発生したデータの更新処理より、同一化処理に必要となる更新データを作成して、予備系装置１ｂのＴＭ部２２ｂに送信する（Ｓ１０４）。
【００４３】
トランザクション処理部３１ａは、Ｓ１０３で開始されたトランザクション処理によって発生したデータの更新処理を反映させるため、ＤＢＭＳ部２３ａに対して更新を要求する（Ｓ１０５）。ＤＢＭＳ部２３ａは、受け付けた要求を元に、データベース４１ａを更新し（Ｓ１０６）、その結果であるデータベース更新完了をトランザクション処理部３１ａに通知する（Ｓ１０７）。
【００４４】
トランザクション処理部３１ａは、トランザクションに関するすべて処理が成功したときに、トランザクションに関する回復データなどをジャーナルファイルへ記録する（Ｓ１０８）。トランザクション処理部３１ａは、トランザクション処理が完了したときに、トランザクション処理終了を業務アプリケーション部２１ａに通知する（Ｓ１０９）。
【００４５】
また、Ｓ１０６の更新が所定回数なされたなどの所定の通知契機にて、ＤＢＭＳ部２３ａは、予備系装置１ｂのＤＢＭＳ部２３ｂに対して、非同期通信によるデータの送信処理を行う（Ｓ１１０）。データベース４１ｂへと非同期通信により通知されると、データベース４１ｂへと反映されることで、データベース４１ａおよびデータベース４１ｂのデータ内容の同一化が実現される。
【００４６】
なお、更新内容は非同期通信により通知されるため、データベース４１ａへの更新（Ｓ１０６）が行われた後、データベース４１ｂにはすぐに通知されずにバッファリングされる。そして、バッファリングされた１つ以上の更新内容は、非同期通信を行うための所定の通知契機が発生すると、Ｓ１１０の非同期通信により、通知される。
【００４７】
図８は、主に予備系装置１ｂに着目したトランザクション処理を示すフローチャートである。
【００４８】
障害検知処理部２４ａは、現用系装置１ａで発生した障害を検知すると、予備系装置１ｂの動作を予備系から現用系へ切り換える旨の制御指示を障害検知処理部２４ｂに送信する（Ｓ１２１）。障害検知処理部２４ｂは、送信された制御指示をもとに、ＴＭ部２２ｂにデータベース４１ｂの更新を要求する（Ｓ１２２）。なお、Ｓ１２２は、障害が発生したときのみ、実行させる。
【００４９】
更新データ受信部３４ｂは、更新データ送信部３２ａが作成して送信した（Ｓ１０４）、更新データを受信する（Ｓ１２３）。
【００５０】
ＴＭ部２２ｂは、データベース４１ｂの更新が必要か否かを判断し（Ｓ１２４）、更新が必要ない（Ｓ１２４，Ｎｏ）なら、処理を終了する。具体的には、以下のいずれかの場合が更新の必要なときである。
・Ｓ１２２で切替制御指示を受信したとき
・Ｓ１２３で受信したパケットが更新指示を含むとき
【００５１】
更新が必要（Ｓ１２４，Ｙｅｓ）なら、更新データ反映部３５ｂは、ＤＢＭＳ部２３ｂに対して、データベースの更新を要求する（Ｓ１２５）。ＤＢＭＳ部２３ｂは、データベースの更新要求を受け、データベース４１ｂを更新する（Ｓ１２６）。ＤＢＭＳ部２３ｂは、ＴＭ部２２ｂに対して、データベース更新処理が完了したときに、データベース更新完了を通知する（Ｓ１２７）。
【００５２】
なお、ＤＢＭＳ部２３ｂのデータ同一化部４２ｂは、データベース４１ａで更新されたデータを、データ同一化部４２ａから非同期通信（Ｓ１１０）により受信し、受信したデータについてデータベースの更新を要求する（Ｓ１２８）。そして、Ｓ１２８の要求を受け、データベース４１ｂの更新（Ｓ１２６）が行われる。
【００５３】
図９（ａ）は、Ｓ１０１から呼び出され、ＴＭ部２２ａが実行する起動処理の詳細を示すフローチャートである。
【００５４】
まず、ＴＭの起動処理を行うと（Ｓ２０１）、定義ファイル５１ａを読み込んで、その内容をもとにデータ同一化部４２ａを起動する（Ｓ２０２）。次に、ＴＭが再起動でない（Ｓ２０３，Ｎｏ）、つまり初回の起動なら、処理を終了する。
【００５５】
そして、再起動（Ｓ２０３，Ｙｅｓ）であり、障害が発生したときには、ＤＢの更新指示が必要であり（Ｓ２０４，Ｙｅｓ）、制御情報を更新指示の形式で作成して、ＴＭ部２２ｂに送信する（Ｓ２０５）。なお、前回が異常終了したときには、障害が発生したと判断される。この判断処理は、例えば、前回の終了時に、「正常」か「異常」かを示すフラグを記録しておき、今回の再起動でそのフラグを読み取ることで、実現される。一方、ＤＢの更新指示が必要でないなら（Ｓ２０４，Ｎｏ）、処理を終了する。
【００５６】
【表１】
2008310517.tif 000003
表１は、Ｓ２０５で作成される制御命令（差分反映指示）を含むパケットの一例を示す。現用系装置１ａから予備系装置１ｂに送信されるパケットのデータフォーマットは、次の通りである。「命令種別」は、制御命令の命令種別を示し、例えば、「更新（０００１）」「条件変更（００１０）」「差分反映指示（０１００）」などである。「データ長」は、「データ長」の直後に続く「データ内容」の長さを示す。「データ内容」は、「命令種別」で示される制御命令を実行するためのデータを示す。
【００５７】
表１では、差分反映指示（０１００）する旨のみを通知すればよいので、「データ内容」は付されず、「データ長」は０である。
【００５８】
図９（ｂ）は、Ｓ１０４から呼び出され、更新データ送信部３２ａが実行する更新データの作成処理および送信処理を示すフローチャートである。このフローチャートは、更新データ送信部３２ａがトランザクション処理部３１ａからトランザクション処理（Ｓ１０３）に関する更新データを受け付けたことを契機として、実行される。
【００５９】
まず、定義ファイル５１ａに基づいて、トランザクションの統計情報などから、更新条件を変更する必要があるか否かを判断する（Ｓ３０１）。Ｓ３０１でＮｏなら、処理をＳ３０３に進める。一方、更新条件を変更する必要があるなら（Ｓ３０１，Ｙｅｓ）、更新条件変更データの形式で制御情報を作成し、ＴＭ部２２ｂに送信する（Ｓ３０２）。例えば、トランザクションの統計情報が１０００件／秒であるときには、更新条件が示す差分テーブル３６ｂに格納するトランザクションの件数を１０００件／秒以上とする。これにより、差分テーブル３６ｂに記録されないトランザクションがあふれてしまうことを抑制できる。
【００６０】
【表２】
2008310517.tif 000004
表２は、Ｓ３０２で作成される制御命令（条件変更）を含むパケットの一例を示す。このパケットは、ＴＭ部２２ａで作成され、ＴＭ部２２ｂのデータ更新時に使用する更新条件について、その内容を変更する用途で使用される。各更新条件は、更新条件の種別を示すコードと、その種別におけるパラメータとを、コンマで区切って列挙した形式で、記述される。
【００６１】
更新条件には、差分テーブルに蓄積している全更新データから、更新に使用する更新データを選択するための更新データの条件判断を記述する。１つめ更新条件「０００１，５」は、更新データが発生してから現在までに経過した秒数（換言すると更新データの新しさ）を示し、「発生してから５秒以内の更新データのみ、データベースに更新する」旨を示す。２つめ更新条件「００１０，１０００」は、更新対象のデータ数を示し、「１０００件の更新データのみ、データベースに更新する」旨を示す。
【００６２】
次に、定義ファイル５１ａに基づいて、ＴＭの状態などから、ＤＢの更新指示をする必要があるか否かを判断する（Ｓ３０３）。
【００６３】
Ｓ３０３でＹｅｓなら、更新データの形式で作成した更新データ、および、更新指示を示す制御情報を送信データとする（Ｓ３０５）。一方、Ｓ３０３でＮｏなら、更新データの形式で更新データを作成して、送信データとする（Ｓ３０４）。そして、Ｓ３０４またはＳ３０５で作成した送信データをＴＭ部２２ｂに送信する（Ｓ３０６）。
【００６４】
【表３】
2008310517.tif 000005
表３は、Ｓ３０５で作成される制御命令（更新＋差分反映指示）を含むパケットの一例を示す。なお、複数の指示を１つのメッセージパケットに相乗り（ピギーバック）させるときには、命令種別を構成する各ビットのＡＮＤ演算を行う。例えば、命令種別「０１０１」は、更新（０００１）および差分反映指示（０１００）という２つの指示を含む。
【００６５】
表３の「データ内容」には、更新データ「Ｓｕｚｕｋｉ，１００」、および、この更新データをデータベースに反映するときに必要となる情報などを含んでいる。更新データは、ＴＭ部２２ａでデータベースの更新が発生した場合に作成され、同一化しているデータベースの差分データとして差分テーブル３６ｂに蓄積される。
【００６６】
【表４】
2008310517.tif 000006
表４は、Ｓ３０４で作成される制御命令（更新）を含むパケットの一例を示す。「データ内容」は、表３と同じである。
【００６７】
図１０は、Ｓ１２５から呼び出される、ＴＭ部２２ｂ（更新データ受信部３４ｂ）が実行する更新データを元にした更新処理を示すフローチャートである。
【００６８】
まず、Ｓ３０６で更新データ送信部３２ａから送信された送信データ（更新データおよび制御情報）を受信する（Ｓ４０１）。次に、受信した制御情報の解析を行い、制御情報が含まれているパケットの命令種別や長さやデータを抽出する（Ｓ４０２）。
【００６９】
ここで、抽出した命令種別を参照して、Ｓ４０１で受信したパケットが更新データを含むときは（Ｓ４０３，Ｙｅｓ）、差分テーブル３６ｂに更新データを追加する（Ｓ４０４）。
【００７０】
そして、抽出した命令種別を参照して、Ｓ４０１で受信したパケットが更新指示を含むときは（Ｓ４０５，Ｙｅｓ）、更新指示を実行するように制御する（Ｓ４０６）。
【００７１】
さらに、抽出した命令種別を参照して、Ｓ４０１で受信したパケットが更新条件変更指示を含むときは（Ｓ４０７，Ｙｅｓ）、ＴＭ部２２ｂの更新条件３３ｂを変更する（Ｓ４０８）。
【００７２】
図１１は、更新データ反映部３５ｂが実行する差分テーブル３６ｂのデータ内容をデータベース４１ｂに反映する更新処理を示すフローチャートである。
【００７３】
まず、差分テーブル３６ｂに更新データが蓄積されていない（Ｓ５０１，Ｎｏ）ときは、更新対象のデータが存在しないので、更新処理は不要となり、処理を終了する。
【００７４】
次に、差分テーブル３６ｂに更新条件３３ｂが設定されているときは（Ｓ５０２，Ｙｅｓ）、差分テーブル３６ｂに蓄積されている更新データから、更新条件３３ｂを満たしている更新データを選択して取り出して、データベース４１ｂの更新をＤＢＭＳ部２３ｂに要求する（Ｓ５０３）。
【００７５】
一方、差分テーブル３６ｂに更新条件３３ｂが設定されていないときは（Ｓ５０２，Ｎｏ）、差分テーブル３６ｂに蓄積されている全ての更新データを取り出して、データベース４１ｂの更新をＤＢＭＳ部２３ｂに要求する（Ｓ５０４）。
【００７６】
以上説明した本実施形態は、一方のＴＭの処理と連動して他方のＴＭのデータベース内容の同一化処理を行う。これにより、非同期で同一化を行うＤＢＭＳにおいて、ＤＢＭＳの上位装置であるＴＭでデータベースの同一化をする。高性能かつ高信頼に同一化処理を実現することができる。高性能とは、例えば、障害時などにデータベース同期処理に要する時間を短縮できることを指す。なお、同一化は、多重化（２台の場合は、２重化）により実現される。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施形態に関する同一化システムにおける非同期通信処理を示す説明図である。
【図２】本発明の一実施形態に関する同一化システムにおける同期通信処理を示す説明図である。
【図３】本発明の一実施形態に関する同一化システムにおける予備系装置内での反映処理を示す説明図である。
【図４】本発明の一実施形態に関する同一化システムに用いられる現用系装置を示す構成図である。
【図５】本発明の一実施形態に関する同一化システムに用いられる予備系装置を示す構成図である。
【図６】本発明の一実施形態に関する障害の発生により予備系から現用系へと切り替わる旨を示す説明図である。
【図７】本発明の一実施形態に関する主に現用系装置に着目したトランザクション処理を示すフローチャートである。
【図８】本発明の一実施形態に関する主に予備系装置に着目したトランザクション処理を示すフローチャートである。
【図９】本発明の一実施形態に関するトランザクション処理の詳細を示すフローチャートである。
【図１０】本発明の一実施形態に関する更新データを元にした更新処理を示すフローチャートである。
【図１１】本発明の一実施形態に関する差分テーブルの反映処理を示すフローチャートである。
【符号の説明】
【００７８】
１ａ    現用系装置
１ｂ    予備系装置
１ｃ    第２予備系装置
９      ネットワーク
１１ａ  ＣＰＵ
１２ａ  ネットワークインタフェース
１３ａ  メモリ
１４ａ  ハードディスク
２１ａ  業務アプリケーション部
２２ａ  ＴＭ部
２３ａ  ＤＢＭＳ部
２４ａ  障害検知処理部
３１ａ  トランザクション処理部
３２ａ  更新データ送信部
３３ａ  更新条件
３４ｂ  更新データ受信部
３５ｂ  更新データ反映部
３６ｂ  差分テーブル
４１ａ  データベース
４２ａ  データ同一化部
５１ａ  定義ファイル
５２ａ  ジャーナルファイル
５３ａ  ＤＢデータファイル
５４ａ  プログラムファイル
【図１】
2008310517.tif 000007
【図２】
2008310517.tif 000008
【図３】
2008310517.tif 000009
【図４】
2008310517.tif 000010
【図５】
2008310517.tif 000011
【図６】
2008310517.tif 000012
【図７】
2008310517.tif 000013
【図８】
2008310517.tif 000014
【図９】
2008310517.tif 000015
【図１０】
2008310517.tif 000016
【図１１】
2008310517.tif 000017