JP4628830B2 - System for ensuring the integrity of data stored in DBMS - Google Patents

System for ensuring the integrity of data stored in DBMS Download PDF

Info

Publication number
JP4628830B2
JP4628830B2 JP2005076202A JP2005076202A JP4628830B2 JP 4628830 B2 JP4628830 B2 JP 4628830B2 JP 2005076202 A JP2005076202 A JP 2005076202A JP 2005076202 A JP2005076202 A JP 2005076202A JP 4628830 B2 JP4628830 B2 JP 4628830B2
Authority
JP
Japan
Prior art keywords
request
update
dbms
identification information
stored
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.)
Expired - Fee Related
Application number
JP2005076202A
Other languages
Japanese (ja)
Other versions
JP2006260121A (en
Inventor
雄一 寺田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2005076202A priority Critical patent/JP4628830B2/en
Publication of JP2006260121A publication Critical patent/JP2006260121A/en
Application granted granted Critical
Publication of JP4628830B2 publication Critical patent/JP4628830B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、DBMS(Database Management System)を利用するシステムにおいて、DBMSに格納された複数のテーブル間のデータの整合性を担保するための技術に関する。   The present invention relates to a technique for ensuring data consistency among a plurality of tables stored in a DBMS in a system using a DBMS (Database Management System).

近年、誰でもが自由に利用できるようにするため、ソフトウェアのソースコードをオープンソースとして、インターネットなどを通じて無償で公開することが行われている。そして、オープンソースのソフトウェアを利用すれば、低コストでアプリケーションシステムの構築が可能となることから、企業なども徐々に利用し始めている。   In recent years, software source code has been released as open source free of charge through the Internet or the like so that anyone can use it freely. And if you use open source software, you can build application systems at low cost, so companies are gradually starting to use it.

DBMS(Database Management System;データベース管理システム)もオープンソースとして公開されているものがある。オープンソースのDBMSの場合、2フェーズコミットメントなどのような高度な機能が実装されていないものがある。このようなDBMSが利用された場合、データの整合性を担保するためには2フェーズコミットメントを行うべきときであっても、それが行われないことになる。そうなると、データの不整合が生じ、このデータを利用するアプリケーションシステムにおいて不都合が生じる。   Some DBMS (Database Management System) has been released as open source. Some open source DBMSs do not have advanced features such as two-phase commitment. When such a DBMS is used, even when two-phase commitment is to be performed in order to ensure data consistency, it is not performed. In this case, data inconsistency occurs, and inconvenience occurs in an application system that uses this data.

そこで、本発明の目的は、2フェーズコミットメント機能を有しないDBMSを利用した場合でも、データの整合性を担保するための技術を提供することである。   Therefore, an object of the present invention is to provide a technique for ensuring data consistency even when a DBMS having no two-phase commitment function is used.

本発明の一実施態様に従うDBMS(Database Management System)と接続され、前記DBMSに格納されたデータの整合性を担保するためのシステムは、リクエスト要求元からのリクエストを受け付けると、前記リクエストに識別情報を付与する手段と、前記DBMSに対して、前記リクエストに基づくデータの更新処理を依頼する更新手段と、前記更新手段が前記リクエストに基づいて前記DBMSに複数の更新処理を依頼した場合、前記リクエストに付与された識別情報と関連づけられた各更新処理の内容に関する更新情報を、前記DBMSから取得する更新情報取得手段と、前記更新手段が前記DBMSに依頼したすべての更新処理の処理結果に基づいて、前記リクエストの成否を判定するリクエスト成否判定手段と、前記リクエスト成否判定手段による判定結果と前記更新情報取得手段により取得した更新情報とを、前記リクエストに付与された識別情報で関連づけて記憶する記憶手段と、前記リクエスト成否判定手段による判定結果を、前記リクエスト要求元に対して出力する手段と、を備える。   When a system connected to a DBMS (Database Management System) according to an embodiment of the present invention and ensuring the integrity of data stored in the DBMS receives a request from a request request source, identification information is included in the request. The update requesting unit for requesting the DBMS to update the data based on the request, and the update unit requesting the DBMS to perform a plurality of update processing based on the request. Update information acquisition means for acquiring update information about the contents of each update process associated with the identification information given to the DBMS, and based on the processing results of all update processes requested by the update means to the DBMS Request success / failure determination means for determining success / failure of the request; and request success / failure determination The determination result by the means and the update information acquired by the update information acquisition means are stored in association with the identification information given to the request, and the determination result by the request success / failure determination means is stored in the request request source. And outputting means.

好適な実施形態では、前記更新情報は、前記更新手段が依頼した更新処理別になっていて、各更新処理が正常終了したときに、当該更新処理に関する更新情報が前記DBMSによって生成されてもよい。   In a preferred embodiment, the update information is classified according to an update process requested by the update unit. When each update process is normally completed, update information related to the update process may be generated by the DBMS.

好適な実施形態では、リクエスト成否判定手段は、前記更新手段が依頼したすべての更新処理が正常終了したときはリクエスト成功と判定し、前記更新手段が依頼した更新処理のいずれか一つ以上が正常終了でないときはリクエスト不成功と判定するようにしてもよい。   In a preferred embodiment, the request success / failure determination unit determines that the request is successful when all the update processes requested by the update unit are normally completed, and one or more of the update processes requested by the update unit are normal. If it is not completed, it may be determined that the request is unsuccessful.

好適な実施形態では、前記記憶手段に、ある識別情報が付与されているリクエストの判定結果がリクエスト不成功と記憶されていて、かつ、前記更新情報取得手段が取得した、当該識別情報に係る一部の前記更新情報が記憶されているときは、前記DBMSに格納された複数のテーブル間で不整合が生じていると判定する整合性判定手段を、さらに備えてもよい。   In a preferred embodiment, the storage unit stores a determination result of a request to which certain identification information is given as unsuccessful request, and the one related to the identification information acquired by the update information acquisition unit. When the update information of a part is stored, a consistency determination unit that determines that inconsistency occurs between a plurality of tables stored in the DBMS may be further provided.

本発明の一実施形態に係る、2フェーズコミットメントがサポートされていないDBMSを利用したトランザクション処理を行うシステムについて、図面を用いて説明する。   A system for performing transaction processing using a DBMS that does not support two-phase commitment according to an embodiment of the present invention will be described with reference to the drawings.

図1は、本実施形態に係るトランザクション処理システム10とその監視装置20の構成を示す図である。トランザクション処理システム10は、外部とのデータ入出力を行うインタフェースサーバ1と、所定の業務処理を行う業務処理サーバ3と、DBMS5とを備える。監視装置20は、例えば、インタフェースサーバ1と接続されている。   FIG. 1 is a diagram showing a configuration of a transaction processing system 10 and its monitoring device 20 according to the present embodiment. The transaction processing system 10 includes an interface server 1 that performs data input / output with the outside, a business processing server 3 that performs predetermined business processing, and a DBMS 5. For example, the monitoring device 20 is connected to the interface server 1.

本実施形態では、DBMS5が在庫マスタを有し、業務処理サーバ3が商品の発注、在庫管理等を行っているときに、インタフェースサーバ1が商品の発注をリクエストするトランザクションを受け付けたときの処理を例にとって説明する。   In the present embodiment, when the DBMS 5 has an inventory master and the business processing server 3 performs product ordering, inventory management, etc., processing when the interface server 1 accepts a transaction requesting product ordering is performed. Let's take an example.

インタフェースサーバ1、業務処理サーバ3、DBMS5および監視装置20は、いずれも例えば汎用的なコンピュータシステムにより構成され、以下に説明する各サーバ等1,3,5、20内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。   Each of the interface server 1, the business processing server 3, the DBMS 5, and the monitoring device 20 is configured by, for example, a general-purpose computer system, and individual components or functions in the servers 1, 3, 5, and 20 described below Is realized, for example, by executing a computer program.

インタフェースサーバ1は、リクエスト要求元の装置からのリクエストをトランザクションとして受け付け、このリクエストが正常終了したか否かを示すリクエスト成否をリクエスト要求元へ返信する。また、インタフェースサーバ1は、内部の機能として、受け付けたトランザクションに含まれるリクエストに識別情報であるIDを付与するリクエストID付与部11と、トランザクションの処理履歴を記録するトランザクションジャーナル13とを有する。   The interface server 1 accepts a request from the request requesting device as a transaction, and returns a request success / failure indicating whether or not the request has been normally completed to the request requesting source. Further, the interface server 1 includes, as internal functions, a request ID assigning unit 11 that assigns an ID that is identification information to a request included in a received transaction, and a transaction journal 13 that records a transaction processing history.

リクエストID付与部11は、トランザクション処理システム10内でユニークなリクエストIDを、各トランザクションに係るリクエストに対して付与し、業務処理サーバ3へ送る。   The request ID assigning unit 11 assigns a request ID unique within the transaction processing system 10 to a request relating to each transaction and sends the request to the business processing server 3.

トランザクションジャーナル13には、各トランザクションに係るリクエストごとに、その処理結果などの情報が格納される。例えば、業務処理サーバ3から返信されたリクエストに対するリプライが、トランザクションジャーナル13に格納される。   The transaction journal 13 stores information such as processing results for each request related to each transaction. For example, a reply to the request returned from the business processing server 3 is stored in the transaction journal 13.

図2には、トランザクションジャーナル13のデータ構造の一例を示す。トランザクションジャーナル13は、データ項目として、リクエストID21と、リクエスト成否22と、在庫マスタテーブルのテーブル更新情報23と、トランザクションテーブルのテーブル更新情報24とを有する。リクエスト成否22,及びテーブル更新情報23,24については後述する。   FIG. 2 shows an example of the data structure of the transaction journal 13. The transaction journal 13 includes, as data items, a request ID 21, a request success / failure 22, table update information 23 for the inventory master table, and table update information 24 for the transaction table. The request success / failure 22 and the table update information 23 and 24 will be described later.

再び図1を参照すると、DBMS5は、それぞれデータが格納されている種々のテーブル51,53と、テーブル更新情報55とが記憶されている。テーブル更新情報55には、各テーブルの更新(上書き及び挿入)が行われたときに、その更新内容などが格納される。テーブル更新情報55は、テーブル別になっている。   Referring to FIG. 1 again, the DBMS 5 stores various tables 51 and 53 each storing data, and table update information 55. The table update information 55 stores the update contents and the like when each table is updated (overwritten and inserted). The table update information 55 is for each table.

テーブル更新情報55のデータ構造を図3に示す。テーブル更新情報55は、テーブル名41と、上書き/挿入種別42と、更新の主キー43と、更新前情報44と、更新後情報45と、リクエストID46とをデータ項目として有する。テーブル更新情報55は、各テーブルの更新処理が完了した時点で、その更新処理に係るレコードが追加される。従って、DBMS5が業務処理サーバ3からデータの更新依頼を受けた場合でも、その更新が正常終了しなければ、その更新処理に係るレコードが生成されない。この結果、リクエストID46をキーにしてテーブル更新情報55を参照することにより、各更新処理の成否を判定することができる。   The data structure of the table update information 55 is shown in FIG. The table update information 55 includes a table name 41, an overwrite / insertion type 42, an update main key 43, pre-update information 44, post-update information 45, and a request ID 46 as data items. In the table update information 55, when the update process of each table is completed, a record related to the update process is added. Therefore, even when the DBMS 5 receives a data update request from the business processing server 3, if the update does not end normally, a record related to the update process is not generated. As a result, the success or failure of each update process can be determined by referring to the table update information 55 using the request ID 46 as a key.

図1の例では、DBMS5は、在庫マスタテーブル51とトランザクションテーブル53とを有している。そして、テーブル更新情報55には、在庫マスタテーブルの更新情報551とトランザクションテーブルの更新情報552とが格納される。   In the example of FIG. 1, the DBMS 5 has an inventory master table 51 and a transaction table 53. The table update information 55 stores update information 551 of the inventory master table and update information 552 of the transaction table.

業務処理サーバ3は、トランザクション制御を行うトランザクション制御部31と、複数の個別処理331,332を有する業務処理部33とを備える。ここで、個別処理には在庫処理331と、注文処理332とがある。   The business processing server 3 includes a transaction control unit 31 that performs transaction control and a business processing unit 33 having a plurality of individual processes 331 and 332. Here, the individual processes include an inventory process 331 and an order process 332.

トランザクション制御部31は、インタフェースサーバ1から通知されたトランザクションを受け付けて、そのトランザクションに含まれるリクエストに応じた個別処理を業務処理部33から選択して実行させる。そして、トランザクション制御部31は、業務処理部33の個別処理の結果に応じて、リクエストに対する処理が正常に終了したか否か(リクエスト成否)を判定する。さらに、リクエストIDをキーにしてDBMS5からテーブル更新情報55を取得して、リクエスト成否とともにトランザクションに対するリプライとしてインタフェースサーバ1へ返信する。   The transaction control unit 31 receives the transaction notified from the interface server 1 and selects and executes the individual processing corresponding to the request included in the transaction from the business processing unit 33. Then, the transaction control unit 31 determines whether or not the processing for the request has been normally completed (request success / failure) according to the result of the individual processing of the business processing unit 33. Further, the table update information 55 is acquired from the DBMS 5 using the request ID as a key, and is returned to the interface server 1 as a reply to the transaction along with the success or failure of the request.

業務処理部33の各個別処理は、それぞれ所定の業務処理を実行する。さらに、各個別処理は、DBMS5内の各テーブルの参照、更新の際は、DBMS5に対して処理を依頼する。DBMS5へ処理を依頼するときは、リクエストIDもあわせて通知する。   Each individual process of the business processing unit 33 executes a predetermined business process. Further, each individual process requests the DBMS 5 to perform processing when referring to or updating each table in the DBMS 5. When requesting processing to the DBMS 5, the request ID is also notified.

例えば、インタフェースサーバ1から商品発注リクエストのトランザクションが通知されると、トランザクション制御部31は、在庫処理331と注文処理332を順次呼び出してそれぞれの処理を実行させる。ここで、在庫処理331としては、在庫引き当て、在庫マスタテーブル51の更新等を行う。在庫マスタテーブル51の更新は、DBMS5に対して処理を依頼する。注文処理332としては、例えば、商品発注に対する注文IDを採番し、トランザクションテーブル53への注文情報の格納を、DBMS5に対して依頼する。   For example, when a transaction for a product order request is notified from the interface server 1, the transaction control unit 31 sequentially calls the inventory process 331 and the order process 332 to execute the respective processes. Here, as the inventory processing 331, inventory allocation, updating of the inventory master table 51, and the like are performed. The update of the inventory master table 51 requests the DBMS 5 for processing. As the order processing 332, for example, an order ID for product ordering is numbered, and the DBMS 5 is requested to store the order information in the transaction table 53.

次に、図4のフローチャートを用いて、商品発注のトランザクション処理について説明する。   Next, transaction processing for ordering products will be described with reference to the flowchart of FIG.

まず、インタフェースサーバ1が商品発注リクエストを含むトランザクションを受け付けると、リクエストID付与部11が、そのトランザクションにリクエストIDを付与する(S11)。そして、リクエストIDが付与されたトランザクションは、業務処理サーバ3へ通知される。   First, when the interface server 1 receives a transaction including a product order request, the request ID assigning unit 11 assigns a request ID to the transaction (S11). The transaction with the request ID is notified to the business processing server 3.

業務処理サーバ3では、トランザクション制御部31がトランザクションを受け付けると、そのトランザクションに応じた、業務処理部33の個別処理331,332を順次実行させる(S12)。ここで実行される各個別処理の中で、DBMS5内のテーブルを更新するときは、DBMS5に対してテーブルの更新を依頼する(S13)。このテーブルの更新依頼には、受け付けたトランザクションに付与されているリクエストIDが付されている。   In the business processing server 3, when the transaction control unit 31 receives a transaction, the individual processing 331 and 332 of the business processing unit 33 are sequentially executed according to the transaction (S12). In each individual process executed here, when updating the table in the DBMS 5, the DBMS 5 is requested to update the table (S13). The request ID given to the accepted transaction is attached to the update request for this table.

本実施形態では、トランザクション制御部31は、商品発注のトランザクションに対して、まず在庫処理331を実行させる。在庫処理331では、在庫引き当て処理を行った後、DBMS5に在庫マスタテーブル51の更新要求を出力する。   In the present embodiment, the transaction control unit 31 first causes the inventory processing 331 to be executed for a product ordering transaction. In the inventory process 331, after executing the inventory allocation process, an update request for the inventory master table 51 is output to the DBMS 5.

DBMS5がテーブル更新の依頼を受けると、それに応じてテーブルの更新を行う(S14)。そして、このテーブルの更新が成功すると、DBMS5がこのテーブルの更新に基づいてテーブル更新情報55(図3参照)を格納する(S15)。   When the DBMS 5 receives a table update request, the table is updated accordingly (S14). Then, when the update of this table is successful, the DBMS 5 stores the table update information 55 (see FIG. 3) based on the update of this table (S15).

本実施形態では、DBMS5は、在庫マスタテーブル51を更新するとともに、在庫マスタのテーブル更新情報551に、その更新に係る情報を格納する。   In this embodiment, the DBMS 5 updates the inventory master table 51 and stores information related to the update in the table update information 551 of the inventory master.

DBMS5での処理が終了すると、トランザクション制御部31へ個別処理が正常終了したか否かを示す処理結果が通知され、これにより個別処理が終了する(S16)。トランザクション制御部31は、他にも行うべき個別処理があるか否かを判定し、すべての個別業務処理を上記ステップS12〜S16に従って実行させる(S17)。   When the process in the DBMS 5 is completed, the transaction control unit 31 is notified of a processing result indicating whether or not the individual process has been normally completed, thereby ending the individual process (S16). The transaction control unit 31 determines whether there are other individual processes to be performed, and causes all the individual job processes to be executed according to the above steps S12 to S16 (S17).

本実施形態では、上述の在庫処理331が終了すると、トランザクション制御部31がこれに続いて注文処理332を実行させる。つまり、注文処理332について、ステップS12以降の処理が再び実行される。注文処理332では、注文IDを採番して、DBMS5にトランザクションテーブル53の更新要求を出力する。DBMS5は、トランザクションテーブル53を更新するとともに、トランザクションテーブルのテーブル更新情報552に、その更新に係る情報を格納する。そして、これらの処理結果をトランザクション制御部31へ通知して処理を終了する。   In the present embodiment, when the above-described inventory processing 331 ends, the transaction control unit 31 causes the order processing 332 to be executed subsequently thereto. That is, for the order process 332, the processes after step S12 are executed again. In the order process 332, the order ID is numbered and an update request for the transaction table 53 is output to the DBMS 5. The DBMS 5 updates the transaction table 53 and stores information related to the update in the table update information 552 of the transaction table. Then, these processing results are notified to the transaction control unit 31, and the processing is terminated.

すべての個別処理が終了すると(S17:Yes)、トランザクション制御部31は、リクエストの成否を判定する(S18)。すなわち、このトランザクションに基づいて処理を行った個別処理のすべてが正常終了していればトランザクションは成功であり、個別処理のいずれか一つでも正常終了でなければ、トランザクションは不成功(エラー)である。個別処理の成否判定は、DBMS5から通知される処理結果に基づいて行われる。さらに、トランザクション制御部31は、DBMS5からテーブル更新情報55を取得し、ここで取得したテーブル更新情報55と、リクエスト成否及びリクエストIDとを含むリプライを、インタフェースサーバ1へ返信する。   When all the individual processes are completed (S17: Yes), the transaction control unit 31 determines the success or failure of the request (S18). In other words, the transaction is successful if all of the individual processes processed based on this transaction are completed normally, and the transaction is unsuccessful (error) if any one of the individual processes is not completed normally. is there. The success / failure determination of the individual processing is performed based on the processing result notified from the DBMS 5. Further, the transaction control unit 31 acquires the table update information 55 from the DBMS 5, and returns a reply including the acquired table update information 55, the request success / failure, and the request ID to the interface server 1.

本実施形態では、トランザクション制御部31は、在庫処理331及び注文処理332のいずれもが正常終了したときは、リクエスト成否を「成功」とし、いずれか一方または両方ともが正常終了でないときは、リクエスト成否を「エラー」とする。さらに、トランザクション制御部31は、在庫マスタ及びトランザクションテーブルのテーブル更新情報551,552を取得して、インタフェースサーバ1へリプライを返す。   In the present embodiment, the transaction control unit 31 sets the success / failure of the request when both the inventory processing 331 and the order processing 332 are normally completed, and requests either when both or both are not normally completed. The success or failure is defined as “error”. Further, the transaction control unit 31 acquires table update information 551 and 552 of the inventory master and transaction table, and returns a reply to the interface server 1.

インタフェースサーバ1では、業務処理サーバ3からのリプライをトランザクションジャーナル13(図2参照)に格納し、リクエスト成否をトランザクションの処理結果として出力して処理を終了する(S19)。   The interface server 1 stores the reply from the business processing server 3 in the transaction journal 13 (see FIG. 2), outputs the request success / failure as the transaction processing result, and ends the processing (S19).

これにより、トランザクションジャーナル13には、各トランザクション(リクエストID21)について、そのトランザクションに係るリクエストの全処理が成功したか否かを示すリクエスト成否22と、各テーブルに対する個別の処理内容を示すテーブル更新情報23,24が格納される。従って、トランザクションジャーナル13を参照することにより、データの不整合が生じているか否かを確認することができる。例えば、監視装置20がトランザクションジャーナル13の記憶内容を取得して、表示装置などに出力することにより、システム管理者が確認できるようにしてもよい。出力された内容の整合性及び個別の対処方法は、次に説明するトランザクション整合性チェック表で確認できる。   As a result, for each transaction (request ID 21), the transaction journal 13 includes a request success / failure 22 indicating whether or not all the processing of the request relating to the transaction has been successful, and table update information indicating individual processing contents for each table. 23 and 24 are stored. Therefore, by referring to the transaction journal 13, it can be confirmed whether or not data inconsistency has occurred. For example, the monitoring device 20 may acquire the storage contents of the transaction journal 13 and output it to a display device or the like so that the system administrator can confirm it. Consistency of the output contents and individual countermeasures can be confirmed by a transaction consistency check table described below.

図5には、トランザクション整合性チェック表100を示す。このチェック表100は、リクエスト成否22に対して,テーブル更新情報(在庫マスタ)23及びテーブル更新情報(トランザクション)24が登録済みであるか否かに応じて、システム管理者が採るべき対処方法を示す。ここで、テーブル更新情報23,24は、テーブルの更新が正常終了したときにだけ生成されるので、テーブル更新情報23,24が未登録であるときは、テーブルの更新が正常終了していないことを意味する。   FIG. 5 shows a transaction consistency check table 100. This check table 100 indicates a response method to be taken by the system administrator depending on whether or not the table update information (stock master) 23 and the table update information (transaction) 24 have been registered for the request success / failure 22. Show. Here, the table update information 23 and 24 is generated only when the table update is normally completed. Therefore, when the table update information 23 and 24 is not registered, the table update is not normally completed. Means.

例えば、項番3のリクエスト成否22が「エラー」でテーブル更新情報23,24がいずれも「未登録」であるときと、項番4のリクエスト成否22が「成功」でテーブル更新情報23,24がいずれも「登録済み」であるときは、データの整合性はとれているので、データベースに対する特別な対応は必要ない。   For example, when the request success / failure 22 of item number 3 is “error” and the table update information 23 and 24 are both “unregistered”, and when the request success / failure 22 of item number 4 is “success”, the table update information 23 and 24 When both are “registered”, the data is consistent, and no special correspondence to the database is required.

一方、項番2のリクエスト成否22が「エラー」であり、テーブル更新情報23は「登録済み」であるが、テーブル更新情報24は「未登録」であるときは、データの不整合が生じている。つまり、この場合は、在庫マスタテーブル51を正常に更新した後、トランザクションテーブル53の更新に失敗をしているため、不整合となっている。この場合、システム管理者は、リクエストIDによりテーブル更新情報55を検索して、手動でロールバックを行う。   On the other hand, if the request success / failure 22 of item number 2 is “error” and the table update information 23 is “registered”, but the table update information 24 is “unregistered”, data inconsistency has occurred. Yes. In other words, in this case, after the stock master table 51 is updated normally, the transaction table 53 has failed to be updated, and therefore there is a mismatch. In this case, the system administrator searches the table update information 55 by the request ID and manually performs rollback.

2フェーズコミットメントがサポートされているDBMSの場合、上記のようなケースでは、在庫マスタテーブル51の更新処理はロールバックされ、整合性が保たれるようになっている。しかし、本実施形態のように2フェーズコミットメントがサポートされていないDBMSでは、在庫マスタテーブル51のロールバックがされないので、これを検出する必要がある。   In the case of a DBMS that supports two-phase commitment, in the above case, the update process of the inventory master table 51 is rolled back to maintain consistency. However, in the DBMS that does not support the two-phase commitment as in this embodiment, the inventory master table 51 is not rolled back, and this needs to be detected.

また、上記のようにシステム管理者が不整合を検出して、手動でロールバックを行ってもよいが、それ以外に、監視装置20が自動的に不整合判定を行ってその結果をシステム管理者へ通知してもよいし、さらには、自動的にロールバックまで行って、その結果をシステム管理者へ通知してもよい。自動、手動を問わず、不整合の検出及びロールバックの実行は、トランザクション処理とは同期していなくてもよい。   In addition, the system administrator may detect inconsistency and perform rollback manually as described above, but in addition to that, the monitoring device 20 automatically performs inconsistency determination, and the result is system management. The system administrator may be notified, or the system administrator may be notified of the result by automatically performing the rollback. Whether automatic or manual, inconsistency detection and rollback execution need not be synchronized with transaction processing.

なお、項番1,5〜7の場合は、システム障害またはDBMS障害が生じていると考えられるので、それぞれ適切な対応が必要である。   In the case of item numbers 1 to 5-7, it is considered that a system failure or a DBMS failure has occurred, and appropriate measures are required respectively.

上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。   The above-described embodiments of the present invention are examples for explaining the present invention, and are not intended to limit the scope of the present invention only to those embodiments. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention.

例えば、上述した実施形態では、同一のDBMS内の複数のテーブル間でのデータの整合性を担保する場合について説明したが、同様のやり方で異なるDBMS間の整合性を担保することもできる。   For example, in the above-described embodiment, the case where data consistency between a plurality of tables in the same DBMS is secured has been described. However, consistency between different DBMSs can be secured in the same manner.

本発明の一実施形態に係るトランザクション処理システム10とその監視装置20を示す図である。1 is a diagram showing a transaction processing system 10 and its monitoring device 20 according to an embodiment of the present invention. トランザクションジャーナル13のデータ構造の一例を示す図である。3 is a diagram illustrating an example of a data structure of a transaction journal 13. FIG. テーブル更新情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of table update information. 処理手順を示すフローチャートである。It is a flowchart which shows a process sequence. トランザクション整合性チェック表の一例を示す図である。It is a figure which shows an example of a transaction consistency check table.

符号の説明Explanation of symbols

1 インタフェースサーバ
3 業務処理サーバ
5 DBMS
10 トランザクション処理システム
11 リクエストID付与部
13 トランザクションジャーナル
20 監視装置
31 トランザクション制御部
33 業務処理部
51 在庫マスタテーブル
53 トランザクションテーブル
55 テーブル更新情報
1 interface server 3 business processing server 5 DBMS
DESCRIPTION OF SYMBOLS 10 Transaction processing system 11 Request ID provision part 13 Transaction journal 20 Monitoring apparatus 31 Transaction control part 33 Business processing part 51 Inventory master table 53 Transaction table 55 Table update information

Claims (4)

DBMS(Database Management System)と接続され、前記DBMSに格納されたデータの整合性を担保するためのシステムであって、
リクエスト要求元からのリクエストを受け付けると、前記リクエストに識別情報を付与する手段と、
前記DBMSに対して、前記リクエストに付与された識別情報を含む、前記リクエストに基づくデータの更新処理を依頼する更新手段と、
前記更新手段が前記リクエストに基づいて前記DBMSに複数の更新処理を依頼した場合、前記リクエストに付与された識別情報と関連づけられた各更新処理の内容に関する更新情報を、前記DBMSから取得する更新情報取得手段と、
前記更新手段が前記DBMSに依頼した前記複数の更新処理に対する前記DBMSからの処理結果の通知に基づいて、前記更新手段が依頼したすべての更新処理が正常終了したときはリクエスト成功と判定し、前記更新手段が依頼した更新処理のいずれか一つ以上が正常終了でないときはリクエスト不成功と判定するリクエスト成否判定手段と、
前記リクエスト成否判定手段による判定結果と前記更新情報取得手段が取得した更新情報とを、前記リクエストに付与された識別情報で関連づけて記憶する記憶手段と、
前記リクエスト成否判定手段による判定結果を、前記リクエスト要求元に対して出力する手段と、
前記記憶手段の記憶内容に基づいて、前記DBMSに格納された複数のテーブル間で不整合が生じているか否かを判定する整合性判定手段であって、
ある識別情報が付与されているリクエストの判定結果がリクエスト不成功であり、かつ、当該識別情報に係る一部の前記更新情報が記憶されているときは不整合と判定し、
ある識別情報が付与されているリクエストの判定結果がリクエスト不成功であっても、当該識別情報に係る前記更新情報が記憶されていないときは不整合ではないと判定する、前記整合性判定手段と、
前記整合性判定手段により不整合が生じていると判定されたときに、当該不整合が検出されたことを通知する手段と、を備えたシステム。
A system connected to a DBMS (Database Management System) for ensuring the integrity of data stored in the DBMS,
Upon receiving a request from a request request source, means for giving identification information to the request;
Update means for requesting the DBMS to update data based on the request, including identification information given to the request;
When the update unit requests the DBMS to perform a plurality of update processes based on the request, update information related to the contents of each update process associated with the identification information given to the request is acquired from the DBMS Acquisition means;
Based on the notification of the processing results from the DBMS for the plurality of update processes requested by the DBMS by the update unit, when all the update processes requested by the update unit have been normally completed, the request is determined to be successful, A request success / failure determination means for determining that the request is unsuccessful when at least one of the update processes requested by the update means is not normally terminated ;
Storage means for storing the determination result by the request success / failure determination means and the update information acquired by the update information acquisition means in association with the identification information given to the request;
Means for outputting the determination result by the request success / failure determination means to the request request source;
Consistency determining means for determining whether or not inconsistency occurs between a plurality of tables stored in the DBMS based on the storage content of the storage means;
When the determination result of a request to which certain identification information is given is a request unsuccessful and when some of the update information related to the identification information is stored, it is determined as inconsistent
The consistency determination means for determining that there is no inconsistency when the update information related to the identification information is not stored even if the determination result of the request to which certain identification information is given is a request unsuccessful; ,
And a means for notifying that the inconsistency is detected when it is determined by the consistency determining means that the inconsistency has occurred .
前記更新情報取得手段が取得した更新情報は、前記更新手段が依頼した更新処理別になっていて、
各更新処理が正常終了したときに、当該更新処理に関する更新情報が前記DBMSによって生成されることを特徴とする請求項1記載のシステム。
The update information acquired by the update information acquisition means is classified by the update process requested by the update means,
The system according to claim 1, wherein when each update process ends normally, update information related to the update process is generated by the DBMS.
DBMS(Database Management System)を利用するシステムが、前記DBMSに格納された複数のテーブル間のデータの整合性を担保するための方法であって、
リクエスト要求元からリクエストを受け付けると、前記リクエストに識別情報を付与するステップと、
前記DBMSに対して、前記リクエストに基づいて複数の更新処理を依頼するステップと、
前記リクエストに付与された識別情報と関連づけられた各更新処理の内容に関する更新情報を、前記DBMSから取得するステップと、
前記依頼したすべての更新処理に対する前記DBMSからの処理結果の通知に基づいて、前記依頼したすべての更新処理が正常終了したときはリクエスト成功と判定し、前記依頼した更新処理のいずれか一つ以上が正常終了でないときはリクエスト不成功と判定するステップと、
前記リクエスト成否の判定結果と前記取得した更新情報とを、前記リクエストに付与された識別情報で関連づけて記憶手段に記憶するステップと、
前記リクエスト成否判定結果を、前記リクエスト要求元に対して出力するステップと、
前記記憶手段に、ある識別情報が付与されているリクエストの判定結果がリクエスト不成功と記憶されていて、かつ、当該識別情報に係る一部の前記更新情報が記憶されているときは、前記DBMSに格納された複数のテーブル間で不整合が生じていると判定し、ある識別情報が付与されているリクエストの判定結果がリクエスト不成功であっても、当該識別情報に係る前記更新情報が記憶されていないときは不整合ではないと判定するステップと、
前記判定により不整合が生じていると判定されると、当該不整合が検出されたことを通知するステップと、を有する方法。
A system using a DBMS (Database Management System) is a method for ensuring data consistency among a plurality of tables stored in the DBMS,
When receiving a request from the request request source, giving identification information to the request;
Requesting the DBMS to perform a plurality of update processes based on the request;
Obtaining update information about the contents of each update process associated with the identification information given to the request from the DBMS;
Based on the notification of the processing results from the DBMS for all the requested update processes, when all the requested update processes are normally completed, it is determined that the request is successful, and any one or more of the requested update processes. A step that determines that the request is unsuccessful when is not successful ,
Storing the determination result of success or failure of the request and the acquired update information in a storage unit in association with the identification information given to the request;
Outputting a determination result of success or failure of the request to the request request source;
When the determination result of a request to which certain identification information is given is stored in the storage means as a request unsuccessful and a part of the update information related to the identification information is stored, the DBMS Even if it is determined that there is a mismatch between the plurality of tables stored in the table, and the determination result of the request to which certain identification information is assigned is a request unsuccessful, the update information related to the identification information is stored. Determining that it is not inconsistent when not done,
And a step of notifying that the inconsistency is detected when it is determined by the determination that an inconsistency has occurred .
DBMS(Database Management System)に格納されたデータの整合性を担保するためのコンピュータプログラムであって、
コンピュータに実行されると、
リクエスト要求元からリクエストを受け付けると、前記リクエストに識別情報を付与するステップと、
前記DBMSに対して、前記リクエストに基づいて複数の更新処理を依頼するステップと、
前記リクエストに付与された識別情報と関連づけられた各更新処理の内容に関する更新情報を、前記DBMSから取得するステップと、
前記依頼したすべての更新処理に対する前記DBMSからの処理結果の通知に基づいて、前記依頼したすべての更新処理が正常終了したときはリクエスト成功と判定し、前記依頼した更新処理のいずれか一つ以上が正常終了でないときはリクエスト不成功と判定するステップと、
前記リクエスト成否の判定結果と前記取得した更新情報とを、前記リクエストに付与された識別情報で関連づけて記憶手段に記憶するステップと、
前記リクエスト成否判定結果を、前記リクエスト要求元に対して出力するステップと、
前記記憶手段に、ある識別情報が付与されているリクエストの判定結果がリクエスト不成功と記憶されていて、かつ、当該識別情報に係る一部の前記更新情報が記憶されているときは、前記DBMSに格納された複数のテーブル間で不整合が生じていると判定し、ある識別情報が付与されているリクエストの判定結果がリクエスト不成功であっても、当該識別情報に係る前記更新情報が記憶されていないときは不整合ではないと判定するステップと、
前記判定により不整合が生じていると判定されると、当該不整合が検出されたことを通知するステップと、が行われるコンピュータプログラム。
A computer program for ensuring the integrity of data stored in a DBMS (Database Management System),
When executed on a computer,
When receiving a request from the request request source, giving identification information to the request;
Requesting the DBMS to perform a plurality of update processes based on the request;
Obtaining update information about the contents of each update process associated with the identification information given to the request from the DBMS;
Based on the notification of the processing results from the DBMS for all the requested update processes, when all the requested update processes are normally completed, it is determined that the request is successful, and any one or more of the requested update processes. A step that determines that the request is unsuccessful when is not successful ,
Storing the determination result of success or failure of the request and the acquired update information in a storage unit in association with the identification information given to the request;
Outputting a determination result of success or failure of the request to the request request source;
When the determination result of a request to which certain identification information is given is stored in the storage means as a request unsuccessful and a part of the update information related to the identification information is stored, the DBMS Even if it is determined that there is a mismatch between the plurality of tables stored in the table, and the determination result of the request to which certain identification information is assigned is a request unsuccessful, the update information related to the identification information is stored. Determining that it is not inconsistent when not done,
And a step of notifying that the inconsistency is detected when it is determined by the determination that an inconsistency has occurred .
JP2005076202A 2005-03-17 2005-03-17 System for ensuring the integrity of data stored in DBMS Expired - Fee Related JP4628830B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005076202A JP4628830B2 (en) 2005-03-17 2005-03-17 System for ensuring the integrity of data stored in DBMS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005076202A JP4628830B2 (en) 2005-03-17 2005-03-17 System for ensuring the integrity of data stored in DBMS

Publications (2)

Publication Number Publication Date
JP2006260121A JP2006260121A (en) 2006-09-28
JP4628830B2 true JP4628830B2 (en) 2011-02-09

Family

ID=37099310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005076202A Expired - Fee Related JP4628830B2 (en) 2005-03-17 2005-03-17 System for ensuring the integrity of data stored in DBMS

Country Status (1)

Country Link
JP (1) JP4628830B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6452560B2 (en) * 2015-06-24 2019-01-16 ソフラ株式会社 Data processing system and data processing server of the system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0464146A (en) * 1990-07-04 1992-02-28 Hitachi Ltd Optimizing system for commitment processing in distributed system
JPH08235043A (en) * 1995-02-28 1996-09-13 N T T Data Tsushin Kk Cooperative distributed system
JP2000293416A (en) * 1999-04-05 2000-10-20 Casio Comput Co Ltd Database processor and storage medium
JP2005025432A (en) * 2003-07-01 2005-01-27 Fujitsu Ltd Transaction processing method, transaction controller, and transaction control program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0464146A (en) * 1990-07-04 1992-02-28 Hitachi Ltd Optimizing system for commitment processing in distributed system
JPH08235043A (en) * 1995-02-28 1996-09-13 N T T Data Tsushin Kk Cooperative distributed system
JP2000293416A (en) * 1999-04-05 2000-10-20 Casio Comput Co Ltd Database processor and storage medium
JP2005025432A (en) * 2003-07-01 2005-01-27 Fujitsu Ltd Transaction processing method, transaction controller, and transaction control program

Also Published As

Publication number Publication date
JP2006260121A (en) 2006-09-28

Similar Documents

Publication Publication Date Title
US11288002B2 (en) System and method for providing high availability data
KR102096249B1 (en) Processing mutations for a remote database
US7953744B2 (en) Database change verifier
US20150278324A1 (en) Quarantine and repair of replicas in a quorum-based data storage system
US8244675B2 (en) Method and apparatus for updating a database using table staging and queued relocation and deletion
US20080005189A1 (en) Computer readable recording medium having stored therein database synchronizing process program, and apparatus for and method of performing database synchronizing process
EP2011045A1 (en) Concurrency control within an enterprise resource planning system
CN107368513B (en) Method and device for updating client database
CN112965936A (en) Processing method, device, equipment and storage medium of heterogeneous distributed model
US9342540B2 (en) Method and system for creating and maintaining unique data repository
US9766949B2 (en) System and method for locking exclusive access to a divided resource
US8533702B2 (en) Dynamically resolving fix groups for managing multiple releases of multiple products on multiple systems
US7146385B1 (en) System and method for application-transparent synchronization with a persistent data store
US9015116B2 (en) Consistent replication of transactional updates
JP4628830B2 (en) System for ensuring the integrity of data stored in DBMS
US20110320409A1 (en) Guaranteed in-flight sql insert operation support during an rac database failover
CN111127088B (en) Method, device, computer equipment and storage medium for realizing final consistency
CN108959548B (en) Service request processing method and device
CN110955460A (en) Service process starting method and device, electronic equipment and storage medium
JP2006350411A (en) Recovery method, recovery system and recovery program for distributed database
CN110765144B (en) Distributed heterogeneous database data processing method and device
US8874539B2 (en) Object identity and addressability
JP2006146589A (en) Processing system and arbitration server
CN108958983B (en) Data difference-based restoration method and device, storage medium and user equipment
US20240152491A1 (en) Database metadata update validation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070919

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101109

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101110

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees