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 PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
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.
しかし、従来の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.
(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システム1は、DBサーバ10と、2つのDBクライアント20(20−1、20−2)を有している。なお、DBシステム1において配置されるDBサーバ10及びDBクライアント20の数は限定されないものである。DBシステム1において、各装置はネットワークNに接続し、相互に通信可能であるものとする。
The
DBサーバ10は、例えば、CPUやメモリ等を有するコンピュータに、データベースサーバプログラムを含むプログラムをインストールすることにより構築することができる。また、各DBクライアント20についても同様にコンピュータにデータベースクライアントプログラムを含むプログラムをインストールすることにより構築することができる。
The
DBサーバ10は、データベースのデータを記憶するためのDBファイルシステム12と、各DBクライアント20にDBファイルシステム12に記憶されたデータベースを利用したサービスを提供(トランザクションの処理を実行)するサーバプロセス11とを有している。サーバプロセス11は、例えば、RDBMS(Relational Database Management System)等のデータベースのミドルウェアを用いて構築することができる。
The
この実施形態では、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
図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サーバ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
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サーバ10では、表Aのシーケンス番号カラムに対して、ORACLEデータベースが持つ制約の機能を利用して、「プライマリキーの制約付与」、若しくは、「ユニークキー制約及びNOT NULL制約の制約付与」のいずれかが行われているものとする。なお、この実施形態では、表Aを例として説明しているが、その他のシーケンス番号カラムを備える表(データベース)についても、同様の制約付与を行うようにしてもよい。
As described above, the
次に、各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
データベースアクセスライブラリ22としては、例えば、ORACLEデータベースのクライアントライブラリを適用することができる。データベースアクセスライブラリ22により、クライアントAPL21は、DBサーバ10上の任意の表(データベース)に対してSQLを発行し、表のデータの登録、更新、削除、参照等が可能となる。
As the
データベースクライアントプログラムとしてのクライアントAPL21は、シーケンス番号取得部211、シーケンス番号生成部212、データ更新部213、及びエラー分析部214を有している。
The
シーケンス番号取得部211は、DBサーバ10に最新のシーケンス番号を要求して取得する処理を行う。シーケンス番号取得部211は、DBサーバ10上の更新対象の表(例えば、表A等のシーケンス番号カラムを含む表)から、最新のシーケンス番号(シーケンス番号が昇順であれば、最大の値)を取得する。
The sequence
シーケンス番号生成部212は、シーケンス番号取得部211が取得したシーケンス番号に基づいて、新たなシーケンス番号(次のデータ処理要求に用いるシーケンス番号)を生成する処理を行う。例えば昇順のシーケンス番号の場合、シーケンス番号生成部212は、取得したシーケンス番号が「1」ならば、取得したシーケンス番号をインクリメント(+1)した「2」を新たなシーケンス番号として生成する。
The sequence
データ更新部213は、シーケンス番号生成部212で生成されたシーケンス番号を用いて、DBサーバ10へのデータ更新の要求(この実施形態では、表Aのレコード処理の要求)を行う。
The
エラー分析部214は、データ更新部213がDBサーバ10にアクセスした際の結果を分析する処理を行う。エラー分析部214は、データ更新部213が要求したデータ更新の要求に対してDBサーバ10からエラーが通知された場合、当該エラーの内容を分析し、その分析結果に応じた処理を行うように、クライアントAPL21を制御する処理を行う。エラー分析部214は、例えば、DBサーバ10から、シーケンス番号の二重登録エラーを受信した場合、リトライ処理(シーケンス番号の再取得、シーケンス番号の再生成、及びデータ更新の再要求)の実施を決定する。
The
DBクライアント20のクライアントAPL21では、表A(シーケンス番号カラムを備える表)へのデータ更新時に、シーケンス番号の二重登録エラーが通知された場合、シーケンス番号取得部211及びシーケンス番号生成部212により再度シーケンス番号の取得・生成が行われる。そして、データ更新部213は、再度取得・生成したシーケンス番号を用いて、表Aへのデータ更新をリトライする。
In the
以上のように、DBクライアント20のクライアントAPL21では、表Aへのデータ更新時に、エラー分析部214で二重登録エラーが発生すると、シーケンス番号を再度取得・生成し、データ登録するリトライ機能を実装している。これにより、DBクライアント20では、シーケンス番号の二重登録エラーをプログラム内(クライアントAPL21内)に閉じて、処理することが可能となる。
As described above, the
(A−2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態のDBシステム1の動作を説明する。
(A-2) Operation of the First Embodiment Next, the operation of the
まず、DBクライアント20におけるクライアントAPL21の動作について図4のフローチャートを用いて説明する。
First, the operation of the
図4では、クライアントAPL21において、表Aに対するデータ更新(新規のデータ登録)が発生し、当該データ更新が完了するまでの動作について示している。
FIG. 4 shows an operation until data update (new data registration) for the table A occurs in the
クライアントAPL21において、表Aに対するデータ更新が発生すると、まず、シーケンス番号取得部211が、DBサーバ10(サーバプロセス11)に対して、表Aに係るシーケンス番号(最新のシーケンス番号)の読み出しを要求して取得する(S101)。
In the
シーケンス番号取得部211は、例えば「SELECT MAX(シーケンス番号) FROM 表A;」というイメージのSQL文を用いて、表Aに係るシーケンス番号(最新のシーケンス番号)を要求することができる。上述のSQL文は、表A内のレコードから、シーケンス番号の最大値を取得することを示す内容となっている。
The sequence
次に、シーケンス番号生成部212が、取得したシーケンス番号を用いて、新たなシーケンス番号(取得したシーケンス番号に「1」を加算したシーケンス番号)を生成する。そして、生成したシーケンス番号を用いて、データ更新部213が、DBサーバ10(サーバプロセス11)に、表Aのデータ更新(新規のデータ登録)を要求する(S102)。なお、表Aのレコード件数が0件の場合(シーケンス番号取得部211でシーケンス番号が取得できない場合)、シーケンス番号生成部212は、初期値としてシーケンス番号「000001」を生成するようにしてもよい。
Next, the sequence
その後、クライアントAPL21は、DBサーバ10(サーバプロセス11)からの、処理結果の通知(例えば、エラーや正常終了)を受信し通知内容に応じた処理を判断する(S103)。このとき、クライアントAPL21は、シーケンス番号の2重登録が通知された場合は上述のステップS101から動作してデータ更新のリトライ処理(エラー分析部214の決定に基づくリトライ処理)を行い、正常終了が通知された場合には後述するステップS104から動作する。
Thereafter, the
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
次に、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
なお、図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サーバ10のサーバプロセス11は、DBクライアント20−1、20−2の要求のそれぞれに対して、表Aから最新のシーケンス番号「000001」を読み出して返答する(S203、S204、S205)。
In this case, the
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クライアント20−2では、DBサーバ10からのデータ登録OKの返答を受けて、今回のデータ登録の処理を終了する(S215)。
In response to the data registration OK response from the
一方上述のステップ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クライアント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クライアント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サーバ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クライアント20−1は、DBサーバ10からのデータ登録OKの返答を受けて、今回のデータ登録の処理を終了する(S223)。
Next, the DB client 20-1 receives the data registration OK response from the
(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
(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
そこで、第2の実施形態のDBサーバ10では、上述の二重登録エラーを回避するために、DBファイルシステム12にシーケンス番号を管理するための管理表Cを作成して保持している。そして、第2の実施形態のDBサーバ10は、シーケンス番号管理表Cにより管理されたシーケンス番号でデータ(レコード)を管理する表Bを有している。
Therefore, the
図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 (
図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
以上のように、第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
シーケンス番号管理表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
第2の実施形態のシーケンス番号生成部212は、シーケンス番号取得部211が取得したシーケンス番号に基づいて新しいシーケンス番号を循環的に生成する。すなわち、シーケンス番号生成部212は、シーケンス番号の循環条件における最大値(以下、「循環最大値」とも呼ぶ)が取得された場合、シーケンス番号を最小値に初期化する機能に対応している。例えば、シーケンス番号の循環条件が、000001〜000100であり、シーケンス番号管理表Cから取得したシーケンス番号が、000100であった場合、シーケンス番号生成部212は、次に使用するシーケンス番号を000001とする。
The sequence
そして、第2の実施形態のデータ更新部213は、シーケンス番号管理表Cに対して、シーケンス番号生成部212が生成したシーケンス番号の登録が成功した後に、表Bに対するデータ更新要求を行うことになる。このとき、第2の実施形態のデータ更新部213は、シーケンス番号管理表Cに登録が成功したシーケンス番号を用いてデータ更新の要求を行うことになる。
Then, the
また、シーケンス番号管理表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
第2の実施形態の例では、データ更新部213が、シーケンス番号管理表Cに対して新しいシーケンス番号(新しいデータ)を登録する際に、図11(b)のようなイメージのSQL文を用いて、「最も最近登録されたシーケンス番号より過去のシーケンス番号のデータ(レコード)を、全て削除する処理」の要求を行うようにしてもよい。このように、シーケンス番号管理表Cから最新のシーケンス番号より過去のデータ削除することにより、シーケンス番号管理表Cでは、最新データ1件のみが残ることになる。なお、シーケンス番号管理表Cに対して、最新のシーケンス番号より過去のデータ削除を要求する主体はDBクライアント20に限定されずDBサーバ10側で行うようにしてもよい。また、シーケンス番号管理表Cに対して、最新のシーケンス番号より過去のデータ削除を行うタイミングは、新しいシーケンス番号を登録する毎ではなく、所定番号のシーケンス番号を登録するタイミングに限定するようにしてもよい。
In the example of the second embodiment, when the
(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
図10では、クライアントAPL21において、表Bに対するデータ更新(新規のデータ登録)が発生し、当該データ更新が完了するまでの動作について示している。
FIG. 10 shows an operation from the occurrence of data update (new data registration) to the table B in the
クライアントAPL21において、表Bに対するデータ更新が発生すると、まず、シーケンス番号取得部211が、DBサーバ10(サーバプロセス11)に対して、シーケンス番号管理表Cに係るシーケンス番号(最新のシーケンス番号)の読み出しを要求して取得する(S301)。
When data update to the table B occurs in the
次に、シーケンス番号生成部212が、取得したシーケンス番号を用いて、新たなシーケンス番号(取得したシーケンス番号に「1」を加算したシーケンス番号)を循環的生成する。そして、データ更新部213が、生成したシーケンス番号を用いて、DBサーバ10(サーバプロセス11)に、シーケンス番号管理表Cのデータ更新(新規のデータ登録)を要求する(S302)。なお、シーケンス番号管理表Cのデータ件数が0件の場合(シーケンス番号取得部211でシーケンス番号が取得できない場合)、シーケンス番号生成部212は、初期値としてシーケンス番号「000001」を生成するようにしてもよい。
Next, the sequence
その後、クライアントAPL21は、DBサーバ10(サーバプロセス11)からの、処理結果の通知(例えば、エラーや正常終了)を受信し通知内容に応じた処理を判断する(S303)。このとき、クライアントAPL21は、シーケンス番号の2重登録が通知された場合は上述のステップS301から動作してデータ更新のリトライ処理(エラー分析部214の決定に基づくリトライ処理)に移行し、正常終了が通知された場合には後述するステップS304から動作する。
Thereafter, the
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
次に、クライアントAPL21のデータ更新部213は、DBサーバ10(サーバプロセス11)に対して、シーケンス番号管理表Cから最新のシーケンス番号より過去のデータ削除を要求(最新のシーケンス番号よりも過去のデータを削除する処理を要求)する(S305)。
Next, the
次に、クライアントAPL21のデータ更新部213は、DBサーバ10(サーバプロセス11)に対して、シーケンス番号管理表Cのデータ削除に係るコミットを要求する(S306)。
Next, the
次に、データ更新部213は、最新にシーケンス番号管理表Cに登録したシーケンス番号を用いて、表Bに対するデータ更新処理(データ登録処理)を要求する(S307)。
Next, the
次に、データ更新部213は、DBサーバ10(サーバプロセス11)に対して、最新のデータ更新で用いたシーケンス番号を用いて、表Bのデータコミットの要求を行い(S308)、処理を終了する。
Next, the
次に、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
図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サーバ10のサーバプロセス11は、DBクライアント20−1、20−2の要求のそれぞれに対して、シーケンス番号管理表Cから最新のシーケンス番号「000001」を読み出して返答する(S403、S404、S405)。
In this case, the
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サーバ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サーバ10からのデータ登録OKの返答を受けると、DBクライアント20−2は、DBサーバ10に対して、シーケンス番号管理表Cから、最新のシーケンス番号より過去のデータを削除する要求を行う(S415)。
Upon receiving a data registration OK response from the
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クライアント20−2は、DBサーバ10に対して、シーケンス番号管理表Cに登録したシーケンス番号000002を用いて、表Bへのデータ登録を要求する(S421、S422)。
Next, the DB client 20-2 requests the
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
データ登録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クライアント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クライアント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サーバ10からのデータ登録OKの返答を受けると、DBクライアント20−1は、DBサーバ10に対して、シーケンス番号管理表Cから、最新のシーケンス番号より過去のデータを削除する要求を行う(S429)。
Upon receiving a data registration OK response from the
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クライアント20−1は、DBサーバ10に対して、シーケンス番号管理表Cに登録したシーケンス番号000003を用いて、表Bへのデータ登録を要求する(S431、S432)。
Next, the DB client 20-1 requests the
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
データ登録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
なお、図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サーバ10は、DBクライアント20−1の要求に応じて、シーケンス番号管理表Cから最新のシーケンス番号「000100」を読み出して返答する(S502、S503)。
In this case, the
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サーバ10からのデータ登録OKの返答を受けると、DBクライアント20−1は、DBサーバ10に対して、シーケンス番号管理表Cから、最新のシーケンス番号より過去のデータを削除する要求を行う(S508)。
Upon receiving a data registration OK response from the
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クライアント20−1は、DBサーバ10に対して、シーケンス番号管理表Cに登録したシーケンス番号000001を用いて、表Bへのデータ登録を要求する(S510、S511)。
Next, the DB client 20-1 requests the
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
データ登録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
(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
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.
上記データ更新要求手段は、上記データベースサーバに、上記シーケンス番号生成手段が生成したシーケンス番号を上記シーケンス番号管理表に登録するデータ更新要求を行い、さらに、上記データベースサーバに、上記シーケンス番号管理表に登録したシーケンス番号を用いて上記データ表のデータ更新を要求し、
上記再実行手段は、上記データベースサーバから、データ更新失敗のエラー情報が通知された場合に、上記シーケンス番号要求手段にシーケンス番号の読出し要求を再実行させ、上記シーケンス番号生成手段に再度取得されたシーケンス番号に基づいてシーケンス番号を再生成させ、上記データ更新要求手段に再生成されたシーケンス番号の登録要求及びデータ更新要求を再実行させる
ことを特徴とする請求項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.
複数のデータとシーケンス番号とが対応付けられたデータベースを管理するデータベース管理手段と、
上記データベースクライアントから上記データベースのシーケンス番号の読出し要求を受信すると、上記データベース管理手段で管理する最新のシーケンス番号を返答するシーケンス番号送信手段と、
上記データベースクライアントから、シーケンス番号を用いた上記データベースに対するデータ更新要求を受信すると、上記データベースで、当該シーケンス番号に基づいたデータが登録済であるか未登録であるかを判別する処理を行う判別手段と、
上記判別手段により登録済と判別された場合に、上記データ更新要求の送信元の上記データベースクライアントに、データ更新失敗のエラー情報を送信するエラー情報送信手段とを備え、
上記データベース管理手段は、上記判別手段により未登録と判別された場合、上記データ更新要求に基づいて上記データベースのデータ更新を行う
ことを特徴とするデータベースサーバ。 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.
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)
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)
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 |
-
2015
- 2015-02-26 JP JP2015037257A patent/JP6398786B2/en active Active
Patent Citations (6)
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)
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 |