JP3094888B2 - Numbering mechanism, data consistency confirmation mechanism, transaction re-execution mechanism, and distributed transaction processing system - Google Patents

Numbering mechanism, data consistency confirmation mechanism, transaction re-execution mechanism, and distributed transaction processing system

Info

Publication number
JP3094888B2
JP3094888B2 JP08012059A JP1205996A JP3094888B2 JP 3094888 B2 JP3094888 B2 JP 3094888B2 JP 08012059 A JP08012059 A JP 08012059A JP 1205996 A JP1205996 A JP 1205996A JP 3094888 B2 JP3094888 B2 JP 3094888B2
Authority
JP
Japan
Prior art keywords
transaction
site
distributed
numbering
processing system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP08012059A
Other languages
Japanese (ja)
Other versions
JPH09204341A (en
Inventor
昇平 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP08012059A priority Critical patent/JP3094888B2/en
Publication of JPH09204341A publication Critical patent/JPH09204341A/en
Application granted granted Critical
Publication of JP3094888B2 publication Critical patent/JP3094888B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、採番機構、データ
整合性確認機構、トランザクション再実行機構及び分散
トランザクション処理システムに係り、詳しくは、複数
の計算機に渡る分散トランザクション処理を行なう情報
処理システムに適用することができ、特に、分散トラン
ザクション処理を行なう際、高い可用性と高いデータ整
合性を維持して構築することができる分散トランザクシ
ョン処理システムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a numbering mechanism, a data consistency checking mechanism, a transaction re-execution mechanism, and a distributed transaction processing system. In particular, the present invention relates to a distributed transaction processing system that can be constructed while maintaining high availability and high data consistency when performing distributed transaction processing.

【0002】[0002]

【従来の技術】従来、分散トランザクション処理を行う
計算機システムでは、計算機間に渡る障害、例えば1台
以上の計算機のクラッシュや通信路障害が発生した場
合、その時点でインダウト状態のトランザクションに対
する処置を以下の(イ)、(ロ)の処置のうちの何れか
で行っている。インダウト状態は、2フェイズ・コミッ
トのプリペア要求に対してプリペア完了を通知して、コ
ミット/ロールバック指示を待っている状態のことを言
い、そのトランザクションだけでは、最終的にコミット
すべきか、あるいはロールバックすべきかを決定するこ
とができない。
2. Description of the Related Art Conventionally, in a computer system for performing distributed transaction processing, when a failure between computers, for example, a crash of one or more computers or a communication path failure occurs, a process for a transaction in an in-doubt state at that time is described below. (A) or (b). The in-doubt state is a state in which prepare completion is notified in response to a prepare request of two-phase commit and a commit / rollback instruction is awaited. Can't decide what to back.

【0003】(イ)インダウト状態のトランザクション
に対する処置は、障害が復旧するまでコミット/ロール
バック指示を待ち続ける。特に、インダウト状態のトラ
ンザクションを含む計算機がクラッシュした場合は、計
算機の再ブート後、コミット/ロールバック指示待ち状
態を再現して待ち続ける。このような機構は、例えば米
国Oracle Corporationのデータベー
ス管理システムであるOracle7に設けられてい
る。例えば日本オラクル株式会社発行「Oracle7
Server概要」部品番号6693−70−129
2.ja3の22−19「2フェイズ・コミットにおけ
る障害」によれば、Oracle7には自動回復の機能
があると記載されている。
[0003] (A) In response to a transaction in an in-doubt state, a transaction waits for a commit / rollback instruction until the failure is recovered. In particular, when a computer including a transaction in an in-doubt state crashes, the state of waiting for a commit / rollback instruction is reproduced after the computer is rebooted. Such a mechanism is provided, for example, in Oracle7 which is a database management system of Oracle Corporation of the United States. For example, "Oracle7" issued by Oracle Japan, Inc.
Server Overview "part number 6693-70-129
2. According to ja3, 22-19 "Fault in Two-Phase Commit", it is described that Oracle7 has an automatic recovery function.

【0004】(ロ)インダウト状態のトランザクション
に対する処置は、コミット/ロールバック指示待ちを打
切り、ユーザの判断(ヒューリスティック決定)により
処理を継続する。ユーザがシステム状態を確認すること
ができないままヒューリスティック決定を行なった場合
は、データの整合性が失われることがある。そこで、障
害復旧後、システムがグローバル・トランザクションI
Dをキーにして、各分散トランザクション構成要素間の
コミット/ロールバックの整合性をチェックしてレポー
トするヒューリスティック・レポートシステムが挙げら
れる。例えば、前述した「Oracle7 Serve
r概要」22−20によれば、Oracle7は、間違
った決定を自動的に検出する。但し、この場合、ヒュー
リスティック・レポートは、システムの振るグローバル
・トランザクションID(GTID)で問題トランザク
ションを通知するので、ユーザは、グローバル・トラン
ザクションGTIDから実際の対応を決めなければなら
ない。
[0004] (b) The processing for a transaction in an in-doubt state is terminated by waiting for a commit / rollback instruction, and the processing is continued by a user's judgment (heuristic decision). If the user makes a heuristic decision without being able to check the system state, data consistency may be lost. Therefore, after failure recovery, the system
A heuristic reporting system that checks and reports the consistency of commit / rollback between distributed transaction components with D as a key. For example, as described above, “Oracle7 Server
According to "Summary" 22-20, Oracle7 automatically detects erroneous decisions. However, in this case, since the heuristic report notifies the problem transaction by the global transaction ID (GTID) given by the system, the user must determine the actual response from the global transaction GTID.

【0005】従来、(ロ)の処置で、ヒューリスティッ
ク・レポートを利用せずに処置する場合として、業務ア
プリケーションでの通番管理で整合性を確認する分散ト
ランザクション処理システムが挙げられる。以下に、こ
の従来の分散トランザクション処理システムについて、
図面を用いて説明する。図32は従来の分散トランザク
ション処理システムの構成を示すブロック図であり、図
33は図32に示す分散トランザクション処理システム
上のサイトAのトランザクションTA1の処理フローを
示すフローチャートである。図32では、RPCを用い
て2つのサイトA、Bでデータベースを同期的に更新す
るシステムの例を示している。図33では、同期の状態
を従来のユーザ通番で管理する場合、RPCを用いて2
つのサイトA、Bでデータベースを同期的に更新するト
ランザクションの処理内容を示している。図32のDB
Aは、サイトAの注文データベース(マスタ)であり、
DBBはサイトBの注文データベース(レプリカ)であ
る。各データベースの注文レコードRECA、RECB
は、注文番号Keyをキーとして注文情報Dataをカ
ラムとして持つ。図33のトランザクションTA1は、
端末から入力された注文情報に対して注文レコードを作
り、各データベースに挿入処理を行なう。
Conventionally, in the case of the treatment (b), a treatment is performed without using a heuristic report, and there is a distributed transaction processing system in which consistency is confirmed by serial number management in a business application. Below, about this conventional distributed transaction processing system,
This will be described with reference to the drawings. FIG. 32 is a block diagram showing a configuration of a conventional distributed transaction processing system, and FIG. 33 is a flowchart showing a processing flow of a transaction TA1 of site A on the distributed transaction processing system shown in FIG. FIG. 32 shows an example of a system in which databases are synchronously updated at two sites A and B using RPC. In FIG. 33, when the synchronization status is managed by the conventional user serial number, two
The processing contents of a transaction that synchronously updates the database at two sites A and B are shown. DB of FIG. 32
A is the order database (master) of site A,
DBB is a site B order database (replica). Order records RECA, RECB in each database
Has order information Data as a column using the order number Key as a key. The transaction TA1 in FIG.
An order record is created for the order information input from the terminal and inserted into each database.

【0006】図34は図32に示す分散トランザクショ
ンシステムによりサイトAとサイトBのデータの不整合
が検出される様子を示す図である。ここでは、親トラン
ザクションがコミットしたのに子トランザクションがロ
ールバックした場合、従来の方法で、ユーザの通番でデ
ータの整合性が崩れていることが検出される例を示して
いる。サイトAの注文データベース(マスタ)DBAと
サイトBの注文データベース(レプリカ)DBBの構造
は、図32に示した通りである。サイトAのトランザク
ションTA1は、端末から入力される注文情報’AA
A’を受信すると(ステップS1001)、データベー
ス上に注文番号’101’を採番し(ステップS100
2)、ここで一旦ローカルにコミットする(ステップS
1003)。次に、サイトAのトランザクションは、注
文番号をキーとして端末から入力される注文情報’AA
A’を内容とする注文レコードRECAを作成して、サ
イトAの注文データベース(マスタ)DBAに書き出す
(ステップS1004)。
FIG. 34 is a diagram showing how the data mismatch between site A and site B is detected by the distributed transaction system shown in FIG. Here, an example is shown in which, when the parent transaction commits but the child transaction rolls back, it is detected by the conventional method that the data consistency is broken by the serial number of the user. The structure of the order database (master) DBA of site A and the order database (replica) DBB of site B are as shown in FIG. Transaction TA1 of site A is composed of order information 'AA input from the terminal.
When A 'is received (step S1001), the order number' 101 'is numbered on the database (step S100).
2) Here, commit locally once (step S
1003). Next, the transaction of the site A is composed of order information 'AA input from the terminal using the order number as a key.
An order record RRCA containing A 'is created and written to the order database (master) DBA of site A (step S1004).

【0007】続いて、サイトAのトランザクションは、
サイトBに対して、注文番号(Key)、注文情報(D
ata)を引数として手続きp1をRPC(Remot
ePrecedure Call)する(ステップS1
005)。この時、サイトAのトランザクションは、サ
イトBのトランザクションへ注文番号と注文情報を送信
する。この時のパラメータは、注文番号(Key)の’
101’と、注文情報(Data)の’AAA’であ
る。サイトBのトランザクションは、サイトAのトラン
ザクションから送信されるパラメータに従って注文レコ
ードRECBを作成し、注文データベース(レプリカ)
DBBに書き出し(ステップS1006)、制御をサイ
トAのトランザクションに戻す(ステップS100
7)。
Subsequently, the transaction at site A is
For site B, order number (Key), order information (D
data) with RPC (Remot)
ePrecedure Call) (Step S1)
005). At this time, the transaction of site A transmits the order number and the order information to the transaction of site B. The parameter at this time is the order number (Key)
101 'and' AAA 'of the order information (Data). The site B transaction creates an order record RECB according to the parameters sent from the site A transaction, and creates an order database (replica).
Writing to the DBB (step S1006), and returning control to the site A transaction (step S100)
7).

【0008】サイトAのトランザクションは、コミット
処理を行なうためにサイトBの手続きp1にプリペア要
求を送る(ステップS1008)。サイトBの手続きp
1は、プリペア要求を受けると、そのプリペア要求に対
してログ採取機構LAによりプリペア・ログを採取して
プリペアを実施し、その後、レディー通知(プリペア完
了通知)をサイトAのトランザクションに返す(ステッ
プS1009)。サイトAのトランザクションは、サイ
トBからレディー通知を受けると、ローカルなコミット
を実行し、サイトBにコミット指示を送信する(ステッ
プS1008)。この直後、サイトAのトランザクショ
ンは、サイトBがコミット指示を受け取る前にシステム
・クラッシュしたとし、その結果を端末へ送信する(ス
テップS1010)。
The transaction at site A sends a prepare request to procedure p1 at site B to perform a commit process (step S1008). Site B procedure p
Upon receiving the prepare request, the log collecting mechanism LA collects a prepare log for the prepare request, performs the prepare, and then returns a ready notification (prepare completion notification) to the site A transaction (step S1009). When receiving the ready notification from the site B, the transaction of the site A executes a local commit and transmits a commit instruction to the site B (step S1008). Immediately after this, the transaction of site A determines that the system has crashed before site B receives the commit instruction, and transmits the result to the terminal (step S1010).

【0009】サイトBの手続きでは、障害原因解決後、
システムの再起動が行われる。この例では、障害発生時
にプリペア状態だったトランザクションは、ヒューリス
ティック決定によりロールバックされ、どのトランザク
ションがロールバックされたかについては、ロールバッ
クされたレコードの内容とともに通知するものとする。
ユーザは、通知された情報中のレコード・キーを参照し
てサイトAの同レコードを確認する。これにより、ユー
ザは、該当レコードがあるので、データの不整合が発生
していることが判る。
[0009] In the procedure of site B, after the cause of the failure is resolved,
The system restarts. In this example, the transaction that was in the prepared state at the time of the failure is rolled back by heuristic determination, and which transaction was rolled back is notified together with the contents of the rolled back record.
The user confirms the same record at site A by referring to the record key in the notified information. As a result, the user knows that data inconsistency has occurred because of the corresponding record.

【0010】[0010]

【発明が解決しようとする課題】上記した従来の分散ト
ランザクション処理システムでは、(イ)のトランザク
ション処置を採用した場合、データの整合性を完全に維
持することができるが、データベース等のリソースが障
害復旧するまでロックされてしまうため、システムの可
用性が低下するという問題があった。一例として挙げた
Oracle7の場合でも、障害回復までに時間がかか
りそうな場合等は、手動でヒューリスティック決定を行
なうことを勧めている。これについては、「Oracl
e7 Server 管理者ガイド」部品番号6644
−70−1292.ja4の15−15「分散トランザ
クションの問題を解決する」中、「インダウト・トラン
ザクションを手動で置き換える」の項で言及している。
また、この方式は、実装も運用も複雑であり、サポート
していないデータベース管理システムがある。
In the above-mentioned conventional distributed transaction processing system, when the transaction processing of (a) is adopted, data consistency can be completely maintained, but resources such as a database fail. There is a problem that the availability of the system is reduced because it is locked until recovery. Even in the case of Oracle7 as an example, when it takes a long time to recover from a failure, it is recommended that a heuristic decision be manually performed. For this, see "Oracl
e7 Server Administrator's Guide "part number 6644
-70-1292. In ja4, 15-15, "Resolving the problem of distributed transactions", the section "Replace in-doubt transactions manually" is mentioned.
In addition, this method is complicated to implement and operate, and some database management systems are not supported.

【0011】これとは逆に、(ロ)を採用した場合は、
リソースが直ちに解放され、可用性の点では問題はない
が、ユーザが他の計算機のトランザクションの状態を確
認することができないとデータの整合性が失われる恐れ
がある。これについては、同じく、「Oracle7
Server 管理者ガイド」の同項で、間違った決定
がデータベースの矛盾を引き起こし得ることに言及して
いる。従来の方式では、たとえヒューリスティック・レ
ポートでデータの不整合が判るとしても、その情報は、
業務とは直接関係なく、また、具体的な復旧処置は、ユ
ーザに任されているので、システム設計、アプリケーシ
ョン設計上の負担が大きい。
On the contrary, when (b) is adopted,
Although resources are released immediately and there is no problem in terms of availability, data consistency may be lost if the user cannot confirm the status of transactions of other computers. For this, see "Oracle7
The same section of the Server Administrator's Guide states that incorrect decisions can cause database inconsistencies. With traditional methods, even if heuristic reports show data inconsistencies,
Since there is no direct relationship with the business and the specific recovery procedure is left to the user, the burden on system design and application design is large.

【0012】更に、前述したユーザの通番で管理する方
法は、採番した時点で業務とは関係なしにコミットが必
要である。仮に、コミットを行なわないと、採番もロー
ルバックもされることになり、図35に示すように、後
から別のトランザクションが同一通番を再度採番する
と、整合性の検出に使えない。図35は、従来の方法
で、ユーザの通番自体がロールバックされると整合性が
検出することができなくなる例を示している。
Further, in the above-described method of managing by the serial number of the user, it is necessary to commit at the time of numbering irrespective of the business. If commit is not performed, numbering and rollback will be performed, and if another transaction later renumbers the same serial number as shown in FIG. 35, it cannot be used for detecting consistency. FIG. 35 shows an example in which the consistency cannot be detected if the user's serial number itself is rolled back by the conventional method.

【0013】そこで、本発明は、2フェイズ・コミット
中の障害に対する複雑な運用と、同障害に際してデータ
がロックされ続けることによるシステム可用性の低下を
回避することができるととに、データベース管理システ
ム自体が障害状態の再現による完全なデータ整合性維持
をサポートしていない場合でも、システム全体としてデ
ータの整合性を維持することができ、しかもデータベー
ス管理システムがヒューリスティック・レポートをサポ
ートしていない場合でも、システム全体としてデータの
整合性の状態を容易に確認することができる採番機構、
データ整合性確認機構、トランザクション再実行機構及
び分散トランザクション処理システムを提供することを
目的とする。
Accordingly, the present invention provides a complicated operation for a failure during a two-phase commit, a reduction in system availability due to data being continuously locked during the failure, and a database management system itself. Can maintain data integrity throughout the system even if it does not support full data integrity by recreating the failure condition, and if the database management system does not support heuristic reporting, A numbering mechanism that allows you to easily check the data integrity status of the entire system,
An object of the present invention is to provide a data consistency check mechanism, a transaction re-execution mechanism, and a distributed transaction processing system.

【0014】[0014]

【課題を解決するための手段】ヒューリスティック決定
を行なってデータの不整合が発生しても、現実的には後
から適切な回復トランザクションを投入することで整合
性を回復することができる場合がほとんどである。そこ
で、可用性の低下を回避するために、ヒューリスティッ
ク決定を行なうものとし、必要に応じて後で、元の分散
トランザクションの一部であったプログラムまたは回復
用トランザクションを分散処理と関係しないローカル・
トランザクションとして再実行するものとする。この場
合、ローカル・トランザクションとして実行するのであ
るから、元のプログラムで通信処理をする部分は、受信
処理を除いてNOPとする。受信データは、各トランザ
クションにとってユニークな情報を含んでいるので、通
常の分散トランザクション実行中にログとして採取する
ものとする。ローカル・トランザクションとしての再実
行時には、受信処理はこのログからの読み込みで再現す
る。また、採番に関する部分も、ログから読み込んで再
現する。
Even if data inconsistency occurs by making a heuristic decision, it is almost always possible to recover consistency by actually inputting an appropriate recovery transaction later. It is. Therefore, heuristic decisions should be made to avoid loss of availability, and if necessary, programs or recovery transactions that were part of the original distributed transaction can later be replaced by local, non-distributed transactions.
Re-execute as a transaction. In this case, since the processing is executed as a local transaction, the portion for performing the communication processing in the original program is NOP except for the reception processing. Since the received data contains information unique to each transaction, it is collected as a log during the execution of a normal distributed transaction. When re-executing as a local transaction, the receiving process is reproduced by reading from this log. Also, the part related to numbering is read from the log and reproduced.

【0015】具体的なシステム障害からの回復処理とし
ては、先ずログから整合性を失わせた可能性のあるトラ
ンザクション、即ち、ヒューリスティック決定の対象と
なったトランザクションを抽出する。ヒューリスティッ
ク・レポートが用意されている分散処理システムでは、
これを利用してデータ整合性を崩したトランザクション
を特定して、対応するトランザクションID付きで対応
する回復用トランザクションを投入する。ヒューリステ
ィック・レポートがない分散処理システムでは、ロール
バックやシステム障害で後戻りしないことが保証される
採番機構による通番を元にしたDBのレコードの突き合
わせにより、両系のデータ整合性が維持されているかを
判断する。以下、請求項毎に本発明の解決手段を示す。
As a specific recovery process from a system failure, first, a transaction that may have lost consistency, that is, a transaction for which a heuristic decision is made, is extracted from the log. In a distributed processing system with heuristic reports,
By utilizing this, a transaction in which data consistency is broken is specified, and a corresponding recovery transaction is input with a corresponding transaction ID. In a distributed processing system without a heuristic report, whether data consistency between the two systems is maintained by matching records in the DB based on serial numbers by a numbering mechanism that is guaranteed to not return due to rollback or system failure Judge. Hereinafter, means for solving the present invention will be described for each claim.

【0016】本発明に係る採番機構は、順序番号をメモ
リとファイルに保持し、業務プログラムからの採番命令
呼び出しによりメモリ上の順序番号をカウント・アップ
して業務プログラムに返し、計算機全体で既定値または
定義により与えられた回数N回に一度は最新の順序番号
をファイルに書き出し、トランザクションのロールバッ
クで戻されず、かつ採番後コミットまでの間ロックされ
ることがない採番のプログラムインタフェース機構と、
メモリの情報が失われるシステム障害の発生後はファイ
ルに残った順序番号+N以上の順序番号を復元すること
により、仮に障害が発生しても、業務プログラムに最後
に返した順序番号より大きい順序番号から採番を再開さ
せる採番回復機構とを有することを特徴とするものであ
る。
The numbering mechanism according to the present invention holds the sequence number in a memory and a file, counts up the sequence number in the memory by calling a numbering command from the business program, returns the sequence number to the business program, and executes the entire computer. Writes the latest sequence number to a file at least once every N times given by the default value or definition, is not returned by transaction rollback, and is not numbered and locked until the commit after numbering Mechanism,
After a system failure that causes loss of memory information, the sequence number remaining in the file plus the sequence number of N or more is restored, so that even if a failure occurs, a sequence number larger than the sequence number last returned to the business program And a numbering recovery mechanism for restarting numbering from the beginning.

【0017】本発明に係るデータ整合性確認機構は、分
散トランザクション処理において、コーディネータとな
るトランザクションの分散ノードに設けた請求項1の採
番機構による通番をキーとするレコードを書き込むデー
タベースと、サブオーディネートとなる分散ノードに設
けた同通番を遅くともプリペア・ログと同時にログに書
き込むログ採取機構と、データ整合性確認の際に突き合
わせるべきデータの所在、判断方法を指定した整合性判
断定義と、障害時のヒューリスティック決定によるデー
タ不整合を、インダウトのプリペア・ログはあるがコー
ディネータの指示によるコミット/ロールバックがされ
ていないトランザクションに対して、ログ中の通番に対
応したレコードがあるかを整合性判断定義情報に従って
突き合わせることにより検出するデータ不整合検出機構
とを有することを特徴とするものである。
In the distributed transaction processing, the data consistency checking mechanism according to the present invention includes a database for writing a record using a serial number as a key provided by a numbering mechanism according to claim 1 provided in a distributed node of a transaction serving as a coordinator. A log collection mechanism that writes the same serial number to the log at the latest at the same time as the prepare log provided in the distributed node to be denied, a consistency judgment definition that specifies the location of data to be matched at the time of data consistency check, and a judgment method, Data inconsistency due to heuristic decision at the time of failure, consistency for transactions that have an in-doubt prepared log but have not been committed / rolled back by the coordinator's instruction, whether there is a record corresponding to the serial number in the log Match according to the judgment definition information It is characterized in that it has a data inconsistency detection mechanism to further detected.

【0018】本発明に係るトランザクション再実行機構
は、分散トランザクション処理の1分散ノードであるプ
ログラムを、通常実行時には、受信処理及び請求項1に
よる採番処理は回復用ログに採取しつつ実行し、再実行
時には、そのプログラムまたはそれに対応する回復用プ
ログラムを、元のトランザクションID付きでローカル
なトランザクションとして再投入して、プログラムの受
信処理以外の通信処理をNOP化し、受信処理及び請求
項1による採番処理は、通常実行時にはログに書き出
し、トランザクションIDに基づいてはログからの読み
出しにより再現し、トランザクションとしてはローカル
トランザクションとして処理するプログラムインタフェ
ース機構を有することを特徴とするものである。
The transaction re-executing mechanism according to the present invention executes the program, which is one distributed node of the distributed transaction processing, while collecting the recovery processing log and the numbering processing according to claim 1 during normal execution, At the time of re-execution, the program or the corresponding recovery program is re-entered as a local transaction with the original transaction ID, NOP is performed for communication processing other than the program reception processing, and the reception processing and the method according to claim 1 are adopted. The number process is characterized in that it has a program interface mechanism for writing to a log during normal execution, reproducing by reading from the log based on the transaction ID, and processing the transaction as a local transaction.

【0019】本発明に係る分散トランザクション処理シ
ステムは、以下のa)〜f)に示す構成要素からなり、
子トランザクションを起動する側の親トランザクション
が2フェイズ・コミット上でコーディネータになり、
b)でのヒューリスティック決定としてロールバックを
行なうもので、e)のデータ整合性確認機構としてヒュ
ーリスティック・レポートを備えており、f)のトラン
ザクション再実行機構による再実行トランザクションと
して、元の子トランザクションそのものを投入すること
により、計算機間に渡る障害の発生後一時的にプリペア
状態のトランザクションをロールバックし、後で子トラ
ンザクションを必要に応じてローカル・トランザクショ
ンとして再投入して計算機間の整合性を回復することを
特徴とするものである。 a)ログ採取機構、 b)障害発生時に相手トランザクションからのコミット
/ロールバック決定待ちのトランザクションを、ローカ
ルなヒューリスティック決定でコミット/ロールバック
するヒューリスティック決定機構、 c)プリペア・ログのみあって、コミット・ログ及びロ
ールバック・ログがないトランザクションを回復候補と
して抽出する回復候補トランザクション抽出機構、 d)あるトランザクションが回復候補になった場合に、
どのトランザクションを投入すればいいかを示す投入指
示情報、 e)ヒューリスティック決定によってコミット/ロール
バックされたトランザクションと、相手トランザクショ
ンとの間のデータ整合性が崩れていないかどうかを、障
害の復旧後に確認するデータ整合性確認機構、 f)請求項3のトランザクション再実行機構。
The distributed transaction processing system according to the present invention comprises the following components a) to f):
The parent transaction that starts the child transaction becomes the coordinator on the two-phase commit,
A rollback is performed as a heuristic decision in b), a heuristic report is provided as a data consistency check mechanism in e), and the original child transaction itself is used as a rerun transaction by the transaction rerun mechanism in f). By submitting, the transaction in the prepared state is temporarily rolled back after the occurrence of a failure between the computers, and the child transaction is resubmitted as a local transaction later as needed to restore the consistency between the computers. It is characterized by the following. a) a log collection mechanism; b) a heuristic decision mechanism for committing / rolling back a transaction waiting for a commit / rollback decision from the partner transaction in the event of a failure by local heuristic decision; A recovery candidate transaction extraction mechanism for extracting a transaction without a log and a rollback log as a recovery candidate; d) when a transaction becomes a recovery candidate,
Injection instruction information indicating which transaction should be injected. E) Confirming, after recovery from the failure, whether data consistency between the transaction committed / rolled back by the heuristic decision and the partner transaction has not been lost. The data reconciliation mechanism according to claim 3, wherein:

【0020】本発明に係る分散トランザクション処理シ
ステムは、請求項4のa)〜f)に示す構成要素からな
り、子トランザクションが2フェイズ・コミット上でコ
ーディネータになり、b)でのヒューリスティック決定
としてロールバックを行なうもので、e)のデータ整合
性確認機構としてヒューリスティック・レポートを備え
ており、f)のトランザクション再実行機構による再実
行トランザクションとして、元の親トランザクションそ
のものを投入することにより、計算機間に渡る障害の発
生後一時的にプリペア状態のトランザクションをロール
バックし、後で親トランザクションを必要に応じてロー
カル・トランザクションとして再投入して計算機間の整
合性を回復することを特徴とするものである。
A distributed transaction processing system according to the present invention comprises the components described in claims 4) to 4), wherein a child transaction becomes a coordinator on a two-phase commit, and a role is determined as a heuristic decision in b). A heuristic report is provided as a data consistency check mechanism of e), and the original parent transaction itself is input as a re-executed transaction by the transaction re-executing mechanism of f). After the occurrence of a failure, a transaction in the prepared state is temporarily rolled back, and the parent transaction is re-entered as a local transaction as needed to restore consistency between computers. .

【0021】本発明に係る分散トランザクション処理シ
ステムは、請求項4のa)〜f)に示す構成要素からな
り、子トランザクションを起動する側の親トランザクシ
ョンが2フェイズ・コミット上でコーディネータにな
り、b)でのヒューリスティック決定としてコミットを
行なうもので、e)のデータ整合性確認機構としてヒュ
ーリスティック・レポートを備えており、f)のトラン
ザクション再実行機構として請求項3を備え、元の子ト
ランザクションに対応した回復用トランザクションを投
入することにより、計算機間に渡る障害の発生後一時的
にプリペア状態のトランザクションをコミットし、後で
回復用トランザクションを必要に応じてローカル・トラ
ンザクションとして再投入して計算機間の整合性を回復
することを特徴とするものである。
The distributed transaction processing system according to the present invention comprises the components described in claims 4) to 4), wherein the parent transaction which activates the child transaction becomes a coordinator on two-phase commit, and b The commit is performed as a heuristic decision in (1), and a heuristic report is provided as a data consistency checking mechanism in (e), and a claim 3 is provided as a transaction re-executing mechanism in (f), and the original child transaction is supported. By submitting a recovery transaction, a prepared transaction is temporarily committed after a failure occurs between computers, and then the recovery transaction is re-submitted as a local transaction later if necessary, thereby ensuring consistency between computers. Characterized by restoring sex It is intended.

【0022】本発明に係る分散トランザクション処理シ
ステムは、請求項4のa)〜f)に示すの構成要素から
なり、子トランザクションが2フェイズ・コミット上で
コーディネータになり、b)でのヒューリスティック決
定としてコミットを行なうもので、e)のデータ整合性
確認機構としてヒューリスティック・レポートを備えて
おり、f)のトランザクション再実行機構として請求項
3を備え、元の親トランザクションに対応した回復用ト
ランザクションを投入することにより、計算機間に渡る
障害の発生後一時的にプリペア状態のトランザクション
をコミットし、後で回復用トランザクションを必要に応
じてローカル・トランザクションとして再投入して計算
機間の整合性を回復することを特徴とするものである。
A distributed transaction processing system according to the present invention comprises the components described in claims 4) to 4), wherein a child transaction becomes a coordinator on two-phase commit, and a heuristic decision is made in b). It performs a commit, has a heuristic report as a data consistency check mechanism of e), has claim 3 as a transaction re-execution mechanism of f), and inputs a recovery transaction corresponding to the original parent transaction. In this way, it is possible to temporarily commit a prepared transaction after a failure has occurred between computers, and then re-enter a recovery transaction as a local transaction as needed to restore consistency between computers. It is a feature.

【0023】本発明に係る分散トランザクション処理シ
ステムは、請求項4の分散トランザクション処理システ
ムにおいて、データ整合性確認機構は、請求項4のe)
のデータ整合性確認機構を請求項2のデータ整合性確認
機構に変更したものであることを特徴とするものであ
る。
[0023] In the distributed transaction processing system according to the present invention, in the distributed transaction processing system according to the fourth aspect, the data consistency confirmation mechanism is set to e) in the fourth aspect.
The data consistency check mechanism of the present invention is changed to the data consistency check mechanism of claim 2.

【0024】本発明に係る分散トランザクション処理シ
ステムは、請求項5の分散トランザクション処理システ
ムにおいて、データ整合性確認機構は、請求項5のe)
のデータ整合性確認機構を請求項2のデータ整合性確認
機構に変更したものであることを特徴とする分散トラン
ザクション処理システム。
[0024] The distributed transaction processing system according to the present invention is the distributed transaction processing system according to claim 5, wherein the data consistency confirmation mechanism is as set forth in claim 5;
3. The distributed transaction processing system according to claim 2, wherein the data consistency checking mechanism is changed to the data consistency checking mechanism according to claim 2.

【0025】本発明に係る分散トランザクション処理シ
ステムは、請求項6の分散トランザクション処理システ
ムにおいて、データ整合性確認機構は、請求項6のe)
のデータ整合性確認機構を請求項2のデータ整合性確認
機構に変更したものであることを特徴とするものであ
る。
In the distributed transaction processing system according to the present invention, in the distributed transaction processing system according to the sixth aspect, the data consistency confirmation mechanism is set to e) in the sixth aspect.
The data consistency check mechanism of the present invention is changed to the data consistency check mechanism of claim 2.

【0026】本発明に係る分散トランザクション処理シ
ステムは、請求項7の分散トランザクション処理システ
ムにおいて、データ整合性確認機構は、請求項7のe)
のデータ整合性確認機構を請求項2のデータ整合性確認
機構に変更したものであることを特徴とする分散トラン
ザクション処理システム。
The distributed transaction processing system according to the present invention is the distributed transaction processing system according to claim 7;
3. The distributed transaction processing system according to claim 2, wherein the data consistency checking mechanism is changed to the data consistency checking mechanism according to claim 2.

【0027】[0027]

【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。 実施の形態1.本実施の形態は、ロールバックやシステ
ム障害が生じても後戻りしない採番機構による通番を、
アプリケーションの正常/異常終了通知に使用した例で
ある。以下、図面を参照しながら本実施の形態を説明す
る。図1は本発明に係る実施の形態1の採番機構を用い
たトランザクションの処理フローを示すフローチャート
である。採番機構は、まず、端末から入力される注文情
報を受信すると(ステップS1)、その注文毎に採番を
行い(ステップS2)、この採番を行った結果、即ち処
理確認情報を端末へ送信する(ステップS3)。端末オ
ペレータは、採番機構から送信される処理確認情報を端
末の画面に出力し、以降自分の投入した業務を記録し
て、この通番をキーとして参照することができる。これ
により、端末オペレーターは、このトランザクション処
理が例えば20番であると判る。
Embodiments of the present invention will be described below with reference to the drawings. Embodiment 1 FIG. In this embodiment, a serial number by a numbering mechanism that does not return even if rollback or system failure occurs,
This is an example used for notification of normal / abnormal termination of an application. Hereinafter, the present embodiment will be described with reference to the drawings. FIG. 1 is a flowchart showing a processing flow of a transaction using the numbering mechanism according to the first embodiment of the present invention. First, upon receiving the order information input from the terminal (step S1), the numbering mechanism performs numbering for each order (step S2), and sends the numbering result, that is, processing confirmation information to the terminal. It transmits (step S3). The terminal operator can output the processing confirmation information transmitted from the numbering mechanism to the screen of the terminal, record the work entered by the terminal operator thereafter, and refer to this serial number as a key. As a result, the terminal operator knows that the transaction processing is, for example, No. 20.

【0028】採番機構は、実際に業務処理を行い(ステ
ップS4)、エラーがあるかどうかを判断し、エラーが
なく正常終了であると判断すると(ステップS5)、こ
の通番を含んだ正常終了メッセージを出力し(ステップ
S6)、コミットする。一方、採番機構は、エラーがあ
り異常終了であると判断すると(ステップS5)、通番
を含んだ異常終了メッセージを出力し(ステップS
8)、ロールバックする(ステップS9)。端末オペレ
ータは、出力される正常終了/異常終了メッセージを参
照することにより、自分の投入した業務の20番が異常
なく終わったかどうかを判断することができる。ここ
で、仮に通番もロールバックされると、次の業務投入に
よって同じ通番が再使用されるため、業務の識別に使え
ない。
The numbering mechanism actually performs the business process (step S4), determines whether there is an error, and if it determines that there is no error and normal termination (step S5), the normal termination including the serial number is performed. A message is output (step S6), and commit is performed. On the other hand, when the numbering mechanism determines that there is an error and the processing ends abnormally (step S5), the numbering mechanism outputs an abnormal end message including the serial number (step S5).
8) Roll back (step S9). By referring to the output of the normal end / abnormal end message, the terminal operator can judge whether or not the 20th of the work entered by the terminal operator has ended without any error. Here, if the serial number is also rolled back, the same serial number is reused when the next job is input, and cannot be used for identifying the job.

【0029】次に、図2は本発明に係る実施の形態1の
採番機構の処理フローを示すフローチャートである。こ
こでは、採番機構が採番してアプリケーションに結果を
返す処理内容を示している。採番機構は、アプリケーシ
ョンから転送される採番要求情報を受信すると(ステッ
プS11)、メモリ上の現在の採番のエリアをロックし
(ステップS12)、メモリ上の現在の採番に+1を加
えて、採番を書き換える(ステップS13)。採番機構
は、例えばメモリ上の19番のエリアをロックし、その
19番の採番を20番に書き換える。その後、採番機構
は、採番がNの倍数であるかどうかを判断し、採番がN
の倍数であると判断すると(ステップS14)、メモリ
上の採番を不揮発性媒体にストアし(ステップS1
5)、メモリ上の現在の採番をアンロックした後(ステ
ップS16)、その採番結果をアプリケーションに戻す
(ステップS17)。
Next, FIG. 2 is a flowchart showing a processing flow of the numbering mechanism according to the first embodiment of the present invention. Here, the contents of the process of numbering by the numbering mechanism and returning the result to the application are shown. Upon receiving the numbering request information transferred from the application (step S11), the numbering mechanism locks the current numbering area on the memory (step S12) and adds +1 to the current numbering on the memory. Then, the numbering is rewritten (step S13). The numbering mechanism locks the 19th area on the memory, for example, and rewrites the 19th number to 20th. Thereafter, the numbering mechanism determines whether the numbering is a multiple of N, and
If it is determined that the number is a multiple of (step S14), the numbering in the memory is stored in the non-volatile medium (step S1).
5) After the current numbering on the memory is unlocked (step S16), the numbering result is returned to the application (step S17).

【0030】一方、採番機構は、採番がNの倍数でない
と判断すると(ステップS14)、メモリ上の採番を不
揮発性媒体にストアしないでメモリ上の現在の採番をア
ンロックし(ステップS16)、その採番結果をアプリ
ケーションに戻す(ステップS17)。採番機構は、例
えば10回に1回メモリ上に書き出すとし、今採番が2
0番になると、メモリ上に20番の採番を書き出す。こ
れにより、カウンタが20まで進んでいることがディス
ク上で保証される。採番機構は、例えば採番が21にな
った時、採番をメモリ上で進めアンロックしてアプリケ
ーションに戻す。
On the other hand, when determining that the numbering is not a multiple of N (step S14), the numbering mechanism unlocks the current numbering in the memory without storing the numbering in the memory in the non-volatile medium (step S14). In step S16, the numbering result is returned to the application (step S17). It is assumed that the numbering mechanism writes data to the memory once every ten times, for example.
When the number becomes 0, the number 20 is written in the memory. This ensures that the counter has advanced to 20 on disk. The numbering mechanism, for example, when the numbering becomes 21, the numbering is advanced on the memory, unlocked, and returned to the application.

【0031】次に、図3は本発明に係る実施の形態1の
採番機構の採番の回復処理フローを示すフローチャート
である。ここでは、システム・クラッシュ等のメモリ内
容を失わせる障害発生後の採番機構による現在の採番の
回復処理内容を示している。採番機構は、不揮発性媒体
から現在の採番を回復し(ステップS21)、現在の採
番に+Nを加える。採番機構は、例えば採番が15番に
なったところでシステム・クラッシュ等が生じると、採
番をメモリ上に持っているため、メモリ上の情報が全て
失われてしまうので、不揮発性媒体にしか頼るものがな
い。不揮発性媒体には、例えば今、採番15よりも小さ
い採番10が入っているとし、採番10から使い始める
と、既に19まで進んでいる可能性があるので、同じも
のを使用してしまうことがある。これを避けるため、例
えば現在の採番に+10を加えてやると、先に進んでい
たとしても10回に1回は書き出している。このため、
採番が今の+10回で20回になり、採番20回から使
用すればよいので、採番が後戻りしないことを保証する
ことができる。従って、このような処理を行なうことに
より、この採番機構による通番は飛び出ることはあって
も、重複をなくすことができる。
FIG. 3 is a flowchart showing a numbering recovery processing flow of the numbering mechanism according to the first embodiment of the present invention. Here, the contents of the current numbering recovery process by the numbering mechanism after the occurrence of a failure that causes loss of memory contents such as a system crash are shown. The numbering mechanism recovers the current numbering from the non-volatile medium (step S21) and adds + N to the current numbering. The numbering mechanism, for example, if a system crash or the like occurs when the numbering becomes 15, the numbering is stored in the memory, and all information in the memory is lost. There is nothing to rely on. For example, it is assumed that the non-volatile medium has a numbering 10 smaller than the numbering 15 now, and when the numbering 10 starts to be used, it is possible that the number has already reached 19. Sometimes. In order to avoid this, for example, if +10 is added to the current numbering, writing is performed once every ten times even if the process proceeds. For this reason,
Since the numbering is increased from the current +10 times to 20 times, and the numbering may be used from the 20th time, it is possible to guarantee that the numbering does not return. Therefore, by performing such processing, the serial number by this numbering mechanism can be skipped, but the duplication can be eliminated.

【0032】このように、本実施の形態では、順序番号
をメモリと不揮発性媒体上のファイルに保持し、業務プ
ログラムからの採番命令呼び出しによりメモリ上の順序
番号をカウント・アップして業務プログラムに返し、計
算機全体で既定値または定義により与えられた回数N回
に一度は最新の順序番号をファイルに書き出し、トラン
ザクションのロールバックでも戻されず、かつ採番後コ
ミットまでの間ロックされることもない採番のプログラ
ムインターフェース機構を設けたため、要求があってア
プリケーションに返るまではロックされているが、この
後コミットまではこの採番を自由に使用することができ
る。このため、他のトランザクションが来てもカウント
アップして使用することができる。
As described above, in the present embodiment, the sequence number is held in the memory and the file on the non-volatile medium, and the sequence number in the memory is counted up by calling a numbering instruction from the business program, thereby increasing the sequence number in the memory. The latest sequence number is written to a file at least once every N times given by the default value or definition in the whole computer. Since there is no program numbering mechanism that is not numbered, it is locked until there is a request and returns to the application, but this numbering can be used freely until the commit. Therefore, even if another transaction comes, it can be counted up and used.

【0033】本実施の形態は、メモリの情報が失われる
システム障害の発生後にファイルに残った順序番号+N
以上の順序番号を復元することにより、仮に障害が発生
しても、業務プログラムに最後に返した順序番号より大
きい順序番号から採番を再開させる採番回復機構を設け
たため、ファイルに残った方から回復することによっ
て、例えば採番19を返した時にクラッシュが起こって
も、採番20番以上から返すので、重複なく採番を得る
ことができる。
In this embodiment, the sequence number + N remaining in the file after the occurrence of a system failure in which information in the memory is lost
By restoring the above sequence numbers, even if a failure occurs, the business program has a numbering recovery mechanism that restarts numbering from the sequence number larger than the last returned sequence number. For example, even if a crash occurs when the numbering 19 is returned, the numbering is returned from the numbering number 20 or more, so that the numbering can be obtained without duplication.

【0034】本実施の形態によれば、ユーザが各トラン
ザクションの識別情報を得たい場合に、データベースや
ファイルを用いることなく、また、重複なく採番を得る
ことができる。また、図2のフローチャートから明らか
なように、このような採番が処理のシリアライズのため
に行なうロックは採番する間だけであり、データベース
を使った場合のように、ロックがコミットまで保持され
ることがないようにできる。しかも、I/Oはトランザ
クションN件に1度であるため、システムの可用性を向
上させることができる。
According to the present embodiment, when the user wants to obtain the identification information of each transaction, the numbering can be obtained without using any database or file and without duplication. Further, as is clear from the flowchart of FIG. 2, such a numbering is performed only during the numbering process for serializing the process. Can be done. Moreover, since I / O is performed once per N transactions, the availability of the system can be improved.

【0035】実施の形態2.本実施の形態は、2つの計
算機間に渡る分散トランザクション処理システムでのデ
ータ整合性確認機構であり、一方のサイトで端末から受
けた注文情報に対して注文番号を採番し、この採番した
注文番号をキーとして注文データをサイトAの注文デー
タベース(マスタ)に書き込むとともに、RPC(Re
mote Procedure Call)p1により
サイトBの注文データベース(レプリカ)に書き込むト
ランザクションへの適用例である。サイトBのシステム
のクラッシュ後、データの整合性がどのように確認され
るかについて、以下、図面を参照しながら本実施の形態
を説明する。
Embodiment 2 The present embodiment is a data consistency check mechanism in a distributed transaction processing system extending between two computers, and an order number is assigned to order information received from a terminal at one site, and this number is assigned. Using the order number as a key, the order data is written into the order database (master) at site A, and the RPC (Re
This is an example of application to a transaction that writes data to an order database (replica) at site B using a “mote Procedure Call” p1. This embodiment will be described below with reference to the drawings on how the data consistency is confirmed after the system B at the site B crashes.

【0036】図4は本発明に係る実施の形態2の分散ト
ランザクション処理システムの構成を示すブロック図で
ある。ここでは、RPCを用いて2つのサイトA、Bで
データベースを同期的に更新するシステムの例を示して
いる。図4において、1、2は計算機であり、3、4は
注文データベースであり、5、6はログ採取機構であ
り、7は採番機構である。8はアプリケーションであ
り、9は端末であり、10、11は注文レコードであ
る。各注文データベース3、4の注文レコード10、1
1は、注文番号(Key)をキーとし、注文情報(Da
ta)をカラムとして持つ。サイトA側の計算機1に
は、注文データベース(マスタ)3、ログ採取機構5、
採番機構7、アプリケーション8等が設けられている。
サイトB側の計算機2には、採番機構が設けられておら
ず、注文データベース(レプリカ)4、ログ採取機構6
等が設けられている。本実施の形態では、サイトA側の
計算機1のアプリケーション8で更新する時、サイトA
側の注文データベース3とサイトB側の注文データベー
ス4を同期的に更新させる。サイトA側の更新を確定す
る時は、サイトB側の更新を確定させ、サイトA側の更
新を取り止める時は、サイトB側の更新を取り止めると
いう具合に、処理を同期的にコミット乃至ロールバック
に設定する。
FIG. 4 is a block diagram showing the configuration of the distributed transaction processing system according to the second embodiment of the present invention. Here, an example of a system in which databases are synchronously updated at two sites A and B using RPC is shown. In FIG. 4, 1 and 2 are computers, 3 and 4 are order databases, 5 and 6 are log collecting mechanisms, and 7 is a numbering mechanism. 8 is an application, 9 is a terminal, and 10 and 11 are order records. Order records 10, 1 in each order database 3, 4
1 designates order information (Da) using an order number (Key) as a key.
ta) as a column. The computer 1 on the site A has an order database (master) 3, a log collection mechanism 5,
A numbering mechanism 7, an application 8, and the like are provided.
The computer 2 on the site B does not have a numbering mechanism, and has an order database (replica) 4 and a log collection mechanism 6.
Etc. are provided. In the present embodiment, when updating by the application 8 of the computer 1 on the site A side, the site A
The order database 3 of the site B and the order database 4 of the site B are updated synchronously. When the update on the site A side is confirmed, the update on the site B side is confirmed, and when the update on the site A side is canceled, the update on the site B side is canceled. Set to.

【0037】次に、図5は図4に示す分散トランザクシ
ョン処理システムのトランザクション処理フローを示す
フローチャートである。ここでは、RPCを用いて2つ
のサイトA、Bで各々のデータベース3、4を同期的に
更新するトランザクションの処理内容を示している。サ
イトA側の計算機1は、端末9から入力される注文情報
を受信すると(ステップS31)、実施の形態1と同じ
採番を行ってその採番で注文番号を採取し(ステップS
32)、この採取した注文番号をキーとしてサイトA側
の注文データベース3に注文情報を挿入する(ステップ
S33)。サイトA側の計算機1は、サイトAの注文デ
ータベース3に挿入した注文番号(Key)と注文情報
(Data)を引数としてサイトBの計算機2へRPC
を行う(ステップS34)。
FIG. 5 is a flowchart showing a transaction processing flow of the distributed transaction processing system shown in FIG. Here, the processing contents of a transaction for updating the databases 3 and 4 synchronously at the two sites A and B using RPC are shown. Upon receiving the order information input from the terminal 9 (step S31), the computer 1 on the site A performs the same numbering as in the first embodiment and collects the order number by the numbering (step S31).
32) The order information is inserted into the order database 3 on the site A side using the collected order number as a key (step S33). The computer 1 on the site A uses the order number (Key) and the order information (Data) inserted in the order database 3 of the site A as arguments to the computer 2 on the site B by RPC.
Is performed (step S34).

【0038】サイトB側の計算機2は、サイトA側の計
算機1から転送されるサイトA側と同じ注文番号をキー
としてサイトB側の注文データベース4に注文情報を挿
入し(ステップS35)、呼び出し元のサイトA側の計
算機1へ制御を戻す(ステップS36)。このように、
サイトA側の計算機1は、採番を行った注文番号と注文
情報で更新を行い、この更新を行った注文番号と注文情
報をサイトB側の計算機2へ送信する。サイトB側の計
算機2は、計算機1から送信される注文番号と注文情報
で更新を行う。
The computer 2 on the site B side inserts order information into the order database 4 on the site B side using the same order number as that on the site A side transferred from the computer 1 on the site A side as a key (step S35) and calls it. The control is returned to the original computer A on the site A side (step S36). in this way,
The computer 1 on the site A updates with the numbered order number and the order information, and transmits the updated order number and the order information to the computer 2 on the site B side. The computer 2 on the site B updates with the order number and the order information transmitted from the computer 1.

【0039】サイトA側の計算機1は、RPC終了後、
サイトB側の計算機2へプリペア要求情報を送信し(ス
テップS37)、サイトB側の計算機2は、計算機1か
ら送信されるプリペア要求情報を受信すると、プリペア
を行い、サイトA側の計算機1へプリペア完了情報を送
信する(ステップS38)。サイトA側の計算機1は、
計算機2から送信されるプリペア完了情報を受信する
と、コミットを行い、サイトB側の計算機2へコミット
要求情報を送信するとともに(ステップS37)、端末
9へコミットを行った結果を送信する(ステップS3
9)。サイトB側の計算機2は、計算機1から送信され
るコミット要求情報を受信すると、コミットを行う(ス
テップS38)。
Computer 1 on site A, after the end of RPC,
The prepare request information is transmitted to the computer 2 on the site B side (step S37). When the prepare request information transmitted from the computer 1 is received, the computer 2 on the site B performs a prepare and sends the prepared request to the computer 1 on the site A side. The prepare completion information is transmitted (step S38). Calculator 1 on site A
When the prepare completion information transmitted from the computer 2 is received, a commit is performed, commit request information is transmitted to the computer 2 on the site B side (step S37), and a result of the commit is transmitted to the terminal 9 (step S3).
9). When receiving the commit request information transmitted from the computer 1, the computer 2 on the site B performs a commit (step S38).

【0040】次に、図6、7は図4に示す分散トランザ
クション処理システムのサイトAとサイトBのデータの
整合性が確認される様子を示すシーケンス図である。図
6では、不整合のない場合のサイトA、Bの両サイトの
データの整合性が確認される様子を示しており、図7で
は、不整合のある場合のサイトA、Bの両サイトのデー
タの整合性が確認される様子を示している。図6に示す
ように、サイトA、Bのトランザクションは、端末9か
ら入力される注文情報に対して注文レコード10、11
を作成し、作成した注文レコード10、11を各注文デ
ータベース3、4に挿入処理する。
Next, FIGS. 6 and 7 are sequence diagrams showing how the data consistency between the sites A and B of the distributed transaction processing system shown in FIG. 4 is confirmed. FIG. 6 shows a state in which data consistency of both sites A and B is confirmed when there is no inconsistency, and FIG. 7 shows a case where both sites A and B in the case where there is inconsistency. This shows how data consistency is confirmed. As shown in FIG. 6, the transactions of the sites A and B correspond to the order records 10 and 11 corresponding to the order information input from the terminal 9.
Is created, and the created order records 10 and 11 are inserted into the order databases 3 and 4.

【0041】各注文データベース3、4の構造は、図4
に示した通りである。まず、サイトAのコーディネータ
側がロールバックされて不整合が起こらない場合を図6
を用いて説明し、次に、サイトAのコーディネータ側が
コミットされて不整合が起こる場合を図7を用いて説明
する。
The structure of each of the order databases 3 and 4 is shown in FIG.
As shown in FIG. First, the case where the coordinator side of site A is rolled back and no inconsistency occurs is shown in FIG.
Next, a case where the coordinator side of the site A is committed and an inconsistency occurs will be described with reference to FIG.

【0042】サイトA側の計算機1は、端末9から送信
される入力情報’AAA’に対して、実施の形態1の採
番機構を用いて注文番号’101’を採番する。この採
番を行った注文番号’101’をキーとし、端末9から
送信される入力情報’AAA’を内容とする注文レコー
ド10を作成して注文データベース3に書き出す。
The computer 1 on the site A assigns the order number “101” to the input information “AAA” transmitted from the terminal 9 by using the numbering mechanism of the first embodiment. Using the numbered order number '101' as a key, an order record 10 containing the input information 'AAA' transmitted from the terminal 9 is created and written to the order database 3.

【0043】次に、サイトA側の計算機1は、サイトB
側の計算機2に対して、手続きp9をRPCする。この
時、サイトBの計算機2には、サイトA側の計算機1か
ら手続きp9を行うためのパラメータ、即ちサイトA側
で採番を行った注文番号(Key)の’101’と、注
文情報(Data)の’AAA’が送信される。
Next, the computer 1 on the site A side
RPC of procedure p9 is performed for the computer 2 on the side. At this time, the computer 2 of the site B has a parameter for performing the procedure p9 from the computer 1 of the site A, that is, “101” of the order number (Key) numbered by the site A and the order information ( Data) 'AAA' is transmitted.

【0044】サイトB側の計算機2は、サイトA側の計
算機1から送信される注文番号と注文情報のパラメータ
を受信すると、この注文番号と注文情報のパラメータに
従って注文レコード11を作成し、注文データベース4
に書き出し、制御をサイトA側の計算機1に戻す。サイ
トA側の計算機1は、コミット処理を行なうためにサイ
トB側の計算機2へプリペア要求情報を送信する。
When the computer 2 on the site B receives the order number and the parameters of the order information transmitted from the computer 1 on the site A, the computer 2 creates an order record 11 in accordance with the order number and the parameters of the order information, and creates an order database. 4
And the control is returned to the computer 1 on the site A side. The computer 1 on the site A transmits the prepare request information to the computer 2 on the site B to perform a commit process.

【0045】サイトB側の計算機2は、サイトA側の計
算機1から送信されるプリペア要求情報を受信すると、
サイトBのログ採取機構6により注文番号を含めてプリ
ペア・ログを採取する。プリペア・ログの内容には、図
8に示すように、トランザクションIDを示すTID
と、プリペア・ログを示すフラグを示すPと、RPC手
続き名と、RPCパラメータのKey(注文番号;注文
データベースのキー)とData(注文情報)とが含ま
れる。
When the computer 2 on the site B receives the prepare request information transmitted from the computer 1 on the site A,
The log collection mechanism 6 of the site B collects the prepare log including the order number. As shown in FIG. 8, the contents of the prepare log include a TID indicating a transaction ID.
, P indicating a flag indicating a prepare log, an RPC procedure name, Key (order number; key of order database) of RPC parameters, and Data (order information).

【0046】サイトB側の計算機2は、このプリペア・
ログ採取後、レディー(準備完了)情報をサイトAの計
算機1へ送信しないうちにシステム・クラッシュしたと
する。サイトB側の計算機2は、プリペア・ログ採取
後、サイトA側の計算機1からコミットまたはロールバ
ックの指示が来るのを待つ状態になっており、コミット
していいのか、あるいはロールバックしていいのかを自
分で決めることができない。サイトB側の計算機2は、
コミット/ロールバックの指示が来るのを待っている時
にシステム・クラッシュしたとする。
The computer 2 on the site B side prepares the
It is assumed that after log collection, a system crash occurs before sending ready (prepared) information to the computer 1 of the site A. After collecting the prepare log, the computer 2 on the site B is in a state of waiting for a command for commit or rollback from the computer 1 on the site A, and may commit or roll back. I can't decide for myself. Calculator 2 on Site B is
Suppose a system crash occurs while waiting for a commit / rollback instruction.

【0047】サイトA側の計算機1は、サイトB側の計
算機2からレディー情報が送信されないため、タイムア
ウトを起こし、ロールバックされる。即ち、注文データ
ベース3への注文レコード10のレコード書き出しは、
取り消さ、注文データベース3は、元に戻る。
Since the ready information is not transmitted from the computer 2 on the site B, the computer 1 on the site A is timed out and rolled back. That is, the record writing of the order record 10 to the order database 3 is as follows.
Canceled, the order database 3 returns to its original state.

【0048】一方、サイトBでは、障害原因解決後、シ
ステムの再起動が行われる。この例では、障害発生時に
プリペア状態だったトランザクションは、ヒューリステ
ィック決定によりロールバックされるものとする。
On the other hand, at the site B, after the cause of the failure is resolved, the system is restarted. In this example, it is assumed that the transaction in the prepared state at the time of the failure is rolled back by heuristic determination.

【0049】次に、サイトAとの通信路が復旧した後、
ヒューリスティック決定をしたトランザクションについ
て、整合性確認機構が以下に説明する図10に示すフロ
ーチャートに従って処理を行なう。ここでは、ヒューリ
スティック決定を行ったトランザクションに対して整合
性確認をどのように行っているかを示している。整合性
確認機構は、該当するトランザクションの判断定義情報
を読み(ステップS41)、読んだ判断定義情報に示さ
れたログ中の通番情報を読んだ後(ステップS42)、
判断定義情報に示された相手データベースのログ中の通
番情報をキーに持つレコードを探す(ステップS4
3)。
Next, after the communication path with the site A is restored,
For the transaction for which heuristics have been determined, the consistency checker performs processing in accordance with the flowchart shown in FIG. 10 described below. Here, it shows how the consistency check is performed for the transaction for which the heuristic decision has been made. The consistency checking mechanism reads the judgment definition information of the corresponding transaction (step S41), and after reading the serial number information in the log indicated by the read judgment definition information (step S42),
A record having the key of the serial number information in the log of the partner database indicated in the judgment definition information is searched (step S4).
3).

【0050】整合性確認機構は、図8、9に示すよう
に、まず、プリペア・ログ内の通番情報のキーを読み、
このキーに突き合わせた相手のデータベースを読みに行
く。図8は、確認機構としてプリペア・ログの内容を示
しており、当然RPCパラメータのキーの所に情報が入
っていないと、確認することができない。図9は、どれ
とどれを突き合わせればよいかの情報を示している。図
9に示すRPC1は、プリペア・ログ内のキーの情報を
相手のサイトAの注文データベースの注文番号と突き合
わせる処理である。ヒューリスティック決定としては、
自分の側がロールバックされると示している。
As shown in FIGS. 8 and 9, the consistency checking mechanism first reads the key of the serial number information in the prepare log,
I go to the other party's database that matches this key. FIG. 8 shows the contents of the prepare log as a confirmation mechanism. Naturally, it is not possible to confirm unless information is entered at the key of the RPC parameter. FIG. 9 shows information on which should be matched. The RPC 1 shown in FIG. 9 is a process for matching key information in the prepare log with the order number in the order database of the partner site A. As a heuristic decision,
Indicate that your side will be rolled back.

【0051】整合性確認機構は、相手のレコードを探し
てあった場合(ステップS44)、こちらのヒューリス
ティック決定がコミットであるかを判断し、こちらのヒ
ューリスティック決定がコミットであると判断すると
(ステップS45)、不整合はないと判定する。整合性
確認機構は、相手のレコードがあってこちらのヒューリ
スティック決定がロールバックであると判断すると(ス
テップS44、45)、不整合であると判定する。整合
性確認機構は、相手のレコードを探してなかった場合
(ステップS44)、こちらのヒューリスティック決定
がコミットであるかを判断し、こちらのヒューリスティ
ック決定がコミットであると判断すると(ステップS4
6)、不整合であると判定する。整合性確認機構は、相
手のレコードがなくてこちらのヒューリスティック決定
がロールバックであると判断すると(ステップS44、
46)、不整合はないと判定する。
If the consistency checker has searched for the record of the partner (step S44), it determines whether this heuristic decision is a commit, and if this heuristic decision is a commit (step S45). ), It is determined that there is no mismatch. When the consistency check mechanism determines that there is a record of the other party and that the heuristic decision is rollback (steps S44 and S45), it is determined that the record is inconsistent. If the consistency checker has not searched for the record of the partner (step S44), the consistency checker determines whether this heuristic decision is a commit, and determines that this heuristic decision is a commit (step S4).
6) It is determined that there is a mismatch. When the consistency check mechanism determines that there is no partner record and that the heuristic decision is rollback (step S44,
46), it is determined that there is no mismatch.

【0052】この整合性確認機構は、まず、ログを確認
し、注文番号’101’を得る。これに対応するサイト
Aの注文データベース3の同キーのレコードを探すが、
これは、ロールバックされていてないので、不整合は発
生していないことが検出される。ログ中のどのフィール
ドと、どのサイトのどのデータベースのレコードを比較
すべきかは、予め図9に示すようなトランザクション毎
の判断定義として、整合性確認機構に与えておく。
The consistency checking mechanism first checks the log and obtains the order number '101'. A corresponding record of the same key in the order database 3 of the site A is searched.
Since this has not been rolled back, it is detected that no inconsistency has occurred. Which field in the log should be compared with which database record at which site should be given to the consistency checker in advance as a judgment definition for each transaction as shown in FIG.

【0053】サイトAは、サイトBがクラッシュする
と、サイトBからレディーが通知されないので、ロール
バックされる。サイトAのデータベース3は、ロールバ
ックするので、元に戻る。次のトランザクションは、ロ
ールバックしたからといって採番機構は後戻りはしない
ので、’102’から探す。’101’は、探してもな
い状態である。サイトBは、その続きで立ち上がった時
に、ヒューリスティック決定により整合性が取れるかど
うか判らないが、とにかくロールバックと決めておき、
その後ログを見に行って’101’がインダウトである
ことが判る。要は、どっちに設定していい情報かが判ら
ない。それで、サイトBは、どっちに設定すべきかを知
るために、サイトAに問い合わせる。サイトBの整合性
確認機構は、’101’を探してもないので、ロールバ
ックされていることが判る。
When the site B crashes, the site A is rolled back because the ready is not notified from the site B. Since the database 3 of the site A rolls back, it returns to the original state. In the next transaction, the numbering mechanism does not return just because the rollback is performed, so that the transaction is searched from '102'. '101' is a state in which it is not found. When Site B starts up, it doesn't know if heuristic decisions will make it consistent, but it's decided to roll back anyway,
Then go to the log and see that '101' is an in-doubt. The point is, I don't know which information to set. So site B queries site A to find out which one to set. Since the consistency check mechanism of the site B has not searched for “101”, it is found that the rollback has been performed.

【0054】同じ例で、今度は図7に示す通り、サイト
B側の計算機2は、システム・クラッシュがレディー通
知を送った直後に起こったとする。サイトA側の計算機
1では、計算機2からレディー通知が来るため、コミッ
トを実行し、’101’のレコード10ができる。その
後、サイトA側の計算機1は、サイトB側の計算機2へ
コミット要求情報を送信するが、サイトB側の計算機2
は、クラッシュしているので、このコミット要求は無視
される。一方、サイトB側の計算機2では、障害原因解
決後、システムの再起動が行われる。図6の場合と同
様、プリペア状態のトランザクションは、ヒューリステ
ィック決定によりロールバックされる。
In the same example, as shown in FIG. 7, it is assumed that the computer 2 on the site B side has just occurred a system crash immediately after sending a ready notification. The computer 1 on the site A receives the ready notification from the computer 2 and executes the commit to create a record 10 of '101'. After that, the computer 1 on the site A transmits the commit request information to the computer 2 on the site B, but the computer 2 on the site B
Has been crashed, so this commit request is ignored. On the other hand, in the computer 2 on the site B side, after the cause of the failure is resolved, the system is restarted. As in the case of FIG. 6, the transaction in the prepared state is rolled back by heuristic determination.

【0055】次に、サイトA側の計算機1との通信路が
復旧した後、ヒューリスティック決定したトランザクシ
ョンについて説明する。整合性確認機構は、ログを確認
し、図6と同様、注文番号’101’を得る。これに対
応するサイトA側の計算機1の注文データベース3の同
キーのレコードを探すが、今度はコミットされているの
で、不整合が発生していることが判る。以上の手順によ
り、システム・クラッシュ後、どのような場合も両サイ
トの整合性を確認することができる。
Next, a transaction heuristically determined after the communication path with the computer 1 on the site A side is restored will be described. The consistency checker checks the log and obtains the order number '101' as in FIG. The corresponding record of the same key in the order database 3 of the computer 1 on the site A side corresponding to this is searched for, but since it has been committed, it can be seen that inconsistency has occurred. By the above procedure, the consistency between the two sites can be confirmed in any case after the system crash.

【0056】このように、本実施の形態では、 分散ト
ランザクション処理において、コーディネータとなるト
ランザクションの分散ノードのサイトAに設けた、実施
の形態1と同じ採番機構7による通番をキーとする注文
レコード10を書き込む注文データベース3と、サブオ
ーディネートとなる分散ノードのサイトBに設けた、同
通番を遅くともプリペア・ログの前にログに書き込むロ
グ採取機構6と、データ整合性確認の際に突き合わせる
べきデータの所在、判断方法を指定した整合性判断定義
と、障害時のヒューリスティック決定によるデータ不整
合を、インダウトのプリペア・ログはあるがコーディネ
ータの指示によるコミット/ロールバックがされていな
いトランザクションに対して、ログ中の通番に対応した
レコードがあるかを整合性判断定義情報に従って突き合
わせることにより、検出できて、ユーザがグローバル・
トランザクションIDを意識する必要のないデータ不整
合検出機構とを有するように構成している。このため、
2つの計算機1、2からなる分散システムでトランザク
ション処理を行う場合のシステム障害時のデータ整合性
確認において、ヒューリスティック・レポートやグロー
バルIDに頼ることなく整合性を確認することができ
る。また、従来、ヒューリスティック決定がされた後
に、ヒューリスティック・レポートを行うシステムで
は、IDは判るが、業務と関係のないトランザクション
毎に振れられたIDであるので、業務的に確認すること
ができなかったが、このような問題も解消することがで
きる。
As described above, in the present embodiment, in the distributed transaction processing, the order record using the serial number by the same numbering mechanism 7 as in the first embodiment provided at the site A of the distributed node of the transaction serving as the coordinator as a key 10 and an order database 3 for writing the same serial number in a log before the prepare log at the latest at the site B of the distributed node serving as a subordinate. The definition of the consistency judgment that specifies the location of the data to be judged and the judgment method, and the data inconsistency due to the heuristic decision at the time of failure, for the transaction that has an in-doubt prepared log but has not been committed / rolled back by the coordinator's instruction To check if there is a record corresponding to the serial number in the log By matching according to the consistency judgment definition information, it can be detected and the user
It is configured to have a data inconsistency detection mechanism that does not need to be aware of the transaction ID. For this reason,
In a data consistency check at the time of a system failure when performing transaction processing in a distributed system including two computers 1 and 2, it is possible to check the consistency without relying on a heuristic report or a global ID. Conventionally, in a system that performs a heuristic report after a heuristic decision is made, the ID is known, but since it is an ID assigned to each transaction unrelated to the business, it cannot be confirmed in a business manner. However, such a problem can be solved.

【0057】実施の形態3.本実施の形態は、2つの計
算機間に渡る分散トランザクション処理システムでのト
ランザクション再実行機構であり、サイトAで端末から
受けた注文情報に対して注文データを作成して、分散ト
ランザクション起動によりサイトBの注文データベース
に書き込み、分散トランザクションの結果として支払い
情報をサイトAで貰って伝票をプリントする処理への適
用例である。この分散トランザクション処理システムで
は、注文データベースは、サイトBだけにあり、コミッ
トは、サイトBだけで行われるものとする。以下、図面
を参照しながら本実施の形態を説明する。
Embodiment 3 This embodiment is a transaction re-executing mechanism in a distributed transaction processing system extending between two computers, and creates order data for order information received from a terminal at a site A, and activates a site B by a distributed transaction activation. This is an example of application to a process of writing in an order database, obtaining payment information at site A as a result of a distributed transaction, and printing a slip. In this distributed transaction processing system, it is assumed that the order database exists only at the site B, and the commit is performed only at the site B. Hereinafter, the present embodiment will be described with reference to the drawings.

【0058】図11は本発明に係る実施の形態3の分散
トランザクション処理システムの通常実行時の構成を示
すブロック図であり、図12は本発明に係る実施の形態
3の分散トランザクション処理システムの再実行時の構
成を示すブロック図である。図12に示す点線の部分
は、通常実行時には関与し、再実行時には関与しない部
分である。図11、12において、図4と同一符号は同
一又は相当部分を示し、21、22はトランザクション
であり、23は再実行機構であり、24、25は管理端
末であり、26はプリンタである。本実施の形態は、分
散トランザクション自体は同じであるが、サイトAのト
ランザクション21とサイトBのトランザクション22
で会話を行い、サイトBの注文データベース4を更新し
て結果を貰ってプリンタ26でプリントアウトする処理
を行う。この処理を行うのに、あるタイミングでサイト
Bがシステムクラッシュした時、即ち注文データベース
4の更新を終了した後にシステムクラッシュした時に、
サイトAだけで処理を行う。
FIG. 11 is a block diagram showing a configuration of the distributed transaction processing system according to the third embodiment of the present invention at the time of normal execution. FIG. FIG. 3 is a block diagram illustrating a configuration at the time of execution. The portion indicated by the dotted line in FIG. 12 is a portion that is involved during normal execution and is not involved during re-execution. 11 and 12, the same reference numerals as those in FIG. 4 denote the same or corresponding parts, 21 and 22 are transactions, 23 is a re-execution mechanism, 24 and 25 are management terminals, and 26 is a printer. In the present embodiment, although the distributed transaction itself is the same, the transaction 21 of the site A and the transaction 22 of the site B
, A process of updating the order database 4 of the site B, obtaining the result, and printing out with the printer 26 is performed. To perform this processing, when site B crashes at a certain timing, that is, when the system crashes after updating the order database 4,
Processing is performed only at site A.

【0059】次に、図13は図11に示す分散トランザ
クション処理システムのサイトAのトランザクション2
1とサイトBのトランザクション22の通常実行での処
理フローを示すフローチャートである。ここでは、分散
トランザクションを用いてリモート・データベースを更
新するとともに、ローカルに帳票を出力するトランザク
ションの処理内容(通常実行時)を示している。サイト
Aのトランザクション21は、端末9から起動される
と、端末9から送信される注文情報を受信して端末受信
ログを採取した後(ステップS51)、注文番号を採番
して採番ログを採取する(ステップS52)。
Next, FIG. 13 shows transaction 2 of site A in the distributed transaction processing system shown in FIG.
6 is a flowchart showing a processing flow in a normal execution of a transaction 22 of a site 1 and a site B. Here, the processing contents (at the time of normal execution) of a transaction for updating a remote database using a distributed transaction and outputting a form locally are shown. When the transaction 21 of the site A is started from the terminal 9, after receiving the order information transmitted from the terminal 9 and collecting the terminal reception log (step S51), the transaction number is assigned to the order number and the numbering log is collected. It is collected (step S52).

【0060】サイトAのトランザクション21は、採番
を行った注文番号(Key)と注文情報(Data)を
引数として起動してサイトBのトランザクション22へ
送信する(ステップS53)。サイトBのトランザクシ
ョン22は、トランザクション21から送信される注文
番号と注文情報を受信すると、受信した注文番号をキー
として注文データベース4に受信した注文情報を挿入し
て更新する(ステップS54)。サイトBのトランザク
ション22は、注文データベースを更新すると、支払情
報を結果としてサイトAのトランザクション21へ送信
した後(ステップS55)、ローカルにコミットする
(ステップS56)。
The transaction 21 of the site A is activated by using the numbered order number (Key) and the order information (Data) as arguments and transmits the transaction number to the transaction 22 of the site B (step S53). When receiving the order number and the order information transmitted from the transaction 21, the transaction 22 of the site B inserts and updates the received order information into the order database 4 using the received order number as a key (step S54). After updating the order database, the transaction 22 of the site B transmits the payment information to the transaction 21 of the site A as a result (step S55), and then commits locally (step S56).

【0061】サイトAのトランザクション21は、トラ
ンザクション22から送信される支払情報を受信すると
(ステップS57)、終了通知をサイトBのトランザク
ション22へ送信する(ステップS58)。サイトBの
トランザクション22は、トランザクション21から送
信される終了通知を受信すると(ステップS59)、正
常受信であるかを判定し、正常受信である場合(ステッ
プS60)、終了し、正常受信でない場合(ステップS
60)、管理端末25にトランザクションIDを表示す
る(ステップS61)。サイトAのトランザクション2
1は、終了通知をサイトAへ送信後、注文番号と支払情
報を含む帳票をプリンタ26で出力した後(ステップS
62)、端末9へ結果を送信する(ステップS63)。
When receiving the payment information transmitted from the transaction 22 (step S57), the transaction 21 of the site A transmits an end notification to the transaction 22 of the site B (step S58). When receiving the end notification transmitted from the transaction 21 (step S59), the transaction 22 of the site B determines whether the reception is normal, and if the reception is normal (step S60), the transaction ends and the reception is not normal (step S60). Step S
60), the transaction ID is displayed on the management terminal 25 (step S61). Transaction 2 of Site A
1 transmits a form including the order number and payment information to the printer 26 after transmitting the end notification to the site A (step S
62), and transmits the result to the terminal 9 (step S63).

【0062】次に、図14は図12に示す分散トランザ
クション処理システムのサイトAでのローカル再実行処
理フローを示すフローチャートである。ここでは、分散
トランザクションを用いてリモート・データベースを更
新するとともに、ローカルに帳票を出力するトランザク
ションの処理内容(再実行時)を示している。ここで
は、サイトAのシステムクラッシュで出力されないまま
になっていた帳票が、サイトAでのトランザクション再
実行によって、サイトBに影響を与えることなく出力さ
れる様子を、図12も参照しながら説明する。図11の
通常実行時には、前述したように、サイトAのトランザ
クション21は、業務端末9から起動され、サイトBの
トランザクション22を起動して処理結果をプリンタに
出力する。サイトBのトランザクション22を起動直後
にサイトAでシステム・クラッシュが発生したとする。
FIG. 14 is a flowchart showing a local re-execution processing flow at the site A in the distributed transaction processing system shown in FIG. Here, the processing contents (at the time of re-execution) of a transaction for updating a remote database using a distributed transaction and outputting a form locally are shown. Here, a description will be given, with reference to FIG. 12, of how a form that has not been output due to a system crash at site A is output without affecting site B by re-executing a transaction at site A, with reference to FIG. . At the time of normal execution in FIG. 11, as described above, the transaction 21 of the site A is activated from the business terminal 9, activates the transaction 22 of the site B, and outputs the processing result to the printer. Suppose that a system crash has occurred at site A immediately after starting transaction 22 at site B.

【0063】このように、サイトBのトランザクション
22を起動直後、サイトAでシステム・クラッシュが発
生したとすると、サイトBの終了通知受信は、異常終了
するため、サイトBの管理端末25に問題の発生したト
ランザクションIDが表示される。再実行時には、図1
2に示すように、管理端末25からトランザクションI
Dによって再実行機構23に対して起動が指示され、こ
れによって後述する図14のフローに従ってサイトAだ
けで処理が行われる。この場合、同トランザクション2
1、22をそのまま再実行したのでは、サイトBのデー
タベース4が二重に更新されてしまい、また、採番も取
り直される。
As described above, if a system crash occurs at the site A immediately after the start of the transaction 22 at the site B, the reception of the termination notification at the site B is abnormally terminated. The generated transaction ID is displayed. At the time of re-execution,
As shown in FIG.
D instructs the re-executing mechanism 23 to start, whereby the processing is performed only at the site A in accordance with the flow of FIG. 14 described later. In this case, transaction 2
If steps 1 and 22 are re-executed as they are, the database 4 of the site B will be updated twice, and the numbering will be reset.

【0064】そこで、図13に示すように、通常実行時
に受信情報と採番情報をログに記録しておき、図14に
示すように、再実行時にはこれらはログから読むものと
し、他の送信処理は、NOPとすれば、必要な帳票が正
しく出力され、サイトBや端末9には影響を及ぼさな
い。サイトAのトランザクション21は、再実行時、端
末9からの起動を行うことなく、管理端末25から再起
動要求があると、端末9からログに書いてある注文番号
を採取し(ステップS71、S72)、その採番を用い
てサイトB側に要求しなくてもよいので、NOPにして
(ステップS73)、受信処理をログする(ステップS
74)。その後、サイトAのトランザクション21は、
終了通知をNOPにし(ステップS75)、注文番号と
支払情報を含む帳票出力を実行した後(ステップS7
6)、結果送信をNOPにして(ステップS77)、終
了する。
Therefore, as shown in FIG. 13, reception information and numbering information are recorded in a log at the time of normal execution, and as shown in FIG. 14, these are read from the log at the time of re-execution. If the processing is NOP, the required form is correctly output, and the site B and the terminal 9 are not affected. At the time of re-execution, the transaction 21 of the site A collects the order number written in the log from the terminal 9 when there is a restart request from the management terminal 25 without starting from the terminal 9 (steps S71 and S72). ), Since it is not necessary to request the site B using the numbering, a NOP is set (step S73), and the reception processing is logged (step S73).
74). Then, the transaction 21 of the site A is
The end notification is set to NOP (step S75), and the form including the order number and payment information is output (step S7).
6) The result transmission is set to NOP (step S77), and the process ends.

【0065】このように、本実施の形態では、分散トラ
ンザクション処理の1分散ノードであるプログラムを、
通常実行時には、受信処理及び実施の形態1による採番
処理は回復用ログに採取しつつ実行し、再実行時には、
そのプログラムまたはそれに対応する回復用プログラム
を、元のトランザクションID付きでローカルなトラン
ザクションとして再投入して、プログラムの受信処理以
外の通信処理をNOP化し、受信処理及び実施の形態1
による採番処理は、通常実行時にはログに書き出し、ト
ランザクションIDに基づいてはログからの読み出しに
より再現し、トランザクションとしてはローカルトラン
ザクションとして処理するプログラムインタフェース機
構を有するように構成している。このため、再実行時に
はこれらはログから読むものとし、他の送信処理はNO
Pとすることにより、必要な帳票を正しく出力すること
ができるので、サイトBや端末には影響を及ぼさないよ
うにすることができる。従って、複数の計算機1、2か
らなる分散システムで、複数のトランザクション21、
22で連携して処理を行う場合に、障害等で特定のトラ
ンザクション21だけで再実行したい場合に、容易に再
実行することができる。
As described above, in this embodiment, the program which is one distributed node of the distributed transaction processing is
At the time of normal execution, the receiving process and the numbering process according to the first embodiment are executed while being collected in the recovery log.
The program or the corresponding recovery program is re-entered as a local transaction with the original transaction ID, and the communication process other than the program reception process is turned to NOP.
The numbering process is performed by writing to a log during normal execution, reproduced by reading from the log based on the transaction ID, and having a program interface mechanism for processing as a local transaction as a transaction. Therefore, at the time of re-execution, these are read from the log, and other transmission processing is NO.
By setting to P, necessary forms can be output correctly, so that site B and terminals can be prevented from being affected. Therefore, in a distributed system including a plurality of computers 1 and 2, a plurality of transactions 21 and
When the processes are performed in cooperation with each other, when it is desired to re-execute only the specific transaction 21 due to a failure or the like, the re-execution can be easily performed.

【0066】実施の形態4.本実施の形態は、2つの計
算機間に渡る分散トランザクション処理システムであ
り、サイトAで端末から受けた注文情報をサイトAの注
文データベース(マスタ)に書き込むとともに、RPC
p1によりサイトBの注文データベース(レプリカ)に
書き込むトランザクションへの適用例である。サイトB
のシステムクラッシュ後、データの整合性がどのように
回復されるかについて、以下、図面を参照しながら本実
施の形態を説明する。
Embodiment 4 This embodiment is a distributed transaction processing system extending between two computers, and writes order information received from a terminal at a site A into an order database (master) at a site A, and
This is an example of application to a transaction that writes to the order database (replica) of site B by p1. Site B
This embodiment will be described below with reference to the drawings on how the data consistency is restored after the system crash.

【0067】図15は本発明に係る実施の形態4の分散
トランザクション処理システムの構成を示すブロック図
である。図14において、図4、11と同一符号は同一
又は相当部分を示し、31は障害発生時に相手のサイト
Aのトランザクション21からのコミット/ロールバッ
ク決定待ちだったサイトBのトランザクション22を、
ひとまずローカルなヒューリスティック決定でコミット
/ロールバックするヒューリスティック決定機構であ
り、32はプリペア・ログだけあって、コミット・ログ
もロールバック・ログもないトランザクションを回復候
補として抽出する回復候補トランザクション抽出機構で
ある。33、34はヒューリスティック決定によってコ
ミット/ロールバックされたサイトBのトランザクショ
ン22と、相手のサイトAのトランザクション21との
間のデータ整合性が崩れていないかどうかを、障害の復
旧後に確認するデータ整合性確認機構である。本実施の
形態の分散トランザクション処理システムは、ログ採取
機構5と、ヒューリスティック決定機構31と、回復候
補トランザクション抽出機構32と、あるトランザクシ
ョンが回復候補になった場合に、どのトランザクション
を投入すればいいかを示す投入指示情報と、データ整合
性確認機構33、34と、実施の形態3と同様のトラン
ザクション再実行機構23とを有する。
FIG. 15 is a block diagram showing a configuration of a distributed transaction processing system according to the fourth embodiment of the present invention. In FIG. 14, the same reference numerals as those in FIGS. 4 and 11 denote the same or corresponding parts. Reference numeral 31 denotes the transaction 22 of the site B waiting for a commit / rollback decision from the transaction 21 of the partner site A at the time of failure.
A heuristic decision mechanism for committing / rolling back by a local heuristic decision for the time being, 32 is a recovery candidate transaction extracting mechanism for extracting a transaction having only a prepare log and no commit log or rollback log as a recovery candidate. . Data consistency checks 33 and 34 confirm whether or not the data consistency between the transaction 22 of the site B committed / rolled back by the heuristic decision and the transaction 21 of the partner site A is restored after recovery from the failure. It is a sex confirmation mechanism. The distributed transaction processing system according to the present embodiment includes a log collection mechanism 5, a heuristic determination mechanism 31, a recovery candidate transaction extraction mechanism 32, and which transaction should be input when a certain transaction becomes a recovery candidate. , Data consistency checking mechanisms 33 and 34, and a transaction re-executing mechanism 23 similar to the third embodiment.

【0068】本実施の形態の分散トランザクション処理
システムは、以上のような構成要素からなり、特にサイ
トBのトランザクション22を起動する側のサイトAの
トランザクション21が2フェイズ・コミットの上でも
コーディネータになり、ヒューリスティック決定機構3
1でのヒューリスティック決定としてロールバックを行
なうもので、データ整合性確認機構33としてヒューリ
スティック・レポートを備えており、トランザクション
再実行機構23による再実行トランザクションとして、
サイトBのトランザクション22そのものを投入するこ
とにより、計算機1、2間に渡る障害の発生後、一時的
にプリペア状態のトランザクションをロールバックし、
後でサイトBのトランザクション22を必要に応じてロ
ーカル・トランザクションとして再投入して計算機1、
2間の整合性を回復するシステムである。実施の形態2
では、整合性確認までを行う場合を説明したが、本実施
の形態の分散トランザクション処理システムでは、整合
性確認を行った後、更に整合性を回復する処理を行うよ
うに構成している。
The distributed transaction processing system according to the present embodiment comprises the above-mentioned components. In particular, the transaction 21 of the site A, which activates the transaction 22 of the site B, becomes a coordinator even after two-phase commit. , Heuristic decision mechanism 3
The rollback is performed as the heuristic determination in step 1, and a heuristic report is provided as the data consistency checker 33.
By inputting the transaction 22 itself at the site B, after a failure between the computers 1 and 2 occurs, the transaction in the prepared state is temporarily rolled back,
Later, the transaction 22 of the site B is re-entered as a local transaction as necessary, and
This is a system that restores consistency between the two. Embodiment 2
In the above, the case where the consistency check is performed has been described. However, the distributed transaction processing system according to the present embodiment is configured to perform the process of restoring the consistency after performing the consistency check.

【0069】次に、図16は図15に示す分散トランザ
クション処理システム上のトランザクション処理フロー
を示すフローチャートである。ここでは、RPCを用い
て2つのサイトA、Bで各々のデータベース3、4を同
期的に更新するトランザクションの処理内容を示してい
る。サイトA側のトランザクション21は、端末9から
入力される注文情報を受信すると(ステップS81)、
実施の形態1と同じ採番を行ってその採番で注文番号を
採取し(ステップS82)、この採取した注文番号をキ
ーとしてサイトA側の注文データベース3に注文情報を
挿入する(ステップS83)。
Next, FIG. 16 is a flowchart showing a transaction processing flow on the distributed transaction processing system shown in FIG. Here, the processing contents of a transaction for updating the databases 3 and 4 synchronously at the two sites A and B using RPC are shown. When the transaction 21 on the site A receives the order information input from the terminal 9 (step S81),
The same numbering as in the first embodiment is performed, an order number is collected by the numbering (step S82), and the order information is inserted into the order database 3 of the site A using the collected order number as a key (step S83). .

【0070】サイトA側のトランザクション21は、サ
イトAの注文データベース3に挿入した注文番号(Ke
y)と注文情報(Data)を引数としてサイトBのト
ランザクション22へRPCを行う(ステップS8
4)。サイトB側のトランザクション22は、サイトA
側のトランザクション21から転送されるサイトA側と
同じ注文番号をキーとしてサイトB側の注文データベー
ス4に注文情報を挿入し(ステップS85)、呼び出し
元のサイトA側のトランザクション21へ制御を戻す
(ステップS86)。
The transaction 21 on the site A side receives the order number (Ke) inserted into the order database 3 of the site A.
y) and the order information (Data) as arguments, perform RPC to the transaction 22 of the site B (step S8)
4). Transaction 22 on site B is site A
The order information is inserted into the order database 4 on the site B side using the same order number as that on the site A side transferred from the transaction 21 on the side as a key (step S85), and the control is returned to the transaction 21 on the caller site A side (step S85). Step S86).

【0071】このように、サイトA側のトランザクショ
ン21は、採番を行った注文番号と注文情報で更新を行
い、この更新を行った注文番号と注文情報をサイトB側
のトランザクション22へ送信する。サイトB側のトラ
ンザクション22は、トランザクション21から送信さ
れる注文番号と注文情報で更新を行う。サイトA側のト
ランザクション21は、RPC終了後、サイトB側のト
ランザクション22へプリペア要求情報を送信し(ステ
ップS87)、サイトB側のトランザクション22は、
トランザクション21から送信されるプリペア要求情報
を受信すると、プリペアを行い、サイトA側のトランザ
クション21へプリペア完了情報を送信する(ステップ
S88)。
As described above, the transaction 21 on the site A updates with the numbered order number and the order information, and transmits the updated order number and the order information to the transaction 22 on the site B side. . The transaction 22 on the site B updates with the order number and the order information transmitted from the transaction 21. After the RPC ends, the transaction 21 on the site A transmits the prepare request information to the transaction 22 on the site B (step S87), and the transaction 22 on the site B
When the prepare request information transmitted from the transaction 21 is received, a prepare is performed, and the prepare completion information is transmitted to the transaction 21 on the site A side (step S88).

【0072】サイトA側のトランザクション21は、ト
ランザクション22から送信されるプリペア完了情報を
受信すると、コミットを行い、サイトB側のトランザク
ション22へコミット要求情報を送信するとともに(ス
テップS87)、端末9へコミットを行った結果を送信
する(ステップS89)。サイトB側のトランザクショ
ン22は、トランザクション21から送信されるコミッ
ト要求情報を受信すると、コミットを行う(ステップS
88)。
Upon receiving the prepare completion information transmitted from the transaction 22, the transaction 21 on the site A commits, transmits the commit request information to the transaction 22 on the site B (step S87), and transmits the information to the terminal 9. The result of the commit is transmitted (step S89). Upon receiving the commit request information transmitted from the transaction 21, the transaction 22 on the site B commits (step S
88).

【0073】次に、図17、18は図15に示す分散ト
ランザクション処理システムにより引き起こされる通信
とデータベースの変更の様子を示すシーケンス図であ
る。図17、18では、両サイトのデータの整合性が維
持される様子を示しており、図17では、親のサイトA
がロールバックした場合に両サイト共ロールバックする
様子を示しており、図18では、親のサイトAがコミッ
トした場合に両サイト共コミットする様子を示してい
る。図17に示すように、サイトA、Bのトランザクシ
ョン21、22は、端末9から入力される注文情報に対
して注文レコード10、11を作成し、作成した注文レ
コード10、11を各注文データベース3、4に挿入処
理する。
Next, FIGS. 17 and 18 are sequence diagrams showing communication and database changes caused by the distributed transaction processing system shown in FIG. 17 and 18 show how the data consistency between the two sites is maintained. In FIG. 17, the parent site A
18 shows a state in which both sites roll back when rollback is performed. FIG. 18 shows a state in which both sites commit when parent site A commits. As shown in FIG. 17, transactions 21 and 22 of sites A and B create order records 10 and 11 for the order information input from the terminal 9 and store the created order records 10 and 11 in each order database 3. , 4 is inserted.

【0074】各注文データベース3、4の構造は、図1
5に示した通りである。まず、サイトAのコーディネー
タ側がロールバックされ両サイトA、Bがロールバック
されて整合性が維持される場合を図17を用いて説明
し、次に、サイトAのコーディネータ側がコミットされ
両サイトA、Bがコミットされて整合性が維持される場
合を図18を用いて説明する。
The structure of each of the order databases 3 and 4 is shown in FIG.
As shown in FIG. First, the case where the coordinator side of site A is rolled back and both sites A and B are rolled back and consistency is maintained will be described with reference to FIG. The case where B is committed and the consistency is maintained will be described with reference to FIG.

【0075】サイトA側の計算機1は、端末9から送信
される入力情報’AAA’に対して、実施の形態1の採
番機構を用いて注文番号’101’を採番する。この採
番を行った注文番号’101’をキーとし、端末9から
送信される入力情報’AAA’を内容とする注文レコー
ド10を作成して注文データベース3に書き出す。
The computer 1 on the site A assigns the order number “101” to the input information “AAA” transmitted from the terminal 9 by using the numbering mechanism of the first embodiment. Using the numbered order number '101' as a key, an order record 10 containing the input information 'AAA' transmitted from the terminal 9 is created and written to the order database 3.

【0076】次に、サイトA側の計算機1は、サイトB
側の計算機2に対して、手続きp18をRPCする。こ
の時、サイトBの計算機2には、サイトA側の計算機1
から手続きを行うためのパラメータ、即ちサイトA側で
採番を行った注文番号(Key)の’101’と、注文
情報(Data)の’AAA’が送信される。
Next, the computer 1 on the site A side
RPC is performed on the procedure p18 for the computer 2 on the side. At this time, the computer 2 of the site B is provided with the computer 1 of the site A.
, Parameters for performing the procedure, that is, '101' of the order number (Key) numbered on the site A side and 'AAA' of the order information (Data) are transmitted.

【0077】サイトB側の計算機2は、サイトA側の計
算機1から送信される注文番号と注文情報のパラメータ
を受信すると、この注文番号と注文情報のパラメータに
従って注文レコード11を作成し、注文データベース4
に書き出し、制御をサイトA側の計算機1に戻す。サイ
トA側の計算機1は、コミット処理を行なうためにサイ
トB側の計算機2へプリペア要求情報を送信する。
When the computer 2 on the site B receives the order number and the order information parameters transmitted from the computer 1 on the site A side, the computer 2 creates an order record 11 in accordance with the order number and the parameters of the order information. 4
And the control is returned to the computer 1 on the site A side. The computer 1 on the site A transmits the prepare request information to the computer 2 on the site B to perform a commit process.

【0078】サイトB側の計算機2は、サイトA側の計
算機1から送信されるプリペア要求情報を受信すると、
サイトBのログ採取機構6によりグローバル・トランザ
クションID(GTID)と、受信情報としてRPCの
パラメータを含めてプリペア・ログを採取する。プリペ
ア・ログの内容には、図19に示すように、グローバル
・トランザクションIDを示すGTIDと、プリペア・
ログを示すフラグを示すPと、RPC手続き名と、RP
CパラメータのKey(注文番号;注文データベースの
キー)と、Data(注文情報)とが含まれる。
When the computer 2 on the site B receives the prepare request information transmitted from the computer 1 on the site A,
The log collecting mechanism 6 of the site B collects a prepare log including a global transaction ID (GTID) and RPC parameters as reception information. As shown in FIG. 19, the contents of the prepare log include a GTID indicating a global transaction ID, a prepare
P indicating a flag indicating a log, RPC procedure name, and RP
Key (order number; key of order database) of C parameter and Data (order information) are included.

【0079】サイトB側の計算機2は、このプリペア・
ログ採取後、図17に示すように、レディー(準備完
了)情報をサイトAの計算機1へ送信しないうちにシス
テム・クラッシュしたとする。サイトB側の計算機2
は、プリペア・ログ採取後、サイトA側の計算機1から
コミットまたはロールバックの指示が来るのを待つ状態
になっており、コミットしていいのか、あるいはロール
バックしていいのかを自分で決めることができない。サ
イトB側の計算機2は、コミット/ロールバックの指示
が来るのを待っている時にシステム・クラッシュしたと
する。
The computer 2 on the site B side prepares the
It is assumed that after log collection, as shown in FIG. Calculator 2 on Site B
Is waiting for a commit or rollback instruction from the computer 1 on the site A after collecting the prepare log. Can not. It is assumed that the computer 2 on the site B side has crashed while waiting for a commit / rollback instruction.

【0080】サイトA側の計算機1は、サイトB側の計
算機2からレディー情報が送信されないため、タイムア
ウトを起こし、トランザクション21がロールバックさ
れる。即ち、注文データベース3への注文レコード10
のレコード書き出しは、取り消さ、注文データベース3
は、元に戻る。一方、サイトBでは、障害原因解決後、
システムの再起動が行われる。この例では、障害発生時
にプリペア状態だったトランザクションは、ヒューリス
ティック決定機構31によりロールバックされるものと
する。
Since the computer 1 on the site A does not transmit the ready information from the computer 2 on the site B, a timeout occurs and the transaction 21 is rolled back. That is, the order record 10 in the order database 3
Record writing is canceled, order database 3
Returns. On the other hand, Site B
The system restarts. In this example, it is assumed that the transaction in the prepared state at the time of occurrence of the failure is rolled back by the heuristic determination mechanism 31.

【0081】まず、回復候補トランザクション抽出機構
32は、プリペア・ログだけあって、コミットもロール
バックもされていないトランザクションのプリペア・ロ
グを回復候補として抽出する。この時、グローバル・ト
ランザクションGTID=iの手続きp18のプリペア
・ログが該当するので抽出される。
First, the recovery candidate transaction extraction mechanism 32 extracts a prepared log of a transaction that has only a prepared log and has not been committed or rolled back as a recovery candidate. At this time, since the prepare log of the procedure p18 of the global transaction GTID = i is applicable, it is extracted.

【0082】次に、サイトAとの通信路が復旧した後、
ヒューリスティック・レポートによるサイトAのデータ
整合性確認機構33とサイトBのデータ整合性確認機構
34が交信して、グローバル・トランザクションGTI
D=iの親トランザクション21の状態を確認する。こ
の場合、上述した通り親もロールバックされているの
で、再投入は行われず、サイトA、サイトB共ロールバ
ックされた状態なので、データの整合性が維持される。
Next, after the communication path with the site A is restored,
The data consistency checking mechanism 33 of the site A and the data consistency checking mechanism 34 of the site B communicate with each other by the heuristic report, and the global transaction GTI
The status of the parent transaction 21 of D = i is confirmed. In this case, since the parent has also been rolled back as described above, re-input is not performed, and the sites A and B are both rolled back, so that data consistency is maintained.

【0083】同じ例で、今度は図18に示す通り、サイ
トB側の計算機2は、システム・クラッシュがレディー
通知を送った直後に起こったとする。サイトA側の計算
機1では、計算機2からレディー通知が来るため、コミ
ットを実行し、’101’のレコード10ができる。そ
の後、サイトA側の計算機1は、サイトB側の計算機2
へコミット要求情報を送信するが、サイトB側の計算機
2は、クラッシュしているので、このコミット要求は無
視される。
In the same example, as shown in FIG. 18, it is assumed that the computer 2 on the site B side has occurred immediately after the system crash has sent the ready notification. The computer 1 on the site A receives the ready notification from the computer 2 and executes the commit to create a record 10 of '101'. Thereafter, the computer 1 on the site A side becomes the computer 2 on the site B side.
The commit request information is transmitted to the site B, but the computer 2 on the site B has crashed, so that the commit request is ignored.

【0084】一方、サイトB側の計算機2では、障害原
因解決後、システムの再起動が行われる。図17の場合
と同様、プリペア状態のトランザクションは、ヒューリ
スティック決定機構31によりロールバックされ、回復
候補トランザクション抽出機構32により、手続きp1
8のプリペア・ログが抽出される。
On the other hand, in the computer 2 on the site B side, after the cause of the failure is resolved, the system is restarted. As in the case of FIG. 17, the transaction in the prepared state is rolled back by the heuristic determination mechanism 31 and the recovery candidate transaction extraction mechanism 32 executes the procedure p1.
Eight prepare logs are extracted.

【0085】次に、サイトAとの通信路が復旧した後、
サイトB側の計算機2は、ヒューリスティック・レポー
トによりサイトAのデータ整合性確認機構33とサイト
Bのデータ整合性確認機構34が更新して、グローバル
・トランザクションGTID=iの親トランザクション
21の状態を確認する。今度は、上述した通り親のトラ
ンザクション21は、コミットされているので、手続き
p18がトランザクション再実行機構23によりローカ
ルトランザクションとして再投入される。手続きp18
は、パラメータに従ってレコードを書き出すので、キ
ー’0101’、データ’AAA’のレコードができ
る。これで両サイト共同じレコードができて整合性が維
持される。このように、本実施の形態では、プリペア状
態のデータがロールバックされ、回復候補トランザクシ
ョン抽出機構32によりトランザクションをログから洗
い出し、再度投入するための情報を洗い出す。ヒューリ
スティック・レポートによる整合性確認機構33、34
により整合性確認を行い、整合性が一致している場合、
再起動を行わず、一方、整合性が一致していない場合、
再起動を行う。このため、整合性は、整合性が崩れてい
れば再投入するので、維持することができる。
Next, after the communication path with the site A is restored,
In the computer 2 on the site B side, the data consistency check mechanism 33 of the site A and the data consistency check mechanism 34 of the site B update the status of the parent transaction 21 of the global transaction GTID = i by using a heuristic report. I do. This time, as described above, since the parent transaction 21 has been committed, the procedure p18 is reentered as a local transaction by the transaction reexecuting mechanism 23. Procedure p18
Writes a record according to the parameters, so that a record with key '0101' and data 'AAA' is created. As a result, both sites have the same record and maintain consistency. As described above, in the present embodiment, the data in the prepared state is rolled back, the transaction is extracted from the log by the recovery candidate transaction extraction mechanism 32, and information for re-input is extracted. Consistency checking mechanisms 33, 34 using heuristic reports
To check the consistency, and if the consistency is consistent,
If you don't reboot and the consistency doesn't match,
Perform a restart. For this reason, the consistency can be maintained because the consistency is restored if the consistency is broken.

【0086】次に、図20は図17、18に示す整合性
の確認と再投入の処理フローを示すフローチャートであ
る。回復候補トランザクション抽出機構32は、再投入
候補トランザクションの中で未処置のものがあるかを判
定し、未処置のものがある場合(ステップS91)、そ
の処置対象のトランザクションをTとし(ステップS9
2)、一方、未処置のものがない場合(ステップS9
1)、ループを抜けて処理を終了する。データ整合性確
認機構33、34は、トランザクションTに対してグロ
ーバル・トランザクションGTIDとヒューリスティッ
ク・レポートにより整合性が維持されているかを検査し
(ステップS93)、整合性が崩れている場合(ステッ
プS94)、トランザクションTのRPC名とパラメー
タを設定する(ステップS95)。
Next, FIG. 20 is a flowchart showing the processing flow of checking the consistency and re-inputting shown in FIGS. The recovery candidate transaction extraction mechanism 32 determines whether there is any untreated transaction among the re-entry candidate transactions, and if there is an untreated transaction (step S91), sets the transaction to be treated as T (step S9)
2) On the other hand, when there is no untreated one (step S9)
1) Exit the loop and end the process. The data consistency checking mechanisms 33 and 34 check whether or not the consistency of the transaction T is maintained by the global transaction GTID and the heuristic report (step S93), and when the consistency is broken (step S94). Then, the RPC name and the parameter of the transaction T are set (step S95).

【0087】データ整合性確認機構33、34は、整合
性が崩れていない場合(ステップS94)、トランザク
ションTを処地済みとして次のトランザクションのステ
ップS91へ戻る(ステップS96)。サイトA側のト
ランザクション21は、RPC名とパラメータ設定後、
サイトBのトランザクション22のRPCを呼び出し
(ステップS97)、サイトB側のトランザクション2
2は、サイトAからRPCの要求があると、各RPCの
処理を行い(ステップS98)、呼び出し元のサイトA
のトランザクション21へ制御を戻す(ステップS9
9)。サイトAのトランザクション21は、前述したサ
イトBのトランザクション22のRPCの呼び出しを行
うとともに、サイトBのトランザクション22へコミッ
ト要求を行う(ステップS100)。サイトBのトラン
ザクション22は、サイトAからコミット要求を受ける
と、ローカルなコミット処理を行う(ステップS10
1)。
If the consistency has not been lost (step S94), the data consistency checking mechanisms 33 and 34 determine that the transaction T has been processed and return to step S91 of the next transaction (step S96). The transaction 21 on the site A, after setting the RPC name and parameters,
The RPC of the transaction 22 of the site B is called (step S97), and the transaction 2 of the site B is executed.
2 receives the RPC request from the site A, performs the processing of each RPC (step S98), and executes the caller site A
Control is returned to the transaction 21 (step S9).
9). The transaction 21 of the site A calls the above-described RPC of the transaction 22 of the site B, and issues a commit request to the transaction 22 of the site B (step S100). When receiving the commit request from the site A, the transaction 22 of the site B performs a local commit process (step S10).
1).

【0088】このように、本実施の形態では、サイトB
のトランザクション22を起動する側の親のサイトAの
トランザクション21が2フェイズ・コミット上でコー
ディネータになり、ヒューリスティック決定機構31で
のヒューリスティック決定としてロールバックを行なう
もので、データ整合性確認機構33、34としてヒュー
リスティック・レポートを備えており、トランザクショ
ン再実行機構23による再実行トランザクションとし
て、元の子トランザクションそのものを投入することに
より、計算機1、2間に渡る障害の発生後、一時的にプ
リペア状態のトランザクションをロールバックし、後で
子トランザクションを必要に応じてローカル・トランザ
クションとして再投入して計算機1、2間の整合性を回
復するように構成している。このため、システム・クラ
ッシュ後どのような場合も両サイトの整合性を維持する
ことができる。
As described above, in the present embodiment, site B
The transaction 21 of the parent site A that activates the transaction 22 becomes the coordinator on the two-phase commit, and rolls back as a heuristic decision by the heuristic decision mechanism 31. The data consistency check mechanisms 33 and 34 A heuristic report is provided, and the original child transaction itself is input as a re-execution transaction by the transaction re-execution mechanism 23. Is rolled back, and the child transaction is re-entered later as a local transaction as needed to restore the consistency between the computers 1 and 2. Therefore, the consistency between the two sites can be maintained in any case after the system crash.

【0089】本実施の形態では、複数の計算機1、2か
らなる分散システムでトランザクション処理を行なう場
合のうち、特に以下の(1)、(2)、(3)に該当す
る場合に、計算機1、2間に渡る障害発生時にシステム
が排他制御によってロックされることを回避しつつ、障
害復旧後にデータの整合性を回復する手段を提供するこ
とで、システムの可用性を高め運用を単純化しつつ、シ
ステムの信頼性を高めることができる。 (1)子トランザクション21(起動される側)が2フ
ェイズ・コミットの上でコーディネータになる、(2)
結果が不明(in−doubt)のトランザクション
は、ヒューリスティック決定としてコミットを行なう方
が好ましい、(3)データ整合性確認機構33、34と
してヒューリスティック・レポートを備えている。
In the present embodiment, among the cases where transaction processing is performed in a distributed system composed of a plurality of computers 1 and 2, especially when the following (1), (2) and (3) are met, the computer 1 , By providing a means for restoring data consistency after recovery from a failure while preventing the system from being locked by exclusive control when a failure occurs between two, increasing system availability and simplifying operation, The reliability of the system can be improved. (1) Child transaction 21 (activated side) becomes coordinator after two-phase commit. (2)
It is preferable to commit a transaction whose result is in-doubt as a heuristic decision. (3) A heuristic report is provided as the data consistency check mechanisms 33 and 34.

【0090】なお、上記実施の形態4の分散トランザク
ション処理システムにおいて、実施の形態4で用いたデ
ータ整合性確認機構を実施の形態2で用いたデータ整合
性確認機構に変更して構成してもよい。その他の構成
は、実施の形態4と同じにする。この構成の場合も、ヒ
ューリスティック・レポートを備えていないシステムで
実施の形態4と同様の効果を得ることができる。
In the distributed transaction processing system according to the fourth embodiment, the data consistency checking mechanism used in the fourth embodiment may be replaced with the data consistency checking mechanism used in the second embodiment. Good. Other configurations are the same as those of the fourth embodiment. Also in this configuration, the same effect as in the fourth embodiment can be obtained in a system that does not include a heuristic report.

【0091】実施の形態5.本実施の形態は、業務内容
とデータベース構成、ヒューリスティック決定がロール
バックであることは上記実施例4と同じであるが、コー
ディネータが起動する側の親トランザクション21では
なく、起動される側の子トランザクション22である例
である。
Embodiment 5 This embodiment is the same as the fourth embodiment in that the business content, the database configuration, and the heuristic determination are rollbacks. 22 is an example.

【0092】図21は本発明に係る実施の形態4の分散
トランザクション処理システムの構成を示すブロック図
である。図21において、図15と同一符号は同一又は
相当部分を示す。実施の形態4では、トランザクション
再実行機構23と、ヒューリスティック決定機構31
と、回復候補トランザクション抽出機構32をサイトB
側の計算機2に設けた場合を説明したが、本実施の形態
では、トランザクション再実行機構23と、ヒューリス
ティック決定機構31と、回復候補トランザクション抽
出機構32をサイトA側の計算機1に設けて構成してい
る。
FIG. 21 is a block diagram showing a configuration of a distributed transaction processing system according to the fourth embodiment of the present invention. 21, the same reference numerals as those in FIG. 15 indicate the same or corresponding parts. In the fourth embodiment, the transaction re-execution mechanism 23 and the heuristic determination mechanism 31
And the recovery candidate transaction extraction mechanism 32 to the site B
In this embodiment, the transaction re-execution mechanism 23, the heuristic determination mechanism 31, and the recovery candidate transaction extraction mechanism 32 are provided in the computer 1 on the site A side. ing.

【0093】本実施の形態の分散トランザクション処理
システムは、特にサイトAのトランザクション21によ
って起動される側のサイトBのトランザクション22が
2フェイズ・コミットの上でコーディネータになり、ヒ
ューリスティック決定機構31でのヒューリスティック
決定としてロールバックを行なうもので、データ整合性
確認機構33としてヒューリスティック・レポートを備
えており、トランザクション再実行機構23による再実
行トランザクションとして、サイトAのトランザクショ
ン21そのものを投入することにより、計算機1、2間
に渡る障害の発生後、一時的にプリペア状態のトランザ
クションをロールバックし、後でサイトAのトランザク
ション21を必要に応じてローカル・トランザクション
として再投入して計算機1、2間の整合性を回復するシ
ステムである。
In the distributed transaction processing system according to the present embodiment, the transaction 22 of the site B, which is started by the transaction 21 of the site A, becomes a coordinator after two-phase commit, and the heuristic determination mechanism 31 A rollback is performed as a decision, and a heuristic report is provided as the data consistency check mechanism 33. By inputting the transaction 21 itself of the site A as a re-execution transaction by the transaction re-execution mechanism 23, After the failure between the two has occurred, the transaction in the prepared state is temporarily rolled back, and the transaction 21 of the site A is re-entered as a local transaction if necessary. A system for restoring the integrity between calculation machines 1 and 2.

【0094】次に、図22は図21に示す分散トランザ
クション処理システム上のトランザクション処理フロー
を示すフローチャートである。実施の形態4の図16と
異なり、コーディネータは、起動されたRPC側であ
る。ここでは、RPCを用いて2つのサイトA、Bで各
々のデータベース3、4を同期的に更新するトランザク
ションの処理内容を示している。サイトA側のトランザ
クション21は、端末9から入力される注文情報を受信
すると(ステップS111)、実施の形態1と同じ採番
を行ってその採番で注文番号を採取し(ステップS11
2)、この採取した注文番号をキーとしてサイトA側の
注文データベース3に注文情報を挿入する(ステップS
113)。
Next, FIG. 22 is a flowchart showing a transaction processing flow on the distributed transaction processing system shown in FIG. Unlike FIG. 16 of the fourth embodiment, the coordinator is the activated RPC. Here, the processing contents of a transaction for updating the databases 3 and 4 synchronously at the two sites A and B using RPC are shown. When receiving the order information input from the terminal 9 (step S111), the transaction 21 on the site A performs the same numbering as in the first embodiment and collects the order number by the numbering (step S11).
2) The order information is inserted into the order database 3 on the site A using the collected order number as a key (step S).
113).

【0095】サイトA側のトランザクション21は、サ
イトAの注文データベース3に挿入した注文番号(Ke
y)と注文情報(Data)を引数としてサイトBのト
ランザクション22へRPCを行う(ステップS11
4)。サイトB側のトランザクション22は、サイトA
側のトランザクション21から転送されるサイトA側と
同じ注文番号をキーとしてサイトB側の注文データベー
ス4に注文情報を挿入し(ステップS115)、呼び出
し元のサイトA側のトランザクション21へ制御を戻す
(ステップS116)。
The transaction 21 on the site A side receives the order number (Ke) inserted in the order database 3 of the site A.
y) and the order information (Data) as arguments, perform RPC to the transaction 22 of the site B (step S11).
4). Transaction 22 on site B is site A
The order information is inserted into the order database 4 on the site B side using the same order number as that on the site A side transferred from the transaction 21 on the side as a key (step S115), and control is returned to the transaction 21 on the site A side that is the calling source (step S115). Step S116).

【0096】このように、サイトA側のトランザクショ
ン21は、採番を行った注文番号と注文情報で更新を行
い、この更新を行った注文番号と注文情報をサイトB側
のトランザクション22へ送信する。サイトB側のトラ
ンザクション22は、トランザクション21から送信さ
れる注文番号と注文情報で更新を行う。サイトA側のト
ランザクション21は、RPC終了後、トランザクショ
ン終了情報をサイトB側のトランザクション22へ送信
する(ステップS117)。
As described above, the transaction 21 on the site A updates the numbered order number and the order information, and transmits the updated order number and the order information to the transaction 22 on the site B side. . The transaction 22 on the site B updates with the order number and the order information transmitted from the transaction 21. After the RPC ends, the transaction 21 on the site A transmits transaction end information to the transaction 22 on the site B side (step S117).

【0097】コーディネータとなるサイトB側のトラン
ザクション22は、トランザクション21から送信され
るトランザクション終了情報を受信すると(ステップS
118)、サイトA側のトランザクション21へプリペ
ア要求情報を送信し(ステップS119)、サイトA側
のトランザクション21は、トランザクション22から
送信されるプリペア要求情報を受信すると、プリペアを
行い、サイトB側のトランザクション22へプリペア完
了情報を送信する(ステップS120)。
When the transaction 22 on the site B side serving as the coordinator receives the transaction end information transmitted from the transaction 21 (step S)
118), sends the prepare request information to the transaction A on the site A side (step S119). When the prepare request information transmitted from the transaction 22 is received, the transaction 21 on the site A performs the prepare and performs the prepare on the site B side. The prepare completion information is transmitted to the transaction 22 (step S120).

【0098】サイトB側のトランザクション22は、ト
ランザクション21から送信されるプリペア完了情報を
受信すると、コミットを行い、サイトA側のトランザク
ション21へコミット要求情報を送信する(ステップS
119)。サイトA側のトランザクション21は、トラ
ンザクション22から送信されるコミット要求情報を受
信すると、コミットを行い(ステップS120)、その
結果を端末9へ送信する(ステップS121)。
When the transaction 22 on the site B receives the prepare completion information transmitted from the transaction 21, it commits and transmits the commit request information to the transaction 21 on the site A (step S).
119). Upon receiving the commit request information transmitted from the transaction 22, the transaction 21 on the site A commits (step S120), and transmits the result to the terminal 9 (step S121).

【0099】次に、図23は図21に示す分散トランザ
クション処理システムのサイトAとサイトBのデータの
整合性が両サイトA、B共コミットされて維持されるて
いる様子を示すシーケンス図である。サイトAのトラン
ザクション21がサイトBの手続きp23をRPCする
ところまでは、実施の形態4と同様とする。この後、サ
イトB側のトランザクション22は、RPC処理の終了
に伴って制御を呼び出し元のサイトAのトランザクショ
ン21へ戻し、その後、サイトAのトランザクション2
1から送信されるトランザクション終了情報を受信する
と、プリペア要求情報をサイトAのトランザクション2
1へ送信する。
Next, FIG. 23 is a sequence diagram showing a state where the data consistency between the sites A and B of the distributed transaction processing system shown in FIG. 21 is maintained by being committed to both the sites A and B. . Up to the point where the transaction 21 of the site A performs the RPC on the procedure p23 of the site B, it is the same as the fourth embodiment. Thereafter, the transaction 22 of the site B returns control to the transaction 21 of the calling site A with the end of the RPC process, and thereafter, the transaction 2 of the site A
When the transaction completion information transmitted from the transaction A 1 is received, the prepare request information is
Send to 1.

【0100】サイトAのトランザクション21は、レデ
ィー通知をサイトBのトランザクション22へ返し、サ
イトBのトランザクション22は、ローカル・コミット
を実行した直後、コミット指示をサイトAのトランザク
ション21へ返す前にサイトBの計算機2がシステム・
クラッシュしたとする。
The transaction A of the site A returns a ready notification to the transaction 22 of the site B. The transaction 22 of the site B immediately executes the local commit and immediately returns the site B to the transaction 21 of the site A before returning the commit instruction to the transaction 21 of the site A. Computer 2 of the system
Suppose you crash.

【0101】サイトA側のトランザクション21は、サ
イトB側のトランザクション22からコミット指示が来
ないため、サイトBのコミット指示待ちがタイムアウト
した後、ヒューリスティック決定機構31によりロール
バックされる。サイトAのトランザクション21は、回
復候補トランザクション抽出機構32により回復候補と
して保持される。
Since the transaction A on the site A does not receive a commit instruction from the transaction 22 on the site B, the heuristic determination mechanism 31 rolls back the transaction B after waiting for the commit instruction on the site B to time out. The transaction 21 at the site A is held as a recovery candidate by the recovery candidate transaction extraction mechanism 32.

【0102】一方、サイトBでは、障害原因解決後、シ
ステムの再起動が行われる。この後、サイトAとサイト
Bとの通信路が復旧した後、ヒューリスティック・レポ
ートによるサイトA、Bの整合性確認機構33、34に
よりサイトAのトランザクション21の状態を確認す
る。この場合、上述の通り、サイトBのトランザクショ
ン22は、コミットされているのにサイトAではロール
バックされているので、不整合が発生しており、トラン
ザクション再実行機構23によりトランザクション21
が実行される。この際、後述する図24のフローに示す
ように、サイトAのトランザクション21は、ローカル
なトランザクションとして実行される。以上の手順によ
り、本実施の形態では、システム・クラッシュ後も両サ
イトA、Bの整合性を維持することができる。
On the other hand, at the site B, after the cause of the failure is resolved, the system is restarted. Thereafter, after the communication path between the site A and the site B is restored, the status of the transaction 21 of the site A is confirmed by the consistency confirmation mechanisms 33 and 34 of the sites A and B based on the heuristic report. In this case, as described above, since the transaction 22 at the site B has been committed but has been rolled back at the site A, an inconsistency has occurred.
Is executed. At this time, as shown in the flow of FIG. 24 described later, the transaction 21 of the site A is executed as a local transaction. According to the above procedure, in the present embodiment, consistency between the two sites A and B can be maintained even after the system crash.

【0103】図24は図21に示す分散トランザクショ
ン処理システムのサイトAのトランザクションの再実行
処理フローを示すフローチャートである。サイトAのト
ランザクション21は、端末9から送信される注文情報
を受信すると(ステップS131)、その注文情報を基
に採番を行い(ステップS132)、採番を行った注文
情報をキーとしてサイトAの注文データベースに注文情
報を挿入する(ステップS133)。
FIG. 24 is a flow chart showing the transaction re-execution processing flow of site A in the distributed transaction processing system shown in FIG. When receiving the order information transmitted from the terminal 9 (step S131), the transaction 21 of the site A performs numbering based on the order information (step S132), and uses the numbered order information as a key for the site A. (Step S133).

【0104】サイトAのトランザクション21は、採番
を行った注文番号と注文情報を引数としてサイトBのト
ランザクション22へRPCする。この時、サイトAの
サイトBへの呼び出しは、NOPとし、RPCの結果
は、ログから入力する。その後、サイトAのトランザク
ション21は、トランザクション終了情報をサイトAの
トランザクション21へ送信し(ステップS13
5)、、ローカル・トランザクションとしてコミットし
た後(ステップS136)、端末9への結果送信をNO
Pにする(ステップS137)。
The transaction 21 of the site A performs RPC to the transaction 22 of the site B using the numbered order number and the order information as arguments. At this time, the call from the site A to the site B is NOP, and the result of the RPC is input from the log. Thereafter, the transaction 21 of the site A transmits transaction end information to the transaction 21 of the site A (step S13).
5) After committing as a local transaction (step S136), the result transmission to terminal 9 is NO
Set to P (step S137).

【0105】このように、本実施の形態では、複数の計
算機1、2からなる分散システムでトランザクション処
理を行なう場合のうち、特に以下の(1)、(2)、
(3)に該当する場合に、計算機1、2間に渡る障害発
生時にシステムが排他制御によってロックされることを
回避しつつ、障害復旧後にデータの整合性を回復する手
段を提供することで、システムの可用性を高め運用を単
純化しつつ、システムの信頼性を高めることができる。 (1)サイトAの親トランザクション21により起動さ
れるサイトBの子トランザクション22が2フェイズ・
コミットの上でコーディネータになる、(2)結果が不
明(in−doubt)のトランザクションは、ヒュー
リスティック決定としてロールバックを行なう方が好ま
しい、(3)データ整合性確認機構33、34としてヒ
ューリスティック・レポートを備えている。
As described above, in the present embodiment, among the cases where transaction processing is performed in a distributed system including a plurality of computers 1 and 2, the following (1), (2),
In the case of (3), by providing a means for recovering data consistency after recovery from a failure while preventing the system from being locked by exclusive control when a failure occurs between the computers 1 and 2, The reliability of the system can be increased while increasing the availability of the system and simplifying the operation. (1) The child transaction 22 of the site B started by the parent transaction 21 of the site A has two phases.
(2) It is preferable to roll back a transaction with an unknown result (in-doubt) as a heuristic decision. Have.

【0106】なお、上記実施の形態5の分散トランザク
ション処理システムにおいて、実施の形態5で用いたデ
ータ整合性確認機構を実施の形態2で用いたデータ整合
性確認機構に変更して構成してもよい。その他の構成
は、実施の形態5と同じにする。この構成の場合も、ヒ
ューリスティック・レポートを備えていないシステムで
実施の形態5と同様の効果を得ることができる。
In the distributed transaction processing system according to the fifth embodiment, the data consistency checking mechanism used in the fifth embodiment may be changed to the data consistency checking mechanism used in the second embodiment. Good. Other configurations are the same as those of the fifth embodiment. Also in the case of this configuration, the same effect as in the fifth embodiment can be obtained in a system without a heuristic report.

【0107】実施の形態6.本実施の形態は、業務内容
とデータベース構成は、上記実施の形態4と同じである
が、障害発生時にプリペア状態だったトランザクション
は、実施の形態4とは逆に、ヒューリスティック決定に
よりひとまずコミットされる例である。図25は本発明
に係る実施の形態6の分散トランザクション処理システ
ムの構成を示すブロック図である。図25において、図
15、21と同一符号は同一又は相当部分を示す。本実
施の形態では、実施の形態4の構成に更にサイトB側に
投入指示情報が追加されている。
Embodiment 6 FIG. In the present embodiment, the business content and the database configuration are the same as those in the above-described fourth embodiment, but the transaction in the prepared state at the time of the occurrence of the failure is committed for the time being by the heuristic decision, contrary to the fourth embodiment. It is an example. FIG. 25 is a block diagram showing a configuration of the distributed transaction processing system according to the sixth embodiment of the present invention. 25, the same reference numerals as those in FIGS. 15 and 21 indicate the same or corresponding parts. In the present embodiment, the input instruction information is added to the site B side in addition to the configuration of the fourth embodiment.

【0108】本実施の形態の分散トランザクション処理
システムは、特にサイトBのトランザクション22を起
動する側のサイトAのトランザクション21が2フェイ
ズ・コミットの上でコーディネータになり、ヒューリス
ティック決定機構31でのヒューリスティック決定とし
てコミットを行なうもので、データ整合性確認機構3
3、34としてヒューリスティック・レポートを備えて
おり、トランザクション再実行機構23として実施の形
態3と同じものを備え、元のサイトBのトランザクショ
ン22に対応した回復用トランザクションを投入するこ
とにより、計算機1、2間に渡る障害の発生後、一時的
にプリペア状態のトランザクションをコミットし、後で
回復用トランザクションを必要に応じてローカル・トラ
ンザクションとして再投入して計算機1、2間の整合性
を回復するシステムである。本実施の形態の分散トラン
ザクション処理システム上のトランザクション処理フロ
ーは、実施の形態4の図16と同様である。本実施の形
態では、更に図27に示すキャンセル・トランザクショ
ンq27を設ける。また、実施の形態4の構成に加え
て、図27に示す投入指示情報を用いる。
In the distributed transaction processing system according to the present embodiment, the transaction 21 of the site A, which particularly activates the transaction 22 of the site B, becomes a coordinator after two-phase commit, and the heuristic decision mechanism 31 And a data integrity check mechanism 3
3 and 34, a heuristic report is provided, and the same transaction re-executing mechanism 23 as that of the third embodiment is provided. By inputting a recovery transaction corresponding to the transaction 22 of the original site B, the computer 1, A system in which a transaction in a prepared state is temporarily committed after the occurrence of a failure between two computers, and a recovery transaction is later re-submitted as a local transaction as needed to restore consistency between the computers 1 and 2 It is. The transaction processing flow on the distributed transaction processing system of the present embodiment is the same as that of the fourth embodiment shown in FIG. In the present embodiment, a cancel transaction q27 shown in FIG. 27 is further provided. In addition to the configuration of the fourth embodiment, the input instruction information shown in FIG. 27 is used.

【0109】図26は図25に示す分散トランザクショ
ン処理システムの取り消し手続きフローを示すフローチ
ャートである。サイトBのトランザクション22は、K
eyをキーとして注文データベース4のレコードを削除
した後(ステップS141)、コミットする(ステップ
S142)。投入指示情報には、図27に示すように、
元のトランザクション名(RPC名)と、投入トランザ
クション名/RPC名(パラメータ)と、パラメータの
対応の情報が書かれている。
FIG. 26 is a flowchart showing a cancellation procedure flow of the distributed transaction processing system shown in FIG. Transaction B at site B is K
After deleting the record of the order database 4 using ey as a key (step S141), commit is performed (step S142). The input instruction information includes, as shown in FIG.
The original transaction name (RPC name), the input transaction name / RPC name (parameter), and the corresponding information of the parameter are written.

【0110】次に、図28は図25に示す分散トランザ
クション処理システムのサイトAとサイトBのデータの
整合性が維持される様子を示すシーケンス図である。こ
こでは、両サイトA、Bがロールバックされる場合を説
明する。サイトAのトランザクション21がサイトBの
手続きp18をRPCし、その後サイトBでプリペア・
ログが採られるところまでは、実施の形態4と同様とす
る。この直後、図28に示すように、サイトBのトラン
ザクション22がレディー(準備完了)通知をサイトA
のトランザクション21へ送信しないうちにサイトBの
計算機2がシステム・クラッシュしたとする。サイトA
のトランザクション21がロールバックされるのは、実
施の形態4と同様である。
Next, FIG. 28 is a sequence diagram showing how the data consistency between site A and site B of the distributed transaction processing system shown in FIG. 25 is maintained. Here, a case where both sites A and B are rolled back will be described. Transaction 21 of site A RPCs procedure p18 of site B, and then prepares
Up to the point where the log is collected, the same as in the fourth embodiment. Immediately thereafter, as shown in FIG. 28, the transaction 22 of the site B sends a ready (ready) notification to the site A.
It is assumed that the computer 2 at the site B has a system crash before the transaction 2 is transmitted to the transaction 21. Site A
Transaction 21 is rolled back in the same manner as in the fourth embodiment.

【0111】一方、サイトBでは障害原因解決後、シス
テムの再起動が行われる。この例では、実施の形態4と
は逆に、障害発生時にプリペア状態だったトランザクシ
ョンは、ヒューリスティック決定機構31によりコミッ
トされるものとする。まず、実施の形態4と同様、回復
候補トランザクション抽出機構32により手続きp1の
プリペア・ログが抽出される。
On the other hand, at the site B, after the cause of the failure is resolved, the system is restarted. In this example, it is assumed that the transaction in the prepared state at the time of occurrence of the failure is committed by the heuristic determination mechanism 31, contrary to the fourth embodiment. First, as in the fourth embodiment, the recovery log of the procedure p1 is extracted by the recovery candidate transaction extraction mechanism 32.

【0112】次に、サイトAとの通信路が復旧した後、
ヒューリスティック・レポートを得て、トランザクショ
ン再実行機構23が、GTID=iの親トランザクショ
ンの状態を確認する。この場合、上述の通りサイトAの
親トランザクション21は、ロールバックされているの
に、サイトBでは、コミットしてしまったので、不整合
である。JBの投入指示情報には、図27に示すよう
に、p18のRPC名に対するキャンセル・トランザク
ションq27及びキャンセル・トランザクションq27
のパラメータとRPC名のp18のパラメータの関係が
定義してある。トランザクション再実行機構23は、こ
れにより、キャンセル・トランザクションq27の投入
を行う。キャンセル・トランザクションq27は、RP
C名p18のパラメータを流用して、p18が行った処
理をキャンセルする。この場合、キー’0101’のレ
コードを削除する。これで両サイトA、B共キー’01
01’のレコードはない状態なので、データの整合性が
維持される。
Next, after the communication path with the site A is restored,
After obtaining the heuristic report, the transaction reexecutor 23 checks the status of the parent transaction of GTID = i. In this case, as described above, although the parent transaction 21 of the site A has been rolled back, it has been committed at the site B, which is inconsistent. As shown in FIG. 27, the JB input instruction information includes a cancel transaction q27 and a cancel transaction q27 for the RPC name of p18.
Is defined with the parameter of p18 of the RPC name. Thus, the transaction re-executing mechanism 23 inputs the cancel transaction q27. Cancel transaction q27 is RP
The process performed by p18 is canceled using the parameter of the C name p18. In this case, the record with the key “0101” is deleted. Now both sites A and B have key '01
Since there is no record of 01 ', data consistency is maintained.

【0113】コーディネータとなるサイトAのトランザ
クション22がコミット後にシステム・クラッシュが起
こった場合は、整合性確認の結果、両サイトA、Bの整
合性は、崩れていないことが判るので、キャンセル・ト
ランザクションq27の投入は行われない。以上の手順
により、本実施の形態では、システム・クラッシュ後も
両サイトの整合性を維持することができる。
If a system crash occurs after the commit of the transaction 22 of the site A serving as the coordinator, the consistency check shows that the consistency of the two sites A and B has not been lost. The input of q27 is not performed. According to the above procedure, in the present embodiment, consistency between both sites can be maintained even after a system crash.

【0114】このように、本実施の形態では、複数の計
算機1、2からなる分散システムでトランザクション処
理を行なう場合のうち、特に以下の(1)、(2)、
(3)に該当する場合に、計算機1、2間に渡る障害発
生時にシステムが排他制御によってロックされることを
回避しつつ、障害復旧後にデータの整合性を回復する手
段を提供することで、システムの可用性を高め運用を単
純化しつつ、システムの信頼性を高めることができる。 (1)サイトBのトランザクション22を起動する側の
サイトAのトランザクション21が2フェイズ・コミッ
トの上でもコーディネータになる、(2)結果が不明
(in−doubt)のトランザクションは、ヒューリ
スティック決定としてコミットを行なう方が好ましい、
(3)データ整合性確認機構33、34としてヒューリ
スティック・レポートを備えている。
As described above, in the present embodiment, the following (1), (2),
In the case of (3), by providing a means for recovering data consistency after recovery from a failure while preventing the system from being locked by exclusive control when a failure occurs between the computers 1 and 2, The reliability of the system can be increased while increasing the availability of the system and simplifying the operation. (1) The transaction 21 of the site A, which activates the transaction 22 of the site B, becomes the coordinator even after the two-phase commit. It is better to do,
(3) Heuristic reports are provided as the data consistency check mechanisms 33 and 34.

【0115】なお、上記実施の形態6の分散トランザク
ション処理システムにおいて、実施の形態6で用いたデ
ータ整合性確認機構を実施の形態2で用いたデータ整合
性確認機構に変更して構成してもよい。その他の構成
は、実施の形態6と同じにする。この例では、整合性確
認のための判断定義と、回復用トランザクションの定義
を、図29に示すように、統合することができる。この
構成の場合も、ヒューリスティック・レポートを備えて
いないシステムで実施の形態6と同様の効果を得ること
ができる。
In the distributed transaction processing system according to the sixth embodiment, the data consistency checking mechanism used in the sixth embodiment may be replaced with the data consistency checking mechanism used in the second embodiment. Good. Other configurations are the same as in the sixth embodiment. In this example, the definition of the determination for checking the consistency and the definition of the transaction for recovery can be integrated as shown in FIG. Also in this configuration, the same effect as in the sixth embodiment can be obtained in a system that does not include a heuristic report.

【0116】実施の形態7.本実施の形態は、業務内容
とデータベース構成は、上記実施の形態5と同じであ
り、ヒューリスティック決定での処置がコミットで、コ
ーディネータがサイトAのトランザクション21により
起動されるサイトBのトランザクション22である例で
ある。本実施の形態の分散トランザクション処理システ
ムの構成は、実施の形態5の図25に示す構成と同様で
ある。
Embodiment 7 FIG. In the present embodiment, the business content and the database configuration are the same as those of the above-described fifth embodiment. It is an example. The configuration of the distributed transaction processing system according to the present embodiment is the same as the configuration shown in FIG. 25 of the fifth embodiment.

【0117】本実施の形態の分散トランザクション処理
システムは、特にサイトAのトランザクション21によ
り起動される側のサイトBのトランザクション22が2
フェイズ・コミットの上でコーディネータになり、ヒュ
ーリスティック決定機構31でのヒューリスティック決
定としてコミットを行なうもので、データ整合性確認機
構33、34としてヒューリスティック・レポートを備
えており、トランザクション再実行機構23として実施
の形態3と同じものを備え、元のサイトAのトランザク
ション21に対応した回復用トランザクションを投入す
ることにより、計算機1、2間に渡る障害の発生後、一
時的にプリペア状態のトランザクションをコミットし、
後で回復用トランザクションを必要に応じてローカル・
トランザクションとして再投入して、計算機1、2間の
整合性を回復するシステムである。本実施の形態の分散
トランザクション処理システム上のトランザクション処
理フローは、実施の形態5の図22と同様である。本実
施の形態では、更に図30に示すサイトAのトランザク
ション21に対して用いる回復用トランザクションUA
30を設ける。また、実施の形態4の構成に加えて、図
31に示す投入指示情報を用いる。
In the distributed transaction processing system according to the present embodiment, in particular, the transaction 22 of the site B, which is activated by the transaction 21 of the site A, has two transactions.
The coordinator becomes a coordinator after the phase commit, and performs a commit as a heuristic decision by the heuristic decision mechanism 31. By providing a recovery transaction corresponding to the transaction 21 of the original site A by providing the same as that of the mode 3, after a failure between the computers 1 and 2 occurs, the transaction in the prepared state is temporarily committed,
Later, a recovery transaction can be
This is a system for re-inputting as a transaction and restoring consistency between the computers 1 and 2. The transaction processing flow on the distributed transaction processing system of the present embodiment is the same as that of the fifth embodiment shown in FIG. In the present embodiment, the recovery transaction UA used for the transaction 21 of the site A shown in FIG.
30 are provided. In addition to the configuration of the fourth embodiment, the input instruction information shown in FIG. 31 is used.

【0118】図30は本実施の形態の分散トランザクシ
ョン処理システムのサイトAのトランザクションに対し
て用いる回復用トランザクションUA30の処理フロー
を示すフローチャートである。サイトAのトランザクシ
ョン21は、端末9から送信される注文情報を受信する
と(ステップS151)、注文番号のKeyをキーとし
て注文データベース3のレコードを削除した後(ステッ
プS152)、ローカル・コミットする(ステップS1
53)。投入指示情報には、図31に示すように、元の
トランザクション名(RPC名)と、投入トランザクシ
ョン名/RPC名(パラメータ)と、起動情報の対応の
情報が書かれている。
FIG. 30 is a flowchart showing a processing flow of the recovery transaction UA30 used for the transaction of the site A in the distributed transaction processing system of the present embodiment. Upon receiving the order information transmitted from the terminal 9 (step S151), the transaction 21 of the site A deletes the record of the order database 3 using the key of the order number as a key (step S152), and then performs a local commit (step S152). S1
53). As shown in FIG. 31, the input instruction information describes the correspondence between the original transaction name (RPC name), the input transaction name / RPC name (parameter), and the start information.

【0119】本実施の形態では、実施の形態6と同様、
サイトAのトランザクション21により整合性が崩れて
いると判断すると、トランザクション再実行機構23
は、図31の投入指示情報を参照してトランザクション
21に対応する回復用トランザクションUA30を投入
する。回復用トランザクションUA30は、図30に示
すように、ローカル・トランザクションとして動作して
サイトAのトランザクション21の行った処理を打ち消
す。これにより、本実施の形態では、両サイトA、Bで
のデータ整合性を維持することができる。
In the present embodiment, similar to the sixth embodiment,
When it is determined that the consistency is lost by the transaction 21 of the site A, the transaction re-executing mechanism 23
Inputs the recovery transaction UA30 corresponding to the transaction 21 with reference to the input instruction information of FIG. The recovery transaction UA30 operates as a local transaction to cancel the processing performed by the transaction 21 of the site A, as shown in FIG. Thereby, in the present embodiment, data consistency between both sites A and B can be maintained.

【0120】このように、本実施の形態では、複数の計
算機1、2からなる分散システムでトランザクション処
理を行なう場合のうち、特に以下の(1)、(2)、
(3)に該当する場合に、計算機1、2間に渡る障害発
生時にシステムが排他制御によってロックされることを
回避しつつ障害復旧後にデータの整合性を回復する手段
を提供することで、システムの可用性を高め運用を単純
化しつつ、システムの信頼性を高めることができる。 (1)サイトAのトランザクション22により起動され
るサイトBのトランザクション22が2フェイズ・コミ
ットの上でコーディネータになる、(2)結果が不明
(in−doubt)のトランザクションは、ヒューリ
スティック決定としてコミットを行なう方が好ましい、
(3)データ整合性確認機構33、34としてヒューリ
スティック・レポートを備えいる。なお、上記実施の形
態7の分散トランザクション処理システムにおいて、実
施の形態7で用いたデータ整合性確認機構を実施の形態
2で用いたデータ整合性確認機構に変更して構成しても
よい。その他の構成は、実施の形態7と同じにする。こ
の構成の場合も、ヒューリスティック・レポートを備え
ていないシステムで実施の形態7と同様の効果を得るこ
とができる。
As described above, in the present embodiment, the following (1), (2),
In the case of (3), by providing means for restoring data consistency after restoration of a failure while preventing the system from being locked by exclusive control when a failure occurs between the computers 1 and 2 System reliability while improving availability and simplifying operation. (1) The site B transaction 22 activated by the site A transaction 22 becomes a coordinator after a two-phase commit. Is preferred,
(3) Heuristic reports are provided as the data consistency check mechanisms 33 and 34. In the distributed transaction processing system according to the seventh embodiment, the data consistency checking mechanism used in the seventh embodiment may be changed to the data consistency checking mechanism used in the second embodiment. Other configurations are the same as those in the seventh embodiment. Also in the case of this configuration, the same effect as in the seventh embodiment can be obtained in a system without a heuristic report.

【0121】[0121]

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明に係る実施の形態1の採番機構のトラ
ンザクション処理フローを示すフローチャートである。
FIG. 1 is a flowchart showing a transaction processing flow of a numbering mechanism according to the first embodiment of the present invention.

【図2】 本発明に係る実施の形態1の採番機構の処理
フローを示すフローチャートである。
FIG. 2 is a flowchart illustrating a processing flow of a numbering mechanism according to the first embodiment of the present invention.

【図3】 本発明に係る実施の形態1の採番機構の採番
の回復処理フローを示すフローチャートである。
FIG. 3 is a flowchart showing a numbering recovery process flow of the numbering mechanism according to the first embodiment of the present invention.

【図4】 本発明に係る実施の形態2の分散トランザク
ション処理システムの構成を示すブロック図である。
FIG. 4 is a block diagram illustrating a configuration of a distributed transaction processing system according to a second embodiment of the present invention.

【図5】 図4に示す分散トランザクション処理システ
ムのトランザクション処理フロー示すフローチャートで
ある。
5 is a flowchart showing a transaction processing flow of the distributed transaction processing system shown in FIG.

【図6】 図4に示す分散トランザクション処理システ
ムのサイトAとサイトBのデータの整合性が確認される
様子を示すシーケンス図である。
FIG. 6 is a sequence diagram showing a state where data consistency between sites A and B of the distributed transaction processing system shown in FIG. 4 is confirmed.

【図7】 図4に示す分散トランザクション処理システ
ムのサイトAとサイトBのデータの整合性が確認される
様子を示すシーケンス図である。
FIG. 7 is a sequence diagram showing how data consistency between site A and site B of the distributed transaction processing system shown in FIG. 4 is confirmed.

【図8】 図4に示す分散トランザクション処理システ
ムで採取されるログの内容を示す図である。
8 is a diagram showing the contents of a log collected by the distributed transaction processing system shown in FIG.

【図9】 図4に示す分散トランザクション処理システ
ムの整合性確認機構が突き合わせるべき情報の所在を識
別するのに用いる整合性判断定義情報を示す図である。
FIG. 9 is a diagram showing consistency judgment definition information used by the consistency confirmation mechanism of the distributed transaction processing system shown in FIG. 4 to identify the location of information to be matched;

【図10】 図4に示す分散トランザクション処理シス
テムの整合性確認機構の処理フローを示すフローチャー
トである。
FIG. 10 is a flowchart showing a processing flow of a consistency checking mechanism of the distributed transaction processing system shown in FIG. 4;

【図11】 本発明に係る実施の形態3の分散トランザ
クション処理システムの通常実行時の構成を示すブロッ
ク図である。
FIG. 11 is a block diagram illustrating a configuration of a distributed transaction processing system according to a third embodiment of the present invention during normal execution.

【図12】 本発明に係る実施の形態3の分散トランザ
クション処理システムの再実行時の構成を示すブロック
図である。
FIG. 12 is a block diagram showing a configuration at the time of re-execution of a distributed transaction processing system according to a third embodiment of the present invention.

【図13】 図11に示す分散トランザクション処理シ
ステムのサイトA、Bのトランザクションの通常実行時
での処理フローを示すフローチャートである。
13 is a flowchart showing a processing flow at the time of normal execution of a transaction at sites A and B in the distributed transaction processing system shown in FIG. 11;

【図14】 図12に示す分散トランザクション処理シ
ステムのサイトAでのローカル再実行処理フローを示す
フローチャートである。
14 is a flowchart showing a local re-execution processing flow at site A of the distributed transaction processing system shown in FIG.

【図15】 本発明に係る実施の形態4の分散トランザ
クション処理システムの構成を示すブロック図である。
FIG. 15 is a block diagram illustrating a configuration of a distributed transaction processing system according to a fourth embodiment of the present invention.

【図16】 図15に示す分散トランザクション処理シ
ステム上のトランザクション処理フローを示すフローチ
ャートである。
16 is a flowchart showing a transaction processing flow on the distributed transaction processing system shown in FIG.

【図17】 図15に示す分散トランザクション処理シ
ステムにより引き起こされる通信とデータベースの変更
の様子を示すシーケンス図である。
FIG. 17 is a sequence diagram showing communication and database change caused by the distributed transaction processing system shown in FIG. 15;

【図18】 図15に示す分散トランザクション処理シ
ステムにより引き起こされる通信とデータベースの変更
の様子を示すシーケンス図である。
FIG. 18 is a sequence diagram showing communication and database changes caused by the distributed transaction processing system shown in FIG. 15;

【図19】 図15に示す分散トランザクション処理シ
ステムにより採取されるプリペア・ログの内容を示す図
である。
19 is a diagram showing contents of a prepare log collected by the distributed transaction processing system shown in FIG.

【図20】 図17、18に示す整合性の確認と再投入
の処理フローを示すフローチャートである。
FIG. 20 is a flowchart showing a processing flow of confirmation of consistency and re-input shown in FIGS.

【図21】 本発明に係る実施の形態4の分散トランザ
クション処理システムの構成を示すブロック図である。
FIG. 21 is a block diagram illustrating a configuration of a distributed transaction processing system according to a fourth embodiment of the present invention.

【図22】 図21に示す分散トランザクション処理シ
ステム上のトランザクション処理フローを示すフローチ
ャートである。
FIG. 22 is a flowchart showing a transaction processing flow on the distributed transaction processing system shown in FIG. 21.

【図23】 図21に示す分散トランザクション処理シ
ステムのサイトA、Bのデータ整合性が両サイト共コミ
ットされて維持されている様子を示すシーケンス図であ
る。
23 is a sequence diagram showing a state where data consistency of sites A and B of the distributed transaction processing system shown in FIG. 21 is committed and maintained at both sites.

【図24】 図21に示す分散トランザクション処理シ
ステムのサイトAのトランザクションの再実行処理フロ
ーを示すフローチャートである。
24 is a flowchart showing a transaction re-execution processing flow of site A in the distributed transaction processing system shown in FIG. 21.

【図25】 本発明に係る実施の形態6の分散トランザ
クション処理システムの構成を示すブロック図である。
FIG. 25 is a block diagram illustrating a configuration of a distributed transaction processing system according to a sixth embodiment of the present invention.

【図26】 図25に示す分散トランザクション処理シ
ステムの取り消し手続きフローを示すフローチャートで
ある。
26 is a flowchart showing a cancellation procedure flow of the distributed transaction processing system shown in FIG. 25.

【図27】 図25に示す分散トランザクション処理シ
ステムに使用される投入指示情報を示す図である。
FIG. 27 is a diagram showing input instruction information used in the distributed transaction processing system shown in FIG.

【図28】 図25に示す分散トランザクション処理シ
ステムの両サイトA、Bのデータ整合性が維持される様
子を示すシーケンス図である。
FIG. 28 is a sequence diagram showing a state where data consistency of both sites A and B of the distributed transaction processing system shown in FIG. 25 is maintained.

【図29】 整合性判断定義とマージされた投入指示情
報の内容を示す図である。
FIG. 29 is a diagram showing the contents of the input instruction information merged with the consistency determination definition.

【図30】 本発明に係る実施の形態7の分散トランザ
クション処理システムのサイトAのトランザクションに
対して用いる回復用トランザクションの処理フローを示
すフローチャートである。
FIG. 30 is a flowchart showing a processing flow of a recovery transaction used for a transaction at the site A in the distributed transaction processing system according to the seventh embodiment of the present invention.

【図31】 本発明に係る実施の形態7の分散トランザ
クション処理システムに用いられる投入指示情報の内容
を示す図である。
FIG. 31 is a diagram showing contents of input instruction information used in the distributed transaction processing system according to the seventh embodiment of the present invention.

【図32】 従来の分散トランザクション処理システム
の構成を示すブロック図である。
FIG. 32 is a block diagram showing a configuration of a conventional distributed transaction processing system.

【図33】 図32に示す分散トランザクション処理シ
ステム上のサイトAのトランザクション処理フローを示
すフローチャートである。
FIG. 33 is a flowchart showing a transaction processing flow of site A on the distributed transaction processing system shown in FIG. 32;

【図34】 図32に示す分散トランザクション処理シ
ステムによりサイトAとサイトBのデータ不整合が検出
される様子を示す図である。
FIG. 34 is a diagram illustrating a state where data inconsistency between site A and site B is detected by the distributed transaction processing system illustrated in FIG. 32;

【図35】 従来の方法でユーザの通番自体がロールバ
ックされると整合性の検出ができなくなる様子を示す図
である。
FIG. 35 is a diagram illustrating a state in which consistency cannot be detected when a user's serial number itself is rolled back by a conventional method.

【符号の説明】[Explanation of symbols]

1、2 計算機、3、4 注文データベース、5、6
ログ採取機構、7 採番機構、8 アプリケーション、
9 端末、10、11 注文レコード、21、22 ト
ランザクション、23 トランザクション再実行機構、
24、25 管理端末、26 プリンタ、31 ヒュー
リスティック決定機構、32 回復候補トランザクショ
ン抽出機構、33、34 データ整合性確認機構。
1,2 calculator, 3,4 order database, 5,6
Log collection mechanism, 7 numbering mechanism, 8 applications,
9 terminal, 10, 11 order record, 21, 22 transaction, 23 transaction re-executing mechanism,
24, 25 management terminal, 26 printer, 31 heuristic determination mechanism, 32 recovery candidate transaction extraction mechanism, 33, 34 data consistency check mechanism.

───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 G06F 15/16 - 15/177 ──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int.Cl. 7 , DB name) G06F 12/00 G06F 15/16-15/177

Claims (11)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 順序番号をメモリとファイルに保持し、
業務プログラムからの採番命令呼び出しによりメモリ上
の順序番号をカウント・アップして業務プログラムに返
し、計算機全体で既定値または定義により与えられた回
数N回に一度は最新の順序番号を不揮発性媒体上のファ
イルに書き出し、トランザクションのロールバックで戻
されず、かつ採番後コミットまでの間ロックされること
がない採番のプログラムインタフェース機構と、メモリ
の情報が失われるシステム障害の発生後はファイルに残
った順序番号+N以上の順序番号を復元することによ
り、仮に障害が発生しても、業務プログラムに最後に返
した順序番号より大きい順序番号から採番を再開させる
採番回復機構とを有することを特徴とする採番機構。
Claims 1. A sequence number is stored in a memory and a file.
The sequence number in the memory is counted up by calling a numbering instruction from the business program and returned to the business program, and the latest sequence number is stored in a nonvolatile medium at least once every N times given by the default value or the definition in the entire computer. The numbering program interface mechanism that writes to the above file, is not returned by transaction rollback, and is not locked until committing after numbering, and the file after a system failure that loses memory information A numbering recovery mechanism for restoring the remaining sequence numbers + N or more so that even if a failure occurs, the business program resumes numbering from a sequence number larger than the last sequence number returned last. Numbering mechanism characterized by the following.
【請求項2】 分散トランザクション処理において、コ
ーディネータとなるトランザクションの分散ノードに設
けた請求項1の採番機構による通番をキーとするレコー
ドを書き込むデータベースと、サブオーディネートとな
る分散ノードに設けた同通番を遅くともプリペア・ログ
と同時にログに書き込むログ採取機構と、データ整合性
確認の際に突き合わせるべきデータの所在、判断方法を
指定した整合性判断定義と、障害時のヒューリスティッ
ク決定によるデータ不整合を、インダウトのプリペア・
ログはあるがコーディネータの指示によるコミット/ロ
ールバックがされていないトランザクションに対して、
ログ中の通番に対応したレコードがあるかを整合性判断
定義情報に従って突き合わせることにより検出するデー
タ不整合検出機構とを有することを特徴とするデータ整
合性確認機構。
2. In the distributed transaction processing, a database for writing a record using a serial number as a key by the numbering mechanism according to claim 1 provided in a distributed node of a transaction serving as a coordinator, and a database provided in a distributed node serving as a subordinate. A log collection mechanism that writes the serial number to the log at the same time as the prepare log at the latest, a consistency decision definition that specifies the location and decision method of data to be matched when checking data consistency, and data inconsistency due to heuristic determination at the time of failure To the in-doubt prepare
For transactions that have logs but have not been committed / rolled back under the direction of the coordinator,
A data inconsistency detection mechanism for detecting whether there is a record corresponding to a serial number in the log by matching the records in accordance with the consistency determination definition information.
【請求項3】 分散トランザクション処理の1分散ノー
ドであるプログラムを、通常実行時には、受信処理及び
請求項1による採番処理は回復用ログに採取しつつ実行
し、再実行時には、そのプログラムまたはそれに対応す
る回復用プログラムを、元のトランザクションID付き
でローカルなトランザクションとして再投入して、プロ
グラムの受信処理以外の通信処理をNOP化し、受信処
理及び請求項1による採番処理は、通常実行時にはログ
に書き出し、トランザクションIDに基づいてはログか
らの読み出しにより再現し、トランザクションとしては
ローカルトランザクションとして処理するプログラムイ
ンタフェース機構を有することを特徴とするトランザク
ション再実行機構。
3. A program, which is one distributed node of the distributed transaction processing, is executed during normal execution while receiving processing and numbering processing according to claim 1 are collected in a recovery log. At re-execution, the program or the program is executed. The corresponding recovery program is re-entered as a local transaction with the original transaction ID, the communication processing other than the reception processing of the program is turned to NOP, and the reception processing and the numbering processing according to claim 1 are executed in a log during normal execution. A transaction re-executing mechanism, characterized by having a program interface mechanism for writing the data to a local transaction based on the transaction ID and reproducing the read transaction from a log based on the transaction ID.
【請求項4】 以下のa)〜f)に示す構成要素からな
り、子トランザクションを起動する側の親トランザクシ
ョンが2フェイズ・コミット上でコーディネータにな
り、b)でのヒューリスティック決定としてロールバッ
クを行なうもので、e)のデータ整合性確認機構として
ヒューリスティック・レポートを備えており、f)のト
ランザクション再実行機構による再実行トランザクショ
ンとして、元の子トランザクションそのものを投入する
ことにより、計算機間に渡る障害の発生後一時的にプリ
ペア状態のトランザクションをロールバックし、後で子
トランザクションを必要に応じてローカル・トランザク
ションとして再投入して計算機間の整合性を回復するこ
とを特徴とする分散トランザクション処理システム。 a)ログ採取機構、 b)障害発生時に相手トランザクションからのコミット
/ロールバック決定待ちのトランザクションを、ローカ
ルなヒューリスティック決定でコミット/ロールバック
するヒューリスティック決定機構、 c)プリペア・ログのみあって、コミット・ログ及びロ
ールバック・ログがないトランザクションを回復候補と
して抽出する回復候補トランザクション抽出機構、 d)あるトランザクションが回復候補になった場合に、
どのトランザクションを投入すればいいかを示す投入指
示情報、 e)ヒューリスティック決定によってコミット/ロール
バックされたトランザクションと、相手トランザクショ
ンとの間のデータ整合性が崩れていないかどうかを、障
害の復旧後に確認するデータ整合性確認機構、 f)請求項3のトランザクション再実行機構。
A parent transaction which starts a child transaction becomes a coordinator on a two-phase commit, and rolls back as a heuristic decision in b). In this case, a heuristic report is provided as a data consistency checking mechanism in e), and the original child transaction itself is input as a re-executed transaction by the transaction re-executing mechanism in f). A distributed transaction processing system wherein a transaction in a prepared state is temporarily rolled back after occurrence, and a child transaction is re-entered as a local transaction later as needed to restore consistency between computers. a) a log collection mechanism; b) a heuristic decision mechanism for committing / rolling back a transaction waiting for a commit / rollback decision from the partner transaction in the event of a failure by local heuristic decision; A recovery candidate transaction extraction mechanism for extracting a transaction without a log and a rollback log as a recovery candidate; d) when a transaction becomes a recovery candidate,
Injection instruction information indicating which transaction should be injected. E) Confirming, after recovery from the failure, whether data consistency between the transaction committed / rolled back by the heuristic decision and the partner transaction has not been lost. The data reconciliation mechanism according to claim 3, wherein:
【請求項5】 請求項4のa)〜f)に示す構成要素か
らなり、子トランザクションが2フェイズ・コミット上
でコーディネータになり、b)でのヒューリスティック
決定としてロールバックを行なうもので、e)のデータ
整合性確認機構としてヒューリスティック・レポートを
備えており、f)のトランザクション再実行機構による
再実行トランザクションとして、元の親トランザクショ
ンそのものを投入することにより、計算機間に渡る障害
の発生後一時的にプリペア状態のトランザクションをロ
ールバックし、後で親トランザクションを必要に応じて
ローカル・トランザクションとして再投入して計算機間
の整合性を回復することを特徴とする分散トランザクシ
ョン処理システム。
5. The method according to claim 4, wherein the child transaction becomes a coordinator on a two-phase commit, and rolls back as a heuristic decision in b). A heuristic report is provided as a data consistency check mechanism of f), and the original parent transaction itself is input as a re-execution transaction by the transaction re-execution mechanism f) to temporarily A distributed transaction processing system wherein a transaction in a prepared state is rolled back, and a parent transaction is later re-entered as a local transaction as needed to restore consistency between computers.
【請求項6】 請求項4のa)〜f)に示す構成要素か
らなり、子トランザクションを起動する側の親トランザ
クションが2フェイズ・コミット上でコーディネータに
なり、b)でのヒューリスティック決定としてコミット
を行なうもので、e)のデータ整合性確認機構としてヒ
ューリスティック・レポートを備えており、f)のトラ
ンザクション再実行機構として請求項3を備え、元の子
トランザクションに対応した回復用トランザクションを
投入することにより、計算機間に渡る障害の発生後一時
的にプリペア状態のトランザクションをコミットし、後
で回復用トランザクションを必要に応じてローカル・ト
ランザクションとして再投入して計算機間の整合性を回
復することを特徴とする分散トランザクション処理シス
テム。
6. A parent transaction which activates a child transaction becomes a coordinator on a two-phase commit and comprises a commit as a heuristic decision in b). A heuristic report is provided as a data consistency checking mechanism of e), and a claim 3 is provided as a transaction re-execution mechanism of f), and a recovery transaction corresponding to the original child transaction is input. In this method, a transaction in a prepared state is temporarily committed after the occurrence of a failure between computers, and the recovery transaction is re-entered as a local transaction as needed to restore consistency between computers. Distributed transaction processing system.
【請求項7】 請求項4のa)〜f)に示す構成要素か
らなり、子トランザクションが2フェイズ・コミット上
でコーディネータになり、b)でのヒューリスティック
決定としてコミットを行なうもので、e)のデータ整合
性確認機構としてヒューリスティック・レポートを備え
ており、f)のトランザクション再実行機構として請求
項3を備え、元の親トランザクションに対応した回復用
トランザクションを投入することにより、計算機間に渡
る障害の発生後一時的にプリペア状態のトランザクショ
ンをコミットし、後で回復用トランザクションを必要に
応じてローカル・トランザクションとして再投入して計
算機間の整合性を回復することを特徴とする分散トラン
ザクション処理システム。
7. The method according to claim 4, wherein the child transaction becomes a coordinator on a two-phase commit and performs a commit as a heuristic decision in b). A heuristic report is provided as a data consistency checking mechanism. Claim 3 is provided as a transaction re-executing mechanism of f), and by inputting a recovery transaction corresponding to the original parent transaction, a failure between computers can be prevented. A distributed transaction processing system wherein a transaction in a prepared state is temporarily committed after occurrence, and a recovery transaction is re-entered as a local transaction later as needed to restore consistency between computers.
【請求項8】 請求項4の分散トランザクション処理シ
ステムにおいて、データ整合性確認機構は、請求項4の
e)のデータ整合性確認機構を請求項2のデータ整合性
確認機構に変更したものであることを特徴とする分散ト
ランザクション処理システム。
8. The distributed transaction processing system according to claim 4, wherein the data consistency checker is obtained by changing the data consistency checker of claim 4) to the data consistency checker of claim 2. A distributed transaction processing system.
【請求項9】 請求項5の分散トランザクション処理シ
ステムにおいて、データ整合性確認機構は、請求項5の
e)のデータ整合性確認機構を請求項2のデータ整合性
確認機構に変更したものであることを特徴とする分散ト
ランザクション処理システム。
9. The distributed transaction processing system according to claim 5, wherein the data consistency checker is obtained by changing the data consistency checker of claim 5) to the data consistency checker of claim 2. A distributed transaction processing system.
【請求項10】 請求項6の分散トランザクション処理
システムにおいて、データ整合性確認機構は、請求項6
のe)のデータ整合性確認機構を請求項2のデータ整合
性確認機構に変更したものであることを特徴とする分散
トランザクション処理システム。
10. The distributed transaction processing system according to claim 6, wherein the data consistency check mechanism is provided.
3. The distributed transaction processing system according to claim 1, wherein the data consistency check mechanism of e) is changed to the data consistency check mechanism of claim 2.
【請求項11】 請求項7の分散トランザクション処理
システムにおいて、データ整合性確認機構は、請求項7
のe)のデータ整合性確認機構を請求項2のデータ整合
性確認機構に変更したものであることを特徴とする分散
トランザクション処理システム。
11. The distributed transaction processing system according to claim 7, wherein the data consistency check mechanism is provided.
3. The distributed transaction processing system according to claim 2, wherein the data consistency check mechanism of e) is changed to the data consistency check mechanism of claim 2.
JP08012059A 1996-01-26 1996-01-26 Numbering mechanism, data consistency confirmation mechanism, transaction re-execution mechanism, and distributed transaction processing system Expired - Fee Related JP3094888B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08012059A JP3094888B2 (en) 1996-01-26 1996-01-26 Numbering mechanism, data consistency confirmation mechanism, transaction re-execution mechanism, and distributed transaction processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08012059A JP3094888B2 (en) 1996-01-26 1996-01-26 Numbering mechanism, data consistency confirmation mechanism, transaction re-execution mechanism, and distributed transaction processing system

Publications (2)

Publication Number Publication Date
JPH09204341A JPH09204341A (en) 1997-08-05
JP3094888B2 true JP3094888B2 (en) 2000-10-03

Family

ID=11795038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08012059A Expired - Fee Related JP3094888B2 (en) 1996-01-26 1996-01-26 Numbering mechanism, data consistency confirmation mechanism, transaction re-execution mechanism, and distributed transaction processing system

Country Status (1)

Country Link
JP (1) JP3094888B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH058556U (en) * 1991-07-18 1993-02-05 旭光学工業株式会社 Projector

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120017A (en) * 1997-10-20 1999-04-30 Mitsubishi Electric Corp Automatic numbering system, duplex system, and cluster system
US7346905B2 (en) 2003-06-10 2008-03-18 International Business Machines Corporation Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment
JP5223457B2 (en) 2008-05-22 2013-06-26 富士通株式会社 Resolution method of in-doubt state in two-phase commit protocol of distributed transaction
JP5580352B2 (en) * 2012-02-03 2014-08-27 日本電信電話株式会社 Distributed data management system and operation method thereof
CN103984768B (en) 2014-05-30 2017-09-29 华为技术有限公司 A kind of data-base cluster manages method, node and the system of data
US9613078B2 (en) 2014-06-26 2017-04-04 Amazon Technologies, Inc. Multi-database log with multi-item transaction support
JP6346376B2 (en) * 2014-09-10 2018-06-20 アマゾン・テクノロジーズ・インコーポレーテッド Scalable log-based transaction management
US10373247B2 (en) 2014-09-19 2019-08-06 Amazon Technologies, Inc. Lifecycle transitions in log-coordinated data stores
US9799017B1 (en) 2014-09-19 2017-10-24 Amazon Technologies, Inc. Cross-data-store operations in log-coordinated storage systems
US10025802B2 (en) 2014-09-19 2018-07-17 Amazon Technologies, Inc. Automated configuration of log-coordinated storage groups
US10698767B1 (en) 2014-12-22 2020-06-30 Amazon Technologies, Inc. Decentralized management of multi-service workflows
US9904722B1 (en) 2015-03-13 2018-02-27 Amazon Technologies, Inc. Log-based distributed transaction management
US11599520B1 (en) 2015-06-29 2023-03-07 Amazon Technologies, Inc. Consistency management using query restrictions in journal-based storage systems
US10866865B1 (en) * 2015-06-29 2020-12-15 Amazon Technologies, Inc. Storage system journal entry redaction
US10866968B1 (en) 2015-06-29 2020-12-15 Amazon Technologies, Inc. Compact snapshots of journal-based storage systems
US11609890B1 (en) 2015-06-29 2023-03-21 Amazon Technologies, Inc. Schema management for journal-based storage systems
US10031935B1 (en) 2015-08-21 2018-07-24 Amazon Technologies, Inc. Customer-requested partitioning of journal-based storage systems
US10346434B1 (en) 2015-08-21 2019-07-09 Amazon Technologies, Inc. Partitioned data materialization in journal-based storage systems
US9971822B1 (en) 2015-12-29 2018-05-15 Amazon Technologies, Inc. Replicated state management using journal-based registers
CN112632117B (en) * 2020-12-30 2024-08-13 广州华多网络科技有限公司 Method and device for processing numbered data, electronic equipment and storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH058556U (en) * 1991-07-18 1993-02-05 旭光学工業株式会社 Projector

Also Published As

Publication number Publication date
JPH09204341A (en) 1997-08-05

Similar Documents

Publication Publication Date Title
JP3094888B2 (en) Numbering mechanism, data consistency confirmation mechanism, transaction re-execution mechanism, and distributed transaction processing system
US7003694B1 (en) Reliable standby database failover
US7636741B2 (en) Online page restore from a database mirror
US6233585B1 (en) Isolation levels and compensating transactions in an information system
CN112306743B (en) Data processing method, device, electronic equipment and computer storage medium
JP2531776B2 (en) How to recover your database
US5884328A (en) System and method for sychronizing a large database and its replica
US6434555B1 (en) Method for transaction recovery in three-tier applications
US20040215998A1 (en) Recovery from failures within data processing systems
US5745674A (en) Management of units of work on a computer system log
CN110413687A (en) The distributed transaction fault handling method and relevant device of verification are mutually demonstrate,proved based on node
US6330686B1 (en) Handling protected conversation messages across IMS restart in shared queues environment
JPH11134235A (en) Method for supporting recovery from fault of external storage device
CN116107807A (en) Method and device for acquiring global consistency point positions during data backup in database
JPH08286964A (en) Method for processing distributed transaction
JP3290182B2 (en) Data set backup method and apparatus in shared environment
JPH08314784A (en) File management device
JP3774075B2 (en) Transaction division / cooperation apparatus and recording medium
CN117971975B (en) Cross-table transaction supporting method and device for distributed database and readable storage medium
JP3516428B2 (en) calculator
JP3088109B2 (en) Commit protocol for distributed transactions
JP2000293416A (en) Database processor and storage medium
CN118193297A (en) Method and device for recovering misoperation of SQLServer database, computer equipment and storage medium
CN117971975A (en) Cross-table transaction supporting method and device for distributed database and readable storage medium
CN117785546A (en) Database backup method, system and computing device cluster

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees