JP2016161980A - Database system, database server, database server program, database client, and database client program - Google Patents

Database system, database server, database server program, database client, and database client program Download PDF

Info

Publication number
JP2016161980A
JP2016161980A JP2015037257A JP2015037257A JP2016161980A JP 2016161980 A JP2016161980 A JP 2016161980A JP 2015037257 A JP2015037257 A JP 2015037257A JP 2015037257 A JP2015037257 A JP 2015037257A JP 2016161980 A JP2016161980 A JP 2016161980A
Authority
JP
Japan
Prior art keywords
sequence number
database
data
client
server
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.)
Granted
Application number
JP2015037257A
Other languages
Japanese (ja)
Other versions
JP6398786B2 (en
Inventor
阿部 哲也
Tetsuya Abe
哲也 阿部
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2015037257A priority Critical patent/JP6398786B2/en
Publication of JP2016161980A publication Critical patent/JP2016161980A/en
Application granted granted Critical
Publication of JP6398786B2 publication Critical patent/JP6398786B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To perform data update of database using continuous sequence numbers even when a plurality of database client is available.SOLUTION: The present invention relates to a database system including a plurality of database clients and a database server connected to the database clients. The database server of the present invention answers by transmitting the latest sequence number upon receipt of a reading request of the database client sequence number, and checks for double registration of the sequence number upon receipt of a data update request to transmit error information to the database client in the case of the double registration. The database client of the present invention re-executes the process, which starts from reading of the sequence number, when receiving the error information from the database server during data update.SELECTED DRAWING: Figure 1

Description

本発明は、データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムに関し、例えば、連続したシーケンス番号に基づくデータ管理を行うシステムに適用し得る。   The present invention relates to a database system, a database server, a database server program, a database client, and a database client program, and can be applied to a system that performs data management based on continuous sequence numbers, for example.

一般に、データベースサーバ(以下、「DBサーバ」とも呼ぶ)において、順序性を持つデータを管理する際、データ(レコード)登録時、各データに対して、登録順序番号となる、シーケンス番号を付与する。   In general, when managing data with order in a database server (hereinafter also referred to as “DB server”), a sequence number that is a registration order number is assigned to each data when registering the data (record). .

このシーケンス番号は、例えば、データベースクライアント(以下、「DBクライアント」とも呼ぶ)上のアプリケーション(以下、「クライアントAPL」とも呼ぶ)がその順序性を管理することで、連続したシーケンス番号の取得が可能となる。   For example, an application (hereinafter, also referred to as “client APL”) on a database client (hereinafter also referred to as “DB client”) manages the sequence number so that sequential sequence numbers can be acquired. It becomes.

この方式の場合、DBクライアントが1台の場合はDBサーバ上で、シーケンス番号によるデータの順序性が確保できる。しかしながら、DBクライアントが複数台となった場合には、各クライアントAPLが独自にシーケンス番号を管理しているため、各DBクライアント単位では、連続したシーケンス番号が付与されている。しかし、DBサーバ上のデータにおいて、一元的なシーケンス番号とならない場合がある。   In the case of this method, when there is one DB client, the order of data by sequence numbers can be ensured on the DB server. However, when there are a plurality of DB clients, each client APL independently manages a sequence number, and therefore, consecutive sequence numbers are assigned to each DB client. However, the data on the DB server may not be a unified sequence number.

例えば、この問題を解決する従来の方式として、ORACLE(登録商標)データベースが具備するシーケンス管理機能(CREATE SEQUENCE句)がある(非特許文献1参照)。この機能の利用によって、DBサーバ側でシーケンス番号を払い出すため、DBクライアントが複数台ある場合でも、上記の課題は解決できる。   For example, as a conventional method for solving this problem, there is a sequence management function (CREATE SEQUENCE phrase) provided in the ORACLE (registered trademark) database (see Non-Patent Document 1). By using this function, since the sequence number is paid out on the DB server side, the above problem can be solved even when there are a plurality of DB clients.

Oracle,Oracle(R) Database SQL言語リファレンス11gリリース2 (11.2)“CREATE SEQUENCE”,[Online],INTERNET,[2015年2月13日検索],<URL:http://docs.oracle.com/cd/E16338_01/server.112/b56299/statements_6015.htm>Oracle, Oracle (R) Database SQL Language Reference 11g Release 2 (11.2) "CREATE SEQUENCE", [Online], INTERNET, [Search February 13, 2015], <URL: http://docs.oracle.com/ cd / E16338_01 / server.112 / b56299 / statements_6015.htm>

しかし、従来のDBサーバ(例えば、ORACLEのDBサーバ)のシーケンス番号の払い出しにおいては、一意となる番号を払い出すことは保証しているが、条件により連続した番号の払い出しが保証されているわけではない。   However, in the sequence number allocation of a conventional DB server (for example, an ORACLE database server), it is guaranteed that a unique number will be allocated, but it is guaranteed that consecutive numbers will be allocated depending on conditions. is not.

つまり、従来のDBサーバでは、通常の運用において、例えば、データ登録要求が4つしか発生していない場合でも、払いだされるシーケンス番号が、連続しない可能性がある。具体的には、例えば、DBサーバから払い出されるシーケンス番号が000001、000002、000004、000007のように不連続となる可能性がある。これは、従来のDBサーバにおいて、シーケンス番号の取得を要求するDBクライアントの競合した場合等(例えば、競合等によりコミットが失敗した場合等)に発生する。   In other words, in the conventional DB server, even when only four data registration requests are generated in normal operation, for example, the sequence numbers to be paid out may not be consecutive. Specifically, for example, the sequence numbers issued from the DB server may be discontinuous such as 000001, 000002, 000004, and 000007. This occurs when a DB client that requests acquisition of a sequence number competes in a conventional DB server (for example, when a commit fails due to a conflict or the like).

また、従来のDBサーバにおいて、登録データがロールバックされた場合も払い出された番号は欠番となる。   Further, in the conventional DB server, even when the registration data is rolled back, the issued number is a missing number.

従って、従来のDBサーバでは、上述のようなシーケンス番号の制御機能により、データを管理する場合、欠番となっているシーケンス番号(例えば、上述の例では000003、000005、000006)のデータは、元々存在しないデータなのか、存在していたが削除されたデータなのかを判別することは難しい。このような場合、従来のDBサーバでは、別途、削除履歴データの生成や、削除フラグによる管理等、アプリケーションプログラムによりカバーしなければならない条件が必要となる。   Therefore, in the conventional DB server, when data is managed by the sequence number control function as described above, the data of the missing sequence numbers (for example, 000003, 000005, and 000006 in the above example) It is difficult to determine whether it is non-existent data or data that existed but was deleted. In such a case, the conventional DB server requires conditions that must be covered by an application program such as generation of deletion history data and management by a deletion flag.

また、従来のORACLEのDBサーバのシーケンス管理機能では、CREATE SEQUENCE句を発行したDBサーバ(=DBサーバ上で起動されているインスタンス)上でのみ、シーケンス番号の管理が有効となる。したがって、従来のORACLEのDBサーバを採用したシステムでは、DBサーバが冗長化されたシステム構成で利用が難しいという問題があった。   In the sequence management function of the conventional ORACLE DB server, the management of the sequence number is effective only on the DB server (= instance activated on the DB server) that issued the CREATE SEQUENCE clause. Therefore, in a system employing a conventional ORACLE DB server, there is a problem that it is difficult to use in a system configuration in which the DB server is made redundant.

以上のような問題に鑑みて、複数のデータベースクライアント等が存在する場合でも、連続したシーケンス番号を用いてデータベースのデータ更新を行うことができるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムが望まれている。   In view of the above problems, a database system, a database server, a database server program, a database client, and a database capable of updating database data using consecutive sequence numbers even when a plurality of database clients exist. A client program is desired.

第1の本発明は、複数のデータベースクライアントと、上記データベースクライアントに接続するデータベースサーバとを有するデータベースシステムにおいて、(1)上記データベースサーバは、(1−1)複数のデータとシーケンス番号とが対応付けられたデータベースを管理するデータベース管理手段と、(1−2)上記データベースクライアントから上記データベースのシーケンス番号の読出し要求を受信すると、上記データベース管理手段で管理する最新のシーケンス番号を返答するシーケンス番号送信手段と、(1−3)上記データベースクライアントから、シーケンス番号を用いた上記データベースに対するデータ更新要求を受信すると、上記データベースで、当該シーケンス番号に基づいたデータが登録済であるか未登録であるかを判別する処理を行う判別手段と、(1−4)上記判別手段により登録済と判別された場合に、上記データ更新要求の送信元の上記データベースクライアントに、データ更新失敗のエラー情報を送信するエラー情報送信手段とを備え、(1−5)上記データベース管理手段は、上記判別手段により未登録と判別された場合、上記データ更新要求に基づいて上記データベースのデータ更新を行い、(2)それぞれの上記データベースクライアントは、(2−1)上記データベースサーバに、上記データベースの最新のシーケンス番号の読出し要求を行うシーケンス番号要求手段と、(2−2)上記シーケンス番号要求手段が取得したシーケンス番号に基づいて新たなシーケンス番号を生成するシーケンス番号生成手段と、(2−3)上記シーケンス番号生成手段が生成したシーケンス番号を用いて、上記データベースサーバに上記データベースのデータ更新を要求するデータ更新要求手段と、(2−4)上記データベースサーバから、データ更新失敗のエラー情報が通知された場合に、上記シーケンス番号要求手段にシーケンス番号の読出し要求を再実行させ、上記シーケンス番号生成手段に再度取得されたシーケンス番号に基づいてシーケンス番号を再生成させ、上記データ更新要求手段に再生成されたシーケンス番号に基づいてデータ更新要求を再実行させる再実行手段とを有することを特徴とする。   The first aspect of the present invention is a database system having a plurality of database clients and a database server connected to the database client. (1) The database server is (1-1) a plurality of data and sequence numbers correspond to each other. A database management means for managing the attached database; and (1-2) a sequence number transmission for returning a latest sequence number managed by the database management means when a request for reading the sequence number of the database is received from the database client. (1-3) When a data update request for the database using a sequence number is received from the database client, the data based on the sequence number is registered or unregistered in the database. (1-4) When the determination unit determines that the registration has been completed, error information indicating a data update failure is sent to the database client that is the transmission source of the data update request. (1-5) The database management means updates the data in the database based on the data update request when it is determined as unregistered by the determination means, and (2-5) Each database client includes (2-1) sequence number requesting means for requesting the database server to read the latest sequence number of the database, and (2-2) the sequence acquired by the sequence number requesting means. Sequence number generating means for generating a new sequence number based on the number; (2-3) above Using the sequence number generated by the sequence number generation means, data update request means for requesting the database server to update the data of the database, and (2-4) error information indicating data update failure is notified from the database server. The sequence number requesting unit re-executes the sequence number read request, the sequence number generating unit regenerates the sequence number based on the sequence number obtained again, and the data update requesting unit regenerates the sequence number. And re-execution means for re-executing the data update request based on the sequence number assigned.

第2の本発明は、複数のデータベースクライアントに接続するデータベースサーバにおいて、(1)複数のデータとシーケンス番号とが対応付けられたデータベースを管理するデータベース管理手段と、(2)上記データベースクライアントから上記データベースのシーケンス番号の読出し要求を受信すると、上記データベース管理手段で管理する最新のシーケンス番号を返答するシーケンス番号送信手段と、(3)上記データベースクライアントから、シーケンス番号を用いた上記データベースに対するデータ更新要求を受信すると、上記データベースで、当該シーケンス番号に基づいたデータが登録済であるか未登録であるかを判別する処理を行う判別手段と、(4)上記判別手段により登録済と判別された場合に、上記データ更新要求の送信元の上記データベースクライアントに、データ更新失敗のエラー情報を送信するエラー情報送信手段とを備え、(5)上記データベース管理手段は、上記判別手段により未登録と判別された場合、上記データ更新要求に基づいて上記データベースのデータ更新を行うことを特徴とする。   According to a second aspect of the present invention, in the database server connected to a plurality of database clients, (1) a database management means for managing a database in which a plurality of data and sequence numbers are associated; A sequence number transmitting means for returning the latest sequence number managed by the database management means upon receiving a database sequence number read request; and (3) a data update request for the database using the sequence number from the database client. And (4) a case where it is determined that the data based on the sequence number is registered or not registered in the database, and In the above data update request An error information transmitting unit that transmits error information indicating data update failure to the database client of the transmission source; and (5) the database management unit, when the determination unit determines that the data update request is not registered, Based on the above, the database data is updated.

第3の本発明のデータベースサーバプログラムは、複数のデータベースクライアントに接続するデータベースサーバに搭載されたコンピュータを、(1)複数のデータとシーケンス番号とが対応付けられたデータベースを管理するデータベース管理手段と、(2)上記データベースクライアントから上記データベースのシーケンス番号の読出し要求を受信すると、上記データベース管理手段で管理する最新のシーケンス番号を返答するシーケンス番号送信手段と、(3)上記データベースクライアントから、シーケンス番号を用いた上記データベースに対するデータ更新要求を受信すると、上記データベースで、当該シーケンス番号に基づいたデータが登録済であるか未登録であるかを判別する処理を行う判別手段と、(4)上記判別手段により登録済と判別された場合に、上記データ更新要求の送信元の上記データベースクライアントに、データ更新失敗のエラー情報を送信するエラー情報送信手段として機能させ、(5)上記データベース管理手段は、上記判別手段により未登録と判別された場合、上記データ更新要求に基づいて上記データベースのデータ更新を行うことを特徴とする。   A database server program according to a third aspect of the present invention provides: (1) database management means for managing a database in which a plurality of data and sequence numbers are associated with each other; a computer installed in a database server connected to a plurality of database clients; (2) sequence number transmission means for returning the latest sequence number managed by the database management means upon receiving a request for reading the sequence number of the database from the database client; and (3) sequence number from the database client. Receiving a data update request for the database using, and a determination means for performing processing for determining whether the data based on the sequence number is registered or unregistered in the database; and (4) the determination To the means When the data registration request is determined to be registered, the database client that is the transmission source of the data update request functions as an error information transmission unit that transmits error information indicating a data update failure. (5) When it is determined that the data is not registered by the determining means, the database is updated based on the data update request.

第4の本発明は、データベースサーバに接続するデータベースクライアントにおいて、(1)上記データベースサーバに、上記データベースサーバが備えるデータベースの最新のシーケンス番号の読出し要求を行うシーケンス番号要求手段と、(2)上記シーケンス番号要求手段が取得したシーケンス番号に基づいて新たなシーケンス番号を生成するシーケンス番号生成手段と、(3)上記シーケンス番号生成手段が生成したシーケンス番号を用いて、上記データベースサーバに上記データベースのデータ更新を要求するデータ更新要求手段と、(4)上記データベースサーバから、データ更新失敗のエラー情報が通知された場合に、上記シーケンス番号要求手段にシーケンス番号の読出し要求を再実行させ、上記シーケンス番号生成手段に再度取得されたシーケンス番号に基づいてシーケンス番号を再生成させ、上記データ更新要求手段に再生成されたシーケンス番号に基づいてデータ更新要求を再実行させる再実行手段とを有することを特徴とする。   According to a fourth aspect of the present invention, in the database client connected to the database server, (1) sequence number requesting means for requesting the database server to read out the latest sequence number of the database included in the database server; Sequence number generating means for generating a new sequence number based on the sequence number acquired by the sequence number requesting means; and (3) using the sequence number generated by the sequence number generating means to store the data in the database on the database server. A data update request means for requesting update; and (4) when the error information indicating data update failure is notified from the database server, the sequence number request means re-executes a sequence number read request, and the sequence number In the generation means Based on the time acquired sequence numbers to regenerate the sequence number, and having a re-executing means for re-execute the data update request based on re-generated sequence number to the data update request means.

第5の本発明のデータベースクライアントプログラムは、データベースサーバに接続するデータベースクライアントに搭載されたコンピュータを、(1)上記データベースサーバに、上記データベースサーバが備えるデータベースの最新のシーケンス番号の読出し要求を行うシーケンス番号要求手段と、(2)上記シーケンス番号要求手段が取得したシーケンス番号に基づいて新たなシーケンス番号を生成するシーケンス番号生成手段と、(3)上記シーケンス番号生成手段が生成したシーケンス番号を用いて、上記データベースサーバに上記データベースのデータ更新を要求するデータ更新要求手段と、(4)上記データベースサーバから、データ更新失敗のエラー情報が通知された場合に、上記シーケンス番号要求手段にシーケンス番号の読出し要求を再実行させ、上記シーケンス番号生成手段に再度取得されたシーケンス番号に基づいてシーケンス番号を再生成させ、上記データ更新要求手段に再生成されたシーケンス番号に基づいてデータ更新要求を再実行させる再実行手段として機能させることを特徴とする。   According to a fifth aspect of the present invention, there is provided a database client program comprising: (1) a sequence for making a request for reading a latest sequence number of a database included in the database server, to the database server connected to the database server; A number requesting means, (2) a sequence number generating means for generating a new sequence number based on the sequence number acquired by the sequence number requesting means, and (3) a sequence number generated by the sequence number generating means. A data update request means for requesting the database server to update the data of the database; and (4) when error information indicating a data update failure is notified from the database server, a sequence number is sent to the sequence number request means. Re-execute the read request, cause the sequence number generation means to regenerate the sequence number based on the sequence number acquired again, and re-execute the data update request based on the sequence number regenerated to the data update request means It is characterized by functioning as a re-execution means.

本発明によれば、複数のデータベースクライアント等が存在する場合でも、連続したシーケンス番号を用いてデータベースのデータ更新を行うことができる。   According to the present invention, even when there are a plurality of database clients and the like, database data can be updated using consecutive sequence numbers.

第1の実施形態に係るデータベースシステム(DBシステム)の全体構成について示したブロック図である。It is the block diagram shown about the whole structure of the database system (DB system) which concerns on 1st Embodiment. 第1の実施形態に係るデータベースクライアントの機能的構成のについて示したブロック図である。It is the block diagram shown about the functional structure of the database client which concerns on 1st Embodiment. 第1の実施形態に係るデータベースを構成する表(データ)の構成例について示した説明図である。It is explanatory drawing shown about the structural example of the table | surface (data) which comprises the database which concerns on 1st Embodiment. 第1の実施形態に係るデータベースクライアントの動作について示したフローチャートである。It is the flowchart shown about operation | movement of the database client which concerns on 1st Embodiment. 第1の実施形態に係るデータベースシステムの動作について示したシーケンス図である。It is the sequence diagram shown about operation | movement of the database system which concerns on 1st Embodiment. 第1の実施形態に係るデータベースを構成する表(データ)の遷移について示した説明図である。It is explanatory drawing shown about the transition of the table | surface (data) which comprises the database which concerns on 1st Embodiment. 第2の実施形態に係るデータベースシステム(DBシステム)の全体構成について示したブロック図である。It is the block diagram shown about the whole structure of the database system (DB system) which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースを構成するシーケンス番号管理表の構成例について示した説明図である。It is explanatory drawing shown about the structural example of the sequence number management table | surface which comprises the database which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースを構成する表(データ)の構成例について示した説明図である。It is explanatory drawing shown about the structural example of the table | surface (data) which comprises the database which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースクライアントの動作について示したフローチャートである。It is the flowchart shown about operation | movement of the database client which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースクライアントからデータベースサーバに送信されるSQL文の例について示した説明図である。It is explanatory drawing shown about the example of the SQL sentence transmitted to the database server from the database client which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースシステムの動作について示したシーケンス図(その1)である。It is the sequence diagram (the 1) shown about operation | movement of the database system which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースシステムの動作について示したシーケンス図(その2)である。It is the sequence diagram (the 2) shown about operation | movement of the database system which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースを構成するシーケンス番号管理表の遷移について示した説明図(その1)である。It is explanatory drawing (the 1) shown about the transition of the sequence number management table | surface which comprises the database which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースを構成する表(データ)の遷移について示した説明図(その1)である。It is explanatory drawing (the 1) shown about the transition of the table | surface (data) which comprises the database which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースシステムの動作について示したシーケンス図(その3)である。It is the sequence diagram (the 3) shown about operation | movement of the database system which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースを構成するシーケンス番号管理表の遷移について示した説明図(その2)である。It is explanatory drawing (the 2) shown about the transition of the sequence number management table | surface which comprises the database which concerns on 2nd Embodiment. 第2の実施形態に係るデータベースを構成する表(データ)の遷移について示した説明図(その2)である。It is explanatory drawing (the 2) shown about the transition of the table | surface (data) which comprises the database which concerns on 2nd Embodiment.

(A)第1の実施形態
以下、本発明によるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムの第1の実施形態を、図面を参照しながら詳述する。
(A) First Embodiment Hereinafter, a first embodiment of a database system, a database server, a database server program, a database client, and a database client program according to the present invention will be described in detail with reference to the drawings.

(A−1)第1の実施形態の構成
図1は、この実施形態のDBシステム1の全体構成を示すブロック図である。
(A-1) Configuration of the First Embodiment FIG. 1 is a block diagram showing the overall configuration of the DB system 1 of this embodiment.

DBシステム1は、DBサーバ10と、2つのDBクライアント20(20−1、20−2)を有している。なお、DBシステム1において配置されるDBサーバ10及びDBクライアント20の数は限定されないものである。DBシステム1において、各装置はネットワークNに接続し、相互に通信可能であるものとする。   The DB system 1 includes a DB server 10 and two DB clients 20 (20-1 and 20-2). Note that the number of DB servers 10 and DB clients 20 arranged in the DB system 1 is not limited. In the DB system 1, each device is connected to the network N and can communicate with each other.

DBサーバ10は、例えば、CPUやメモリ等を有するコンピュータに、データベースサーバプログラムを含むプログラムをインストールすることにより構築することができる。また、各DBクライアント20についても同様にコンピュータにデータベースクライアントプログラムを含むプログラムをインストールすることにより構築することができる。   The DB server 10 can be constructed, for example, by installing a program including a database server program in a computer having a CPU, a memory, and the like. Similarly, each DB client 20 can be constructed by installing a program including a database client program in a computer.

DBサーバ10は、データベースのデータを記憶するためのDBファイルシステム12と、各DBクライアント20にDBファイルシステム12に記憶されたデータベースを利用したサービスを提供(トランザクションの処理を実行)するサーバプロセス11とを有している。サーバプロセス11は、例えば、RDBMS(Relational Database Management System)等のデータベースのミドルウェアを用いて構築することができる。   The DB server 10 provides a DB file system 12 for storing database data, and a server process 11 that provides each DB client 20 with a service using the database stored in the DB file system 12 (executes transaction processing). And have. The server process 11 can be constructed using database middleware such as an RDBMS (Relational Database Management System).

この実施形態では、DBファイルシステム12に、表Aが格納されているものとして説明する。そして、この実施形態では、サーバプロセス11は、DBクライアント20(クライアントAPL21)の要求に応じて、表Aのデータ(レコード)を更新する。   In this embodiment, description will be made on the assumption that the table A is stored in the DB file system 12. In this embodiment, the server process 11 updates the data (record) in Table A in response to a request from the DB client 20 (client APL 21).

図3は表Aの構成例について示した説明図である。   FIG. 3 is an explanatory diagram showing a configuration example of Table A.

図3では、1行で1つのデータ(レコード)を図示している。なお、この実施形態では、DBサーバ10はテーブル形式の表Aを処理するものとして説明するが、DBサーバ10で処理する具体的なデータベースの構造については限定されないものである。図3に示すように表Aの各データには、当該データの更新に係るシーケンス番号のカラムを含む複数の項目のカラムが含まれている。   In FIG. 3, one data (record) is illustrated in one line. In this embodiment, the DB server 10 is described as processing the table A in the table format, but the specific database structure processed by the DB server 10 is not limited. As shown in FIG. 3, each data in Table A includes a plurality of item columns including a sequence number column related to the update of the data.

次に、DBサーバ10(サーバプロセス11)における表Aの処理について説明する。   Next, processing of Table A in the DB server 10 (server process 11) will be described.

まず、DBサーバ10(サーバプロセス11)では、シーケンス番号のカラム(以下、「シーケンス番号カラム」とも呼ぶ)を含む表(例えば、表A)の定義において、「シーケンス番号カラムに一意性を持たせる」必要がある。表Aに対して、上述の条件が付与されていれば、例えば、2台のDBクライアント20−1、20−2から、同一のシーケンス番号でデータを登録しようとした際に、後発の要求については、サーバプロセス11でシーケンス番号の二重登録エラーを検出することが可能となる。このとき、サーバプロセス11は、後発の要求に係るDBクライアント20に対して二重登録エラーを通知することができる。   First, in the DB server 10 (server process 11), in the definition of a table (for example, table A) including a sequence number column (hereinafter also referred to as “sequence number column”), “the sequence number column is made unique. "There is a need. If the above conditions are given to Table A, for example, when data is registered with the same sequence number from two DB clients 20-1 and 20-2, a subsequent request will be made. Makes it possible for the server process 11 to detect a double registration error of the sequence number. At this time, the server process 11 can notify the DB client 20 related to the subsequent request of a double registration error.

DBサーバ10上でシーケンス番号を持つ表の定義の一意性とは、例えば、RDBMSがORACLEデータベースの場合は、シーケンス番号カラムに対して一意性制約である「ユニークキー制約」を付与することを意味する。しかし、この場合、DBサーバ10上でシーケンス番号カラムが未設定のデータは存在してはいけない理由から、シーケンス番号カラムをプライマリキーにすることが望ましい。プライマリキーとは、一意性制約、且つ、カラムNULL設定を非許容(NOT NULL 制約)とするカラム(キー)のことである。なお、シーケンス番号カラムに、ユニークキー制約と「NOT NULL 制約」を同時に付与した場合も、プライマリキーと同等の意味も持つことになる。したがって、DBサーバ10では、シーケンス番号カラムにプライマリキーを設定する代わりに、ユニークキー制約と「NOT NULL 制約」を同時に付与する設定としてもよい。   The uniqueness of the definition of a table having a sequence number on the DB server 10 means that, for example, when the RDBMS is an ORACLE database, a “unique key constraint” that is a unique constraint is assigned to the sequence number column. To do. However, in this case, it is desirable to use the sequence number column as a primary key because there should be no data in which the sequence number column is not set on the DB server 10. The primary key is a column (key) that has a uniqueness constraint and a column NULL setting that is not allowed (NOT NULL constraint). Note that even when a unique key constraint and a “NOT NULL constraint” are simultaneously given to the sequence number column, it also has the same meaning as the primary key. Therefore, in the DB server 10, instead of setting the primary key in the sequence number column, the unique key constraint and the “NOT NULL constraint” may be set at the same time.

以上の通り、DBサーバ10では、表Aのシーケンス番号カラムに対して、ORACLEデータベースが持つ制約の機能を利用して、「プライマリキーの制約付与」、若しくは、「ユニークキー制約及びNOT NULL制約の制約付与」のいずれかが行われているものとする。なお、この実施形態では、表Aを例として説明しているが、その他のシーケンス番号カラムを備える表(データベース)についても、同様の制約付与を行うようにしてもよい。   As described above, the DB server 10 uses the constraint function of the ORACLE database for the sequence number column in Table A to give “primary key constraint assignment” or “unique key constraint and NOT NULL constraint. It is assumed that “constraint assignment” is performed. In this embodiment, the table A is described as an example, but the same restriction may be applied to a table (database) including other sequence number columns.

次に、各DBクライアント20の内部構成について図2を用いて説明する。   Next, the internal configuration of each DB client 20 will be described with reference to FIG.

DBクライアント20は、DBサーバ10のデータベースへのアクセスを伴う処理(アプリケーションの処理)を行うクライアントAPL21と、DBクライアント20にDBサーバ10へのアクセスするための(インタフェース)を提供するデータベースアクセスライブラリ22とを有している。   The DB client 20 includes a client APL 21 that performs processing (application processing) with access to the database of the DB server 10 and a database access library 22 that provides the DB client 20 (interface) for accessing the DB server 10. And have.

データベースアクセスライブラリ22としては、例えば、ORACLEデータベースのクライアントライブラリを適用することができる。データベースアクセスライブラリ22により、クライアントAPL21は、DBサーバ10上の任意の表(データベース)に対してSQLを発行し、表のデータの登録、更新、削除、参照等が可能となる。   As the database access library 22, for example, a client library of an ORACLE database can be applied. With the database access library 22, the client APL 21 can issue an SQL to an arbitrary table (database) on the DB server 10, and can register, update, delete, refer to, etc. data in the table.

データベースクライアントプログラムとしてのクライアントAPL21は、シーケンス番号取得部211、シーケンス番号生成部212、データ更新部213、及びエラー分析部214を有している。   The client APL 21 as a database client program includes a sequence number acquisition unit 211, a sequence number generation unit 212, a data update unit 213, and an error analysis unit 214.

シーケンス番号取得部211は、DBサーバ10に最新のシーケンス番号を要求して取得する処理を行う。シーケンス番号取得部211は、DBサーバ10上の更新対象の表(例えば、表A等のシーケンス番号カラムを含む表)から、最新のシーケンス番号(シーケンス番号が昇順であれば、最大の値)を取得する。   The sequence number acquisition unit 211 performs processing for requesting and acquiring the latest sequence number from the DB server 10. The sequence number acquisition unit 211 obtains the latest sequence number (the maximum value if the sequence number is in ascending order) from the table to be updated on the DB server 10 (for example, a table including a sequence number column such as Table A). get.

シーケンス番号生成部212は、シーケンス番号取得部211が取得したシーケンス番号に基づいて、新たなシーケンス番号(次のデータ処理要求に用いるシーケンス番号)を生成する処理を行う。例えば昇順のシーケンス番号の場合、シーケンス番号生成部212は、取得したシーケンス番号が「1」ならば、取得したシーケンス番号をインクリメント(+1)した「2」を新たなシーケンス番号として生成する。   The sequence number generation unit 212 performs processing for generating a new sequence number (sequence number used for the next data processing request) based on the sequence number acquired by the sequence number acquisition unit 211. For example, in the case of an ascending sequence number, if the acquired sequence number is “1”, the sequence number generation unit 212 generates “2” obtained by incrementing (+1) the acquired sequence number as a new sequence number.

データ更新部213は、シーケンス番号生成部212で生成されたシーケンス番号を用いて、DBサーバ10へのデータ更新の要求(この実施形態では、表Aのレコード処理の要求)を行う。   The data update unit 213 uses the sequence number generated by the sequence number generation unit 212 to make a data update request to the DB server 10 (in this embodiment, a record processing request for Table A).

エラー分析部214は、データ更新部213がDBサーバ10にアクセスした際の結果を分析する処理を行う。エラー分析部214は、データ更新部213が要求したデータ更新の要求に対してDBサーバ10からエラーが通知された場合、当該エラーの内容を分析し、その分析結果に応じた処理を行うように、クライアントAPL21を制御する処理を行う。エラー分析部214は、例えば、DBサーバ10から、シーケンス番号の二重登録エラーを受信した場合、リトライ処理(シーケンス番号の再取得、シーケンス番号の再生成、及びデータ更新の再要求)の実施を決定する。   The error analysis unit 214 performs processing for analyzing a result when the data update unit 213 accesses the DB server 10. When an error is notified from the DB server 10 in response to the data update request requested by the data update unit 213, the error analysis unit 214 analyzes the content of the error and performs processing according to the analysis result. The client APL 21 is controlled. For example, when receiving a double registration error of the sequence number from the DB server 10, the error analysis unit 214 performs retry processing (re-acquisition of the sequence number, re-generation of the sequence number, and re-request of data update). decide.

DBクライアント20のクライアントAPL21では、表A(シーケンス番号カラムを備える表)へのデータ更新時に、シーケンス番号の二重登録エラーが通知された場合、シーケンス番号取得部211及びシーケンス番号生成部212により再度シーケンス番号の取得・生成が行われる。そして、データ更新部213は、再度取得・生成したシーケンス番号を用いて、表Aへのデータ更新をリトライする。   In the client APL 21 of the DB client 20, when a sequence number double registration error is notified at the time of data update to the table A (a table having a sequence number column), the sequence number acquisition unit 211 and the sequence number generation unit 212 again Sequence number acquisition / generation is performed. Then, the data update unit 213 retries data update to the table A using the sequence number acquired and generated again.

以上のように、DBクライアント20のクライアントAPL21では、表Aへのデータ更新時に、エラー分析部214で二重登録エラーが発生すると、シーケンス番号を再度取得・生成し、データ登録するリトライ機能を実装している。これにより、DBクライアント20では、シーケンス番号の二重登録エラーをプログラム内(クライアントAPL21内)に閉じて、処理することが可能となる。   As described above, the client APL 21 of the DB client 20 has a retry function for acquiring and generating a sequence number again and registering data when a double registration error occurs in the error analysis unit 214 when updating data to Table A. doing. As a result, the DB client 20 can process the double registration error of the sequence number within the program (in the client APL 21).

(A−2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態のDBシステム1の動作を説明する。
(A-2) Operation of the First Embodiment Next, the operation of the DB system 1 of the first embodiment having the above configuration will be described.

まず、DBクライアント20におけるクライアントAPL21の動作について図4のフローチャートを用いて説明する。   First, the operation of the client APL 21 in the DB client 20 will be described using the flowchart of FIG.

図4では、クライアントAPL21において、表Aに対するデータ更新(新規のデータ登録)が発生し、当該データ更新が完了するまでの動作について示している。   FIG. 4 shows an operation until data update (new data registration) for the table A occurs in the client APL 21 and the data update is completed.

クライアントAPL21において、表Aに対するデータ更新が発生すると、まず、シーケンス番号取得部211が、DBサーバ10(サーバプロセス11)に対して、表Aに係るシーケンス番号(最新のシーケンス番号)の読み出しを要求して取得する(S101)。   In the client APL 21, when data update to the table A occurs, the sequence number acquisition unit 211 first requests the DB server 10 (server process 11) to read the sequence number (latest sequence number) related to the table A. (S101).

シーケンス番号取得部211は、例えば「SELECT MAX(シーケンス番号) FROM 表A;」というイメージのSQL文を用いて、表Aに係るシーケンス番号(最新のシーケンス番号)を要求することができる。上述のSQL文は、表A内のレコードから、シーケンス番号の最大値を取得することを示す内容となっている。   The sequence number acquisition unit 211 can request a sequence number (latest sequence number) related to Table A using, for example, an SQL statement with an image of “SELECT MAX (sequence number) FROM table A;”. The above-mentioned SQL statement has a content indicating that the maximum value of the sequence number is acquired from the record in Table A.

次に、シーケンス番号生成部212が、取得したシーケンス番号を用いて、新たなシーケンス番号(取得したシーケンス番号に「1」を加算したシーケンス番号)を生成する。そして、生成したシーケンス番号を用いて、データ更新部213が、DBサーバ10(サーバプロセス11)に、表Aのデータ更新(新規のデータ登録)を要求する(S102)。なお、表Aのレコード件数が0件の場合(シーケンス番号取得部211でシーケンス番号が取得できない場合)、シーケンス番号生成部212は、初期値としてシーケンス番号「000001」を生成するようにしてもよい。   Next, the sequence number generation unit 212 generates a new sequence number (a sequence number obtained by adding “1” to the acquired sequence number) using the acquired sequence number. Then, using the generated sequence number, the data update unit 213 requests the DB server 10 (server process 11) to update the data in Table A (new data registration) (S102). When the number of records in Table A is 0 (when the sequence number acquisition unit 211 cannot acquire the sequence number), the sequence number generation unit 212 may generate the sequence number “000001” as an initial value. .

その後、クライアントAPL21は、DBサーバ10(サーバプロセス11)からの、処理結果の通知(例えば、エラーや正常終了)を受信し通知内容に応じた処理を判断する(S103)。このとき、クライアントAPL21は、シーケンス番号の2重登録が通知された場合は上述のステップS101から動作してデータ更新のリトライ処理(エラー分析部214の決定に基づくリトライ処理)を行い、正常終了が通知された場合には後述するステップS104から動作する。   Thereafter, the client APL 21 receives a processing result notification (for example, error or normal termination) from the DB server 10 (server process 11), and determines processing according to the notification content (S103). At this time, when the double registration of the sequence number is notified, the client APL 21 operates from the above-described step S101 to perform a data update retry process (retry process based on the determination of the error analysis unit 214). If notified, the operation starts from step S104 described later.

DBサーバ10(サーバプロセス11)から、データ更新の正常終了を受信した場合、クライアントAPL21のデータ更新部213は、DBサーバ10(サーバプロセス11)に対して、最新のデータ更新で用いたシーケンス番号(最新にシーケンス番号生成部212で生成したシーケンス番号)を用いて、データコミットの要求を行い(S104)、処理を終了する。   When the data update normal completion is received from the DB server 10 (server process 11), the data update unit 213 of the client APL 21 sends the sequence number used for the latest data update to the DB server 10 (server process 11). A data commit request is made using (the latest sequence number generated by the sequence number generation unit 212) (S104), and the process ends.

次に、2つのDBクライアント20−1、20−2が、同じタイミングでDBサーバ10に対して表Aのデータ更新(新規レコード登録)を要求した場合の動作について、図5のシーケンス図を用いて説明する。また、図6は、DBシステム1の各装置が図5のシーケンス図に従って動作した場合の表Aの遷移について示した説明図である。図5のシーケンス図では、表Aの初期状態は、図6(a)の状態であるものとしている。図6(a)に示すように、表Aは初期状態において、シーケンス番号「000001」のデータ(項目1:「aaa」、…)のみが登録されている。   Next, the operation when the two DB clients 20-1 and 20-2 request the DB server 10 to update the data in Table A (new record registration) at the same timing will be described with reference to the sequence diagram of FIG. I will explain. FIG. 6 is an explanatory diagram showing transitions in Table A when each device of the DB system 1 operates according to the sequence diagram of FIG. In the sequence diagram of FIG. 5, the initial state of Table A is assumed to be the state of FIG. As shown in FIG. 6A, in the table A, only data of the sequence number “000001” (item 1: “aaa”,...) Is registered in the initial state.

なお、図5のシーケンス図では、説明を簡易とするため、DBクライアント20によるデータ登録要求に対応するコミット要求のシーケンスの図示を省略しているが、DBクライアント20による登録要求後のコミットは全て成功したものとして図示している。   In the sequence diagram of FIG. 5, for the sake of simplicity, illustration of a commit request sequence corresponding to a data registration request by the DB client 20 is omitted, but all commits after the registration request by the DB client 20 are all performed. Illustrated as successful.

そして、ここでは、2つのDBクライアント20−1、20−2で、同じタイミングでDBサーバ10の表Aへのデータ登録のデータ更新が発生し、シーケンス番号の読出し要求が同時にDBサーバ10に到達したものとする(S201、S202)。   In this example, the two DB clients 20-1 and 20-2 update the data for registering data in the table A of the DB server 10 at the same timing, and the sequence number read request reaches the DB server 10 at the same time. (S201, S202).

この場合、DBサーバ10のサーバプロセス11は、DBクライアント20−1、20−2の要求のそれぞれに対して、表Aから最新のシーケンス番号「000001」を読み出して返答する(S203、S204、S205)。   In this case, the server process 11 of the DB server 10 reads the latest sequence number “000001” from the table A and responds to the requests from the DB clients 20-1 and 20-2 (S 203, S 204, S 205). ).

DBクライアント20−1、20−2では、それぞれ最新のシーケンス番号として「000001」を取得することになるため、それぞれ新しいシーケンス番号として「000002」を生成することになる(S206、S207)。   Since the DB clients 20-1 and 20-2 each acquire “000001” as the latest sequence number, “000002” is generated as a new sequence number (S206 and S207).

次に、DBクライアント20−2が先に、DBサーバ10に対して表Aに新規データを登録する要求(データ更新要求)を送信したものとする(S208)。このとき、DBクライアント20−2が要求したデータはシーケンス番号が「00002」、データの内容が「項目1:ccc、…」であったものとする。そして、DBサーバ10は、DBクライアント20−2の登録要求に応じて、表Aにシーケンス番号が「00002」のデータ(項目1:ccc、…)を登録し(S209)、DBクライアント20−2にデータ登録OKを返答する(S212)。この時点で、表Aの内容は、図6(b)の状態となる。   Next, it is assumed that the DB client 20-2 first transmits a request for registering new data in the table A (data update request) to the DB server 10 (S208). At this time, it is assumed that the data requested by the DB client 20-2 has the sequence number “00002” and the data content “item 1: ccc,...”. Then, in response to the registration request from the DB client 20-2, the DB server 10 registers data (item 1: ccc,...) With the sequence number “00002” in Table A (S209), and the DB client 20-2. A data registration OK is returned (S212). At this point, the contents of Table A are in the state shown in FIG.

DBクライアント20−2では、DBサーバ10からのデータ登録OKの返答を受けて、今回のデータ登録の処理を終了する(S215)。   In response to the data registration OK response from the DB server 10, the DB client 20-2 ends the current data registration process (S215).

一方上述のステップS208よりも後のタイミングで、DBクライアント20−1から、DBサーバ10に対して表Aに新規データを登録する要求(データ更新要求)が送信されたものとする(S210)。このとき、DBクライアント20−1が要求したデータはシーケンス番号が「00002」、データの内容が「項目1:bbb、…」であったものとする。そして、DBサーバ10は、DBクライアント20−2の登録要求を受信するが、表Aにシーケンス番号が「00002」のデータが既に登録されているため、シーケンス番号の二重登録エラーを検出し(S211)、DBクライアント20−2にデータ登録NG(シーケンス番号の二重登録エラーを原因とするNG)を返答する(S213)。   On the other hand, it is assumed that a request (data update request) for registering new data in the table A is transmitted from the DB client 20-1 to the DB server 10 at a timing after the above-described step S208 (S210). At this time, it is assumed that the data requested by the DB client 20-1 has a sequence number “00002” and the data content is “item 1: bbb,...”. The DB server 10 receives the registration request of the DB client 20-2, but detects the double registration error of the sequence number because the data with the sequence number “00002” is already registered in Table A ( (S211), data registration NG (NG caused by double registration error of sequence number) is returned to the DB client 20-2 (S213).

DBクライアント20−1では、DBサーバ10からのデータ登録NG(シーケンス番号の二重登録エラーを原因とするNG)を受けて、データ登録のリトライを決定することになる(S214)。   The DB client 20-1 decides to retry data registration in response to data registration NG from the DB server 10 (NG due to double registration error of sequence number) (S214).

データ登録のリトライを開始すると、まず、DBクライアント20−1は、DBサーバ10に対して、シーケンス番号の読出し要求を送信する(S216)。   When the data registration retry is started, first, the DB client 20-1 transmits a sequence number read request to the DB server 10 (S216).

そして、DBサーバ10は、DBクライアント20−1からのシーケンス番号の読出し要求に応じて、表Aの最新のシーケンス番号「000002」を読み出して(S217)、DBクライアント20−1に返答する(S218)。   Then, in response to the sequence number read request from the DB client 20-1, the DB server 10 reads the latest sequence number “000002” in Table A (S217) and returns it to the DB client 20-1 (S218). ).

次に、DBクライアント20−1は、取得した最新のシーケンス番号「000002」に基づいて、新しいシーケンス番号「000003」を生成する(S219)。   Next, the DB client 20-1 generates a new sequence number “000003” based on the acquired latest sequence number “000002” (S219).

次に、DBクライアント20−1は、生成したシーケンス番号「000003」を用いて、DBサーバ10に対して表Aに新規データを登録する要求(データ更新要求)を送信する(S220)。このとき、DBクライアント20−1が要求したデータはシーケンス番号が「00003」であり、その他の内容が「項目1:bbb、…」(最初に行ったデータ登録要求と同じ内容)であったものとする。   Next, the DB client 20-1 transmits a request (data update request) to register new data in Table A to the DB server 10 using the generated sequence number “000003” (S220). At this time, the data requested by the DB client 20-1 has a sequence number “00003” and the other contents are “item 1: bbb,...” (The same contents as the first data registration request made). And

そして、DBサーバ10は、DBクライアント20−1の登録要求に応じて、表Aにシーケンス番号が「00003」のデータ(項目1:bbb、…)を登録し(S221)、DBクライアント20−2にデータ登録OKを返答する(S222)。この時点で、表Aの内容は、図6(c)の状態となる。   Then, in response to the registration request from the DB client 20-1, the DB server 10 registers data (item 1: bbb,...) Having the sequence number “00003” in Table A (S221), and the DB client 20-2. Data registration OK is returned (S222). At this time, the contents of Table A are in the state shown in FIG.

次に、DBクライアント20−1は、DBサーバ10からのデータ登録OKの返答を受けて、今回のデータ登録の処理を終了する(S223)。   Next, the DB client 20-1 receives the data registration OK response from the DB server 10, and ends the current data registration process (S223).

(A−3)第1の実施形態の効果
第1の実施形態によれば、以下のような効果を奏することができる。
(A-3) Effects of First Embodiment According to the first embodiment, the following effects can be achieved.

第1の実施形態のDBサーバ10では、複数DBクライアント20からのデータ登録要求に対して、登録データ毎にシーケンス番号を付与し、付与したシーケンス番号を用いたデータ登録を受付ける。また、DBサーバ10では、既に登録されているデータのシーケンス番号と、新たに登録要求を受付けたデータのシーケンス番号とを比較して、二重登録となる場合にはDBクライアント20にエラーを送信する。そして、DBクライアント20はエラーを受付けると、DBサーバ10に対して、シーケンス番号の発行及びデータ登録要求のリトライを行う。このようなシーケンスの動作により、DBサーバ10では、複数DBクライアント20から同時にデータ登録の要求があった場合でも、データベースにおけるシーケンス番号の連続性を保つことができる。したがって、例えば、第1の実施形態のDBサーバ10では、シーケンス番号が不連続となったデータがあった場合、抜けているシーケンス番号に係るデータは削除されたと判断できる。   In the DB server 10 of the first embodiment, in response to a data registration request from a plurality of DB clients 20, a sequence number is assigned for each registered data, and data registration using the assigned sequence number is accepted. Further, the DB server 10 compares the sequence number of the already registered data with the sequence number of the data for which the registration request has been newly received, and transmits an error to the DB client 20 in the case of double registration. To do. When the DB client 20 accepts the error, the DB client 20 issues a sequence number to the DB server 10 and retries a data registration request. With such a sequence operation, the DB server 10 can maintain continuity of sequence numbers in the database even when there is a request for data registration from a plurality of DB clients 20 at the same time. Therefore, for example, in the DB server 10 of the first embodiment, when there is data with discontinuous sequence numbers, it can be determined that the data related to the missing sequence numbers has been deleted.

(B)第2の実施形態
次に、本発明によるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムの第2の実施形態を、図面を参照しながら詳述する。
(B) Second Embodiment Next, a second embodiment of the database system, database server, database server program, database client, and database client program according to the present invention will be described in detail with reference to the drawings.

(B−1)第2の実施形態の構成
図7は、第2の実施形態のDBシステム1Aの全体構成について示したブロック図であり、同一部分又は対応する部分には、同一符号又は対応する符号を付している。また、第2の実施形態のDBクライアント20−1、20−2の内部構成については、上述の図2を用いて示すことができる。
(B-1) Configuration of the Second Embodiment FIG. 7 is a block diagram showing the overall configuration of the DB system 1A of the second embodiment. The same or corresponding parts have the same reference numerals or corresponding parts. The code is attached. The internal configuration of the DB clients 20-1 and 20-2 of the second embodiment can be shown using FIG.

以下では、第2の実施形態について、第1の実施形態との差異を説明する。   Hereinafter, the difference between the second embodiment and the first embodiment will be described.

第1の実施形態では、シーケンス番号を完全に一意(ユニーク)とする方式について説明した。すなわち、第1の実施形態では、シーケンス番号の取得を無限に増やす方式について説明したが、第2の実施形態では、シーケンス番号に上限を設け、循環的に再利用する方式(以下、「循環方式」とも呼ぶ)を適用する。   In the first embodiment, the method of making the sequence number completely unique (unique) has been described. That is, in the first embodiment, a method for infinitely increasing the acquisition of a sequence number has been described, but in the second embodiment, a sequence number is provided with an upper limit and reused cyclically (hereinafter referred to as “circulation method”). Is also applied).

DBサーバ10において、シーケンス番号を循環利用する場合は、第1の実施形態で説明した、「シーケンス番号カラムに一意性を持たせる」という条件をそのまま適用することはできない。例えば、シーケンス番号の循環条件(払い出すシーケンス番号の範囲)が、000001から000100であるとき、101件目のデータが登録された際に生成されるシーケンス番号は000001となる。この場合、第1の実施形態では、シーケンス番号の二重登録エラーとなってしまうことになる。   In the DB server 10, when the sequence number is used in a circulating manner, the condition “make the sequence number column unique” described in the first embodiment cannot be applied as it is. For example, when the sequence number circulation condition (the range of the payout sequence number) is 000001 to 000100, the sequence number generated when the 101st data is registered is 000001. In this case, in the first embodiment, a sequence number double registration error occurs.

そこで、第2の実施形態のDBサーバ10では、上述の二重登録エラーを回避するために、DBファイルシステム12にシーケンス番号を管理するための管理表Cを作成して保持している。そして、第2の実施形態のDBサーバ10は、シーケンス番号管理表Cにより管理されたシーケンス番号でデータ(レコード)を管理する表Bを有している。   Therefore, the DB server 10 of the second embodiment creates and holds a management table C for managing sequence numbers in the DB file system 12 in order to avoid the double registration error described above. The DB server 10 according to the second embodiment has a table B that manages data (records) with sequence numbers managed by the sequence number management table C.

図8は、シーケンス番号管理表Cの構成例について示している。また、図9は、表Bの構成例について示している。   FIG. 8 shows a configuration example of the sequence number management table C. FIG. 9 shows a configuration example of Table B.

表Bの各データ(レコード)は、シーケンス番号管理表Cで管理されたシーケンス番号と、その他の項目の内容(項目1、…)で構成されている。そして、シーケンス番号管理表Cでは、表Bにおける最新に登録されたデータのシーケンス番号と、その登録日時が管理されている。   Each data (record) in Table B includes a sequence number managed in the sequence number management table C and the contents of other items (item 1,...). In the sequence number management table C, the sequence number of the most recently registered data in the table B and the registration date and time are managed.

図9に示す表Bでは、101件のデータが登録されている。そして、図9に示す表Bでは、シーケンス番号が000001〜000100まで1回転し、000001に循環して再利用された状態となっている。すなわち、図9に示す表Bでは、シーケンス番号000001のデータが2件登録されている。そして、図9に示す表Bでは、最新のシーケンス番号は000001となる。そして、図8は、表Bが図9の状態におけるシーケンス番号管理表Cの内容を示している。図8に示すシーケンス番号管理表Cでは、表Bの最新のシーケンス番号として000001が登録された状態となっている。   In Table B shown in FIG. 9, 101 pieces of data are registered. In Table B shown in FIG. 9, the sequence number is rotated once from 000001 to 000100, and is circulated and reused in 000001. That is, in Table B shown in FIG. 9, two pieces of data with sequence number 000001 are registered. In Table B shown in FIG. 9, the latest sequence number is 000001. FIG. 8 shows the contents of the sequence number management table C when the table B is in the state shown in FIG. In the sequence number management table C shown in FIG. 8, 000001 is registered as the latest sequence number in Table B.

以上のように、第2の実施形態では、表Bとは別にシーケンス番号管理表Cを設けているため、表B(循環シーケンス番号を含めたデータを登録する表)において、「シーケンス番号カラムに一意性を持たせる」という条件を除外することができる。   As described above, in the second embodiment, since the sequence number management table C is provided separately from the table B, in the table B (a table for registering data including the cyclic sequence number), the “sequence number column” The condition of “being unique” can be excluded.

また、第2の実施形態では、表Bとシーケンス番号管理表Cに分かれた構成となっているため、DBクライアント20(クライアントAPL21)で、表Bのデータ更新を行う際の動作も、第1の実施形態と異なる部分がある。   In the second embodiment, since the configuration is divided into the table B and the sequence number management table C, the operation when the DB client 20 (client APL 21) updates the data in the table B is also the first. There are parts different from the embodiment.

第2の実施形態のシーケンス番号取得部211は、シーケンス番号管理表Cから、最新のシーケンス番号を読み出す処理を行うことになる。   The sequence number acquisition unit 211 of the second embodiment performs a process of reading the latest sequence number from the sequence number management table C.

シーケンス番号管理表C(シーケンス番号循環方式を採用した表)に対するシーケンス番号読み出し要求は、例えば、図11(a)のようなイメージのSQL文で行うことができる。図11(a)のSQL文は、シーケンス番号管理表内にあるデータ(レコード)で、一番最後に登録されたデータ(最も最近登録されたデータ)から、シーケンス番号を取得する内容となっている。これにより、シーケンス番号取得部211は、現在の最新のシーケンス番号の値を取得することができる。   A sequence number read request for the sequence number management table C (a table adopting the sequence number circulation method) can be made with an SQL statement of an image as shown in FIG. The SQL statement in FIG. 11A is the data (record) in the sequence number management table, and the content for acquiring the sequence number from the most recently registered data (the most recently registered data). Yes. Thereby, the sequence number acquisition unit 211 can acquire the value of the current latest sequence number.

第2の実施形態のシーケンス番号生成部212は、シーケンス番号取得部211が取得したシーケンス番号に基づいて新しいシーケンス番号を循環的に生成する。すなわち、シーケンス番号生成部212は、シーケンス番号の循環条件における最大値(以下、「循環最大値」とも呼ぶ)が取得された場合、シーケンス番号を最小値に初期化する機能に対応している。例えば、シーケンス番号の循環条件が、000001〜000100であり、シーケンス番号管理表Cから取得したシーケンス番号が、000100であった場合、シーケンス番号生成部212は、次に使用するシーケンス番号を000001とする。   The sequence number generation unit 212 of the second embodiment cyclically generates a new sequence number based on the sequence number acquired by the sequence number acquisition unit 211. That is, the sequence number generation unit 212 corresponds to a function of initializing the sequence number to the minimum value when the maximum value in the circulation condition of the sequence number (hereinafter also referred to as “circulation maximum value”) is acquired. For example, when the sequence number circulation condition is 000001 to 000100 and the sequence number acquired from the sequence number management table C is 000100, the sequence number generation unit 212 sets the next used sequence number to 000001. .

そして、第2の実施形態のデータ更新部213は、シーケンス番号管理表Cに対して、シーケンス番号生成部212が生成したシーケンス番号の登録が成功した後に、表Bに対するデータ更新要求を行うことになる。このとき、第2の実施形態のデータ更新部213は、シーケンス番号管理表Cに登録が成功したシーケンス番号を用いてデータ更新の要求を行うことになる。   Then, the data update unit 213 of the second embodiment makes a data update request to the table B after the sequence number generated by the sequence number generator 212 is successfully registered in the sequence number management table C. Become. At this time, the data update unit 213 of the second embodiment makes a data update request using the sequence number that has been successfully registered in the sequence number management table C.

また、シーケンス番号管理表C内のデータ(レコード)は、循環条件より少ないデータ数とする必要がある。この実施形態では、クライアントAPL21で、シーケンス番号管理表Cで、最新のシーケンス番号よりも過去のデータ(最新のシーケンス番号以外のデータ)を削除する処理に対応しているものとして説明する。   Further, the data (record) in the sequence number management table C needs to have a smaller number of data than the circulation condition. In this embodiment, description will be made assuming that the client APL 21 corresponds to the process of deleting data past the latest sequence number (data other than the latest sequence number) in the sequence number management table C.

第2の実施形態の例では、データ更新部213が、シーケンス番号管理表Cに対して新しいシーケンス番号(新しいデータ)を登録する際に、図11(b)のようなイメージのSQL文を用いて、「最も最近登録されたシーケンス番号より過去のシーケンス番号のデータ(レコード)を、全て削除する処理」の要求を行うようにしてもよい。このように、シーケンス番号管理表Cから最新のシーケンス番号より過去のデータ削除することにより、シーケンス番号管理表Cでは、最新データ1件のみが残ることになる。なお、シーケンス番号管理表Cに対して、最新のシーケンス番号より過去のデータ削除を要求する主体はDBクライアント20に限定されずDBサーバ10側で行うようにしてもよい。また、シーケンス番号管理表Cに対して、最新のシーケンス番号より過去のデータ削除を行うタイミングは、新しいシーケンス番号を登録する毎ではなく、所定番号のシーケンス番号を登録するタイミングに限定するようにしてもよい。   In the example of the second embodiment, when the data update unit 213 registers a new sequence number (new data) in the sequence number management table C, the image SQL statement as shown in FIG. Then, a request for “a process of deleting all data (records) having a sequence number earlier than the most recently registered sequence number” may be made. In this way, by deleting past data from the latest sequence number from the sequence number management table C, only one latest data remains in the sequence number management table C. Note that the entity that requests deletion of data past the latest sequence number in the sequence number management table C is not limited to the DB client 20 and may be performed on the DB server 10 side. In addition, the timing for deleting past data from the latest sequence number in the sequence number management table C is not limited to registering a new sequence number, but limited to the timing for registering a sequence number of a predetermined number. Also good.

(B−2)第2の実施形態の動作
次に、以上のような構成を有する第2の実施形態のDBシステム1Aの動作を説明する。
(B-2) Operation of the Second Embodiment Next, the operation of the DB system 1A of the second embodiment having the above configuration will be described.

まず、第2の実施形態のDBクライアント20におけるクライアントAPL21の動作について図10のフローチャートを用いて説明する。   First, the operation of the client APL 21 in the DB client 20 of the second embodiment will be described using the flowchart of FIG.

図10では、クライアントAPL21において、表Bに対するデータ更新(新規のデータ登録)が発生し、当該データ更新が完了するまでの動作について示している。   FIG. 10 shows an operation from the occurrence of data update (new data registration) to the table B in the client APL 21 until the data update is completed.

クライアントAPL21において、表Bに対するデータ更新が発生すると、まず、シーケンス番号取得部211が、DBサーバ10(サーバプロセス11)に対して、シーケンス番号管理表Cに係るシーケンス番号(最新のシーケンス番号)の読み出しを要求して取得する(S301)。   When data update to the table B occurs in the client APL 21, first, the sequence number acquisition unit 211 sends the sequence number (latest sequence number) related to the sequence number management table C to the DB server 10 (server process 11). A request for reading is obtained (S301).

次に、シーケンス番号生成部212が、取得したシーケンス番号を用いて、新たなシーケンス番号(取得したシーケンス番号に「1」を加算したシーケンス番号)を循環的生成する。そして、データ更新部213が、生成したシーケンス番号を用いて、DBサーバ10(サーバプロセス11)に、シーケンス番号管理表Cのデータ更新(新規のデータ登録)を要求する(S302)。なお、シーケンス番号管理表Cのデータ件数が0件の場合(シーケンス番号取得部211でシーケンス番号が取得できない場合)、シーケンス番号生成部212は、初期値としてシーケンス番号「000001」を生成するようにしてもよい。   Next, the sequence number generation unit 212 cyclically generates a new sequence number (a sequence number obtained by adding “1” to the acquired sequence number) using the acquired sequence number. Then, the data update unit 213 requests the DB server 10 (server process 11) to update the data in the sequence number management table C (new data registration) using the generated sequence number (S302). When the number of data in the sequence number management table C is 0 (when the sequence number acquisition unit 211 cannot acquire a sequence number), the sequence number generation unit 212 generates the sequence number “000001” as an initial value. May be.

その後、クライアントAPL21は、DBサーバ10(サーバプロセス11)からの、処理結果の通知(例えば、エラーや正常終了)を受信し通知内容に応じた処理を判断する(S303)。このとき、クライアントAPL21は、シーケンス番号の2重登録が通知された場合は上述のステップS301から動作してデータ更新のリトライ処理(エラー分析部214の決定に基づくリトライ処理)に移行し、正常終了が通知された場合には後述するステップS304から動作する。   Thereafter, the client APL 21 receives a processing result notification (for example, an error or normal termination) from the DB server 10 (server process 11), and determines processing according to the notification content (S303). At this time, when the double registration of the sequence number is notified, the client APL 21 operates from the above-described step S301 to shift to the data update retry process (retry process based on the determination of the error analysis unit 214), and ends normally. Is notified, the operation starts from step S304 to be described later.

DBサーバ10(サーバプロセス11)から、データ更新の正常終了を受信した場合、クライアントAPL21のデータ更新部213は、DBサーバ10(サーバプロセス11)に対して、最新のデータ更新で用いたシーケンス番号(最新にシーケンス番号生成部212で生成したシーケンス番号)を用いて、シーケンス番号管理表Cのデータコミットの要求を行う(S304)。   When the data update normal completion is received from the DB server 10 (server process 11), the data update unit 213 of the client APL 21 sends the sequence number used for the latest data update to the DB server 10 (server process 11). A request for data commit of the sequence number management table C is performed using (the latest sequence number generated by the sequence number generation unit 212) (S304).

次に、クライアントAPL21のデータ更新部213は、DBサーバ10(サーバプロセス11)に対して、シーケンス番号管理表Cから最新のシーケンス番号より過去のデータ削除を要求(最新のシーケンス番号よりも過去のデータを削除する処理を要求)する(S305)。   Next, the data update unit 213 of the client APL 21 requests the DB server 10 (server process 11) to delete past data from the sequence number management table C from the latest sequence number (past past the latest sequence number). Request processing for deleting data) (S305).

次に、クライアントAPL21のデータ更新部213は、DBサーバ10(サーバプロセス11)に対して、シーケンス番号管理表Cのデータ削除に係るコミットを要求する(S306)。   Next, the data update unit 213 of the client APL 21 requests the DB server 10 (server process 11) to commit to delete data in the sequence number management table C (S306).

次に、データ更新部213は、最新にシーケンス番号管理表Cに登録したシーケンス番号を用いて、表Bに対するデータ更新処理(データ登録処理)を要求する(S307)。   Next, the data update unit 213 requests data update processing (data registration processing) for Table B using the sequence number registered in the latest sequence number management table C (S307).

次に、データ更新部213は、DBサーバ10(サーバプロセス11)に対して、最新のデータ更新で用いたシーケンス番号を用いて、表Bのデータコミットの要求を行い(S308)、処理を終了する。   Next, the data update unit 213 requests the DB server 10 (server process 11) to commit data commit of Table B using the sequence number used in the latest data update (S308), and ends the processing. To do.

次に、2つのDBクライアント20−1、20−2が、同じタイミングでDBサーバ10に対してシーケンス番号管理表Cのデータ更新(シーケンス番号の読出し)を要求した場合の動作について、図12、図13のシーケンス図を用いて説明する。   Next, with respect to the operation when the two DB clients 20-1 and 20-2 request the DB server 10 to update the sequence number management table C (read the sequence number) at the same timing, FIG. This will be described with reference to the sequence diagram of FIG.

図14は、DBシステム1Aの各装置が図12のシーケンス図に従って動作した場合のシーケンス番号管理表Cの遷移について示した説明図である。また、図15は、DBシステム1Aの各装置が図12、図13のシーケンス図に従って動作した場合の表Bの遷移について示した説明図である。   FIG. 14 is an explanatory diagram showing transition of the sequence number management table C when each device of the DB system 1A operates according to the sequence diagram of FIG. FIG. 15 is an explanatory diagram showing transitions in Table B when each device of the DB system 1A operates according to the sequence diagrams of FIGS.

図12、図13のシーケンス図では、シーケンス番号管理表Cの初期状態は、図14(a)の状態であるものとしている。図14(a)に示すように、シーケンス番号管理表Cは初期状態において、シーケンス番号「000001」(登録日時:2013/12/1 13:11:01)のデータのみが登録されている。   In the sequence diagrams of FIGS. 12 and 13, the initial state of the sequence number management table C is assumed to be the state of FIG. As shown in FIG. 14A, in the sequence number management table C, only data of sequence number “000001” (registration date / time: 2013/12/1 13:11:01) is registered in the initial state.

また、図12、図13のシーケンス図では、表Bの初期状態は、図15(a)の状態であるものとする。図15(a)に示すように、表Bは初期状態において、シーケンス番号「000001」のデータ(項目1:「aaa」、…)のみが登録されている。   Further, in the sequence diagrams of FIGS. 12 and 13, the initial state of Table B is assumed to be the state of FIG. As shown in FIG. 15A, in the initial state of Table B, only the data of the sequence number “000001” (item 1: “aaa”,...) Is registered.

なお、図12、図13のシーケンス図では、説明を簡易とするため、DBクライアント20によるデータ登録要求に対応するコミット要求のシーケンスの図示を省略しているが、DBクライアント20による登録要求後のコミットは全て成功したものとして図示している。   In the sequence diagrams of FIGS. 12 and 13, for the sake of simplicity, illustration of the commit request sequence corresponding to the data registration request by the DB client 20 is omitted. All commits are shown as successful.

まず、2つのDBクライアント20−1、20−2から、シーケンス番号管理表Cのシーケンス番号の読出し要求が、同じタイミングでDBサーバ10に到達したものとする(S401、S402)。   First, it is assumed that read requests for sequence numbers in the sequence number management table C have arrived at the DB server 10 at the same timing from the two DB clients 20-1 and 20-2 (S401, S402).

この場合、DBサーバ10のサーバプロセス11は、DBクライアント20−1、20−2の要求のそれぞれに対して、シーケンス番号管理表Cから最新のシーケンス番号「000001」を読み出して返答する(S403、S404、S405)。   In this case, the server process 11 of the DB server 10 reads the latest sequence number “000001” from the sequence number management table C and responds to the requests from the DB clients 20-1 and 20-2 (S403, S404, S405).

DBクライアント20−1、20−2では、それぞれ最新のシーケンス番号として「000001」を取得することになるため、それぞれ新しいシーケンス番号として「000002」を生成することになる(S406、S407)。   Since the DB clients 20-1 and 20-2 each acquire “000001” as the latest sequence number, “000002” is generated as the new sequence number (S406 and S407).

次に、DBクライアント20−2が先に、DBサーバ10に対してシーケンス番号管理表Cに、新規データ(シーケンス番号が「00002」のデータ)を登録する要求(データ更新要求)を送信したものとする(S408)。   Next, the DB client 20-2 first transmitted a request (data update request) to register new data (data with a sequence number “00002”) to the sequence number management table C to the DB server 10. (S408).

そして、DBサーバ10は、DBクライアント20−2の登録要求に応じて、シーケンス番号管理表Cにシーケンス番号が「00002」のデータを登録し(S409)、DBクライアント20−2にデータ登録OKを返答する(S412)。この時点で、シーケンス番号管理表Cの内容は、図14(b)の状態となる。   Then, in response to the registration request from the DB client 20-2, the DB server 10 registers the data with the sequence number “00002” in the sequence number management table C (S409), and registers the data registration OK in the DB client 20-2. A response is made (S412). At this time, the contents of the sequence number management table C are in the state shown in FIG.

DBサーバ10からのデータ登録OKの返答を受けると、DBクライアント20−2は、DBサーバ10に対して、シーケンス番号管理表Cから、最新のシーケンス番号より過去のデータを削除する要求を行う(S415)。   Upon receiving a data registration OK response from the DB server 10, the DB client 20-2 requests the DB server 10 to delete past data from the latest sequence number from the sequence number management table C ( S415).

DBクライアント20−2からシーケンス番号管理表Cのデータ削除要求を受付けると、DBサーバ10は、当該要求(SQL文)に従って、シーケンス番号管理表Cのデータ削除を実行する(S416)。このとき、シーケンス番号管理表Cにおいて、最新のシーケンス番号である000002よりも過去(登録日時が過去)のシーケンス番号000001のデータが削除されることになる。この時点で、シーケンス番号管理表Cの内容は、図14(c)の状態となる。   When receiving the data deletion request for the sequence number management table C from the DB client 20-2, the DB server 10 executes the data deletion for the sequence number management table C in accordance with the request (SQL sentence) (S416). At this time, in the sequence number management table C, the data of the sequence number 000001 that is past (the registration date and time is past) from the latest sequence number of 000002 is deleted. At this time, the contents of the sequence number management table C are in the state shown in FIG.

次に、DBクライアント20−2は、DBサーバ10に対して、シーケンス番号管理表Cに登録したシーケンス番号000002を用いて、表Bへのデータ登録を要求する(S421、S422)。   Next, the DB client 20-2 requests the DB server 10 to register data in the table B using the sequence number 000002 registered in the sequence number management table C (S421, S422).

DBクライアント20−2から表Bへのデータ登録を受付けると、DBサーバ10は、当該要求に基づいて表Bに、シーケンス番号000002のデータ登録を行い(S423)、DBクライアント20−2にデータ登録OKを返答する(S424)。この時点で、表Bの内容は、図15(b)の状態となる。   Upon accepting data registration from the DB client 20-2 to Table B, the DB server 10 performs data registration of sequence number 000002 in Table B based on the request (S423), and data registration in the DB client 20-2. OK is returned (S424). At this time, the contents of Table B are as shown in FIG.

データ登録OKを受信すると、DBクライアント20−2は、今回のデータ登録の処理を終了する(S425)。   When the data registration OK is received, the DB client 20-2 ends the current data registration process (S425).

一方上述のステップS408よりも後のタイミングで、DBクライアント20−1から、DBサーバ10に対してシーケンス番号管理表Cに、新規データ(シーケンス番号が「00002」のデータ)を登録する要求(データ更新要求)が送信されたものとする(S410)。そして、DBサーバ10は、DBクライアント20−2の登録要求を受信するが、シーケンス番号管理表Cにシーケンス番号が「00002」のデータが既に登録されているため、シーケンス番号の二重登録エラーを検出し(S411)、DBクライアント20−2にデータ登録NG(シーケンス番号の二重登録エラーを原因とするNG)を返答する(S413)。   On the other hand, at a timing after step S408 described above, a request (data) for registering new data (data with a sequence number “00002”) from the DB client 20-1 to the DB server 10 in the sequence number management table C. It is assumed that an update request is transmitted (S410). Then, the DB server 10 receives the registration request of the DB client 20-2, but since the data with the sequence number “00002” has already been registered in the sequence number management table C, the double registration error of the sequence number has occurred. Detected (S411), and returns a data registration NG (NG caused by double registration error of sequence number) to the DB client 20-2 (S413).

DBクライアント20−1では、DBサーバ10からのデータ登録NG(シーケンス番号の二重登録エラーを原因とするNG)を受けて、データ登録のリトライを決定することになる(S414)。   In response to the data registration NG from the DB server 10 (NG due to a sequence number double registration error), the DB client 20-1 determines to retry data registration (S414).

DBクライアント20−1は、データ登録のリトライを開始すると、まず、DBサーバ10に対して、シーケンス番号の読出し要求を送信する(S417)。   When starting the data registration retry, the DB client 20-1 first transmits a sequence number read request to the DB server 10 (S417).

そして、DBサーバ10は、DBクライアント20−1からのシーケンス番号の読出し要求に応じて、シーケンス番号管理表Cの最新のシーケンス番号「000002」を読み出して(S418)、DBクライアント20−1に返答する(S419)。   Then, in response to a sequence number read request from the DB client 20-1, the DB server 10 reads the latest sequence number “000002” in the sequence number management table C (S418), and returns a response to the DB client 20-1. (S419).

次に、DBクライアント20−1は、取得した最新のシーケンス番号「000002」に基づいて、新しいシーケンス番号「000003」を生成する(S420)。   Next, the DB client 20-1 generates a new sequence number “000003” based on the acquired latest sequence number “000002” (S420).

次に、DBクライアント20−1は、DBサーバ10に対して、シーケンス番号管理表Cに新規データ(シーケンス番号が「00003」のデータ)を登録する要求(データ更新要求)を送信する(S426)。   Next, the DB client 20-1 transmits a request (data update request) to register new data (data with a sequence number “00003”) in the sequence number management table C to the DB server 10 (S426). .

そして、DBサーバ10は、DBクライアント20−1の登録要求に応じて、シーケンス番号管理表Cにシーケンス番号が「00003」のデータを登録し(S427)、DBクライアント20−1にデータ登録OKを返答する(S428)。この時点で、シーケンス番号管理表Cの内容は、図14(d)の状態となる。   Then, in response to the registration request from the DB client 20-1, the DB server 10 registers the data with the sequence number “00003” in the sequence number management table C (S427), and registers the data registration OK in the DB client 20-1. A response is made (S428). At this time, the contents of the sequence number management table C are in the state shown in FIG.

DBサーバ10からのデータ登録OKの返答を受けると、DBクライアント20−1は、DBサーバ10に対して、シーケンス番号管理表Cから、最新のシーケンス番号より過去のデータを削除する要求を行う(S429)。   Upon receiving a data registration OK response from the DB server 10, the DB client 20-1 requests the DB server 10 to delete past data from the latest sequence number from the sequence number management table C ( S429).

DBクライアント20−2からシーケンス番号管理表Cのデータ削除要求を受付けると、DBサーバ10は、当該要求(SQL文)に従って、シーケンス番号管理表Cのデータ削除を実行する(S430)。このとき、シーケンス番号管理表Cにおいて、最新のシーケンス番号である000003よりも過去(登録日時が過去)のシーケンス番号000002のデータが削除されることになる。この時点で、シーケンス番号管理表Cの内容は、図14(e)の状態となる。   When receiving a data deletion request for the sequence number management table C from the DB client 20-2, the DB server 10 executes data deletion of the sequence number management table C in accordance with the request (SQL statement) (S430). At this time, in the sequence number management table C, the data of the sequence number 000002 in the past (registration date and time) is deleted from 000003 which is the latest sequence number. At this time, the contents of the sequence number management table C are in the state shown in FIG.

次に、DBクライアント20−1は、DBサーバ10に対して、シーケンス番号管理表Cに登録したシーケンス番号000003を用いて、表Bへのデータ登録を要求する(S431、S432)。   Next, the DB client 20-1 requests the DB server 10 to register data in the table B using the sequence number 000003 registered in the sequence number management table C (S431, S432).

DBクライアント20−2から表Bへのデータ登録を受付けると、DBサーバ10は、当該要求に基づいて表Bに、シーケンス番号000003のデータ登録を行い(S433)、DBクライアント20−1にデータ登録OKを返答する(S434)。この時点で、表Bの内容は、図15(c)の状態となる。   Upon receiving data registration from the DB client 20-2 to Table B, the DB server 10 performs data registration of sequence number 000003 in Table B based on the request (S433), and data registration to the DB client 20-1. OK is returned (S434). At this time, the contents of Table B are as shown in FIG.

データ登録OKを受信すると、DBクライアント20−2は、今回のデータ登録の処理を終了する(S435)。   When the data registration OK is received, the DB client 20-2 ends the current data registration process (S435).

次に、第2の実施形態のDBシステム1Aにおいて、シーケンス番号管理表C及び表Bに係るシーケンス番号が循環する際の動作について、図16のシーケンス図を用いて説明する。   Next, in the DB system 1A of the second embodiment, an operation when the sequence numbers according to the sequence number management tables C and B are circulated will be described with reference to the sequence diagram of FIG.

図17は、DBシステム1Aの各装置が図16のシーケンス図に従って動作した場合のシーケンス番号管理表Cの遷移について示した説明図である。また、図18は、DBシステム1Aの各装置が図16のシーケンス図に従って動作した場合の表Bの遷移について示した説明図である。   FIG. 17 is an explanatory diagram showing transition of the sequence number management table C when each device of the DB system 1A operates according to the sequence diagram of FIG. FIG. 18 is an explanatory diagram showing transitions in Table B when each device of the DB system 1A operates according to the sequence diagram of FIG.

なお、以下では、DBシステム1Aにおいて、シーケンス番号管理表Cに係るシーケンス番号の循環最大値が100に設定されているものとして説明する。   In the following description, it is assumed that the maximum circulation number of the sequence number according to the sequence number management table C is set to 100 in the DB system 1A.

図16のシーケンス図では、シーケンス番号管理表Cの初期状態は、図17(a)の状態であるものとしている。図17(a)に示すように、シーケンス番号管理表Cは初期状態において、シーケンス番号「000100」(登録日時:2013/12/11 9:00:00)のデータのみが登録されている。   In the sequence diagram of FIG. 16, the initial state of the sequence number management table C is assumed to be the state of FIG. As shown in FIG. 17 (a), in the sequence number management table C, only data of the sequence number “000100” (registration date: 2013/12/11 9:00:00) is registered in the initial state.

また、図16のシーケンス図では、表Bの初期状態は、図18(a)の状態であるものとする。図18(a)に示すように、表Bでは、初期状態において、シーケンス番号000001〜000100の100件のデータが登録されているものとする。   Also, in the sequence diagram of FIG. 16, the initial state of Table B is assumed to be the state of FIG. As shown in FIG. 18A, in Table B, it is assumed that 100 pieces of data of sequence numbers 000001 to 000100 are registered in the initial state.

なお、図16のシーケンス図では、説明を簡易とするため、DBクライアント20によるデータ登録要求に対応するコミット要求のシーケンスの図示を省略しているが、DBクライアント20による登録要求後のコミットは全て成功したものとして図示している。   In the sequence diagram of FIG. 16, for the sake of simplicity, illustration of a commit request sequence corresponding to a data registration request by the DB client 20 is omitted, but all commits after the registration request by the DB client 20 are all performed. Illustrated as successful.

上述のような状態で、DBクライアント20−1からDBサーバ10に、シーケンス番号の読出し要求が送信されたものとする(S501)。   Assume that a sequence number read request is transmitted from the DB client 20-1 to the DB server 10 in the above-described state (S501).

この場合、DBサーバ10は、DBクライアント20−1の要求に応じて、シーケンス番号管理表Cから最新のシーケンス番号「000100」を読み出して返答する(S502、S503)。   In this case, the DB server 10 reads the latest sequence number “000100” from the sequence number management table C and responds in response to a request from the DB client 20-1 (S502, S503).

DBクライアント20−1は、最新のシーケンス番号として循環最大値である「000100」を取得することになるため、新しいシーケンス番号として「000001」を生成することになる(S504)。   Since the DB client 20-1 acquires “000100” which is the maximum circulation value as the latest sequence number, “000001” is generated as a new sequence number (S504).

次に、DBクライアント20−1は、DBサーバ10に対してシーケンス番号管理表Cに、新規データ(シーケンス番号が「00001」のデータ)を登録する要求(データ更新要求)を送信する(S505)。   Next, the DB client 20-1 transmits a request (data update request) for registering new data (data with a sequence number “00001”) to the sequence number management table C to the DB server 10 (S505). .

そして、DBサーバ10は、DBクライアント20−1の登録要求に応じて、シーケンス番号管理表Cにシーケンス番号が「00001」のデータを登録し(S506)、DBクライアント20−1にデータ登録OKを返答する(S507)。この時点で、シーケンス番号管理表Cの内容は、図17(b)の状態となる。   Then, in response to the registration request from the DB client 20-1, the DB server 10 registers the data with the sequence number “00001” in the sequence number management table C (S506), and stores the data registration OK in the DB client 20-1. A response is made (S507). At this time, the contents of the sequence number management table C are in the state shown in FIG.

DBサーバ10からのデータ登録OKの返答を受けると、DBクライアント20−1は、DBサーバ10に対して、シーケンス番号管理表Cから、最新のシーケンス番号より過去のデータを削除する要求を行う(S508)。   Upon receiving a data registration OK response from the DB server 10, the DB client 20-1 requests the DB server 10 to delete past data from the latest sequence number from the sequence number management table C ( S508).

DBクライアント20−1からシーケンス番号管理表Cのデータ削除の要求を受付けると、DBサーバ10は、当該要求(SQL文)に従って、シーケンス番号管理表Cのデータ削除を実行する(S509)。このとき、シーケンス番号管理表Cにおいて、最新のシーケンス番号である000001よりも過去(登録日時が過去)のシーケンス番号000100のデータが削除されることになる。この時点で、シーケンス番号管理表Cの内容は、図17(c)の状態となる。   When receiving a data deletion request for the sequence number management table C from the DB client 20-1, the DB server 10 executes data deletion for the sequence number management table C in accordance with the request (SQL statement) (S509). At this time, in the sequence number management table C, the data of the sequence number 000100 that is past (the registration date is past) from the latest sequence number 000001 is deleted. At this time, the contents of the sequence number management table C are in the state shown in FIG.

次に、DBクライアント20−1は、DBサーバ10に対して、シーケンス番号管理表Cに登録したシーケンス番号000001を用いて、表Bへのデータ登録を要求する(S510、S511)。   Next, the DB client 20-1 requests the DB server 10 to register data in the table B using the sequence number 000001 registered in the sequence number management table C (S510, S511).

DBクライアント20−1から表Bへのデータ登録を受付けると、DBサーバ10は、当該要求に基づいて表Bに、シーケンス番号000001のデータ登録を行い(S512)、DBクライアント20−1にデータ登録OKを返答する(S513)。この時点で、表Bの内容は、図18(b)の状態となる。   Upon receiving data registration from the DB client 20-1 to Table B, the DB server 10 performs data registration of sequence number 000001 in Table B based on the request (S512), and data registration in the DB client 20-1. OK is returned (S513). At this time, the contents of Table B are as shown in FIG.

データ登録OKを受信すると、DBクライアント20−1は、今回のデータ登録の処理を終了する(S514)。   When the data registration OK is received, the DB client 20-1 ends the current data registration process (S514).

(B−3)第2の実施形態の効果
第2の実施形態によれば、以下のような効果を奏することができる。
(B-3) Effects of Second Embodiment According to the second embodiment, the following effects can be achieved.

第2の実施形態では、シーケンス番号を循環する方式でも、第1の実施形態と同様に、DBサーバ10におけるシーケンス番号の連続性を保つことができる。第2の実施形態では、シーケンス番号は循環して再利用されるため、シーケンス番号として利用可能な数値の上限を考慮せずに連続して動作させることが可能となる。   In the second embodiment, the sequence number continuity in the DB server 10 can be maintained even in the method of circulating the sequence numbers as in the first embodiment. In the second embodiment, the sequence number is circulated and reused, so that it is possible to operate continuously without considering the upper limit of numerical values that can be used as the sequence number.

(C)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(C) Other Embodiments The present invention is not limited to the above-described embodiments, and may include modified embodiments as exemplified below.

(C−1)第2の実施形態では、シーケンス番号管理表Cにおいて、シーケンス番号と登録日時を登録しているが、登録日時については省略するようにしてもよい。ただし、登録日時を省略した場合には、シーケンス番号管理表Cのデータ数を常に循環最大値以下にしておく必要がある。   (C-1) In the second embodiment, the sequence number and the registration date / time are registered in the sequence number management table C, but the registration date / time may be omitted. However, if the registration date / time is omitted, the number of data in the sequence number management table C must always be kept below the maximum circulation value.

1…DBシステム、10…DBサーバ、11…サーバプロセス、12…DBファイルシステム、20、20−1、20−2…DBクライアント、21…クライアントAPL、211…シーケンス番号取得部、212…シーケンス番号生成部、213…データ更新部、214…エラー分析部、22…データベースアクセスライブラリ。   DESCRIPTION OF SYMBOLS 1 ... DB system, 10 ... DB server, 11 ... Server process, 12 ... DB file system, 20, 20-1, 20-2 ... DB client, 21 ... Client APL, 211 ... Sequence number acquisition part, 212 ... Sequence number Generation unit, 213... Data update unit, 214... Error analysis unit, 22.

Claims (10)

複数のデータベースクライアントと、上記データベースクライアントに接続するデータベースサーバとを有するデータベースシステムにおいて、
上記データベースサーバは、
複数のデータとシーケンス番号とが対応付けられたデータベースを管理するデータベース管理手段と、
上記データベースクライアントから上記データベースのシーケンス番号の読出し要求を受信すると、上記データベース管理手段で管理する最新のシーケンス番号を返答するシーケンス番号送信手段と、
上記データベースクライアントから、シーケンス番号を用いた上記データベースに対するデータ更新要求を受信すると、上記データベースで、当該シーケンス番号に基づいたデータが登録済であるか未登録であるかを判別する処理を行う判別手段と、
上記判別手段により登録済と判別された場合に、上記データ更新要求の送信元の上記データベースクライアントに、データ更新失敗のエラー情報を送信するエラー情報送信手段とを備え、
上記データベース管理手段は、上記判別手段により未登録と判別された場合、上記データ更新要求に基づいて上記データベースのデータ更新を行い、
それぞれの上記データベースクライアントは、
上記データベースサーバに、上記データベースの最新のシーケンス番号の読出し要求を行うシーケンス番号要求手段と、
上記シーケンス番号要求手段が取得したシーケンス番号に基づいて新たなシーケンス番号を生成するシーケンス番号生成手段と、
上記シーケンス番号生成手段が生成したシーケンス番号を用いて、上記データベースサーバに上記データベースのデータ更新を要求するデータ更新要求手段と、
上記データベースサーバから、データ更新失敗のエラー情報が通知された場合に、上記シーケンス番号要求手段にシーケンス番号の読出し要求を再実行させ、上記シーケンス番号生成手段に再度取得されたシーケンス番号に基づいてシーケンス番号を再生成させ、上記データ更新要求手段に再生成されたシーケンス番号に基づいてデータ更新要求を再実行させる再実行手段とを有する
ことを特徴とするデータベースシステム。
In a database system having a plurality of database clients and a database server connected to the database client,
The database server
Database management means for managing a database in which a plurality of data and sequence numbers are associated;
Upon receiving a read request for the sequence number of the database from the database client, sequence number transmission means for returning the latest sequence number managed by the database management means,
When receiving a data update request for the database using a sequence number from the database client, a determination unit that performs processing for determining whether data based on the sequence number is registered or unregistered in the database When,
An error information transmitting unit that transmits error information indicating a data update failure to the database client that is the transmission source of the data update request when the determination unit determines that the data has been registered;
The database management means performs data update of the database based on the data update request when it is determined as unregistered by the determination means,
Each of the above database clients
Sequence number requesting means for requesting the database server to read out the latest sequence number of the database;
Sequence number generating means for generating a new sequence number based on the sequence number acquired by the sequence number requesting means;
Using the sequence number generated by the sequence number generation means, a data update request means for requesting the database server to update the database data;
When error information indicating a data update failure is notified from the database server, the sequence number requesting unit is caused to re-execute a sequence number read request, and the sequence number is generated based on the sequence number obtained again by the sequence number generating unit. A database system comprising: re-execution means for re-generating a number and re-executing the data update request based on the sequence number re-generated by the data update request means.
上記データベースを構成する各データには、シーケンス番号が登録されたシーケンス番号カラムが含まれていることを特徴とする請求項1に記載のデータベースシステム。   2. The database system according to claim 1, wherein each data constituting the database includes a sequence number column in which sequence numbers are registered. 上記データベースにおいて、上記シーケンス番号カラムには一意性が保証されていることを特徴とする請求項2に記載のデータベースシステム。   3. The database system according to claim 2, wherein in the database, the sequence number column is guaranteed uniqueness. 上記データベースには、シーケンス番号を含むデータが登録されたシーケンス番号管理表と、上記シーケンス番号管理表に従って付与されたシーケンス番号が登録されたシーケンス番号カラムを含むデータで構成されたデータ表とが含まれていることを特徴とする請求項1に記載のデータベースシステム。   The database includes a sequence number management table in which data including sequence numbers is registered, and a data table including data including a sequence number column in which sequence numbers assigned in accordance with the sequence number management table are registered. The database system according to claim 1, wherein: 上記シーケンス番号要求手段は、上記データベースサーバに、上記シーケンス番号管理表の最新のシーケンス番号の読出し要求を行い、
上記データ更新要求手段は、上記データベースサーバに、上記シーケンス番号生成手段が生成したシーケンス番号を上記シーケンス番号管理表に登録するデータ更新要求を行い、さらに、上記データベースサーバに、上記シーケンス番号管理表に登録したシーケンス番号を用いて上記データ表のデータ更新を要求し、
上記再実行手段は、上記データベースサーバから、データ更新失敗のエラー情報が通知された場合に、上記シーケンス番号要求手段にシーケンス番号の読出し要求を再実行させ、上記シーケンス番号生成手段に再度取得されたシーケンス番号に基づいてシーケンス番号を再生成させ、上記データ更新要求手段に再生成されたシーケンス番号の登録要求及びデータ更新要求を再実行させる
ことを特徴とする請求項4に記載のデータベースシステム。
The sequence number requesting unit requests the database server to read the latest sequence number of the sequence number management table,
The data update request means makes a data update request for registering the sequence number generated by the sequence number generation means to the sequence number management table to the database server, and further to the database server to the sequence number management table. Request data update of the above data table using the registered sequence number,
The re-execution unit causes the sequence number request unit to re-execute a sequence number read request when the database server is notified of error information indicating a data update failure, and the sequence number generation unit re-acquires the request. 5. The database system according to claim 4, wherein the sequence number is regenerated based on the sequence number, and the renewed sequence number registration request and the data update request are re-executed by the data update request unit.
上記シーケンス番号生成手段は、循環的にシーケンス番号を生成することを特徴とする請求項5に記載のデータベースシステム。   6. The database system according to claim 5, wherein the sequence number generation means cyclically generates a sequence number. 複数のデータベースクライアントに接続するデータベースサーバにおいて、
複数のデータとシーケンス番号とが対応付けられたデータベースを管理するデータベース管理手段と、
上記データベースクライアントから上記データベースのシーケンス番号の読出し要求を受信すると、上記データベース管理手段で管理する最新のシーケンス番号を返答するシーケンス番号送信手段と、
上記データベースクライアントから、シーケンス番号を用いた上記データベースに対するデータ更新要求を受信すると、上記データベースで、当該シーケンス番号に基づいたデータが登録済であるか未登録であるかを判別する処理を行う判別手段と、
上記判別手段により登録済と判別された場合に、上記データ更新要求の送信元の上記データベースクライアントに、データ更新失敗のエラー情報を送信するエラー情報送信手段とを備え、
上記データベース管理手段は、上記判別手段により未登録と判別された場合、上記データ更新要求に基づいて上記データベースのデータ更新を行う
ことを特徴とするデータベースサーバ。
In a database server that connects to multiple database clients,
Database management means for managing a database in which a plurality of data and sequence numbers are associated;
Upon receiving a read request for the sequence number of the database from the database client, sequence number transmission means for returning the latest sequence number managed by the database management means,
When receiving a data update request for the database using a sequence number from the database client, a determination unit that performs processing for determining whether data based on the sequence number is registered or unregistered in the database When,
An error information transmitting unit that transmits error information indicating a data update failure to the database client that is the transmission source of the data update request when the determination unit determines that the data has been registered;
The database server characterized in that the database management means updates data of the database based on the data update request when it is determined that the registration means is not registered.
複数のデータベースクライアントに接続するデータベースサーバに搭載されたコンピュータを、
複数のデータとシーケンス番号とが対応付けられたデータベースを管理するデータベース管理手段と、
上記データベースクライアントから上記データベースのシーケンス番号の読出し要求を受信すると、上記データベース管理手段で管理する最新のシーケンス番号を返答するシーケンス番号送信手段と、
上記データベースクライアントから、シーケンス番号を用いた上記データベースに対するデータ更新要求を受信すると、上記データベースで、当該シーケンス番号に基づいたデータが登録済であるか未登録であるかを判別する処理を行う判別手段と、
上記判別手段により登録済と判別された場合に、上記データ更新要求の送信元の上記データベースクライアントに、データ更新失敗のエラー情報を送信するエラー情報送信手段として機能させ、
上記データベース管理手段は、上記判別手段により未登録と判別された場合、上記データ更新要求に基づいて上記データベースのデータ更新を行う
ことを特徴とするデータベースサーバプログラム。
A computer installed in a database server that connects to multiple database clients
Database management means for managing a database in which a plurality of data and sequence numbers are associated;
Upon receiving a read request for the sequence number of the database from the database client, sequence number transmission means for returning the latest sequence number managed by the database management means,
When receiving a data update request for the database using a sequence number from the database client, a determination unit that performs processing for determining whether data based on the sequence number is registered or unregistered in the database When,
When it is determined that the data has been registered by the determination unit, the database client that is the transmission source of the data update request functions as an error information transmission unit that transmits error information of data update failure,
The database server program according to claim 1, wherein the database management unit updates data of the database based on the data update request when it is determined as unregistered by the determination unit.
データベースサーバに接続するデータベースクライアントにおいて、
上記データベースサーバに、上記データベースサーバが備えるデータベースの最新のシーケンス番号の読出し要求を行うシーケンス番号要求手段と、
上記シーケンス番号要求手段が取得したシーケンス番号に基づいて新たなシーケンス番号を生成するシーケンス番号生成手段と、
上記シーケンス番号生成手段が生成したシーケンス番号を用いて、上記データベースサーバに上記データベースのデータ更新を要求するデータ更新要求手段と、
上記データベースサーバから、データ更新失敗のエラー情報が通知された場合に、上記シーケンス番号要求手段にシーケンス番号の読出し要求を再実行させ、上記シーケンス番号生成手段に再度取得されたシーケンス番号に基づいてシーケンス番号を再生成させ、上記データ更新要求手段に再生成されたシーケンス番号に基づいてデータ更新要求を再実行させる再実行手段とを有する
ことを特徴とするデータベースクライアント。
In the database client that connects to the database server,
Sequence number requesting means for requesting the database server to read out the latest sequence number of the database provided in the database server;
Sequence number generating means for generating a new sequence number based on the sequence number acquired by the sequence number requesting means;
Using the sequence number generated by the sequence number generation means, a data update request means for requesting the database server to update the database data;
When error information indicating a data update failure is notified from the database server, the sequence number requesting unit is caused to re-execute a sequence number read request, and the sequence number is generated based on the sequence number obtained again by the sequence number generating unit. A database client comprising: a re-execution unit that re-generates a number and re-executes the data update request based on the sequence number re-generated by the data update request unit.
データベースサーバに接続するデータベースクライアントに搭載されたコンピュータを、
上記データベースサーバに、上記データベースサーバが備えるデータベースの最新のシーケンス番号の読出し要求を行うシーケンス番号要求手段と、
上記シーケンス番号要求手段が取得したシーケンス番号に基づいて新たなシーケンス番号を生成するシーケンス番号生成手段と、
上記シーケンス番号生成手段が生成したシーケンス番号を用いて、上記データベースサーバに上記データベースのデータ更新を要求するデータ更新要求手段と、
上記データベースサーバから、データ更新失敗のエラー情報が通知された場合に、上記シーケンス番号要求手段にシーケンス番号の読出し要求を再実行させ、上記シーケンス番号生成手段に再度取得されたシーケンス番号に基づいてシーケンス番号を再生成させ、上記データ更新要求手段に再生成されたシーケンス番号に基づいてデータ更新要求を再実行させる再実行手段として機能させる
ことを特徴とするデータベースクライアントプログラム。
The computer installed in the database client that connects to the database server
Sequence number requesting means for requesting the database server to read out the latest sequence number of the database provided in the database server;
Sequence number generating means for generating a new sequence number based on the sequence number acquired by the sequence number requesting means;
Using the sequence number generated by the sequence number generation means, a data update request means for requesting the database server to update the database data;
When error information indicating a data update failure is notified from the database server, the sequence number requesting unit is caused to re-execute a sequence number read request, and the sequence number is generated based on the sequence number obtained again by the sequence number generating unit. A database client program, wherein a number is regenerated, and the data update request unit functions as a re-execution unit that re-executes a data update request based on the re-generated sequence number.
JP2015037257A 2015-02-26 2015-02-26 Database system, database server, database server program, database client, and database client program Active JP6398786B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015037257A JP6398786B2 (en) 2015-02-26 2015-02-26 Database system, database server, database server program, database client, and database client program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015037257A JP6398786B2 (en) 2015-02-26 2015-02-26 Database system, database server, database server program, database client, and database client program

Publications (2)

Publication Number Publication Date
JP2016161980A true JP2016161980A (en) 2016-09-05
JP6398786B2 JP6398786B2 (en) 2018-10-03

Family

ID=56845717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015037257A Active JP6398786B2 (en) 2015-02-26 2015-02-26 Database system, database server, database server program, database client, and database client program

Country Status (1)

Country Link
JP (1) JP6398786B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520460A (en) * 2024-01-05 2024-02-06 成都安世赛斯特软件技术有限公司 Custom number generation management method and system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250830A (en) * 1993-02-23 1994-09-09 Nippon Telegr & Teleph Corp <Ntt> Service non-interruption program substituting device
JPH11232294A (en) * 1998-02-16 1999-08-27 Ntt Communication Ware Kk Www system and session managing method in www system
JP2004530213A (en) * 2001-05-15 2004-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション Method for managing distributed savepoints across multiple DBMSs in a distributed transaction
US20080114816A1 (en) * 2006-11-10 2008-05-15 Sybase, Inc. Replication system with methodology for replicating database sequences
JP2008234486A (en) * 2007-03-22 2008-10-02 Nec Corp Information updating system, information storage server, information updating method and program
JP2013134522A (en) * 2011-12-26 2013-07-08 Nec Corp Data management system, data management method, and data management program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250830A (en) * 1993-02-23 1994-09-09 Nippon Telegr & Teleph Corp <Ntt> Service non-interruption program substituting device
JPH11232294A (en) * 1998-02-16 1999-08-27 Ntt Communication Ware Kk Www system and session managing method in www system
JP2004530213A (en) * 2001-05-15 2004-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション Method for managing distributed savepoints across multiple DBMSs in a distributed transaction
US20080114816A1 (en) * 2006-11-10 2008-05-15 Sybase, Inc. Replication system with methodology for replicating database sequences
JP2008234486A (en) * 2007-03-22 2008-10-02 Nec Corp Information updating system, information storage server, information updating method and program
JP2013134522A (en) * 2011-12-26 2013-07-08 Nec Corp Data management system, data management method, and data management program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520460A (en) * 2024-01-05 2024-02-06 成都安世赛斯特软件技术有限公司 Custom number generation management method and system
CN117520460B (en) * 2024-01-05 2024-04-02 成都安世赛斯特软件技术有限公司 Custom number generation management method and system

Also Published As

Publication number Publication date
JP6398786B2 (en) 2018-10-03

Similar Documents

Publication Publication Date Title
US11327958B2 (en) Table replication in a database environment
US8364634B2 (en) System and method for processing fault tolerant transaction
JP2948496B2 (en) System and method for maintaining replicated data consistency in a data processing system
CN104598459B (en) database processing, data access method and system
EP2738698B1 (en) Locking protocol for partitioned and distributed tables
EP2653986B1 (en) Client-side caching of a database transaction token.
CN108121755B (en) Workload switching in database systems using hint-based routing
JP5652228B2 (en) Database server device, database update method, and database update program
US20130036136A1 (en) Transaction processing system, method and program
US8285677B2 (en) Method and apparatus for propagating tables while preserving cyclic foreign key relationships
US20150347250A1 (en) Database management system for providing partial re-synchronization and partial re-synchronization method of using the same
KR20170010844A (en) Processing mutations for a remote database
US9998544B2 (en) Synchronization testing of active clustered servers
TW201229795A (en) Web service patterns for globally distributed service fabric
WO2015111152A1 (en) Database management system and method
JP5772458B2 (en) Data management program, node, and distributed database system
CN113056734B (en) System and method for managing shared database
EP4154125A1 (en) Distributed transaction execution in distributed databases
CN105574026B (en) Method and device for supporting transaction of non-relational database
US11210272B2 (en) Low latency cache synchronization in distributed databases
CN110555317A (en) Application file change processing method, device and system
JP2014191497A (en) Information processing system, information processor, information processing method, and information processing program
US20140164324A1 (en) Utilization of data structures to synchronize copies of a resource
JP6398786B2 (en) Database system, database server, database server program, database client, and database client program
CN103001995B (en) The method and apparatus of cache coherence is improved in cluster file system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180720

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: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180820

R150 Certificate of patent or registration of utility model

Ref document number: 6398786

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150