(57)【要約】【課題】  通信負荷を高くすることなく、基幹サーバ内のマスタテーブルと、部門サーバ内のレプリカテーブルとの整合性を保つ。【解決手段】 基幹サーバ100は、自サーバ内のマスタテーブル上のレコードを更新する場合、レプリカテーブル上の該当するレコードに対するロック要求を更新ロック管理装置300へ送信し、その後、ロック成功が通知されるまで待ち状態になる。部門サーバ200-1は、自サーバ内のレプリカテーブル上のレコードを更新する際、マスタテーブル上の該当するレコードに対するロック要求を更新ロック管理装置300へ送信し、その後、ロック成功が通知されるまで待ち状態になる。更新ロック管理装置300は、ロック要求されたレコードが既にロックされている場合は、ロック要求を内部に保持しておき、上記レコードのロックが解除されるのを待って上記ロック要求の要求元にロック成功を通知する。【選択図】      図１
2006164097.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタテーブルが格納された基幹側データベース記憶部を有する基幹サーバと、前記基幹側データベース記憶部に格納されている複数のマスタテーブルの内の少なくとも１つがレプリカテーブルとして格納された部門側データベース記憶部を有する複数の部門サーバと、更新ロック管理装置とを含むレプリケーション制御システムであって、
前記基幹サーバが、
自サーバ内のマスタテーブルであって、且つそのレプリカテーブルが部門サーバ内に存在するマスタテーブルに対する更新要求が発生したとき、前記更新ロック管理装置に対して前記レプリカテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に対するロック成功が前記更新ロック管理装置から通知された後、前記更新要求に従って前記マスタテーブルを更新すると共に更新内容を示す更新履歴情報を前記レプリカテーブルを保持している部門サーバに送信し、部門サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って自サーバ内のマスタテーブルを更新すると共に前記更新ロック装置に対して更新が完了したマスタテーブル上のレコードについてのロック解除要求を送信する構成を有し、
前記各部門サーバが、
自サーバ内のレプリカテーブルに対する更新要求が発生したとき、前記更新ロック管理装置に対して前記レプリカテーブルに対応するマスタテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に対するロック成功が前記更新ロック管理装置から通知された後、前記更新要求に従って前記レプリカテーブルを更新すると共に更新内容を示す更新履歴情報を前記基幹サーバに送信し、基幹サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って自サーバ内のレプリカテーブルを更新すると共に前記更新ロック装置に対して更新が完了したレプリカテーブル上のレコードについてのロック解除要求を送信する構成を有し、
前記更新ロック管理装置が、
ロック要求が送られてきたとき、ロック要求されたレコードがロック状態でない場合には、要求元にロック成功を通知し、ロック状態の場合には、前記ロック要求をロック要求保持部に格納し、ロック解除要求が送られてきたとき、前記ロック要求保持部に格納されているロック要求の中から前記ロック解除要求が解除対象にしているレコードについてのロック要求を選択し、その要求元に対してロック成功を通知する構成を有することを特徴とするレプリケーション制御システム。
【請求項２】
複数のマスタテーブルが格納された基幹側データベース記憶部を有する基幹サーバと、前記基幹側データベース記憶部に格納されている前記複数のマスタテーブルの内の少なくとも１つがレプリカテーブルとして格納された部門側データベース記憶部を有する複数の部門サーバと、更新ロック管理装置とを含むレプリケーション制御システムであって、
前記基幹サーバが、
前記基幹側データベース記憶部に格納されているマスタテーブルであって、且つそのレプリカテーブルが部門サーバに存在するマスタテーブルに対する更新要求があったとき、前記更新ロック管理装置に対して前記レプリカテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記マスタテーブルを更新する基幹側更新手段と、
該基幹側更新手段が行った更新内容を示す更新履歴情報を、前記レプリカテーブルが存在する部門サーバへ送信する基幹側更新履歴情報送信手段と、
部門サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記部門サーバで行われた更新内容を前記基幹側データベース記憶部に格納されている該当するマスタテーブルに反映させる基幹側更新履歴情報反映手段と、
該基幹側更新履歴情報反映手段によって部門サーバにおける更新内容を反映させたマスタテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する基幹側更新ロック解除手段とを備え、
前記各部門サーバが、
自サーバ内の部門側データベース記憶部に格納されているレプリカテーブルに対する更新要求があったとき、前記更新ロック管理装置に対して、前記レプリカテーブルに対応するマスタテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記レプリカテーブルを更新する部門側更新手段と、
該部門側更新手段が行った更新内容を示す更新履歴情報を前記基幹サーバへ送信する部門側更新履歴情報送信手段と、
前記基幹サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記基幹サーバで行われた更新内容を前記部門側データベース記憶部に格納されている該当するレプリカテーブルに反映させる部門側更新履歴情報反映手段と、
該部門側更新履歴情報反映手段によって基幹サーバにおける更新内容を反映させたレプリカテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する部門側更新ロック解除手段とを備え、
前記更新ロック管理装置が、
ロック状態にあるレコードを特定するロック情報が格納されたロック情報記憶部と、
ロック要求が格納されるロック要求保持部と、
ロック要求が送られてきたとき、前記ロック情報記憶部の内容に基づいてロック要求されたレコードがロックされていないと判断した場合は、要求元にロック成功を通知すると共に前記ロック情報記憶部にロック情報を格納し、ロック要求されたレコードが既にロックされていると判断した場合は、前記ロック要求保持部に前記ロック要求を格納し、ロック解除要求が送られてきたとき、前記ロック要求保持部に格納されているロック要求の中から前記ロック解除要求が解除対象にしているレコードについてのロック要求を選択し、その要求元に対してロック成功を通知する更新ロック制御手段とを備えたことを特徴とするレプリケーション制御システム。
【請求項３】
請求項２記載のレプリケーション制御システムにおいて、
前記基幹サーバが、
基幹側更新履歴情報記憶部と、
前記基幹側更新手段が行った更新内容を前記基幹側更新履歴情報記憶部に格納する基幹側更新履歴情報蓄積手段とを備え、且つ、
前記基幹側更新履歴情報送信手段が、静止点確立時に、前記基幹側更新履歴情報記憶部に格納されている更新履歴情報を該当する部門サーバへ送信する構成を有し、
前記各部門サーバが、
部門側更新履歴情報記憶部と、
前記部門側更新手段が行った更新内容を前記部門側更新履歴情報記憶部に格納する部門側更新履歴情報蓄積手段とを備え、且つ、
前記部門側更新履歴情報送信手段が、静止点確立時に、前記部門側更新履歴情報記憶部に格納されている更新履歴情報を前記基幹サーバへ送信する構成を有することを特徴とするレプリケーション制御システム。
【請求項４】
複数のマスタテーブルが格納された基幹側データベース記憶部と、
前記基幹側データベース記憶部に格納されているマスタテーブルであって、且つそのレプリカテーブルが部門サーバに存在するマスタテーブルに対する更新要求があったとき、更新ロック管理装置に対して前記レプリカテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記マスタテーブルを更新する基幹側更新手段と、
基幹側更新履歴情報記憶部と、
前記基幹側更新手段が行った更新内容を前記基幹側更新履歴情報記憶部に格納する基幹側更新履歴情報蓄積手段と、
静止点確立時に、前記基幹側更新履歴情報記憶部に格納されている更新履歴情報を該当する部門サーバへ送信する基幹側更新履歴情報送信手段と、
部門サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記部門サーバで行われた更新内容を前記基幹側データベース記憶部に格納されている該当するマスタテーブルに反映させる基幹側更新履歴情報反映手段と、
該基幹側更新履歴情報反映手段によって部門サーバにおける更新内容を反映させたマスタテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する基幹側更新ロック解除手段とを備えたことを特徴とする基幹サーバ。
【請求項５】
基幹サーバ内の基幹側データベースに格納されている複数のマスタテーブルの内の、少なくとも１つがレプリカテーブルとして格納された部門側データベース記憶部と、
自サーバ内の部門側データベース記憶部に格納されているレプリカテーブルに対する更新要求があったとき、更新ロック管理装置に対して前記レプリカテーブルに対応するマスタテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記レプリカテーブルを更新する部門側更新手段と、
部門側更新履歴情報記憶部と、
前記部門側更新手段が行った更新内容を前記部門側更新履歴情報記憶部に格納する部門側更新履歴情報蓄積手段と、
静止点確立時に、前記部門側更新履歴情報記憶部に格納されている更新履歴情報を前記基幹サーバへ送信する部門側更新履歴情報送信手段と、
前記基幹サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記基幹サーバで行われた更新内容を前記部門側データベース記憶部に格納されている該当するレプリカテーブルに反映させる部門側更新履歴情報反映手段と、
該部門側更新履歴情報反映手段によって基幹サーバにおける更新内容を反映させたレプリカテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する部門側更新ロック解除手段とを備えたことを特徴とする部門サーバ。
【請求項６】
ロック状態にあるレコードを特定するロック情報が格納されたロック情報記憶部と、
ロック要求が格納されるロック要求保持部と、
ロック要求が送られてきたとき、前記ロック情報記憶部の内容に基づいてロック要求されたレコードがロックされていないと判断した場合は、要求元にロック成功を通知すると共に前記ロック情報記憶部にロック情報を格納し、ロック要求されたレコードがロックされていると判断した場合は、前記ロック要求保持部に前記ロック要求を格納し、ロック解除要求が送られてきたとき、前記ロック要求保持部に格納されているロック要求の中から、前記ロック解除要求が解除対象にしているレコードについてのロック要求を選択し、その要求元に対してロック成功を通知する更新ロック制御手段とを備えたことを特徴とする更新ロック管理装置。
【請求項７】
複数のマスタテーブルが格納された基幹側データベース記憶部と、基幹側更新履歴情報記憶部とを備えたコンピュータを、
前記基幹側データベース記憶部に格納されているマスタテーブルであって、且つそのレプリカテーブルが部門サーバに存在するマスタテーブルに対する更新要求があったとき、更新ロック管理装置に対して前記レプリカテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記マスタテーブルを更新する基幹側更新手段、
該基幹側更新手段が行った更新内容を前記基幹側更新履歴情報記憶部に格納する基幹側更新履歴情報蓄積手段、
静止点確立時に、前記基幹側更新履歴情報記憶部に格納されている更新履歴情報を該当する部門サーバへ送信する基幹側更新履歴情報送信手段、
部門サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記部門サーバで行われた更新内容を前記基幹側データベース記憶部に格納されている該当するマスタテーブルに反映させる基幹側更新履歴情報反映手段、
該基幹側更新履歴情報反映手段によって部門サーバにおける更新内容を反映させたマスタテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する基幹側更新ロック解除手段として機能させるためのプログラム。
【請求項８】
基幹サーバ内の基幹側データベース記憶部に格納されている複数のマスタテーブルの内の、少なくとも１つがレプリカテーブルとして格納された部門側データベース記憶部と、部門側更新履歴情報記憶部とを備えたコンピュータを、
自サーバ内の部門側データベース記憶部に格納されているレプリカテーブルに対する更新要求があったとき、更新ロック管理装置に対して前記レプリカテーブルに対応するマスタテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記レプリカテーブルを更新する部門側更新手段、
前記部門側更新手段が行った更新内容を前記部門側更新履歴情報記憶部に格納する部門側更新履歴情報蓄積手段、
静止点確立時に、前記部門側更新履歴情報記憶部に格納されている更新履歴情報を前記基幹サーバへ送信する部門側更新履歴情報送信手段、
前記基幹サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記基幹サーバで行われた更新内容を前記部門側データベース記憶部に格納されている該当するレプリカテーブルに反映させる部門側更新履歴情報反映手段、
該部門側更新履歴情報反映手段によって基幹サーバにおける更新内容を反映させたレプリカテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する部門側更新ロック解除手段として機能させるためのプログラム。
【請求項９】
ロック状態にあるレコードを特定するロック情報が格納されたロック情報記憶部と、ロック要求が格納されるロック要求保持部とを備えたコンピュータを、
ロック要求が送られてきたとき、前記ロック情報記憶部の内容に基づいてロック要求されたレコードがロックされていないと判断した場合は、要求元にロック成功を通知すると共に前記ロック情報記憶部にロック情報を格納し、ロック要求されたレコードがロックされていると判断した場合は、前記ロック要求保持部に前記ロック要求を格納し、ロック解除要求が送られてきたとき、前記ロック要求保持部に格納されているロック要求の中から、前記ロック解除要求が解除対象にしているレコードについてのロック要求を選択し、その要求元に対してロック成功を通知する更新ロック制御手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタテーブルが格納されたデータベース記憶部を有する基幹サーバと、マスタテーブルのレプリカテーブルが格納されたデータベース記憶部を有する部門サーバとが存在するデータベースシステムに関し、特に、マスタテーブルとレプリカテーブルとの整合性を保つ技術に関する。
【背景技術】
【０００２】
従来から複数のマスタテーブルが格納された基幹側データベース記憶部を有する基幹サーバと、マスタテーブルのレプリカテーブルが格納された部門側データベース記憶部を有する複数の部門サーバとを含むレプリケーション制御システムが知られている（例えば、特許文献１参照）。この特許文献１に記載されている従来の技術は、各部門サーバにおいて行われたレプリカテーブルに対する更新内容を基幹サーバが収集し、この収集した更新内容をマスタテーブルに反映することにより、マスタテーブルとレプリカテーブルとの整合性を保つようにしている。
【０００３】
また、マスタテーブルとレプリカテーブルとの整合性を保つための従来の技術としては、次のような技術も知られている（例えば、特許文献２参照）。この特許文献２に記載されている従来の技術では、マスタテーブル上のレコード，レプリカテーブル上のレコードのロック状態を管理するロック表を備えたロック表管理手段を利用することにより、マスタテーブルとレプリカテーブルとの整合性を保つようにしている。
【０００４】
例えば、基幹サーバは、自サーバ内のマスタテーブル上のレコードを更新する場合、ロック表管理手段に対してロック要求を送る。ロック表管理手段では、ロック表を参照することにより、更新要求されたレコードがロック状態にあるか否かを判定し、ロック状態でなければロック成功を返し、ロック状態であればロック失敗を返す。
【０００５】
基幹サーバは、ロック成功が返却された場合は、マスタテーブルを更新後、ロック表管理手段に対して更新内容を含む複製要求を送る。これにより、ロック表管理手段は、部門サーバ内のレプリカテーブルの該当レコードに、更新内容を複製する。これに対して、ロック失敗が返却された場合は、基幹サーバは、再度、ロック表管理手段に対してロック要求を送信する。このロック要求の送信処理は、ロック成功が返却されるまで、何回も行われる。尚、部門サーバが、自サーバ内のレプリカテーブルを更新する場合にも、同様の処理が行われる。
【特許文献１】特開２０００−２０３７４号公報
【特許文献２】特開２００１−１０９６５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されている従来の技術は、部門サーバ側だけがテーブルの更新処理を行う場合は、マスタテーブルとレプリカテーブルとの整合性を保つことができるが、基幹サーバ，部門サーバの両方がテーブルに対する更新処理を行う場合は、マスタテーブルとレプリカテーブルとの整合性を保つことができなくなってしまう。
【０００７】
特許文献２に記載されている従来の技術によれば、基幹サーバ，部門サーバの両方がテーブルの更新処理を行う場合であっても、マスタテーブルとレプリカテーブルとの整合性を保つことができる。しかし、特許文献２に記載されている従来の技術は、ロック要求されたレコードが既にロック状態にある場合には、要求元のサーバに、ロック失敗を返している。このため、要求元のサーバは、ロック成功が返されるまで、何回もロック要求を送信しなければならず、通信負荷が高くなるという問題がある。
【０００８】
〔発明の目的〕
そこで、本発明の目的は、通信負荷を高くすることなく、マスタテーブルとレプリカテーブルの整合性を保てるようにすることにある。
【課題を解決するための手段】
【０００９】
本発明にかかる第１のレプリケーション制御システムは、
複数のマスタテーブルが格納された基幹側データベース記憶部を有する基幹サーバと、前記基幹側データベース記憶部に格納されている複数のマスタテーブルの内の少なくとも１つがレプリカテーブルとして格納された部門側データベース記憶部を有する複数の部門サーバと、更新ロック管理装置とを含むレプリケーション制御システムであって、
前記基幹サーバが、
自サーバ内のマスタテーブルであって、且つそのレプリカテーブルが部門サーバ内に存在するマスタテーブルに対する更新要求が発生したとき、前記更新ロック管理装置に対して前記レプリカテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に対するロック成功が前記更新ロック管理装置から通知された後、前記更新要求に従って前記マスタテーブルを更新すると共に更新内容を示す更新履歴情報を前記レプリカテーブルを保持している部門サーバに送信し、部門サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って自サーバ内のマスタテーブルを更新すると共に前記更新ロック装置に対して更新が完了したマスタテーブル上のレコードについてのロック解除要求を送信する構成を有し、
前記各部門サーバが、
自サーバ内のレプリカテーブルに対する更新要求が発生したとき、前記更新ロック管理装置に対して前記レプリカテーブルに対応するマスタテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に対するロック成功が前記更新ロック管理装置から通知された後、前記更新要求に従って前記レプリカテーブルを更新すると共に更新内容を示す更新履歴情報を前記基幹サーバに送信し、基幹サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って自サーバ内のレプリカテーブルを更新すると共に前記更新ロック装置に対して更新が完了したレプリカテーブル上のレコードについてのロック解除要求を送信する構成を有し、
前記更新ロック管理装置が、
ロック要求が送られてきたとき、ロック要求されたレコードがロック状態でない場合には、要求元にロック成功を通知し、ロック状態の場合には、前記ロック要求をロック要求保持部に格納し、ロック解除要求が送られてきたとき、前記ロック要求保持部に格納されているロック要求の中から前記ロック解除要求が解除対象にしているレコードについてのロック要求を選択し、その要求元に対してロック成功を通知する構成を有することを特徴とする。
【００１０】
本発明にかかる第２のレプリケーション制御システムは、
複数のマスタテーブルが格納された基幹側データベース記憶部を有する基幹サーバと、前記基幹側データベース記憶部に格納されている前記複数のマスタテーブルの内の少なくとも１つがレプリカテーブルとして格納された部門側データベース記憶部を有する複数の部門サーバと、更新ロック管理装置とを含むレプリケーション制御システムであって、
前記基幹サーバが、
前記基幹側データベース記憶部に格納されているマスタテーブルであって、且つそのレプリカテーブルが部門サーバに存在するマスタテーブルに対する更新要求があったとき、前記更新ロック管理装置に対して前記レプリカテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記マスタテーブルを更新する基幹側更新手段と、
該基幹側更新手段が行った更新内容を示す更新履歴情報を、前記レプリカテーブルが存在する部門サーバへ送信する基幹側更新履歴情報送信手段と、
部門サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記部門サーバで行われた更新内容を前記基幹側データベース記憶部に格納されている該当するマスタテーブルに反映させる基幹側更新履歴情報反映手段と、
該基幹側更新履歴情報反映手段によって部門サーバにおける更新内容を反映させたマスタテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する基幹側更新ロック解除手段とを備え、
前記各部門サーバが、
自サーバ内の部門側データベース記憶部に格納されているレプリカテーブルに対する更新要求があったとき、前記更新ロック管理装置に対して、前記レプリカテーブルに対応するマスタテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記レプリカテーブルを更新する部門側更新手段と、
該部門側更新手段が行った更新内容を示す更新履歴情報を前記基幹サーバへ送信する部門側更新履歴情報送信手段と、
前記基幹サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記基幹サーバで行われた更新内容を前記部門側データベース記憶部に格納されている該当するレプリカテーブルに反映させる部門側更新履歴情報反映手段と、
該部門側更新履歴情報反映手段によって基幹サーバにおける更新内容を反映させたレプリカテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する部門側更新ロック解除手段とを備え、
前記更新ロック管理装置が、
ロック状態にあるレコードを特定するロック情報が格納されたロック情報記憶部と、
ロック要求が格納されるロック要求保持部と、
ロック要求が送られてきたとき、前記ロック情報記憶部の内容に基づいてロック要求されたレコードがロックされていないと判断した場合は、要求元にロック成功を通知すると共に前記ロック情報記憶部にロック情報を格納し、ロック要求されたレコードが既にロックされていると判断した場合は、前記ロック要求保持部に前記ロック要求を格納し、ロック解除要求が送られてきたとき、前記ロック要求保持部に格納されているロック要求の中から前記ロック解除要求が解除対象にしているレコードについてのロック要求を選択し、その要求元に対してロック成功を通知する更新ロック制御手段とを備えたことを特徴とする。
【００１１】
本発明にかかる第３のレプリケーション制御システムは、第２のレプリケーション制御システムにおいて、
前記基幹サーバが、
基幹側更新履歴情報記憶部と、
前記基幹側更新手段が行った更新内容を前記基幹側更新履歴情報記憶部に格納する基幹側更新履歴情報蓄積手段とを備え、且つ、
前記基幹側更新履歴情報送信手段が、静止点確立時に、前記基幹側更新履歴情報記憶部に格納されている更新履歴情報を該当する部門サーバへ送信する構成を有し、
前記各部門サーバが、
部門側更新履歴情報記憶部と、
前記部門側更新手段が行った更新内容を前記部門側更新履歴情報記憶部に格納する部門側更新履歴情報蓄積手段とを備え、且つ、
前記部門側更新履歴情報送信手段が、静止点確立時に、前記部門側更新履歴情報記憶部に格納されている更新履歴情報を前記基幹サーバへ送信する構成を有することを特徴とする。
【００１２】
本発明にかかる基幹サーバは、
複数のマスタテーブルが格納された基幹側データベース記憶部と、
前記基幹側データベース記憶部に格納されているマスタテーブルであって、且つそのレプリカテーブルが部門サーバに存在するマスタテーブルに対する更新要求があったとき、更新ロック管理装置に対して前記レプリカテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記マスタテーブルを更新する基幹側更新手段と、
基幹側更新履歴情報記憶部と、
前記基幹側更新手段が行った更新内容を前記基幹側更新履歴情報記憶部に格納する基幹側更新履歴情報蓄積手段と、
静止点確立時に、前記基幹側更新履歴情報記憶部に格納されている更新履歴情報を該当する部門サーバへ送信する基幹側更新履歴情報送信手段と、
部門サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記部門サーバで行われた更新内容を前記基幹側データベース記憶部に格納されている該当するマスタテーブルに反映させる基幹側更新履歴情報反映手段と、
該基幹側更新履歴情報反映手段によって部門サーバにおける更新内容を反映させたマスタテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する基幹側更新ロック解除手段とを備えたことを特徴とする。
【００１３】
本発明にかかる部門サーバは、
基幹サーバ内の基幹側データベースに格納されている複数のマスタテーブルの内の、少なくとも１つがレプリカテーブルとして格納された部門側データベース記憶部と、
自サーバ内の部門側データベース記憶部に格納されているレプリカテーブルに対する更新要求があったとき、更新ロック管理装置に対して前記レプリカテーブルに対応するマスタテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記レプリカテーブルを更新する部門側更新手段と、
部門側更新履歴情報記憶部と、
前記部門側更新手段が行った更新内容を前記部門側更新履歴情報記憶部に格納する部門側更新履歴情報蓄積手段と、
静止点確立時に、前記部門側更新履歴情報記憶部に格納されている更新履歴情報を前記基幹サーバへ送信する部門側更新履歴情報送信手段と、
前記基幹サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記基幹サーバで行われた更新内容を前記部門側データベース記憶部に格納されている該当するレプリカテーブルに反映させる部門側更新履歴情報反映手段と、
該部門側更新履歴情報反映手段によって基幹サーバにおける更新内容を反映させたレプリカテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する部門側更新ロック解除手段とを備えたことを特徴とする。
【００１４】
本発明にかかる更新ロック管理装置は、
ロック状態にあるレコードを特定するロック情報が格納されたロック情報記憶部と、
ロック要求が格納されるロック要求保持部と、
ロック要求が送られてきたとき、前記ロック情報記憶部の内容に基づいてロック要求されたレコードがロックされていないと判断した場合は、要求元にロック成功を通知すると共に前記ロック情報記憶部にロック情報を格納し、ロック要求されたレコードがロックされていると判断した場合は、前記ロック要求保持部に前記ロック要求を格納し、ロック解除要求が送られてきたとき、前記ロック要求保持部に格納されているロック要求の中から、前記ロック解除要求が解除対象にしているレコードについてのロック要求を選択し、その要求元に対してロック成功を通知する更新ロック制御手段とを備えたことを特徴とする。
【００１５】
本発明にかかる第１のプログラムは、
複数のマスタテーブルが格納された基幹側データベース記憶部と、基幹側更新履歴情報記憶部とを備えたコンピュータを、
前記基幹側データベース記憶部に格納されているマスタテーブルであって、且つそのレプリカテーブルが部門サーバに存在するマスタテーブルに対する更新要求があったとき、更新ロック管理装置に対して前記レプリカテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記マスタテーブルを更新する基幹側更新手段、
該基幹側更新手段が行った更新内容を前記基幹側更新履歴情報記憶部に格納する基幹側更新履歴情報蓄積手段、
静止点確立時に、前記基幹側更新履歴情報記憶部に格納されている更新履歴情報を該当する部門サーバへ送信する基幹側更新履歴情報送信手段、
部門サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記部門サーバで行われた更新内容を前記基幹側データベース記憶部に格納されている該当するマスタテーブルに反映させる基幹側更新履歴情報反映手段、
該基幹側更新履歴情報反映手段によって部門サーバにおける更新内容を反映させたマスタテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する基幹側更新ロック解除手段として機能させる。
【００１６】
本発明にかかる第２のプログラムは、
基幹サーバ内の基幹側データベース記憶部に格納されている複数のマスタテーブルの内の、少なくとも１つがレプリカテーブルとして格納された部門側データベース記憶部と、部門側更新履歴情報記憶部とを備えたコンピュータを、
自サーバ内の部門側データベース記憶部に格納されているレプリカテーブルに対する更新要求があったとき、更新ロック管理装置に対して前記レプリカテーブルに対応するマスタテーブル上の該当するレコードのロックを要求するロック要求を送信して待ち状態となり、該ロック要求に応答して前記更新ロック管理装置からロック成功が通知されたとき、前記更新要求に従って前記レプリカテーブルを更新する部門側更新手段、
前記部門側更新手段が行った更新内容を前記部門側更新履歴情報記憶部に格納する部門側更新履歴情報蓄積手段、
静止点確立時に、前記部門側更新履歴情報記憶部に格納されている更新履歴情報を前記基幹サーバへ送信する部門側更新履歴情報送信手段、
前記基幹サーバから更新履歴情報が送られてきたとき、該更新履歴情報に従って、前記基幹サーバで行われた更新内容を前記部門側データベース記憶部に格納されている該当するレプリカテーブルに反映させる部門側更新履歴情報反映手段、
該部門側更新履歴情報反映手段によって基幹サーバにおける更新内容を反映させたレプリカテーブル及びレコードを特定する反映対象特定情報を含んだロック解除要求を前記更新ロック管理装置へ送信する部門側更新ロック解除手段として機能させる。
【００１７】
本発明にかかる第３のプログラムは、
ロック状態にあるレコードを特定するロック情報が格納されたロック情報記憶部と、ロック要求が格納されるロック要求保持部とを備えたコンピュータを、
ロック要求が送られてきたとき、前記ロック情報記憶部の内容に基づいてロック要求されたレコードがロックされていないと判断した場合は、要求元にロック成功を通知すると共に前記ロック情報記憶部にロック情報を格納し、ロック要求されたレコードがロックされていると判断した場合は、前記ロック要求保持部に前記ロック要求を格納し、ロック解除要求が送られてきたとき、前記ロック要求保持部に格納されているロック要求の中から、前記ロック解除要求が解除対象にしているレコードについてのロック要求を選択し、その要求元に対してロック成功を通知する更新ロック制御手段として機能させる。
【００１８】
〔作用〕
基幹サーバは、自サーバ内のマスタテーブルであって、且つそのレプリカテーブルが部門サーバ内に存在するマスタテーブルに対する更新要求が発生すると、更新ロック管理装置に対してレプリカテーブル上の該当するレコードのロックを要求するロック要求を送信し、ロック成功が通知されるのを待つ。更新ロック管理装置は、ロック要求されたレコードがロック状態でない場合は、要求元の基幹サーバにロック成功を通知し、ロック状態である場合は、ロック要求をロック要求保持部に格納し、上記レコードに対するロック解除通知が送られてくるのを待って、基幹サーバにロック成功を通知する。基幹サーバは、ロック成功が通知されると、更新要求に従ってマスタテーブルを更新し、更新内容を示す更新履歴情報を、上記マスタテーブルのレプリカテーブルを有する部門サーバへ送信する。部門サーバは、更新履歴情報に従って、基幹サーバにおける更新内容を、自サーバ内のレプリカテーブルに反映させ、その後、更新内容を反映させたレコードについてのロック解除要求を更新ロック管理装置へ送信する。更新ロック管理装置は、ロック要求保持部内に、上記レコードのロック解除を待っているロック要求が存在する場合は、その要求元のロック成功を通知する。
【００１９】
一方、部門サーバは、自サーバ内のレプリカテーブルに対する更新要求が発生すると、更新ロック管理装置に対してロック要求を送り、ロック成功が通知されるのを待つ。更新ロック管理装置は、ロック要求されたレコードがロック状態でない場合は、要求元の部門サーバにロック成功を通知し、ロック状態である場合は、ロック要求をロック要求保持部に格納し、上記レコードに対するロック解除通知が送られてくるのを待って、上記部門サーバにロック成功を通知する。部門サーバは、ロック成功が通知されると、更新要求に従ってレプリカテーブルを更新し、更新内容を示す更新履歴情報を、基幹サーバへ送信する。基幹サーバは、更新履歴情報に従って、部門サーバにおける更新内容を、自サーバ内のマスタテーブルに反映させ、その後、更新内容を反映させたレコードについてのロック解除要求を更新ロック管理装置へ送信する。更新ロック管理装置は、ロック要求保持部内に、上記レコードのロック解除を待っているロック要求が存在する場合は、その要求元にロック成功を通知する。
【発明の効果】
【００２０】
本発明によれば、通信負荷を高くすることなく、マスタテーブルとレプリカテーブルの整合性を保つことが可能になる。その理由は、基幹サーバ，部門サーバからロック要求が送られてきたとき、ロック要求されているレコードが既にロック状態にある場合には、ロック要求をロック要求保持部に格納し、上記レコードに対するロック解除通知が送られてくるのを待って、要求元のサーバにロック成功を通知する更新ロック管理装置を設け、ロック要求元がロック成功が通知されるまで、待ち状態でいられるようにしたからである。つまり、従来の技術のように、ロックに成功するまで、基幹サーバや部門サーバが何回もロック要求を出すことがなくなるからである。
【発明を実施するための最良の形態】
【００２１】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２２】
〔実施の形態の構成の説明〕
図１は本発明にかかるレプリケーション制御システムの実施の形態の全体構成例を示すブロック図である。同図を参照すると、本実施の形態のレプリケーション制御システムは、基幹サーバ１００と、複数台の部門サーバ２００−１〜２００−ｎと、更新管理装置３００とから構成され、それらはネットワーク４００を介して相互に接続されている。
【００２３】
図２は基幹サーバ１００の構成例を示すブロック図であり、データベース記憶部１０１と、レプリケーション定義手段１０２と、レプリケーション定義記憶部１０３と、更新手段１０４と、更新履歴情報作成手段１０５と、更新履歴情報蓄積手段１０６と、更新履歴情報記憶部１０７と、更新履歴情報送信手段１０８と、更新履歴情報反映手段１０９と、更新ロック解除手段１１０と、送受信手段１１１とを備えている。
【００２４】
データベース記憶部１０１には、複数個のマスタテーブルＭＴ１〜ＭＴｊが格納されている。尚、以下の説明では、マスタテーブルＭＴ１〜ＭＴｊの内の何れかを示す場合には、単にマスタテーブルＭＴと記す場合がある。図３は、データベース記憶部１０１の内容例を示す図である。図３の例では、各マスタテーブルＭＴ１，ＭＴ２，ＭＴ３，…のテーブル名は、それぞれ「北海道在庫管理テーブル」，「秋田県在庫管理テーブル」，「岩手県在庫管理テーブル」，…となっており、分割番号は「１」，「２」，「３」，…となっている。
【００２５】
レプリケーション定義手段１０２は、基幹サーバ１００内のレプリケーション定義記憶部１０３にレプリケーション定義情報を格納する機能や、部門サーバ２００−１〜２００−ｎ内のレプリケーション定義記憶部にレプリケーション定義情報を格納する機能を有する。図４は、レプリケーション定義記憶部１０３の内容例を示す図であり、各マスタテーブルＭＴ１，ＭＴ２，…に関するレプリケーション定義情報４１−１，４１−２，…が登録されている。各マスタテーブルＭＴ１，ＭＴ２，…のレプリケーション定義情報４１−１，４１−２，…は、対応するマスタテーブルのテーブル名４０１と、対応するマスタテーブルにおいてレコードを一意に識別するフィールドの情報であるレプリケーションプライマリキー情報４０２（本実施の形態では、製品番号とする）と、基幹サーバ分割情報４０３と、基幹サーバと部門サーバとの両方で更新が必要になるか否かを示す更新有無情報４０４（両サーバで更新が必要な場合には、マスタテーブルと対応するレプリカテーブルが存在する部門サーバを特定するサーバ情報も含まれる）とを含む。基幹サーバ分割情報４０３には、対応するマスタテーブルの分割番号４０５と、対応するマスタテーブルを特定する値／範囲４０６が含まれる。本実施の形態では、値／範囲４０６として、地区コードを設定する。
【００２６】
更新手段１０４は、図示を省略したアプリケーションプログラム（ＡＰ）等からマスタテーブルＭＴに対する更新要求が入力されたとき、更新ロック管理装置３００に対してロック要求を送信する機能や、上記ロック要求に対するロック成功が返却されたとき、更新要求に従ってマスタテーブルＭＴを更新する機能を有する。
【００２７】
更新履歴情報作成手段１０５は、更新手段１０４が行った更新内容を示す更新履歴情報を作成する機能を有する。
【００２８】
更新履歴情報蓄積手段１０６は、更新履歴情報作成手段１０５が作成した更新履歴情報を更新履歴情報記憶部１０７に格納する機能を有する。
【００２９】
更新履歴情報送信手段１０８は、静止点確立時に、更新履歴情報記憶部１０７に格納されている更新履歴情報に基づいて各部門サーバに対する更新履歴通知を作成し、作成した更新履歴通知を該当する部門サーバに送信する機能を有する。尚、各更新履歴通知には、対応する部門サーバへ送信することが必要になる全ての更新履歴情報が含まれている。
【００３０】
更新履歴情報反映手段１０９は、部門サーバから送られてきた更新履歴通知中の各更新履歴情報に基づいて、部門サーバで行われた更新内容を、該当するマスタテーブルＭＴのレコードに反映させる機能を有する。
【００３１】
更新ロック解除手段１１０は、部門サーバにおける更新内容を反映させたレコードについてのロック解除要求を更新ロック管理装置３００へ送信する機能を有する。
【００３２】
送受信手段１１１は、ネットワーク４００を介してデータ等をやり取りする機能を有する。
【００３３】
尚、基幹サーバ１００は、コンピュータによって実現可能なものであり、コンピュータによって実現する場合には、例えば、次のようにする。コンピュータを基幹サーバとして機能させるためのプログラムを記録したディスク，半導体メモリ，その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って、自身の動作を制御することにより、自コンピュータ上に、レプリケーション定義手段１０２，更新手段１０４，更新履歴情報作成手段１０５，更新履歴情報蓄積手段１０６，更新履歴情報送信手段１０８，更新履歴情報反映手段１０９，更新ロック解除手段１１０，送受信手段１１１を実現する。
【００３４】
図５は部門サーバ２００−１の構成例を示すブロック図であり、データベース記憶部２０１と、レプリケーション定義記憶部２０３と、更新手段２０４と、更新履歴情報作成手段２０５と、更新履歴情報蓄積手段２０６と、更新履歴情報記憶部２０７と、更新履歴情報送信手段２０８と、更新履歴情報反映手段２０９と、更新ロック解除手段２１０と、送受信手段２１１とを備えている。尚、他の部門サーバ２００−２〜２００−ｎも同様の構成を有している。
【００３５】
データベース記憶部２０１には、マスタテーブルの複製であるレプリカテーブルＲＴ１〜ＲＴｋが格納されている。図６は、データベース記憶部２０１の内容例を示す図であり、同図に示したレプリカテーブルＲＴ１，ＲＴ２，…は、それぞれ図３に示したマスタテーブルＭＴ２，ＭＴ３，…の複製になっている。また、レプリカテーブルＲＴ１，ＲＴ２，…のテーブル名はそれぞれ「秋田県在庫管理テーブル」，「岩手県在庫管理テーブル」，…となっており、分割番号はそれぞれ「１」，「２」，…となっている。尚、以下の説明では、レプリカテーブルの何れかを示す場合、レプリカテーブルＲＴと記すことがある。
【００３６】
レプリケーション定義情報記憶部２０３には、レプリケーション定義手段１０２によって、部門サーバ２００−１内に存在する各レプリカテーブルＲＴ１，ＲＴ２，…に関するレプリケーション定義情報７１−１，７１−２，…が、図７に示すように格納されている。図７を参照すると、各レプリカテーブルＲＴ１，ＲＴ２，…のレプリケーション定義情報７１−１，７１−２，…は、対応するレプリカテーブルＲＴのテーブル名７０１と、対応するレプリカテーブルＲＴにおいてレコードを一意に識別するフィールドの情報であるレプリケーションプライマリキー情報７０２（本実施の形態では、製品番号とする）と、基幹サーバ分割情報７０３と、部門サーバ分割情報７０４と、部門サーバ２００−１と基幹サーバ１００との両方で更新が必要になるか否かを示す更新有無情報７０５とを含む。尚、本実施の形態では、レプリカテーブルＲＴのテーブル名は、それと対応するマスタテーブルＭＴのテーブル名と同じになっているとする。基幹サーバ分割情報７０３には、対応するレプリカテーブルＲＴの分割番号７０６と、対応するレプリカテーブルＲＴを特定する値／範囲７０７とが含まれる。尚、本実施の形態では、値／範囲７０７として地区コードを設定する。部門サーバ分割情報７０４には、対応するレプリカテーブルＲＴの自部門サーバ２００−１における分割番号７０８と、このレプリカテーブルＲＴ対応するマスタテーブルＭＴの基幹サーバ１００における分割番号７０９とが含まれる。例えば、レプリカテーブルＲＴ１に関するレプリケーション定義情報７１−１の部門サーバ分割情報７０４には、部門サーバにおける分割番号７０８としてレプリカテーブルＲＴ１の分割番号「１」が、基幹サーバにおける分割番号７０９としてマスタテーブルＭＴ２の分割番号「２」が設定される。
【００３７】
更新手段２０４は、図示を省略したアプリケーションプログラム（ＡＰ）等から自サーバ２００−１内のレプリカテーブルＲＴに対する更新要求が入力されたとき、更新ロック管理装置３００に対してロック要求を送信する機能や、上記ロック要求に対するロック成功が返却されたとき、更新要求に従ってレプリカテーブルＲＴを更新する機能を有する。
【００３８】
更新履歴情報作成手段２０５は、更新手段２０４が行った更新内容を示す更新履歴情報を作成する機能を有する。
【００３９】
更新履歴情報蓄積手段２０６は、更新履歴情報作成手段２０５が作成した更新履歴情報を更新履歴情報記憶部２０７に格納する機能を有する。
【００４０】
更新履歴情報送信手段２０８は、静止点確立時に、更新履歴情報記憶部２０７に格納されている全ての更新履歴情報を含んだ更新履歴通知を作成し、作成した更新履歴通知を基幹サーバ１００に送信する機能を有する。
【００４１】
更新履歴情報反映手段２０９は、基幹サーバ１００から送られてきた更新履歴通知中の各更新履歴情報に基づいて、基幹サーバ１００で行われた更新内容を、自サーバ２００−１内のレプリカテーブルＲＴのレコードに反映させる機能を有する。
【００４２】
更新ロック解除手段２１０は、基幹サーバ１００における更新内容を反映させたレコードについてのロック解除要求を更新ロック管理装置３００へ送信する機能を有する。
【００４３】
送受信手段２１１は、ネットワーク４００を介してデータ等をやり取りする機能を有する。
【００４４】
尚、基幹サーバ２００−１は、コンピュータによって実現可能なものであり、コンピュータによって実現する場合には、例えば、次のようにする。コンピュータを基幹サーバとして機能させるためのプログラムを記録したディスク，半導体メモリ，その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って、自身の動作を制御することにより、自コンピュータ上に、更新手段２０４，更新履歴情報作成手段２０５，更新履歴情報蓄積手段２０６，更新履歴情報送信手段２０８，更新履歴情報反映手段２０９，更新ロック解除手段２１０，送受信手段２１１を実現する。
【００４５】
図８は、更新ロック管理装置３００の構成例を示すブロック図であり、送受信手段３０１と、更新ロック制御手段３０２と、ロック要求保持部３０３と、ロック情報記憶部３０４とを備えている。
【００４６】
ロック情報記憶部３０４には、ロック状態にあるレコードを特定するロック情報が格納されている。
【００４７】
送受信手段３０１は、ネットワーク４００を介してデータ等を送受信する機能を有する。
【００４８】
更新ロック制御手段３０２は、次のような機能を有する。
【００４９】
・送受信手段３０１を介してロック要求を受信したとき、ロック情報記憶部３０４の内容に基づいて、ロック要求されたレコードが既にロックされているか否かを判定する機能。
・ロック要求されたレコードがロックされていないと判定した場合は、要求元のサーバにロック成功を通知すると共にロック情報記憶部３０４にロック情報を格納し、ロック要求されたレコードが既にロックされていると判定した場合は、ロック要求保持部３０３にロック要求を格納する機能。
・ロック解除要求が送られてきたとき、ロック要求保持部３０３に格納されているロック要求の中に、上記ロック解除要求が解除対象にしているレコードについてのロック要求が存在する場合には、そのロック要求の要求元に対してロック成功を通知する機能。
【００５０】
尚、更新ロック管理装置３００は、コンピュータによって実現可能なものであり、コンピュータによって実現する場合には、例えば、次のようにする。コンピュータを更新ロック管理装置として機能させるためのプログラムを記録したディスク，半導体メモリなどの記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御し、自コンピュータ上に、送受信手段３０１，更新ロック制御手段３０２を実現する。
【００５１】
〔実施の形態の動作の説明〕
次に、本実施の形態の動作について詳細に説明する。
【００５２】
〔部門サーバにおいてレプリカテーブルが更新された場合の動作〕
先ず、部門サーバ２００−１〜２００−ｎにおいてレプリカテーブルＲＴが更新された場合の動作を、部門サーバ２００−１においてレプリカテーブルＲＴが更新された場合を例に挙げて説明する。
【００５３】
今、例えば、部門サーバ２００−１内の更新手段２０４に、図示を省略したＡＰ等からレプリカテーブルＲＴ１上の製品番号が「０００２」のレコードＲＸに対する更新要求が入力されたとすると、更新手段２０４は、図９のフローチャートに示す処理を行う。ステップＳ９１では、レプリケーション定義記憶部２０３（図７参照）に登録されている、レプリカテーブルＲＴ１のレプリケーション定義情報７１−１中の更新有無情報７０５に基づいて、基幹サーバ，部門サーバの両方で更新が必要であるか否かを判断する。本実施の形態では、前述したように、レプリカテーブルＲＴ１は、マスタテーブルＭＴ２の複製であるので、レプリケーション定義情報７１−１中の更新有無情報７０５は、両サーバでの更新が必要なことを表示している。従って、ステップＳ９１の判断結果はＹＥＳとなるが、もし、ステップＳ９１の判断結果がＮＯとなった場合は、更新手段２０４は、更新要求に従った更新処理を行った後（ステップＳ９２）、処理を終了する。
【００５４】
ステップＳ９１の判断結果がＹＥＳとなると、更新手段２０４は、図１０に示すようなロック要求を作成し、更新ロック管理装置３００へ送信する（ステップＳ９３）。図１０を参照すると、ロック要求には、テーブル名１００１として「秋田県在庫管理テーブル」が、レプリケーションプライマリキー値１００２として製品番号「０００２」が、サーバ情報１００３として「部門サーバ２００−１」が、要求種別１００４として「ロック要求」が設定されている。尚、本実施の形態では、マスタテーブルと、そのレプリカテーブルには、同一のテーブル名を付与しているので、テーブル名１００１とレプリケーションプライマリキー値１００２とによりロック対象にするレコードを特定できるが、もし、両者のテーブル名を同一にすることが保証されていないシステムでは、テーブル名１００１の代わりに、レプリカテーブルに対応するマスタテーブルの分割番号を使用するようにすれば良い。レプリカテーブルに対応するマスタテーブルの分割番号は、部門サーバ分割情報７０４を参照することにより求めることができる。
【００５５】
ステップＳ９３において、ロック要求を更新ロック管理装置３００へ送信すると、更新手段２０４は、ロック成功通知の受信待ち状態となる（ステップＳ９４）。
【００５６】
一方、更新ロック管理装置３００内の更新ロック制御手段３０２は、部門サーバ２００−１から図１０に示すロック要求が送られてくると、ロック情報記憶部３０４を参照することにより、ロック要求されたレコードがロック状態であるか否かを調べる（図１１のステップＳ１１１）。尚、ロック情報記憶部３０４には、ロック状態のレコードを特定するためのロック情報として、そのレコードが存在するテーブルのテーブル名と、レプリケーションプライマリキー値と、要求元のサーバを特定するためのサーバ情報とが格納されている。即ち、ステップＳ１１１では、ロック要求に含まれているテーブル名「秋田県在庫管理テーブル」，レプリケーションプライマリキー値「０００２」と同じテーブル名，レプリケーションプライマリキー値を含むロック情報がロック情報記憶部３０４に登録されているか否かを調べることにより、ロック要求されたレコードが既にロック状態にあるか否かを調べる。
【００５７】
そして、ロック状態でないと判断した場合（ステップＳ１１２がＮＯ）は、ロック情報記憶部３０４に、テーブル名「秋田県在庫管理テーブル」，レプリケーションプライマリキー値「０００２」，サーバ情報「部門サーバ２００−１」としたロック情報を登録することにより該当するレコードをロック状態にし、その後、ロック要求元の部門サーバ２００−１にロック成功通知（ロック番号を含む）を送信する（ステップＳ１１３，Ｓ１１４）。これに対して、ロック状態であると判断した場合（ステップＳ１１２がＹＥＳ）は、部門サーバ２００−１から送られてきたロック要求をロック要求保持部３０３に登録した後（ステップＳ１１５）、その処理を終了する。
【００５８】
今、例えば、ステップＳ１１２の判断結果がＮＯとなり、部門サーバ２００−１へロック成功が通知されたとすると、部門サーバ２００−１内の更新手段２０４は、更新要求に従ってレプリカテーブルＲＴ１上の製品番号が「０００２」のレコードを更新する（ステップＳ９５）。
【００５９】
更新手段２０４による更新処理が完了すると、更新履歴情報作成手段２０５が、今回行った更新内容を示す更新履歴情報を作成する（ステップＳ９６）。図１２に更新履歴情報の一例を示す。同図に示すように、更新履歴情報には、更新したテーブルのテーブル名１２０１と、更新処理が追加なのか変更なのか削除なのかを示す更新タイプ１２０２と、更新したレコードを一意に識別するためのレプリケーションプライマリキー値１２０３と、更新ロック管理装置３００からのロック成功通知に含まれていたロック番号１２０４と、自サーバ２００−１を特定するためのサーバ情報１２０５と、更新前のレコードフォーマットを示す更新前情報１２０６と、更新後のレコードフォーマットを示す更新後情報１２０７とが含まれる。更新前情報１２０６と更新後情報１２０７とは、更新タイプ１２０２によって異なり、追加の場合は、更新後情報１２０７のみであり、削除の場合は、更新前情報１２０６のみである。両情報１２０６，１２０７が設定されるのは、変更の場合のみである。尚、マスタテーブルと、そのレプリカテーブルとのテーブル名が同一であることが保証されていないシステムでは、テーブル名１２０１の代わりに、レプリカテーブルに対応するマスタテーブルの分割番号を使用すれば良い。
【００６０】
その後、更新履歴情報蓄積手段２０６が更新履歴情報を更新履歴情報記憶部２０７に蓄積する（ステップＳ９７）。
【００６１】
上記のような形態で、部門サーバ２００−１内のレプリカテーブルが更新され、基幹サーバ１００内のマスタテーブルＭＴと内容が異なってきた場合、両者の内容を同一にすることが必要になる。このため、本実施の形態では、次のような処理を行っている。
【００６２】
部門サーバ２００−１内の更新履歴情報送信手段２０８は、図１３のフローチャートに示すように、自サーバで静止点が確立されると（ステップＳ１３１がＹＥＳ）、更新履歴情報記憶部２０７に格納されている全ての更新履歴情報を含んだ更新履歴通知を作成し、それを基幹サーバ１００へ送信する（ステップＳ１３２，Ｓ１３３）。
【００６３】
基幹サーバ１００内の更新履歴情報反映手段１０９は、部門サーバ２００−１からの更新履歴通知を受信すると、図１４のフローチャートに示すように、更新履歴通知に含まれている更新履歴情報の１つに注目する（ステップＳ１４１）。そして、注目した更新履歴情報に従ってマスタテーブルＭＴを更新する（ステップＳ１４３）。例えば、注目した更新履歴情報中のテーブル名１２０１が「秋田県在庫管理テーブル」で、レプリカプライマリキー値１２０３が「０００２」であったとすると、マスタテーブルＭＴ２の製品番号が「０００２」になっているレコードを更新する（図３参照）。
【００６４】
その後、更新履歴情報反映手段１０９は、現在注目している更新履歴情報中のテーブル名，レプリケーションプライマリキー値およびロック番号を更新ロック解除手段１１０に渡し、ロック解除要求の送信を指示する（ステップＳ１４４）。これにより、更新ロック解除手段１１０は、図１５に示すようなロック解除要求を作成し、更新ロック管理装置３００へ送信する。同図を参照すると、ロック解除要求には、ロック解除するレコードが存在しているテーブルのテーブル名１５０１と、上記テーブルにおいてレコードを一意に識別するためのレプリケーションプライマリキー値１５０２と、ロック番号１５０３と、要求種別（この場合は、ロック解除要求）１５０４とが含まれている。
【００６５】
更新履歴情報反映手段１０９は、更新履歴通知に含まれている全ての更新履歴情報を処理すると（ステップＳ１４２がＹＥＳ）、その処理を終了する。
【００６６】
更新ロック管理装置３００内の更新ロック制御手段３０２は、基幹サーバ１００からのロック解除要求を受信すると、図１６のフローチャートに示すように、ロック情報記憶部３０４に格納されているロック情報の内、上記ロック解除要求に含まれているテーブル名，レプリケーションプライマリキー値と同一のテーブル名，レプリケーションプライマリキー値を含むロック情報を削除する（ステップＳ１６１）。その後、更新ロック制御手段３０２は、ロック要求保持部３０３にロック要求が登録されているか否かを調べる（ステップＳ１６２）。
【００６７】
そして、登録されていないと判断した場合（ステップＳ１６２がＮＯ）は、その処理を終了する。これに対して、登録されていると判断した場合（ステップＳ１６２がＹＥＳ）は、ロック解除要求中のテーブル名，レプリケーションプライマリキー値と同一のテーブル名，レプリケーションプライマリキー値が設定されているロック要求をロック要求保持部３０３から取り出す（ステップＳ１６３）。尚、ロック解除要求中のテーブル名，レプリケーションプライマリキー値と同一のテーブル名，レプリケーションプライマリキー値が設定されているロック要求が、ロック要求保持部３０３に複数個格納されている場合には、格納順が最も古いロック要求を１つ取り出す。
【００６８】
更新ロック制御手段３０２は、ロック要求保持部３０３からロック要求を取り出すと、それに含まれているテーブル名，レプリケーションプライマリキー値およびサーバ情報と同一のテーブル名，レプリケーションプライマリキー値およびサーバ情報を含むロック情報を作成し、それをロック情報記憶部３０４に登録する（ステップＳ１６４）。これにより、上記ロック要求によってロックが要求されていたレコードがロック状態となる。その後、更新ロック制御手段３０２は、取り出したロック要求中のサーバ情報によって特定されるサーバに対して、ロック番号を含むロック成功通知を送信する（ステップＳ１６５）。
【００６９】
〔基幹サーバにおいてマスタテーブルが更新された場合の動作〕
次に、基幹サーバ１００においてマスタテーブルＭＴが更新された場合の動作を、マスタテーブルＭＴ３が更新された場合を例にとって説明する。
【００７０】
今、例えば、基幹サーバ１００内の更新手段１０４に、図示を省略したＡＰ等からマスタテーブルＭＴ３上の製品番号が「０００１」のレコードＲＹに対する更新要求が入力されたとすると、更新手段１０４は、図９のフローチャートに示す処理を行う。ステップＳ９１では、レプリケーション定義記憶部１０３（図４参照）に登録されている、マスタテーブルＭＴ３のレプリケーション定義情報４１−１中の更新有無情報４０４に基づいて、基幹サーバ，部門サーバの両方で更新が必要であるか否かを判断する。本実施の形態では、前述したように、マスタテーブルＭＴ３のレプリカテーブルＲＴ２が部門サーバ２００−１内に存在するので、更新有無情報４０４は、両サーバで更新が必要なことを示している。また、更新有無情報４０４には、レプリカテーブルＲＴ２が存在する部門サーバ２００−１を特定するサーバ情報も含まれている。
【００７１】
従って、ステップＳ９１の判断結果がＹＥＳとなるので、更新手段１０４は、図１７に示すようなロック要求を作成し、更新ロック管理装置３００へ送信する（ステップＳ９３）。図１７を参照すると、このロック要求には、テーブル名１７０１，レプリケーションプライマリキー値１７０２，サーバ情報１７０３，要求種別１７０４としてそれぞれ「岩手県在庫管理テーブル」，「０００１」，「基幹サーバ１００」，「ロック要求」が含まれている。その後、更新手段１０４は、ロック成功通知の受信待ち状態となる（ステップＳ９４）。
【００７２】
更新ロック管理装置３００内の更新ロック制御手段３０２は、図１７に示すロック要求を受信すると、前述した図１１のフローチャートの処理を行う。今、例えば、ステップＳ１１２の判断結果がＮＯとなったとすると、更新ロック制御手段３０２は、ロック要求元の基幹サーバ１００に対してロック成功通知を送信する（ステップＳ１１４）。
【００７３】
基幹サーバ１００内の更新手段１０４は、ロック成功通知を受信すると、更新要求に従ってマスタテーブルＭＴ３上の製品番号が「０００１」のレコードを更新する（図９のステップＳ９５）。更新手段１０４による更新処理が完了すると、更新履歴情報作成手段１０５が、今回行った更新内容を示す更新履歴情報を作成し、更新履歴情報蓄積手段２０６が更新履歴情報を更新履歴情報記憶部２０７に蓄積する（ステップＳ９６，Ｓ９７）。
【００７４】
上記のような形態で、基幹サーバ１００内の、マスタテーブルが更新され、部門サーバ２００−１〜２００−ｎ内のレプリカテーブルと内容が異なってきた場合、両者の内容を同一にすることが必要になる。このため、本実施の形態では、次のような処理を行っている。
【００７５】
基幹サーバ１００内の更新履歴情報送信手段１０８は、図１８のフローチャートに示すように、自サーバで静止点が確立されると（ステップＳ１８１がＹＥＳ）、更新履歴情報記憶部１０７に登録されている更新履歴情報に基づいて、各部門サーバに対する更新履歴通知を作成する（ステップＳ１８２）。その後、作成した各更新履歴通知を該当する部門サーバに送信する（ステップＳ１８３）。ここで、ステップＳ１８２の処理の一例を詳しく説明すると、次のようになる。更新履歴情報記憶部１０７に格納されている更新履歴情報の１つに注目し、それに含まれているテーブル名と同一のテーブル名を有するレプリケーション定義情報４１−ｉをレプリケーション定義記憶部１０３から検索する。その後、検索したレプリケーション定義情報４１−ｉ中の更新有無情報４０４に設定されているサーバ情報を抽出し、この抽出したサーバ情報によって特定される部門サーバに対応するリストに、現在注目している更新情報をつなぐ。その後、更新履歴情報記憶部１０７に格納されている次の更新履歴情報に注目し、同様の処理を行う。全ての更新履歴情報についての処理が完了すると、各リスト毎に、それにつながれている更新履歴情報を含んだ更新履歴情報を作成する。これがステップＳ１８２で行う処理の詳細である。
【００７６】
各部門サーバ２００−１〜２００−ｎ内の更新履歴情報反映手段２０９は、基幹サーバ１００から更新履歴通知が送られてくると、図１４のフローチャートに示す処理を行い、基幹サーバ１００で行われた、マスタテーブルＭＴに対する更新内容を自サーバ内の該当するレプリカテーブルに反映させると共に、ロック解除要求を更新ロック管理装置３００へ送信する（ステップＳ１４１〜Ｓ１４４）。
【００７７】
更新ロック管理装置３００内の更新ロック制御手段３０２は、各部門サーバ２００−１〜２００−ｎからのロック解除要求を受信すると、前述した図１６のフローチャートに示す処理を行う。
【００７８】
〔実施の形態の効果〕
本実施の形態によれば、通信負荷を高くすることなく、基幹サーバ１００上のマスタテーブルと部門サーバ２００−１〜２００−ｎ上のレプリカテーブルの整合性を保つことが可能になる。その理由は、基幹サーバ１００，部門サーバ２００−１〜２００−ｎからロック要求が送られてきたとき、ロック要求されているレコードが既にロック状態にある場合には、ロック要求をロック要求保持部３０３に格納し、上記レコードに対するロック解除通知が送られてくるのを待って、要求元のサーバにロック成功を通知する更新ロック管理装置３００を設け、ロック要求元がロック成功が通知されるまで、待ち状態でいられるようにしたからである。つまり、従来の技術のように、ロックに成功するまで、基幹サーバや部門サーバが何回もロック要求を出すことがなくなるからである。
【００７９】
また、本実施の形態によれば、通信負荷を更に少なくすることが可能になる。その理由は、各サーバにおいて、更新履歴情報を更新履歴情報記憶部１０７，２０７に格納しておき、自サーバで静止点が確立したとき、更新履歴情報記憶部１０７，２０７に格納されている更新履歴情報をまとめて送信するようにしたからである。  
【図面の簡単な説明】
【００８０】
【図１】本発明にかかるレプリケーション制御システムの実施の形態の全体構成例を示すブロック図である。
【図２】基幹サーバ１００の構成例を示すブロック図ある。
【図３】データベース記憶部１０１の内容例を示す図である。
【図４】レプリケーション定義記憶部１０３の内容例を示す図である。
【図５】部門サーバ２００−１の構成例を示すブロック図ある。
【図６】データベース記憶部２０１の内容例を示す図である。
【図７】レプリケーション定義記憶部２０３の内容例を示す図である。
【図８】更新ロック管理装置３００の構成例を示すブロック図である。
【図９】更新手段１０４，２０４の処理例を示すフローチャートである。
【図１０】ロック要求の一例を示す図である。
【図１１】ロック要求受信時の更新ロック管理装置３００の処理例を示すフローチャートである。
【図１２】更新履歴情報の一例を示す図である。
【図１３】更新履歴情報送信手段２０８の処理例を示すフローチャートである。
【図１４】更新履歴情報反映手段１０９，２０９の処理例を示すフローチャートである。
【図１５】ロック解除要求の一例を示す図である。
【図１６】ロック解除要求受信時の更新ロック管理装置３００の処理例を示すフローチャートである。
【図１７】ロック要求の一例を示す図である。
【図１８】更新履歴情報送信手段１０８の処理例を示すフローチャートである。
【符号の説明】
【００８１】
１００…基幹サーバ
１０１…データベース記憶部
１０２…レプリケーション定義手段
１０３…レプリケーション定義記憶部
１０４…更新手段
１０５…更新履歴情報作成手段
１０６…更新履歴情報蓄積手段
１０７…更新履歴情報記憶部
１０８…更新履歴情報送信手段
１０９…更新履歴情報反映手段
１１０…更新ロック解除手段
１１１…送受信手段
２００−１〜２００−ｎ…部門サーバ
２０１…データベース記憶部
２０３…レプリケーション定義記憶部
２０４…更新手段
２０５…更新履歴情報作成手段
２０６…更新履歴情報蓄積手段
２０７…更新履歴情報記憶部
２０８…更新履歴情報送信手段
２０９…更新履歴情報反映手段
２１０…更新ロック解除手段
２１１…送受信手段
３００…更新ロック管理装置
３０１…送受信手段
３０２…更新ロック制御手段
３０３…ロック要求保持部
３０４…ロック情報記憶部
４００…ネットワーク
ＭＴ…マスタテーブル
ＲＴ…レプリカテーブル
【図１】
2006164097.tif 000003
【図２】
2006164097.tif 000004
【図３】
2006164097.tif 000005
【図４】
2006164097.tif 000006
【図５】
2006164097.tif 000007
【図６】
2006164097.tif 000008
【図７】
2006164097.tif 000009
【図８】
2006164097.tif 000010
【図９】
2006164097.tif 000011
【図１０】
2006164097.tif 000012
【図１１】
2006164097.tif 000013
【図１２】
2006164097.tif 000014
【図１３】
2006164097.tif 000015
【図１４】
2006164097.tif 000016
【図１５】
2006164097.tif 000017
【図１６】
2006164097.tif 000018
【図１７】
2006164097.tif 000019
【図１８】
2006164097.tif 000020