JP2011034175A - トランザクション制御装置、トランザクション処理方法およびプログラム - Google Patents
トランザクション制御装置、トランザクション処理方法およびプログラム Download PDFInfo
- Publication number
- JP2011034175A JP2011034175A JP2009177545A JP2009177545A JP2011034175A JP 2011034175 A JP2011034175 A JP 2011034175A JP 2009177545 A JP2009177545 A JP 2009177545A JP 2009177545 A JP2009177545 A JP 2009177545A JP 2011034175 A JP2011034175 A JP 2011034175A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- data
- database
- databases
- update process
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】正常動作中であるデータベースに対してトランザクション処理に対応するデータベースの更新処理を実行して、この更新内容を反映するトランザクション制御装置の提供る。
【解決手段】トランザクションの実行対象となる複数のデータベースを特定するDB管理部101と、前記複数のデータベースの中から選択された一のデータベースに対して前記トランザクションに対応したデータベースの更新処理を実行する第1のトランザクション実行部102と、前記一のデータベースに対する前記更新処理の結果に基づいて、この一のデータベースを除いた他のデータベースに対して前記更新処理を実行する第2のトランザクション実行部103とを設けた。
【選択図】 図1
【解決手段】トランザクションの実行対象となる複数のデータベースを特定するDB管理部101と、前記複数のデータベースの中から選択された一のデータベースに対して前記トランザクションに対応したデータベースの更新処理を実行する第1のトランザクション実行部102と、前記一のデータベースに対する前記更新処理の結果に基づいて、この一のデータベースを除いた他のデータベースに対して前記更新処理を実行する第2のトランザクション実行部103とを設けた。
【選択図】 図1
Description
本発明は、トランザクション制御装置、トランザクション処理方法およびプログラムに関し、特に複数のサーバ装置などの通信機器に分散されたデータベースに対するトランザクションを扱うトランザクション制御装置、トランザクション処理方法およびプログラムに関する。
従来より、分散している複数のデータベースに対するトランザクション処理においては、全てのデータベースに対してこのトランザクション処理に対応する一連の処理が完了した時点でこの処理内容を各データベースに反映するために、処理途中であるトランザクション処理が完了しなければ新たなトランザクション処理を開始することができない。
このように、トランザクション処理動作は実行の多重性に乏しいため、トランザクション処理の対象となるデータベースの数が増大すると、トランザクション処理に必要な処理時間が増大する。その結果、従来のトランザクション処理動作には、トランザクション処理の対象となるデータベースを多数含むような通信システムにおいて、そのシステム全体としての通信スループットを低下させてしまうといった問題があった。
このような問題に対して、トランザクション処理の対象となるデータベースが増大しても、トランザクション処理に必要な処理時間を増大させないようにトランザクション処理の処理時間を維持して、トランザクション処理のレスポンスの向上を図る技術が提案されている(特許文献1)。
この特許文献1に開示されている技術は、複数のサーバに分散されたデータベースを扱うトランザクション処理について、各サーバが個別に処理するローカルトランザクションの連鎖によって実行するものである。よって、各サーバが個別にローカルトランザクション処理を実行することにより、システム全体のトランザクション処理のレスポンスが向上するとされている。
ここで、各サーバにおけるローカルトランザクションの処理は、この処理動作が完了した時点でローカルトランザクションをコミットまたはロールバックしてトランザクション処理プロセスの実行権を解放する。また、全てのサーバのローカルトランザクション、すなわち連鎖トランザクションが完了するまでは、ローカルトランザクションにおいてアクセスするデータの排他制御および更新されたデータの更新前データのログ管理を行い、データベースの整合性を図るようにしている。
ここで、各サーバにおけるローカルトランザクションの処理は、この処理動作が完了した時点でローカルトランザクションをコミットまたはロールバックしてトランザクション処理プロセスの実行権を解放する。また、全てのサーバのローカルトランザクション、すなわち連鎖トランザクションが完了するまでは、ローカルトランザクションにおいてアクセスするデータの排他制御および更新されたデータの更新前データのログ管理を行い、データベースの整合性を図るようにしている。
しかしながら、特許文献1に開示されている技術では、依然として、全てのデータベースのローカルトランザクションが完了した時点でトランザクション処理結果を各データベースに反映させるため、一つでもローカルトランザクション処理が完了していないデータベースが存在すると、いずれのデータベースに対してもトランザクション処理結果は反映されない。
したがって、従来の技術では、ローカルトランザクションが完了していないデータベースが一つでも存在する場合であって、そのデータベースがメンテナンスなどによる一時的な状態によるものであるといった状況において、その時点で正常に動作している他のデータベースに対してはトランザクション処理結果を即座に反映させたいといった要望に対応できない。
したがって、従来の技術では、ローカルトランザクションが完了していないデータベースが一つでも存在する場合であって、そのデータベースがメンテナンスなどによる一時的な状態によるものであるといった状況において、その時点で正常に動作している他のデータベースに対してはトランザクション処理結果を即座に反映させたいといった要望に対応できない。
本発明は、このような問題を解決すべく、システム内にローカルトランザクションが完了していないデータベースが存在していたとしても、正常に動作している他のデータベースに対してはトランザクション処理結果を反映することができるトランザクション制御装置の提供を目的とする。
上述の目的を達成するために、本発明のトランザクション制御装置は、トランザクションの実行対象となる複数のデータベースを特定するDB管理部と、前記複数のデータベースの中から選択された一のデータベースに対して前記トランザクションに対応したデータベースの更新処理を実行する第1のトランザクション実行部と、前記一のデータベースに対する前記更新処理の結果に基づいて、この一のデータベースを除いた他のデータベースに対して前記更新処理を実行する第2のトランザクション実行部とを備えたことを特徴とする。
また、前記複数のデータベースは、それぞれ、データとそのデータを識別するIDとそのデータの更新時期を示すタイムスタンプとを関連付けて記憶し、本発明のトランザクション制御装置における前記第2のトランザクション実行部は、前記複数のデータベースに格納されているデータのタイムスタンプを比較するデータ比較部と、同一のIDを有するデータのタイムスタンプが一致しないデータを最新のタイムスタンプを有するデータで更新する同期処理実行部とを備える構成としても良い。
さらに、本発明のトランザクション制御装置は、前記更新処理の成否を示す実行結果フラグと、前記複数のデータベースとの接続状態の可否を示すDB接続状態フラグとを前記複数のデータベース毎に記憶するフラグ管理部をさらに備える構成としても良い。
本発明によれば、トランザクションの実行対象となる複数のデータベースのうち、第1のトランザクション実行部によって正常に動作している一のデータベースに対してトランザクション処理に対応したデータベースの更新処理の結果を反映させ、その後に第2のトランザクション実行部によって他のデータベースに対して更新処理の結果を反映させることによって、トランザクションの実行対象となるデータベースのいずれかが更新処理に失敗した場合であっても、正常に動作しているデータベースに対して更新処理の結果を反映させることができる。
さらに、トランザクションの実行対象となるデータベースのうち、接続の失敗によりデータベースの更新処理を反映できなかったデータベースが存在している場合にあっては、更新処理に失敗したデータベースとの接続状態を監視するとともに、タイムスタンプが不一致となるデータをタイムスタンプが最新であるデータに更新する同期処理を実行することによって、トランザクション処理を成立させることができる。
したがって、トランザクションの実行対象となる複数のデータベースのうち、データベースの更新処理を失敗したデータベースが存在している場合であっても、正常に動作しているデータベースに対してはデータベースの更新処理を待機させることなく即時反映させることができ、更新処理を失敗したデータベースに対してはタイムスタンプを利用したデータの同期処理を実行することによって最新であるデータに更新することができ、トランザクション処理を成立させることができる。
以下、図面を参照し、本発明の実施の形態について説明する。
本発明の実施の形態にかかるトランザクション制御装置は、ネットワーク上に分散された複数のデータベースの更新処理をトランザクションとして実行するものである。
ここで、本実施の形態にかかるトランザクション制御装置が実行するトランザクションの対象となる複数のデータベースは、それぞれ、データとそのデータを識別するIDとそのデータの更新時期を示すタイムスタンプとを関連付けて記憶するものである。
本発明の実施の形態にかかるトランザクション制御装置は、ネットワーク上に分散された複数のデータベースの更新処理をトランザクションとして実行するものである。
ここで、本実施の形態にかかるトランザクション制御装置が実行するトランザクションの対象となる複数のデータベースは、それぞれ、データとそのデータを識別するIDとそのデータの更新時期を示すタイムスタンプとを関連付けて記憶するものである。
図1に示すように、本発明の実施の形態にかかるトランザクション制御装置10は、DB管理部101と、第1のトランザクション実行部102と、第2のトランザクション実行部103と、フラグ管理部104と、管理DB接続I/F部105とから構成されている。
また、第2のトランザクション実行部103は、データ比較部103aと同期処理実行部103bとを備える。
また、第2のトランザクション実行部103は、データ比較部103aと同期処理実行部103bとを備える。
DB管理部101は、トランザクション対象DB1〜nを特定する設定情報を記憶して、この複数のデータベースのうち任意の一つをマスタデータベースとして設定する。この設定情報は、例えば、トランザクション対象DB1〜nのそれぞれを特定するデータベースID、IPアドレス、マスタデータベースであるか否かを判別するマスタフラグを互いに関連付けたデータとすることができる。
第1のトランザクション実行部102は、トランザクション処理に対応したデータベースの更新処理である第1の更新処理を、DB管理部101によって設定されたマスタデータベースに対して実行する。
例えば、トランザクション対象DB1〜nが対象となるトランザクションが発生し、DB管理部101によってトランザクション対象DB1がマスタデータベースとして設定されている場合、第1のトランザクション実行部102は、トランザクション対象DB1に対して、実行中のトランザクションに対応したデータベースの更新処理を行う。
例えば、トランザクション対象DB1〜nが対象となるトランザクションが発生し、DB管理部101によってトランザクション対象DB1がマスタデータベースとして設定されている場合、第1のトランザクション実行部102は、トランザクション対象DB1に対して、実行中のトランザクションに対応したデータベースの更新処理を行う。
第2のトランザクション実行部103は、マスタデータベースに設定されているトランザクション対象DBを除くトランザクション対象DBに対して第1の更新処理と同様のデータベースの更新処理である第2の更新処理を、第1のトランザクション実行部102によって実行された第1の更新処理が正常に終了後に実行する。
例えば、マスタデータベースとしてトランザクション対象DB1が設定され、第1のトランザクション実行部102による第1の更新処理が正常に終了した場合、第2のトランザクション実行部103は、トランザクション対象DB2〜nに対して、トランザクション対象DB1対して実行された更新処理と同様のデータベースの更新処理を実行する。
また、第1のトランザクション実行部102による第1の更新処理が正常に終了しなかった場合には、第2のトランザクション実行部103は、第2の更新処理を実行しない。
例えば、マスタデータベースとしてトランザクション対象DB1が設定され、第1のトランザクション実行部102による第1の更新処理が正常に終了した場合、第2のトランザクション実行部103は、トランザクション対象DB2〜nに対して、トランザクション対象DB1対して実行された更新処理と同様のデータベースの更新処理を実行する。
また、第1のトランザクション実行部102による第1の更新処理が正常に終了しなかった場合には、第2のトランザクション実行部103は、第2の更新処理を実行しない。
データ比較部103aは、トランザクション対象DB1〜nに格納されているそれぞれのデータをデータ固有のID毎にそれぞれのデータと比較する。
同期処理実行部103bは、データ比較部103aによる比較結果に基づいて、データの更新時間を示すタイムスタンプが不一致となるデータ抽出し、この抽出したデータをタイムスタンプが最新であるデータへ更新する同期処理を、前記第2の更新処理に失敗したデータベースに対して実行する。
例えば、第2のトランザクション実行部103による第2の更新処理がトランザクション対象DBnにおいて失敗した場合、データ比較部103aは、マスタデータベースに格納されているデータのタイムスタンプと更新処理を失敗したトランザクション対象DBnに格納されているデータのタイムスタンプとをID毎に比較する。同期処理実行部103bは、この比較結果に基づいて、トランザクション対象DBnに格納されているデータを最新のタイムスタンプを有するマスタデータベースのデータへID毎に統一する。
同期処理実行部103bは、データ比較部103aによる比較結果に基づいて、データの更新時間を示すタイムスタンプが不一致となるデータ抽出し、この抽出したデータをタイムスタンプが最新であるデータへ更新する同期処理を、前記第2の更新処理に失敗したデータベースに対して実行する。
例えば、第2のトランザクション実行部103による第2の更新処理がトランザクション対象DBnにおいて失敗した場合、データ比較部103aは、マスタデータベースに格納されているデータのタイムスタンプと更新処理を失敗したトランザクション対象DBnに格納されているデータのタイムスタンプとをID毎に比較する。同期処理実行部103bは、この比較結果に基づいて、トランザクション対象DBnに格納されているデータを最新のタイムスタンプを有するマスタデータベースのデータへID毎に統一する。
フラグ管理部104は、DB接続状態フラグをトランザクション対象DB毎に記憶するとともに、第1および第2の更新処理の結果に基づいて実行結果フラグをトランザクション対象DB毎に記憶する。さらに、フラグ管理部104は、DB接続状態フラグを所定の周期で更新する。
ここで、接続状態フラグは、トランザクション対象DBとの接続状態の可否を示すデータであり、実行結果フラグは、第1および第2の更新処理の成否を示すデータである。
例えば、トランザクション対象DBnとの接続状態が正常ならば、フラグ管理部104は、DB接続状態フラグを「True」とし、異常ならば「False」とする。
また、第1および第2の更新処理が正常に終了したならば、フラグ管理部104は、実行結果フラグを「True」とし、異常終了など失敗したならば「False」とする。
管理DB接続I/F部105は、トランザクションの実行対象となるデータベースであるトランザクション対象DB−nとの接続制御を行う。
ここで、接続状態フラグは、トランザクション対象DBとの接続状態の可否を示すデータであり、実行結果フラグは、第1および第2の更新処理の成否を示すデータである。
例えば、トランザクション対象DBnとの接続状態が正常ならば、フラグ管理部104は、DB接続状態フラグを「True」とし、異常ならば「False」とする。
また、第1および第2の更新処理が正常に終了したならば、フラグ管理部104は、実行結果フラグを「True」とし、異常終了など失敗したならば「False」とする。
管理DB接続I/F部105は、トランザクションの実行対象となるデータベースであるトランザクション対象DB−nとの接続制御を行う。
なお、本実施の形態にかかるトランザクション制御装置10は、CPU(中央演算装置)やメモリ、インターフェースからなるコンピュータにコンピュータプログラムをインストールすることによって実現され、上述したトランザクション制御装置10の各種機能は、上記コンピュータの各種ハードウェア資源と上記コンピュータプログラム(ソフトウェア)とが協働することによって実現される。
次に、図2および図3を参照して、本実施の形態にかかるトランザクション制御装置の動作について説明する。
図2に示すように、トランザクションが発生すると(S101)、トランザクション制御装置10は、トランザクションの実行対象となるデータベース(トランザクション対象DB1〜n)を特定する情報(データベースIDやIPアドレスなど)を互いに関連付けた設定情報としてDB管理部101に記憶する(S102)。
次に、DB管理部101は、トランザクション対象DB1〜nのうち、任意の一つをマスタデータベースとして設定して、該当するデータベースの設定情報におけるマスタフラグを有効にする(S103)。
ここでは、DB管理部101によって、トランザクション対象DB1をマスタデータベースに設定されたことを前提として、以下説明をする。
図2に示すように、トランザクションが発生すると(S101)、トランザクション制御装置10は、トランザクションの実行対象となるデータベース(トランザクション対象DB1〜n)を特定する情報(データベースIDやIPアドレスなど)を互いに関連付けた設定情報としてDB管理部101に記憶する(S102)。
次に、DB管理部101は、トランザクション対象DB1〜nのうち、任意の一つをマスタデータベースとして設定して、該当するデータベースの設定情報におけるマスタフラグを有効にする(S103)。
ここでは、DB管理部101によって、トランザクション対象DB1をマスタデータベースに設定されたことを前提として、以下説明をする。
DB管理部101によってマスタデータベースの設定が完了すると、第1のトランザクション実行部102は、マスタデータベースであるトランザクション対象DB1に対して、発生したトランザクションに対応するデータベースの更新処理(以下、「第1の更新処理」という。)を実行する(S104)。
ここで、データベースの更新処理は、例えば、リレーショナルデータベース管理システムなどのデータベース管理において、管理対象であるデータベースのデータ操作や定義などを実行するプログラムを動作させることとする。
ここで、データベースの更新処理は、例えば、リレーショナルデータベース管理システムなどのデータベース管理において、管理対象であるデータベースのデータ操作や定義などを実行するプログラムを動作させることとする。
第1の更新処理の実行後に、フラグ管理部104は、トランザクション対象DB1に対応する接続状態フラグへマスタデータベースとトランザクション制御装置との接続状況を反映するとともに、トランザクション対象DB1に対応する実行結果フラグへ第1の更新処理の実行結果を反映し、それらを記憶する(S105)。
次に、第2のトランザクション実行部103は、フラグ管理部104によって第1の更新処理の実行結果が反映された実行結果フラグから、第1の更新処理が正常に終了したか否かを判定する(S106)
マスタデータベースに対応する実行結果フラグが「False」である場合(S106で「NO」)、DB管理部101は、現状マスタデータベースに設定されているトランザクション対象DB1を除くトランザクション対象DB2〜nの中からマスタデータベースを設定して、該当するデータベースの設定情報におけるマスタフラグを有効にする(S103)。その後、あらためてマスタデータベースに設定されたトランザクション対象DBに対して、再び第1のトランザクション実行部102による第1の更新処理が実行される(S104から順次実行)。
ここで、マスタデータベースに対応する実行結果フラグが「False」である場合、DB管理部101は、マスタデータベースに対応するDB接続状態フラグを確認して、マスタデータベースとの接続状態が正常であるならばマスタデータベースに対して第1の更新処理を再実行し、接続状態が異常であるならばマスタデータベースの変更(再設定)を行うとしても良い。
ここで、マスタデータベースに対応する実行結果フラグが「False」である場合、DB管理部101は、マスタデータベースに対応するDB接続状態フラグを確認して、マスタデータベースとの接続状態が正常であるならばマスタデータベースに対して第1の更新処理を再実行し、接続状態が異常であるならばマスタデータベースの変更(再設定)を行うとしても良い。
第1の更新処理が正常に終了した場合、すなわち、マスタデータベースに対応する実行結果フラグが「True」である場合(S106で「YES」)、第2のトランザクション実行部103は、マスタデータベースに設定されているトランザクション対象DBを除くトランザクション対象DB、すなわち、トランザクション対象DB2〜nに対して、第2の更新処理を実行する(S107)。
第2の更新処理の実行後に、フラグ管理部104は、トランザクション対象DB−2〜nに対応する接続状態フラグへトランザクション対象DB−2〜nとの接続状況を反映するとともに、トランザクション対象DB2〜nに対応する実行結果フラグへ第2の更新処理の実行結果を反映し、それらを記憶する(S108)。
次に、第2のトランザクション実行部103は、フラグ管理部104によって第2の更新処理の実行結果が反映された全てのトランザクション対象DBの実行結果フラグから、第2の更新処理が全てのトランザクション対象DBで正常に終了したか否かを判定する(S109)
第2の更新処理がトランザクション対象DB2〜nのいずれかにおいて正常に終了しなかった場合、すなわち、トランザクション対象DB2〜nに対応する実行結果フラグのいずれかが「False」である場合(S106で「NO」)、同期処理実行部103bは、第2の更新処理を正常に終了できなかったトランザクション対象DBに対して、同期処理を実行する(S110)。
一方、第2の更新処理がトランザクション対象DB2〜n全てで正常に終了した場合、すなわち、全てのトランザクション対象DBに対応する実行結果フラグが「True」である場合(S109で「YES」)、全てのトランザクション対象DBに対するトランザクションが正常に完了したため、トランザクション制御装置はトランザクション処理を終了する。
一方、第2の更新処理がトランザクション対象DB2〜n全てで正常に終了した場合、すなわち、全てのトランザクション対象DBに対応する実行結果フラグが「True」である場合(S109で「YES」)、全てのトランザクション対象DBに対するトランザクションが正常に完了したため、トランザクション制御装置はトランザクション処理を終了する。
<同期処理動作>
次に、データ比較部103aおよび同期処理実行部103bによって実行される同期処理の動作について図3を参照して説明する。
第2のトランザクション実行部103による第2の更新処理が正常に終了されなかったトランザクション対象DBが存在する場合、同期処理実行部103bは、実行結果フラグに基づいて第2の更新処理を失敗したデータベースをトランザクション対象DB1〜nの中から特定する(S201)。
次に、データ比較部103aおよび同期処理実行部103bによって実行される同期処理の動作について図3を参照して説明する。
第2のトランザクション実行部103による第2の更新処理が正常に終了されなかったトランザクション対象DBが存在する場合、同期処理実行部103bは、実行結果フラグに基づいて第2の更新処理を失敗したデータベースをトランザクション対象DB1〜nの中から特定する(S201)。
同期処理実行部103bによって特定されたトランザクション対象DB(以下、「同期処理対象DB」という。)のうち、DB接続状態フラグが「False」のものに対して、管理DB接続I/F部105は、定期的に再接続を実行し(S202)、同期対象DBとの接続状態を監視する(S203)。
再接続が成功しない場合(S203で「NO」)は、管理DB接続I/F部105によって定期的に再接続動作が継続される(S202〜S203)。
同期対象DBへの再接続が成功した場合(S203で「YES」)、フラグ管理部104はこの同期対象DBに対応するDB接続状態フラグを「False」から「True」へ書き換えてこのDB接続状態フラグを記憶する(S204)。
同期対象DBへの再接続が成功した場合(S203で「YES」)、フラグ管理部104はこの同期対象DBに対応するDB接続状態フラグを「False」から「True」へ書き換えてこのDB接続状態フラグを記憶する(S204)。
次に、データ比較部103aは、再接続が成功した同期対象DBとマスタデータベースとの内容をデータ固有のID毎に比較して(S205)、タイムスタンプが不一致のデータの有無を判定する(S206)。
マスタデータベースのタイムスタンプと不一致となるデータを有しない場合(S206で「NO」)、更新するデータが存在しないために、同期処理実行部103bは同期処理動作を終了する。
一方、マスタデータベースのタイムスタンプと不一致となるデータを有する場合(S206で「YES」)、同期処理実行部103bは、同期対象DBのタイムスタンプが不一致となるデータをマスタデータベースのデータで更新する(S207)。
一方、マスタデータベースのタイムスタンプと不一致となるデータを有する場合(S206で「YES」)、同期処理実行部103bは、同期対象DBのタイムスタンプが不一致となるデータをマスタデータベースのデータで更新する(S207)。
ここで、同期処理を概念的に説明した図4を参照して、マスタデータベースと同期対象DBとの比較とデータの更新動作について詳細に説明する。
図4に示すように、同期処理実行部103bは、マスタデータベースに設定されているトランザクション対象DB−1と、第2の更新処理を失敗して再接続されたトランザクション対象DB−nのそれぞれに格納されているデータをID毎に比較して、タイムスタンプが不一致となるデータを検索する。図4の例において、マスタデータベースのタイムスタンプが「0:01:35」、同期対象DBのタイムスタンプが「0:01:30」であるID=2のデータが該当する。
同期処理実行部103bは、タイムスタンプが新しいマスタデータベースのID=2のデータを選択して、同期対象DBに格納されているID=2のデータへ書込み、更新する。図4の例において、同期対象DBであるトランザクション対象DB−nの格納データのうち、ID=2のデータがマスタデータベースであるトランザクション対象DB−1のデータで更新されていることが分かる。
なお、本実施の形態においては、同期対象DBの内容を比較する対象としてマスタデータベースを用いたが、トランザクション対象DBのうち第2の更新処理を成功した任意のデータベース、すなわち、実行結果フラグが「True」であるトランザクション対象DBを用いても良い。
図4に示すように、同期処理実行部103bは、マスタデータベースに設定されているトランザクション対象DB−1と、第2の更新処理を失敗して再接続されたトランザクション対象DB−nのそれぞれに格納されているデータをID毎に比較して、タイムスタンプが不一致となるデータを検索する。図4の例において、マスタデータベースのタイムスタンプが「0:01:35」、同期対象DBのタイムスタンプが「0:01:30」であるID=2のデータが該当する。
同期処理実行部103bは、タイムスタンプが新しいマスタデータベースのID=2のデータを選択して、同期対象DBに格納されているID=2のデータへ書込み、更新する。図4の例において、同期対象DBであるトランザクション対象DB−nの格納データのうち、ID=2のデータがマスタデータベースであるトランザクション対象DB−1のデータで更新されていることが分かる。
なお、本実施の形態においては、同期対象DBの内容を比較する対象としてマスタデータベースを用いたが、トランザクション対象DBのうち第2の更新処理を成功した任意のデータベース、すなわち、実行結果フラグが「True」であるトランザクション対象DBを用いても良い。
次に、同期処理実行部103bは、同期対象DBの格納データの更新が正常に終了したか否かを確認する(S208)。
同期対象DBに対するデータの更新が正常に終了しなかった場合(S208で「NO」)、データ比較部103aによって再びマスタデータベースと同期対象DBとの内容が比較され、この比較結果に基づいて同期処理実行部103bにより同期対象DBの格納データの更新が実行される(S205以降順次実施)。
一方、同期対象DBに対するデータの更新が正常に終了した場合(S208で「YES」)、フラグ管理部104は、同期対象DBに対応した実行結果フラグを「False」から「True」へ書き換えて、この実行結果フラグを記憶する(S209)。
同期対象DBに対応した実行結果フラグの全てが「True」となると、同期処理は全て正常に完了したこととなり、同期処理実行部103bは同期処理動作を終了する。
同期対象DBに対するデータの更新が正常に終了しなかった場合(S208で「NO」)、データ比較部103aによって再びマスタデータベースと同期対象DBとの内容が比較され、この比較結果に基づいて同期処理実行部103bにより同期対象DBの格納データの更新が実行される(S205以降順次実施)。
一方、同期対象DBに対するデータの更新が正常に終了した場合(S208で「YES」)、フラグ管理部104は、同期対象DBに対応した実行結果フラグを「False」から「True」へ書き換えて、この実行結果フラグを記憶する(S209)。
同期対象DBに対応した実行結果フラグの全てが「True」となると、同期処理は全て正常に完了したこととなり、同期処理実行部103bは同期処理動作を終了する。
このように、本実施の形態によれば、トランザクションに対応したデータベースの更新処理が、正常に動作しているデータベースに対しては更新処理の結果を反映させ、正常に動作していないデータベースに対しては同期処理を実行することによって、正常に動作しているデータベースに対するリアルタイムな更新処理が可能となる。
例えば、複数のサーバを設置してプラントや建物の設備を監視する監視システムにおいて、サーバに格納される監視データのデータベースの更新処理をトランザクションによって行う場合、対象となるデータベースのうち一つでも接続できないものが存在するときであっても(それがメンテナンスなどによる一時的な不通であっても)、正常動作しているデータベースには更新情報を反映できるために、最新情報によるリアルタイム監視を効率的に行うことが可能となる。
例えば、複数のサーバを設置してプラントや建物の設備を監視する監視システムにおいて、サーバに格納される監視データのデータベースの更新処理をトランザクションによって行う場合、対象となるデータベースのうち一つでも接続できないものが存在するときであっても(それがメンテナンスなどによる一時的な不通であっても)、正常動作しているデータベースには更新情報を反映できるために、最新情報によるリアルタイム監視を効率的に行うことが可能となる。
プラント設備や建設設備などの広範囲にわたる設備情報を収集する監視システムにおいて、分散された複数のサーバ装置のデータベースに対するトランザクション処理を実行するトランザクション制御装置に利用できる。
10…トランザクション制御装置、101…DB管理部、102…第1のトランザクション実行部、103…第2のトランザクション実行部、103a…データ比較部、103b…同期処理実行部、104…フラグ管理部、105…管理DB接続I/F部、1〜n…トランザクション対象DB−1〜n。
Claims (6)
- トランザクションの実行対象となる複数のデータベースを特定するDB管理部と、
前記複数のデータベースの中から選択された一のデータベースに対して前記トランザクションに対応したデータベースの更新処理を実行する第1のトランザクション実行部と、
前記一のデータベースに対する前記更新処理の結果に基づいて、この一のデータベースを除いた他のデータベースに対して前記更新処理を実行する第2のトランザクション実行部と
を備えることを特徴とするトランザクション制御装置。 - 請求項1に記載のトランザクション制御装置において、
前記複数のデータベースは、それぞれ、データとそのデータを識別するIDとそのデータの更新時期を示すタイムスタンプとを関連付けて記憶し、
前記第2のトランザクション実行部は、
前記複数のデータベースに格納されているデータのタイムスタンプを比較するデータ比較部と、
同一のIDを有するデータのタイムスタンプが一致しないデータを最新のタイムスタンプを有するデータで更新する同期処理実行部と
を備えることを特徴とするトランザクション制御装置。 - 請求項1または2に記載のトランザクション制御装置において、
前記更新処理の成否を示す実行結果フラグと、前記複数のデータベースとの接続状態の可否を示すDB接続状態フラグとを前記複数のデータベース毎に記憶するフラグ管理部をさらに備えることを特徴とするトランザクション制御装置。 - トランザクションの実行対象となる複数のデータベースを特定するDB管理ステップと、
前記複数のデータベースの中から選択された一のデータベースに対して前記トランザクションに対応したデータベースの更新処理を実行する第1のトランザクション実行ステップと、
前記一のデータベースに対する前記更新処理の結果に基づいて、この一のデータベースと除いた他のデータベースに対して前記更新処理を実行する第2のトランザクション実行ステップと
を有することを特徴とするトランザクション処理方法。 - 請求項4に記載のトランザクション処理方法において、
前記複数のデータベースは、それぞれ、データとそのデータを識別するIDとそのデータの更新時期を示すタイムスタンプとを関連付けて記憶するものであって、
前記第2のトランザクション実行ステップは、
前記複数のデータベースに格納されているデータのタイムスタンプを比較するデータ比較ステップと、
同一のIDを有するデータのタイムスタンプが一致しないデータを最新のタイムスタンプを有するデータで更新する同期処理実行ステップと
を有することを特徴とするトランザクション処理方法。 - 請求項4または請求項5に記載されているトランザクション処理方法をコンピュータに実行させることを特徴とするトランザクション処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009177545A JP2011034175A (ja) | 2009-07-30 | 2009-07-30 | トランザクション制御装置、トランザクション処理方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009177545A JP2011034175A (ja) | 2009-07-30 | 2009-07-30 | トランザクション制御装置、トランザクション処理方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011034175A true JP2011034175A (ja) | 2011-02-17 |
Family
ID=43763213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009177545A Pending JP2011034175A (ja) | 2009-07-30 | 2009-07-30 | トランザクション制御装置、トランザクション処理方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011034175A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015524677A (ja) * | 2012-05-23 | 2015-08-27 | キングドットコム リミテッドKing.Com Ltd | インタラクティブ・ゲームプレイのためのシステム及び方法 |
JP2015187777A (ja) * | 2014-03-26 | 2015-10-29 | 日本電信電話株式会社 | アクセス制御サーバ、アクセス制御方法、及びアクセス制御プログラム |
WO2017077616A1 (ja) * | 2015-11-05 | 2017-05-11 | 株式会社Murakumo | データベースシステム、トランザクション管理ノード、方法およびプログラム |
JP2022167943A (ja) * | 2018-04-10 | 2022-11-04 | 華為技術有限公司 | トランスポートプロトコル上でのポイント・ツー・ポイント・データベース同期 |
-
2009
- 2009-07-30 JP JP2009177545A patent/JP2011034175A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015524677A (ja) * | 2012-05-23 | 2015-08-27 | キングドットコム リミテッドKing.Com Ltd | インタラクティブ・ゲームプレイのためのシステム及び方法 |
JP2015187777A (ja) * | 2014-03-26 | 2015-10-29 | 日本電信電話株式会社 | アクセス制御サーバ、アクセス制御方法、及びアクセス制御プログラム |
WO2017077616A1 (ja) * | 2015-11-05 | 2017-05-11 | 株式会社Murakumo | データベースシステム、トランザクション管理ノード、方法およびプログラム |
JPWO2017077616A1 (ja) * | 2015-11-05 | 2018-08-16 | 株式会社Murakumo | データベースシステム、トランザクション管理ノード、方法およびプログラム |
JP2022167943A (ja) * | 2018-04-10 | 2022-11-04 | 華為技術有限公司 | トランスポートプロトコル上でのポイント・ツー・ポイント・データベース同期 |
JP7479427B2 (ja) | 2018-04-10 | 2024-05-08 | 華為技術有限公司 | トランスポートプロトコル上でのポイント・ツー・ポイント・データベース同期 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102577139B1 (ko) | 스마트 계약 기반 데이터 처리 방법, 기기 및 저장 매체 | |
CN108076098B (zh) | 一种业务处理方法及系统 | |
US7698391B2 (en) | Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate | |
CN103036717A (zh) | 分布式数据的一致性维护系统和方法 | |
CN109325016B (zh) | 数据迁移方法、装置、介质及电子设备 | |
EP2485148A1 (en) | Method, device and system for displaying analysis result of essential cause analysis of failure | |
US7730029B2 (en) | System and method of fault tolerant reconciliation for control card redundancy | |
CN111901422A (zh) | 一种集群中节点的管理方法、系统及装置 | |
JP2012234333A (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
JP2011034175A (ja) | トランザクション制御装置、トランザクション処理方法およびプログラム | |
CN111769981A (zh) | 去中心化架构主节点推选方法、数据文件传输方法、系统 | |
CN113422692A (zh) | 一种K8s集群内节点故障检测及处理方法、装置及存储介质 | |
CN110825408A (zh) | 程序版本的更新方法、自助设备和版本控制服务器 | |
CN110705893A (zh) | 一种业务节点管理方法、装置、设备以及存储介质 | |
EP2416526B1 (en) | Task switching method, server node and cluster system | |
US7899785B2 (en) | Reconfiguring propagation streams in distributed information sharing | |
CN110798339A (zh) | 一种基于分布式任务调度框架的任务容灾方法 | |
US10873504B1 (en) | Managing concurrently received configuration requests in a computing network | |
TWI224912B (en) | Monitoring method of the remotely accessible resources to provide the persistent and consistent resource states | |
US9880855B2 (en) | Start-up control program, device, and method | |
CN116149713A (zh) | 一种树型异构网络下的各级设备的程序升级方法及装置 | |
CN114356533B (zh) | 微服务无感知发布系统、方法、电子设备及存储介质 | |
JP5640767B2 (ja) | 情報処理装置、データ管理方法およびデータベースシステム | |
CN110007934B (zh) | 分布式数据库部署方法及装置 | |
CN108650320B (zh) | 一种集群环境下同构级联设备配置文件同步方法 |