(57)【要約】【課題】等値となるべきデータベースに対し夫々独立して更新がなされていても、これらのデータベース間に論理的な矛盾を発生させずに同期処理を行うようにする。【解決手段】サーバ１０の業務アプリケーション１０Ａによるデータベース１０Ｂに対する更新をサーバ２０のデータベース２０Ｂに反映させる同期処理において、更新情報収集部１０Ｃでは、データベース１０Ｂにおける更新前後の状態を特定可能な更新情報を収集し、これがトランザクションごとに保持された更新情報データ３０を生成してサーバ２０に伝送する。一方、サーバ２０の更新情報反映部２０Ｄでは、更新情報データ３０の更新情報に応じてデータベースを更新すると、データベース間に論理的な矛盾が発生するか否かを判定する。矛盾が生じないときには更新情報に応じてデータベース２０Ｂを更新し、矛盾が生じるときにはエラーログ２０Ｅを出力する。【選択図】  図１
2008009809.tif 000002
【特許請求の範囲】
【請求項１】
データベースを夫々備えたサーバにより構築されたネットワークコンピューティング環境において、他のサーバにおけるデータベースとの間で同期処理を行うためのデータベース同期処理プログラムであって、
前記他のサーバにおいて収集された、データベースにおける更新前後の状態を特定可能な更新情報を参照し、その更新情報に応じてデータベースを更新すると、データベース間に論理的な矛盾が発生するか否かを判定する判定ステップと、
前記判定ステップにより矛盾が発生しないと判定されたときに、前記更新情報に応じてデータベースを更新する更新ステップと、
をサーバに実現させるためのデータベース同期処理プログラム。
【請求項２】
前記判定ステップにより矛盾が発生すると判定されたときに、矛盾内容を示すエラーログを生成する生成ステップを更に含むことを特徴とする請求項１記載のデータベース同期処理プログラム。
【請求項３】
前記更新情報には、データベースの更新済みレコードの更新前の状態を示す更新前データ及び更新後の状態を示す更新後データとして、データベースに対する更新処理が登録処理のとき、レコードが存在しないことを示す識別子及び登録されたレコードが夫々設定され、データベースに対する更新処理が削除処理のとき、削除されたレコード及び前記識別子が夫々設定され、データベースに対する更新処理が変更処理のとき、変更前のレコード及び変更後のレコードが夫々設定されることを特徴とする請求項１又は請求項２に記載のデータベース同期処理プログラム。
【請求項４】
前記判定ステップは、前記更新前データに前記識別子が設定され且つ前記更新後データに設定されたレコードと同じキーを有する対応レコードがデータベースに存在するとき、前記更新後データに前記識別子が設定され且つ前記更新前データに設定されたレコードと同じキーを有する対応レコードがデータベースに存在しない若しくは前記更新前データに設定されたレコードと異なるとき、又は、前記更新前データ及び前記更新後データに夫々レコードが設定され且つ前記更新前データに設定されたレコードと同じキーを有する対応レコードが前記更新前データに設定されたレコードと異なるときに、データベース間に論理的な矛盾が発生すると判定することを特徴とする請求項３記載のデータベース同期処理プログラム。
【請求項５】
前記更新ステップは、前記更新前データに前記識別子が設定されているときに、前記更新後データに設定されたレコードをデータベースに登録し、前記更新後データに前記識別子が設定されているときに、前記更新前データに設定されたレコードと同じキーを有する対応レコードをデータベースから削除し、それ以外のときに、前記更新前データに設定されたレコードと同じキーを有する対応レコードを前記更新後データに設定されたレコードに一致させるようにデータベースを変更することを特徴とする請求項３又は請求項４に記載のデータベース同期処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース間の同期処理を行う技術に関する。
【背景技術】
【０００２】
処理能力向上などを目的として、既存のコンピュータシステムから新規のコンピュータシステムへの移行を行うときに、既存のサーバを運用したまま、データベースの更新を行う業務アプリケーションを新規のサーバに段階的に移行することがある。このような移行においては、既存のサーバと新規のサーバとの両方に夫々備えられた等値となるべきデータベースに対し、夫々のサーバの業務アプリケーションが独立して更新を行う必要がある。かかる構成では、既存のサーバのデータベースと新規のサーバのデータベースとの整合性を保つため、データベースにおける更新を他のデータベースに夫々反映し合う同期処理が不可欠である。
【０００３】
一般的に、同期処理を行う従来技術として、特開２００２−３６６４０７号公報に記載されるように、マスタデータベースに対する更新をレプリカデータベースに反映させる技術が広く用いられている。
【特許文献１】特開２００２−３６６４０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような、マスタデータベースに対する更新をレプリカデータベースに反映させる従来の同期処理の技術は、２つのデータベース間に主従関係を持たせ、一方のデータベースに対する更新を他方のデータベースに一方的に反映するものであった。このため、夫々のデータベースに対して独立して更新がなされたときに、かかる従来の同期処理を行うと、次のように、論理的な矛盾が発生するおそれがあった。具体的には、業務アプリケーションにより変更されたレコードが、他のデータベースの更新内容で上書きされてしまうおそれがあった。また、夫々のデータベースに対し同じキーを持つレコードが登録される更新がなされた状態で同期処理を行うと、同じキーを有するレコードの二重登録となり同期処理がエラーとなってしまうおそれがあった。更に、夫々のデータベースから同じキーを持つレコードが削除される更新がなされた状態で同期処理を行うと、同じキーを有するレコードの二重削除となり同期処理がエラーとなってしまうおそれがあった。
【０００５】
そこで、本発明は以上のような従来の問題点に鑑み、等値となるべきデータベースに対し夫々独立して更新がなされていても、これらのデータベース間に論理的な矛盾を発生させずに同期処理を行うことを目的とする。
【課題を解決するための手段】
【０００６】
このため、本発明においては、データベースを夫々備えたサーバにより構築されたネットワークコンピューティング環境において、他のサーバにおけるデータベースとの間で同期処理を行うときに、他のサーバにおいて収集された、データベースにおける更新前後の状態を特定可能な更新情報を参照し、その更新情報に応じてデータベースを更新すると、データベース間に論理的な矛盾が発生するか否かを判定する。そして、矛盾が生じないと判定されたときに、更新情報に応じてデータベースを更新する。
【０００７】
また、かかる矛盾が生じるときには、システム管理者が矛盾内容とデータベースの運用状況を考慮して対処方法を決定することを可能とするために、矛盾内容を示すエラーログを生成及び出力することが望ましい。
【発明の効果】
【０００８】
本発明によれば、他のサーバに備えられたデータベースの更新をデータベースに反映すると、データベース間に論理的な矛盾が発生するか否かが判定される。そして、かかる矛盾が発生しないときにのみ、更新の反映が行われる。このため、データベース間に論理的な矛盾が発生するときには更新が反映されず、業務アプリケーションにより変更されたレコードが他のデータベースの更新内容で上書きされたり、同じキーを持つレコードの二重登録や二重削除がなされたりすることを回避することができる。従って、データベース間に論理的な矛盾を発生させずに、同期処理を行うことが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、添付された図面を参照して本発明を詳述する。
【００１０】
図１は、本発明を具現化したデータベース同期処理装置の機能概要を示す。このデータベース同期処理装置は、データベースの更新を行う業務アプリケーションを備えたサーバ１０及びサーバ２０を含んで構成される。なお、「更新」とは、ＩＮＳＥＲＴ命令による登録処理、ＵＰＤＡＴＥ命令による変更処理及びＤＥＬＥＴＥ命令による削除処理を含むものとする。
【００１１】
サーバ１０及びサーバ２０は、少なくとも中央処理装置（ＣＰＵ）、メモリ及び外部記憶装置を備えたコンピュータで構成される。サーバ１０は、業務アプリケーション１０Ａ、ＤＢＭＳ（DataBase Management System）により管理されるデータベース１０Ｂ、更新情報収集部１０Ｃ及び更新情報反映部１０Ｄを含んで構成される。なお、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどのコンピュータ読取可能な記録媒体に記録されたデータベース同期処理プログラムがサーバ１０にインストールされることにより、更新情報収集部１０Ｃ及び更新情報反映部１０Ｄの機能が実現される。サーバ２０も同様に、業務アプリケーション２０Ａ、ＤＢＭＳにより管理されるデータベース２０Ｂ、更新情報収集部２０Ｃ及び更新情報反映部２０Ｄを含んで構成される。サーバ１０のデータベース１０Ｂ及びサーバ２０のデータベース２０Ｂは、運用上等値となるべきものである。
【００１２】
サーバ１０の業務アプリケーション１０Ａは、データベース操作命令を含んだトランザクションを処理してデータベース１０Ｂを更新する。更新情報収集部１０Ｃは、データベース１０Ｂを更新するトランザクションが処理されたときに、トランザクションの開始及び終了の制御情報、並びに、データベース１０Ｂにおける更新前後の状態を特定可能な更新情報を収集し、更新情報がトランザクションごとに保持された更新情報データ３０を生成する。更に、更新情報収集部１０Ｃは、更新情報データ３０を、サーバ２０にネットワークを介して伝送する。更新情報反映部１０Ｄは、判定ステップ、判定手段、更新ステップ、更新手段、生成ステップ、生成手段、出力ステップ及び出力手段として機能し、サーバ２０から更新情報データ３０を受信したときに、その更新情報に応じてデータベース１０Ｂを更新すると論理的な矛盾が発生するか否かを判定する。そして、更新情報反映部１０Ｄは、矛盾が発生しないときには更新情報に応じてデータベース１０Ｂを更新し、矛盾が発生するときには、サーバ１０の外部記憶装置に矛盾内容を示すエラーログ１０Ｅを生成及び出力する。
【００１３】
なお、サーバ２０の業務アプリケーション２０Ａ、データベース２０Ｂ、更新情報収集部２０Ｃ及び更新情報反映部２０Ｄは、夫々、サーバ１０の業務アプリケーション１０Ａ、データベース１０Ｂ、更新情報収集部１０Ｃ及び更新情報反映部１０Ｄと同じ機能を有する。
【００１４】
次に、サーバ１０において業務アプリケーション１０Ａによりデータベース１０Ｂに対してなされた更新を、サーバ２０においてデータベース２０Ｂに反映させる同期処理の流れを説明する。更新情報収集部１０Ｃでは、業務アプリケーション１０Ａによりデータベース１０Ｂが更新されたときに、更新情報が収集され、更新情報データ３０が生成される。また、更新情報収集部１０Ｃでは、この更新情報データ３０が、サーバ２０の更新情報反映部２０Ｄに伝送される。一方、サーバ２０では、更新情報反映部２０Ｄにおいて、受信した更新情報データ３０の更新情報に応じてデータベース２０Ｂを更新すると、データベース１０Ｂとデータベース２０Ｂとの間に論理的な矛盾が発生するか否かが判定される。そして、更新情報反映部２０Ｄでは、矛盾が発生しないときに、更新情報データ３０に応じてデータベース２０Ｂが更新され、矛盾が発生するときには、エラーログ２０Ｅが生成及び出力される。
【００１５】
図２は、業務アプリケーション１０Ａにより、データベース１０Ｂに対する更新のトランザクションのデータベース操作命令が処理されるごとに、更新情報収集部１０Ｃにより実行される収集処理の内容を示す。
【００１６】
ステップ１（図では「Ｓ１」と略記する。以下同様）では、データベース操作命令がトランザクション開始命令であるか否かを判定する。データベース操作命令がトランザクション開始命令であるときにはステップ２に進み（Ｙｅｓ）、データベース操作命令がトランザクション開始命令でないときにはステップ３に進む（Ｎｏ）。
【００１７】
ステップ２では、更新情報データ３０に、これを構成する更新情報として、図３に示すように、トランザクション開始命令であることを示すデータ３０Ａを設定する。
【００１８】
ステップ３では、データベース操作命令がＩＮＳＥＲＴ命令であるか否かを判定する。データベース操作命令がＩＮＳＥＲＴ命令であるときにはステップ４に進み（Ｙｅｓ）、データベース操作命令がＩＮＳＥＲＴ命令でないときにはステップ６に進む（Ｎｏ）。
【００１９】
ステップ４では、更新情報データ３０に、データベース１０Ｂにおいて更新対象となった更新済みレコードの更新前の状態を示す更新前データとして、図３に示すように、レコードが存在しないことを示す識別子（例えばＮＵＬＬ値）３０Ｂを設定する。
【００２０】
ステップ５では、更新情報データ３０に、更新済みレコードの更新後の状態を示す更新後データとして、図３に示すように、登録されたレコード３０Ｃを設定する。なお、ステップ４及びステップ５において夫々設定された更新前データ及び更新後データは、これらで１つの更新情報とされる。
【００２１】
ステップ６では、データベース操作命令がＤＥＬＥＴＥ命令であるか否かを判定する。データベース操作命令がＤＥＬＥＴＥ命令であるときにはステップ７に進み（Ｙｅｓ）、データベース操作命令がＤＥＬＥＴＥ命令でないときにはステップ９に進む（Ｎｏ）。
【００２２】
ステップ７では、更新情報データ３０に、更新前データとして、図３に示すように、削除されたレコード３０Ｄを設定する。
【００２３】
ステップ８では、更新情報データ３０に、更新後データとして、図３に示すように、レコードが存在しないことを示す識別子３０Ｅを設定する。なお、ステップ７及びステップ８において夫々設定された更新前データ及び更新後データは、これらで１つの更新情報とされる。
【００２４】
ステップ９では、データベース操作命令がＵＰＤＡＴＥ命令であるか否かを判定する。データベース操作命令がＵＰＤＡＴＥ命令であるときにはステップ１０に進み（Ｙｅｓ）、データベース操作命令がＵＰＤＡＴＥ命令でないときにはステップ１２に進む（Ｎｏ）。
【００２５】
ステップ１０では、更新情報データ３０に、更新前データとして、図３に示すように、変更前のレコード３０Ｆを設定する。
【００２６】
ステップ１１では、更新情報データ３０に、更新後データとして、図３に示すように、変更後のレコード３０Ｇを設定する。なお、ステップ１０及びステップ１１において夫々設定された更新前データ及び更新後データは、これらで１つの更新情報とされる。
【００２７】
ステップ１２では、データベース操作命令がトランザクションの終了命令であるか否かを判定する。データベース操作命令がトランザクション終了命令であるときにはステップ１３に進み（Ｙｅｓ）、データベース操作命令がトランザクション終了命令でないときには処理を終了する（Ｎｏ）。
【００２８】
ステップ１３では、更新情報データ３０に、更新情報として、図３に示すように、トランザクション終了命令であることを示すデータ３０Ｈを設定する。
【００２９】
かかる収集処理により、データベース１０Ｂにおける更新前後の状態を夫々特定可能な更新前データ及び更新後データ、又はトランザクションの開始若しくは終了命令であることを示すデータを有する更新情報が収集され、これがトランザクションごとに保持された更新情報データ３０が生成される。ここで、データベース１０Ｂに対する更新処理が登録処理のときには、更新前データ及び更新後データに、レコードが存在しないことを示す識別子及びデータベースに登録されたレコードが夫々設定される。また、データベース１０Ｂに対する更新処理が削除処理のときには、更新前データ及び更新後データに、データベースから削除されたレコード及び識別子が夫々設定される。更に、データベース１０Ｂに対する更新処理が変更処理のときには、更新前データ及び更新後データに、変更前のレコード及び変更後のレコードが夫々設定される。このため、更新前データ及び更新後データに識別子又はレコードがどのように設定されているかに基づいて、データベース１０Ｂの更新内容が特定可能となる。
【００３０】
更に、更新情報収集部１０Ｃでは、更新情報データ３０がサーバ２０の更新情報反映部２０Ｄに伝送される。ここでは、データベース１０Ｂに対する更新のトランザクションが処理されるごとに更新情報データ３０が送信されても良いし、予め設定された所定時間ごとにスケジューリングされたジョブにより、複数のトランザクションの更新情報を有する更新情報データ３０がファイルインタフェースなどで送信されても良い。更新のトランザクションが処理されるごとに更新情報データ３０が送信されれば、データベース間の同期処理の頻度が高くなることで、データベース間の矛盾が発生し難くなる。また、所定時間ごとに更新情報データ３０が送信されれば、ネットワークの負荷が軽減される。
【００３１】
図４は、更新情報反映部２０Ｄにより実行される反映処理の内容を示す。この反映処理は、更新情報反映部２０Ｄで更新情報データ３０が受信されたときに実行される。
【００３２】
ステップ２１では、更新情報データ３０から、更新情報を、収集処理において更新情報データ３０に設定された順、即ちデータベース１０Ｂに対する更新が行われた順に、１つ読み込む。
【００３３】
ステップ２２では、更新情報がトランザクション開始を示すデータであるか否かを判定する。更新情報がトランザクション開始を示すデータであるときにはステップ２３に進み（Ｙｅｓ）、更新情報がトランザクション開始を示すデータでないときにはステップ２４に進む（Ｎｏ）。
【００３４】
ステップ２３では、データベース２０Ｂに対し、データベース１０Ｂの更新を反映させるトランザクションを開始する。
【００３５】
ステップ２４では、更新情報がＩＮＳＥＲＴ命令によるものであるか否かを判定する。ここでは、更新前データに、レコードが存在しないことを示す識別子が設定されているときに、更新情報がＩＮＳＥＲＴ命令によるものであると判定する。更新情報がＩＮＳＥＲＴ命令によるものであるときにはステップ２５に進み（Ｙｅｓ）、更新情報がＩＮＳＥＲＴ命令によるものでないときにはステップ２８に進む（Ｎｏ）。
【００３６】
ステップ２５では、更新後データに設定されたレコードと同じキーを有する対応レコードをデータベース２０Ｂにおいて検索し、対応レコードが存在するか否かを判定する。対応レコードが存在しないときにはステップ２６に進み（Ｙｅｓ）、対応レコードが存在するときにはステップ２７に進む（Ｎｏ）。
【００３７】
ステップ２６では、更新後データに設定されたレコードを、データベース２０Ｂに登録する。
【００３８】
ステップ２７では、エラーログ２０Ｅを生成し、サーバ２０の外部記憶装置に出力する。エラーログ２０Ｅには、更新対象のデータベース名、エラーログを出力する日時、データベース操作命令がＩＮＳＥＲＴ命令である旨の情報、更新後データに設定されたレコード及び更新後データに設定されたレコードと同じキーを有するデータベース２０Ｂの対応レコードなどを含める。
【００３９】
ステップ２８では、更新情報がＤＥＬＥＴＥ命令によるものであるか否かを判定する。ここでは、更新後データに、レコードが存在しないことを示す識別子が設定されているときに、更新情報がＤＥＬＥＴＥ命令であると判定する。更新情報がＤＥＬＥＴＥ命令によるものであるときにはステップ２９に進み（Ｙｅｓ）、更新情報がＤＥＬＥＴＥ命令によるものでないときにはステップ３３に進む（Ｎｏ）。
【００４０】
ステップ２９では、更新前データに設定されたレコードと同じキーを有する対応レコードをデータベース２０Ｂにおいて検索し、対応レコードが存在するか否かを判定する。対応レコードが存在するときにはステップ３０に進み（Ｙｅｓ）、存在しないときにはステップ３２に進む（Ｎｏ）。
【００４１】
ステップ３０では、更新前データに設定されたレコードが、これと同じキーを有するデータベース２０Ｂの対応レコードと一致するか否かを判定する。対応レコードが更新前データに設定されたレコードと一致するときにはステップ３１に進み（Ｙｅｓ）、対応レコードが更新前データに設定されたレコードと一致しないときにはステップ３２に進む（Ｎｏ）。
【００４２】
ステップ３１では、データベース２０Ｄから、更新前データに設定されたレコードと同じキーを有する対応レコードを削除する。
【００４３】
ステップ３２では、エラーログ２０Ｅを生成し、サーバ２０の外部記憶装置に出力する。エラーログ２０Ｅには、更新対象のデータベース名、エラーログを出力する日時、データベース操作命令がＤＥＬＥＴＥ命令である旨の情報、更新前データに設定されたレコード及びこれと同じキーを有するデータベース２０Ｂの対応レコードなどを含める。
【００４４】
ステップ３３では、更新情報がＵＰＤＡＴＥ命令によるものであるか否かを判定する。ここでは、更新前データ及び更新後データにレコードが設定されているときに、更新情報がＵＰＤＡＴＥ命令であると判定する。更新情報がＵＰＤＡＴＥ命令によるものであるときにはステップ３４に進み（Ｙｅｓ）、更新情報がＵＰＤＡＴＥ命令によるものでないときにはステップ３７に進む（Ｎｏ）。
【００４５】
ステップ３４では、更新前データに設定されたレコードと同じキーを有する対応レコードをデータベース２０Ｄにおいて検索し、対応レコードが、更新前データに設定されたレコードと一致するか否かを判定する。なお、対応レコードがデータベース２０Ｄに存在しないときは、対応レコードが更新前データに設定されたレコードと一致しないものとして判定する。対応レコードが、更新前データに設定されたレコードと一致するときにはステップ３５に進み（Ｙｅｓ）、対応レコードが更新前データに設定されたレコードと一致しない場合にはステップ３６に進む（Ｎｏ）。
【００４６】
ステップ３５では、更新前データに設定されたレコードと同じキーを有するデータベース２０Ｄの対応レコードを更新後データに設定されたレコードに一致させるように、データベース２０Ｄを変更する。即ち、更新前データに設定されたレコードと同じキーを有するデータベース２０Ｄの対応レコードが、更新後データに設定されたレコードで上書きされる。
【００４７】
ステップ３６では、エラーログ２０Ｅを生成し、サーバ２０の外部記憶装置に出力する。エラーログ２０Ｅには、更新対象のデータベース名、エラーログを出力する日時、データベース操作命令がＵＰＤＡＴＥ命令である旨の情報、更新前データ及び更新後データに設定されたレコード並びに更新前データに設定されたレコードと同じキーを有するデータベース２０Ｄの対応レコードなどを含める。
【００４８】
ステップ３７では、データベース２０Ｂに対し、データベース１０Ｂの更新を反映させるトランザクションを終了する。
【００４９】
なお、かかる反映処理のうち、ステップ２５、ステップ２９、ステップ３０及びステップ３４が、判定ステップ及び判定手段に相当する。また、ステップ２６、ステップ３１及びステップ３５が、更新ステップ及び更新手段に相当する。更に、ステップ２７、ステップ３２及びステップ３６が、生成ステップ、生成手段、出力ステップ及び出力手段に相当する。
【００５０】
かかる反映処理によれば、更新情報の更新前データ及び更新後データにどのようにレコード又は識別子が設定されているかに基づいてデータベース１０Ｂの更新内容が特定され、その更新内容に応じてデータベース２０Ｂの更新を行うと論理的な矛盾が発生するか否かが判定される。そして、矛盾が発生しないと判定されたときにのみ、データベース１０Ｂにおける更新がデータベース２０Ｂに反映される。
【００５１】
具体的には、更新前データにレコードが存在しないことを示す識別子が設定されていれば、更新後データに設定されたレコードがＩＮＳＥＲＴ命令によりデータベース１０Ｂに登録されたことが特定される。そして、その更新後データに設定されたレコードと同じキーを有する対応レコードがデータベース２０Ｂに存在しないときにのみ、更新後データに設定されたレコードがデータベース２０Ｂに登録される。このため、更新後データに設定されたレコードと同じキーを有する対応レコードがデータベース２０Ｂに存在するときにはかかる登録がなされないことで、同じキーを有するレコードの二重登録が回避される。
【００５２】
また、更新後データに識別子が設定されていれば、更新前データに設定されたレコードがＤＥＬＥＴＥ命令によりデータベース１０Ｂから削除されたことが特定される。そして、その更新前データに設定されたレコードと同じキーを有する対応レコードがデータベース２０Ｂに存在するときにのみ、その対応レコードがデータベース２０Ｂから削除される。このため、更新前データに設定されたレコードと同じキーを有する対応レコードがデータベース２０Ｂに存在しないときにはかかる削除がなされないことで、同じキーを有するレコードの二重削除が回避される。
【００５３】
更に、更新前データ及び更新後データにレコードが設定されていれば、更新前データに設定されたレコードがＵＰＤＡＴＥ命令により更新後データに設定されたレコードになるようにデータベース１０Ｂが変更されたことが特定される。そして、その更新前データに設定されたレコードがこれと同じキーを有するデータベース２０Ｂの対応レコードと一致するときにのみ、その対応レコードを更新後データに設定されたレコードに一致させるようにデータベース２０Ｂが変更される。このため、更新前データに設定されたレコードがこれと同じキーを有するデータベース２０Ｂの対応レコードと一致しないときにはかかる変更がなされないことで、業務アプリケーションにより変更されたレコードがデータベース１０Ｂの更新内容で上書きされることが回避される。
【００５４】
このように、データベース間に論理的な矛盾が発生するときには更新の反映が回避されることで、データベース間に論理的な矛盾を発生させずに、同期処理を行うことが可能となる。
【００５５】
また、論理的な矛盾が発生するときに、矛盾内容を示す情報を含んだエラーログ２０Ｅが生成され、外部記憶装置に出力される。このため、システム管理者は、エラーログ２０Ｅを参照すれば、その矛盾内容とデータベースの運用状況を考慮して対処方法を決定し、データベースの整合性をとることができる。
【００５６】
なお、エラーログ２０Ｅは、紙やディスプレイ装置などのように、視覚により把握可能な媒体に出力されても良い。同期処理において更新の反映が回避されたときに、エラーログ２０Ｅが紙に印刷されて出力されたり、ディスプレイ装置の画面上に出力されたりすれば、システム管理者はその矛盾内容を早急に把握し、対処することができる。
【００５７】
なお、更新情報収集部１０Ｃにおける収集処理において、データベース１０Ｂに対する更新のデータベース操作命令を特定可能な情報が、更新情報に設定されても良い。具体的には、データベース１０Ｂに対する更新処理が登録処理であれば、データベース操作命令がＩＮＳＥＲＴ命令であることを特定可能な情報及び登録されたレコードが更新情報として設定される。また、データベース１０Ｂに対する更新処理が削除処理であれば、データベース操作命令がＤＥＬＥＴＥ命令であることを特定可能な情報及び削除されたレコードが更新情報に設定される。更に、データベース１０Ｂに対する更新が変更処理であれば、データベース操作命令がＵＰＤＡＴＥ命令であることを特定可能な情報並びに更新前及び更新後の状態として変更前のレコード及び変更後のレコードが更新情報に夫々設定される。このようにすれば、更新情報に設定されたデータベース操作命令を特定可能な情報及びレコードに基づいて、データベース１０Ｂにおける更新内容が特定される。
【００５８】
更に、このようにデータベース操作命令の内容を特定可能な情報及びレコードが更新情報に設定されたときには、更新情報反映部２０Ｄでは、更新情報に基づき次のように反映処理が行われる。即ち、データベース操作命令がＩＮＳＥＲＴ命令であるときには、設定されたレコードと同じキーを有する対応レコードがデータベース２０Ｂに存在しないときにのみ、設定されたレコードがデータベース２０Ｂに登録される。また、データベース操作命令がＤＥＬＥＴＥ命令であるときには、設定されたレコードと同じキーを有する対応レコードがデータベース２０Ｂに存在するときにのみ、その対応レコードがデータベース２０Ｂから削除される。更に、データベース操作命令がＵＰＤＡＴＥ命令であるときには、更新前の状態として設定されたレコードがこれと同じキーを有するデータベース２０Ｂの対応レコードと一致するときにのみ、その対応レコードを更新後の状態として設定されたレコードに一致させるようにデータベース２０Ｂが変更される。このように、更新情報にデータベース操作命令の内容を特定可能な情報及びレコードが設定されていても、データベース間に論理的な矛盾が発生するときに更新の反映を回避することができ、データベース間に論理的な矛盾を発生させずに同期処理を行うことが可能となる。
【００５９】
また、サーバ２０においてなされた更新を、サーバ１０において反映させるときには同様にすれば良い。
【００６０】
このように、２つのサーバに夫々備えられた等値となるべきデータベースに対し、夫々独立して更新が行われる構成において、夫々のサーバで、かかる収集処理、判定処理及び反映処理が行われることで、データベース間に論理的な矛盾を発生させずに、データベースにおける更新を他のデータベースに夫々反映し合う同期処理が可能となる。
【００６１】
なお、本発明は、３つ以上のサーバにより構築されたネットワークコンピューティング環境においても、適用可能である。
【００６２】
（付記１）データベースを夫々備えたサーバにより構築されたネットワークコンピューティング環境において、他のサーバにおけるデータベースとの間で同期処理を行うためのデータベース同期処理プログラムであって、前記他のサーバにおいて収集された、データベースにおける更新前後の状態を特定可能な更新情報を参照し、その更新情報に応じてデータベースを更新すると、データベース間に論理的な矛盾が発生するか否かを判定する判定ステップと、前記判定ステップにより矛盾が発生しないと判定されたときに、前記更新情報に応じてデータベースを更新する更新ステップと、をサーバに実現させるためのデータベース同期処理プログラム。
【００６３】
（付記２）前記判定ステップにより矛盾が発生すると判定されたときに、矛盾内容を示すエラーログを生成する生成ステップを更に含むことを特徴とする付記１記載のデータベース同期処理プログラム。
【００６４】
（付記３）前記エラーログは、前記更新情報及びこれにより更新対象となるレコードの内容を示す情報を含んで構成されることを特徴とする付記２記載のデータベース同期処理プログラム。
【００６５】
（付記４）前記生成ステップにより生成されたエラーログを、外部記憶装置又は視覚により把握することが可能な媒体に出力する出力ステップを更に含むことを特徴とする付記２又は付記３に記載のデータベース同期処理プログラム。
【００６６】
（付記５）前記更新情報には、データベースの更新済みレコードの更新前の状態を示す更新前データ及び更新後の状態を示す更新後データとして、データベースに対する更新処理が登録処理のとき、レコードが存在しないことを示す識別子及び登録されたレコードが夫々設定され、データベースに対する更新処理が削除処理のとき、削除されたレコード及び前記識別子が夫々設定され、データベースに対する更新処理が変更処理のとき、変更前のレコード及び変更後のレコードが夫々設定されることを特徴とする付記１〜付記４のいずれか１つに記載のデータベース同期処理プログラム。
【００６７】
（付記６）前記判定ステップは、前記更新前データに前記識別子が設定され且つ前記更新後データに設定されたレコードと同じキーを有する対応レコードがデータベースに存在するとき、前記更新後データに前記識別子が設定され且つ前記更新前データに設定されたレコードと同じキーを有する対応レコードがデータベースに存在しない若しくは前記更新前データに設定されたレコードと異なるとき、又は、前記更新前データ及び前記更新後データに夫々レコードが設定され且つ前記更新前データに設定されたレコードと同じキーを有する対応レコードが前記更新前データに設定されたレコードと異なるときに、データベース間に論理的な矛盾が発生すると判定することを特徴とする付記５記載のデータベース同期処理プログラム。
【００６８】
（付記７）前記更新ステップは、前記更新前データに前記識別子が設定されているときに、前記更新後データに設定されたレコードをデータベースに登録し、前記更新後データに前記識別子が設定されているときに、前記更新前データに設定されたレコードと同じキーを有する対応レコードをデータベースから削除し、それ以外のときに、前記更新前データに設定されたレコードと同じキーを有する対応レコードを前記更新後データに設定されたレコードに一致させるようにデータベースを変更することを特徴とする付記５又は付記６に記載のデータベース同期処理プログラム。
【００６９】
（付記８）前記更新情報には、データベースに対する更新処理が登録処理のとき、データベース操作命令が登録処理命令であることを特定可能な情報及び登録されたレコードが設定され、データベースに対する更新処理が削除処理のとき、データベース操作命令が削除処理命令であることを特定可能な情報及び削除されたレコードが設定され、データベースに対する更新処理が変更処理のとき、データベース操作命令が変更処理命令であることを特定可能な情報並びに更新済みレコードの更新前及び更新後の状態として変更前のレコード及び変更後のレコードが夫々設定されることを特徴とする付記１〜付記３のいずれか１つに記載のデータベース同期処理プログラム。
【００７０】
（付記９）前記判定ステップは、データベース操作命令が登録処理命令であり且つ設定されたレコードと同じキーを有する対応レコードがデータベースに登録されているとき、データベース操作命令が削除処理命令であり且つ設定されたレコードと同じキーを有する対応レコードがデータベースに存在しない若しくは設定されたレコードと異なるとき、又は、データベース操作命令が変更処理命令であり且つ更新前の状態として設定されたレコードがこれと同じキーを有する対応レコードと異なるときに、データベース間に論理的な矛盾が発生すると判定することを特徴とする付記８記載のデータベース同期処理プログラム。
【００７１】
（付記１０）前記更新ステップは、データベース操作命令が登録処理命令であるときに、設定されたレコードをデータベースに登録し、データベース操作命令が削除処理命令であるときに、設定されたレコードと同じキーを有する対応レコードをデータベースから削除し、データベース操作命令が変更処理命令であるときに、更新前の状態として設定されたレコードと同じキーを有する対応レコードを更新後の状態として設定されたレコードに一致させるようにデータベースを更新することを特徴とする付記８又は付記９に記載のデータベース同期処理プログラム。
【００７２】
（付記１１）前記更新情報は、トランザクションごとに保持されていることを特徴とする付記１〜付記１０のいずれか１つに記載のデータベース同期処理プログラム。
【００７３】
（付記１２）データベースを夫々備えたサーバにより構築されたネットワークコンピューティング環境において、他のサーバにおけるデータベースとの間で同期処理を行うためのデータベース同期処理装置であって、前記他のサーバにおいて収集された、データベースにおける更新前後の状態を特定可能な更新情報を参照し、その更新情報に応じてデータベースを更新すると、データベース間に論理的な矛盾が発生するか否かを判定する判定手段と、前記判定手段により矛盾が発生しないと判定されたときに、前記更新情報に応じてデータベースを更新する更新手段と、を含んで構成されたことを特徴とするデータベース同期処理装置。
【００７４】
（付記１３）データベースを夫々備えたサーバにより構築されたネットワークコンピューティング環境において、他のサーバにおけるデータベースとの間で同期処理を行うためのデータベース同期処理方法であって、前記他のサーバにおいて収集された、データベースにおける更新前後の状態を特定可能な更新情報を参照し、その更新情報に応じてデータベースを更新すると、データベース間に論理的な矛盾が発生するか否かを判定する判定ステップと、前記判定ステップにより矛盾が発生しないと判定されたときに、前記更新情報に応じてデータベースを更新する更新ステップと、をサーバが実行することを特徴とするデータベース同期処理方法。
【００７５】
（付記１４）データベースを夫々備えたサーバにより構築されたネットワークコンピューティング環境において、他のサーバにおけるデータベースとの間で同期処理を行うためのデータベース同期処理プログラムを記録したコンピュータ読取可能な記録媒体であって、前記他のサーバにおいて収集された、データベースにおける更新前後の状態を特定可能な更新情報を参照し、その更新情報に応じてデータベースを更新すると、データベース間に論理的な矛盾が発生するか否かを判定する判定ステップと、前記判定ステップにより矛盾が発生しないと判定されたときに、前記更新情報に応じてデータベースを更新する更新ステップと、をサーバに実現させるためのデータベース同期処理プログラムを記録したコンピュータ読取可能な記録媒体。
【図面の簡単な説明】
【００７６】
【図１】本発明を具現化したデータベース同期処理装置の機能概要図
【図２】更新情報収集部により実行される処理を示すフローチャート
【図３】更新情報データの説明図
【図４】更新情報反映部により実行される処理を示すフローチャート
【図５】更新情報反映部により実行される処理を示すフローチャート
【符号の説明】
【００７７】
１０    サーバ
１０Ａ    業務アプリケーション
１０Ｂ    データベース
１０Ｃ    更新情報収集部
１０Ｄ    更新情報反映部
１０Ｅ    エラーログ
２０    サーバ
２０Ａ    業務アプリケーション
２０Ｂ    データベース
２０Ｃ    更新情報収集部
２０Ｄ    更新情報反映部
２０Ｅ    エラーログ
３０    更新情報データ
【図１】
2008009809.tif 000003
【図２】
2008009809.tif 000004
【図３】
2008009809.tif 000005
【図４】
2008009809.tif 000006
【図５】
2008009809.tif 000007