JP2837288B2 - 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法 - Google Patents

連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法

Info

Publication number
JP2837288B2
JP2837288B2 JP3135748A JP13574891A JP2837288B2 JP 2837288 B2 JP2837288 B2 JP 2837288B2 JP 3135748 A JP3135748 A JP 3135748A JP 13574891 A JP13574891 A JP 13574891A JP 2837288 B2 JP2837288 B2 JP 2837288B2
Authority
JP
Japan
Prior art keywords
transaction
work unit
subtree
tree
unit identifier
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 - Lifetime
Application number
JP3135748A
Other languages
English (en)
Other versions
JPH04230541A (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04230541A publication Critical patent/JPH04230541A/ja
Application granted granted Critical
Publication of JP2837288B2 publication Critical patent/JP2837288B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にデータベースおよ
びトランザクション処理システムに関し、より詳細には
データベースの一貫性を維持するために2相コミットと
バックアウトプロトコルを用いる分散システムに関す
る。
【0002】
【従来の技術】同期点管理プログラム(SPM)は分散
トランザクションプログラム(TP)が原子トランザク
ション、すなわちすべてコミット(固定化)またはすべ
てバックアウト(取消し)であるデータ更新からなる論
理的ワーク単位(LUW)を実行することを可能にする
オペレーティングシステムサービスを与えるものであ
る。原子トランザクションはここではLUWIDと呼ぶ
論理ワーク単位識別子により識別される。一つのトラン
ザクションに含まれるデータのすべてのアクセスがその
LUWIDに関連づけられる。かくして、データベース
管理プログラムはSPMにより一つのトランザクション
をコミットするように要求されると、このLUWIDを
用いて固定化されるべきデータ更新を識別する。或るデ
ータベース管理プログラムは同一のトランザクションに
関係する、すなわち同一のLUWIDを用いる2つのプ
ログラムがデータ資源に同時にアクセスしうるようにし
てプログラム間のデッドロックの発生確率を低下させて
いる。
【0003】このLUWIDのこれらの使用の結果、同
じトランザクションに関係するすべてのプログラムが同
一のLUWIDを用い、そしてその同一のトランザクシ
ョンに関係せず、一緒にコミットしない2つのプログラ
ムは異なるLUWIDを有することになる。これは同一
のトランザクションについて一度一緒にワーキングを行
ったが、通信接続が解除されたためあるいは故障したた
め現在は接続されていないプログラムである。
【0004】連鎖しないトランザクションシステムでは
各トランザクション(LUW)は、TPにより明確にス
タートされそして終了され、夫々のトランザクションに
ついての新しいLUWIDがその関連するSPMにより
そのトランザクションに含まれる他のTPのSPMへ送
られる。連鎖されないトランザクションはそれらプログ
ラムのすべてではないワークを原子トランザクションの
一部として扱う必要のある場合に用いられる。このよう
に、1つのトランザクションの終りと次のトランザクシ
ョンの明確なスタートとの間に生じるワークは協調を保
ってはバックアウトあるいはコミットされえない。ま
た、連鎖しないトランザクションの場合には、LUWI
Dを配布するためのプロトコルはそのLUWIDが常に
TPツリーすなわちプログラムが他のプログラムへの接
続をつくるときに各ブランチがつくられるツリーを流れ
下るから、プログラム間の関係が一定の階層的なものに
なる傾向がある。
【0005】連鎖トランザクションシステムは、任意の
TPにおけるトランザクションのエンドが本質的にその
TPにおける次のトランザクションのスタートをマーク
するものである。このように任意のTPについて次のも
のを明確にスタートさせる必要がない。連鎖トランザク
ションの場合には一つのツリー内の任意のプログラムに
より行われるすべてのワークは原子トランザクションの
一部となる。そのため、一つの新しいトランザクション
についてのLUWIDはTPによる明確なアクションま
たはSPM間で送られるメッセージを用いずに最終トラ
ンザクションについてLUWIDを増分させることによ
り明確に発生される。そのため、そのトランザクション
に含まれるプログラム間に固定された階層的関係は必要
とされない。
【0006】
【発明が解決しようとする課題】分散トランザクション
システムではパートナーとなるTPは通信リンクにより
接続されるシステムの異なったノードにあるいはそのシ
ステムの1つのノード内に存在しうる。これらTPはコ
ミットまたはバックアウトであるデータ更新を有するプ
ログラムのツリーを形成する。トランザクションツリー
が切り離されるときに連鎖システムに問題が生じる。サ
ブツリーは使用中の通信接続の故障または一つのTPま
たはオペレーティングシステム(OS)にその接続を異
常な形で終了させるようなエラーが検出されたときに分
離しうる。サブツリーはまた一つのTPが通常通り他の
TPへのその接続を終了しようとするとき分離されう
る。連鎖トランザクションでは切断されたサブツリー内
の、一緒にコミットしえなくなったTPが同一のLUW
IDにより進まないようにするための特別のアクション
が必要である。その理由は両側が前のトランザクション
について共用するLUWIDを増分させることによりそ
れらの次のLUWIDを通常発生するからである。これ
ら切断されたTPが同一のLUWIDで進まないように
されなかった場合にはデータ損傷が生じうる。すなわち
データはコミットされるべきものがバックアウトされ、
また、その逆も言える。
【0007】この問題を解決する従来の方法はツリーの
破断が生じた後に分断された二つのサブツリーのすべて
のノードを取り除くことによるものである。これはデー
タ損傷を防止するように作用するが、行わなくてはなら
ぬワークの量および接続を改造する際の結果的なシステ
ムロスという点で非常に高価なものとなる。それ故、何
らかの理由で分離されるサブツリーがツリーの完全な削
除を行うことなく異なったワーク単位識別子で進むよう
にする必要がある。
【0008】
【課題を解決するための手段】上記の問題は、連鎖分散
トランザクションシステム内でのワーク単位識別子の管
理方法により解決される。このシステムは一つのツリー
を形成するように論理的に接続された複数の処理ノード
を有する。通常、各ノードは各トランザクションの処理
の終了時にその現在の識別子を自動的に増加させて次の
トランザクション識別子をとり出す。しかしながら分断
されたツリーに生じる故障条件に応じて、分断の結果と
しての第1および第2サブツリー内に現在存在する分散
データベースは状態が一貫性を持つように強制させる。
トランザクション識別子は第1サブツリーのノードの夫
々において増分される。第1サブツリー内のトランザク
ションのワークはこの増分された識別子で進む。第2サ
ブツリーは捨てられる。
【0009】分断されたツリーに生じる非故障条件に応
じて、故障でない分断により生じる第1および第2サブ
ツリー内の分散データベースは固定状態にコミットされ
る。第1サブツリーのノードの夫々におけるトランザク
ション識別子は増分される。そのとき第1サブツリー内
のトランザクションのワークは増分された識別子で進
む。新しいトランザクション識別子が発生されて第2サ
ブツリーのすべてのノードに与えられる。このとき第2
サブツリー内のトランザクションのワークはこの新しい
識別子で進む。
【0010】好適な実施例では、1つのツリーが例えば
接続の故障またはエラーに応じたトランザクションプロ
グラムにより異常に分断されるとき、現在のトランザク
ションは元のツリーのルートノードを含むサブツリー
(以後アロケータサブツリーと呼ぶ)においてバックア
ウトされる。このサブツリーはそのままとされる。この
サブツリー内のすべてのノードはそれらのLUWIDを
増分し、正常に動作しつづける。このトランザクション
はまたこの分断の他方の側においてサブツリー、すなわ
ち非アロケータサブツリー内でバックアウトされる。し
かしながら、バックアウトプロセスにおいてノード間の
すべての接続は落とされ、それにより非アロケータサブ
ツリーを捨てる。この削除されたサブツリー内の各トラ
ンザクションプログラムは、それが行う以降のワークに
ついて使用するための新しい固有のLUWIDを発生す
る。両側でのバックアウトが必要であり、その理由は分
離されたサブツリー内のプログラムが夫々異なるLUW
IDを発生する前に新しいトランザクションについてワ
ークを開始出来るからである。それ故、分離されたサブ
ツリー内のプログラムについて同一のLUWIDでワー
クをスタートすることが可能である。これにより生じる
損傷を避けるために、両サブツリーは、このときもはや
有効でない古いLUWIDを用いたツリー破壊後に行わ
れるワークをすべてバックアウトする。
【0011】一つのツリーが故障でない条件の結果とし
てプログラムにより分断されるとき、新しいLUWID
がサブツリーの一つにおいて発生されそしてそのサブツ
リーのすべてのメンバーに2相コミットプロトコルのフ
ローの部分として与えられる。他方のサブツリーではこ
のLUWIDは通常通りに増分される。このように両サ
ブツリーは不変のままであり異なるLUWIDで進む。
【0012】本発明は同一トランザクション内の同一ツ
リーで故障による破断と故障によらない破断の両方が生
じる場合を自動的に処理する。これにより故障によらな
いツリー破断を処理しつつあるノードが、このツリー内
のどこかでの故障による破断の発生を示す2相コミット
フロー中のメッセージを受ける場合に故障による破断に
ついてのルールに確実に追従する。これは、複数の破断
が同一識別子で進む分離されたサブツリーを生じさせな
いようにする。
【0013】本発明はプログラムが一つのトランザクシ
ョンについて独立してワークをスタート可能であり任意
のプログラムがコミット動作を開始させうる場合の分散
連鎖トランザクションにおける関係した更新コミットプ
ロトコルとデッドロック回避を支持するために適正なL
UWIDを使用しうるようにする。
【0014】
【実施例】データベースシステムでの論理的ワーク単位
(LUW)は、LUWが原子であるように見える形で一
つの一貫性ある状態から別の一貫性ある状態へ、一般に
はデータベースレコードである資源セットを使用するた
めに行われるアクションのシーケンスである。一つのL
UWにおいて故障が生じると、そのLUWの部分として
なされる変化は生ぜず、それ故それら資源はそのLUW
のスタート時に存在した一貫性ある状態にもどる。
【0015】2相のコミットプロトコルは故障に出合う
ときでも原子一貫性を保証するために用いられる。基本
プロトコルは、J.N.Gray著“Notes on Database Operat
ingSystems,”published in Operating Systems - An A
dvanced Course;Lecture Notes in Computer Science;
第60巻、Springer-Verlag 社1978年刊、に示されてい
る。システム・ネットワーク・アーキテクチャ(SN
A)に用いるためのそれらプロトコルの変形がIBM
LU6.2 Reference の(Peer Protocols)(SC3
1−6808−0)に示されている。他の変形は“The
R* Distributed Database Management System”,198
6,ACM 03625915/86/1200-0378 に示されている。更に
他の変形は分散トランザクション処理についてのOSI
に関するドラフトインターナショナルスタンダード、IS
O/IEC JTC 1/SC 21 N2608 Information Processing Sys
tems - Open Systems Interconnect - Distributed Tra
nsaction Processing Part 1、 トランザクション処理モデル、ISO/IEC JTC 1/SC 21 N2
607 Information Processing Systems - Open Systems
Interconnect - Distributed Transaction Processing
Part 2、 サービス定義、ISO/IEC JTC 1/SC 21 N2608 Informatio
n Processing Systems- Open Systems Interconnect -
Distributed Transaction Processing Part 3、に夫々
示されている。
【0016】完全を期してこの基本2相プロトコルを、
図1を参照して簡単に述べる。上記文献も合わせて参照
する。図1はノード100,102,104からなる簡
単なノードツリーを示す。ノード100と102は会話
106で接続される。ノード102と104は会話10
8で接続される。このツリーはアロケータツリーと呼ば
れる。このアロケータツリーは接続がつくられたときに
形成するプログラム間の固定された関係と呼ばれる。す
なわち、一つの接続のクリエータはそのパートナープロ
グラムよりアロケータツリーにおいて上位にある。これ
に対し、トランザクションツリーはコミットオペレーシ
ョンを開始するノードに依存して各トランザクションに
ついて変化しうる。例えば、ノード102がコミットを
スタートすると、それはそのトランザクションツリーの
ルートとなり、ノード100と104は子ノードとな
る。アロケータツリーではノード100は常にルートノ
ードであり、ノード102と104は子ノードである。
どのようにしてアロケータツリーをつくるかを次に述べ
る。ノード102がコミット動作を開始するとすると、
これはTPが2相コミット動作をスタートさせるコマン
ドを出したことを意味する。この時点でノード102は
ノード100と104にPREPARE TOCOMM
ITメッセージを送り、それによりコミットコーディネ
ータとなる。各ノード100と104は個々にその観点
において動作が満足に進んだかどうかを決定し、そして
夫々ヴォートをもどす。通常の場合には、ノード100
と104はノード102にAGREEメッセージをもど
す。ノード100と104からAGREEを受けた後
に、ノード102はノード100と104にCOMMI
Tメッセージを送り、それらノードの夫々において行わ
れたデータ変更が固定化される。FORGETメッセー
ジがこのとき、この例ではCOMMITメッセージに対
する確認としてノード102にもどされる。この時点
で、連鎖トランザクションシステムではこれらノードの
夫々がそのLUWIDを増分し、新しいワークへと進
む。ノード100または104がPREPARE TO
COMMITに対するBACKOUTレスポンスをも
どすとすると、ノード102はBACKOUTをもどさ
なかったノードにBACKOUTメッセージを送り、各
ノードはそのデータを現在のトランザクションの開始時
に存在した一貫性ある状態にもどす。次に各ノードは連
鎖システムにおいて、そのLUWIDを増分し、新しい
ワークで進む。この簡単な例はシステムにより用いられ
る特定の2相コミットプロトコルおよび使用中の特定の
トランザクションツリーにより、多くの変化を有する。
本発明に関係する他のプロトコルレスポンスを以降の説
明中に適宜説明する。
【0017】以降の説明はいくらかの説明を必要とする
同期点処理に関係する多くの他の動作を含む。再同期化
はコミット動作中の会話の故障の検出後にSPMにより
自動的に行われるサービスである。再同期化中に、中断
に隣接する2個のSPMがそれらのサブツリーが分断さ
れてもコミットまたはバックアウトの同一アクションを
とることが出来るようにそれらSPMは情報を交換す
る。この再同期化はこの交換が完了するか手動的な介入
がそれを終了させるかするまで無期限に持続する。FO
RGETまたはBACKOUTメッセージに付加される
RIP(再同期化進行)インジケータはそのツリーに不
完全な再同期化があることを意味する。メッセージに付
加されるCEBインジケータはメッセージを流している
会話が直ちに終了されるべきことを意味する。このイン
ジケータはTPがその会話の終了を要求する場合に最後
の2相コミットメッセージ(例えばFORGET)と共
に流れる。ヒューリスティック合成メッセージは、分散
LUWに含まれるいくつかの同期点管理プログラムがそ
のLUWをバックアウトし、他の同期点管理プログラム
がそのLUWをコミットするためにデータの非一貫性が
生じたことを示す。これは、オペレータが通常の結論を
得るためにコミット動作を待たずに強制的に局部資源を
コミットまたはバックアウトさせるとき生じる。これは
例えば再同期化動作を待って大幅に遅れたTPが、重い
要求のあるシステム資源に対するロックを保持するとき
に生じうる。ヒューリスティック損傷はオペレータがこ
のように完了を強制するとき常に危険である。
【0018】本発明はIBMのSNA論理ユニット(L
U)6.2アーキテクチャについて述べるが、これに限
られるものではない。図2に示すように、このLU6.
2論理的ワーク単位識別子(LUWID)は3つの要素
すなわち、LUWIDをはじめに発生するLUの識別子
(フィールド200)、発生するLUにおいて固有の、
トランザクションインスタンス番号(フィールド20
2)、および1でスタートし各コミットまたはバックア
ウトに続くトランザクションに関係する夫々のLUにお
いて1だけ自動的に増分されるシーケンス番号(フィー
ルド204)から成る。これは上記の連鎖動作である。
【0019】LUWID内の発生LUの識別を含むこと
により、LUWIDのLU識別フィールド200が一つ
のLUで発生されるすべてのLUWIDを他のLUで発
生されるすべてのLUWIDから区別するから、個々の
トランザクションについてのLUWIDの固有性が保証
される。本発明の好適な実施例ではトランザクション番
号は日時スタンプを用いて発生される。
【0020】図3はノード300−1〜300−6から
なるトランザクションツリーを示す。このツリーを一部
とするネットワークは多くの他のノードを含みうる。各
ノードはSPM307、少くとも1つのトランザクショ
ンプログラム(TP)302、データベースのような資
源304、およびTP間の通信を可能にする論理ユニッ
ト(LU)306を含む。図3は各ノードに1個のTP
を示しているが、一般には1つのノードはLUを介して
すべてそれと他のノートとの間で対話し、資源トランザ
クションを行う多数のTPを含むことが出来る。資源は
局所ファイルおよび装置のようなTPにより使用するた
めのノードに使用可能なものなら何でも本質的に含むこ
とが出来る。しかしながら、ここではそのような資源は
説明の便宜上データベースであるとする。
【0021】LUは局所TPと同期化点管理プログラム
(SYNCPT管理プログラムまたはSPM)により与
えられる通信動詞の内容を実行する。TPにより出さ
れ、それに対するサービスを行うLUにより実行される
動詞のいくつかは局所および遠隔LU間のセッションに
ついて他のTPとの対話をアロケート(割振り)し、デ
ィアロケート(割振りを解除)(開始と解放)するため
のものを含む。他の動詞は一つのTPが他のTPへデー
タを送り、あるいはそれからデータを受けうるようにす
る。SPMはトランザクションプログラムにより与えら
れるSYNCPT(コミット)またはBACKOUT動
詞を実行する。SPMはTPの要求によりすべてのノー
ドでトランザクションをコミットし、あるいはバックア
ウトする。LU6.2動詞の詳細についてはIBM社の
文献 TRANSACTION PROGRAMMER
´S REFERENCE MANUAL FOR L
U6.2,G330−3084を参照されたい。LU3
06とSPM307の詳細についてはIBM SC30
−3269,FORMAT AND PROTOCOL
REFERENCE MANUALを参照されたい。
これら両文献はここに組入れられるものである。
【0022】アロケーションツリーの作成について次に
述べる。図3の例ではノード300−1のトランザクシ
ョンプログラム(TP)302−1がはじめに作動され
るものとする。作成されるべきアロケーションツリー内
の第1TPの作動は製品に特有な事情によるものであり
本発明とは関係がない。例えば与えられた初期TPは与
えられたノードがオンラインとなるたびに自動的にスタ
ートされ、あるいは初期TPはオペレータの要求により
スタートされうる。いずれにしても、この例について
は、この初期TP302−1はノード300−2でのT
P302−2との対話308をアロケートする(割り振
る)。TP302−2は更にノード300−3と300
−4のTPとの対話310と312を夫々割振り、以下
同様である。LU6.2アーキテクチャでは対話はノー
ド間のセッションに接続されるLUへのTPによるAL
LOCATE動詞の発行に応じてそのセッションに割振
られる。ALLOCATEに応じて対話ATTACHメ
ッセージがそのセッションの他端に付加される遠隔LU
に送られる。このATTACHは対話が付加されるべき
TPの名前を含む。このように図3においてはTP30
2−1がはじめにALLOCATE動詞をLU306−
1に出す。LU306−1はLU306−2にATTA
CHを出す。このATTACHはTP302−2の名前
を含む。これはまた図について述べたように割当てられ
る論理的ワーク単位識別子(LUWID)を含む。この
LUWIDはこの例ではノード300−1であるアロケ
ーションツリーのルートで割当てられるLUWIDであ
る。TP302−2がTP302−3に対話を割振ると
きにLU306−2からLU306−3へのATTAC
Hメッセージは同一のLUWIDを含む。図3に示すよ
うにアロケーションツリーが完全につくられると、その
ツリーのノードの任意またはすべてにおける資源は与え
られたトランザクションを完成するために用いられる。
【0023】本発明によれば、LU6.2のプロトコル
コンテキストで述べた次のルールが、ツリーの破断の生
じたときにワーク単位識別子を管理する。ツリー分断は
通信故障により生じうる。あるいはTPはそれより下位
のノードをそのツリーから除去したいときにそのツリー
を意図的に且つ通常のように破断することが出来る。こ
れはTPによるDEALLOCATE TYPE(SY
NC−LEVEL)動詞の発行により行われる。この動
詞のSYNC−LEVELはSYNCPT動詞がコミッ
ト動作を生じさせるために発行されるまでこの対話の割
当解除を延期する。破断は、TPまたはLUがある種の
処理エラーを検出するときに意図的にも生じさせること
が出来る。この形の割当解除は異常デアロケーションと
呼ばれ、1つのノードから他のノードへのDEALLO
CATE(ABEND)メッセージにより開始される。
このメッセージのABEND部分は「異常エンディン
グ」を表わす。
【0024】本発明によれば、通常のプログラムによる
会話のデアロケーションのためツリーが破断されると
き、新しいLUWIDがつくられてサブツリーの1つに
おいて伝ぱんされる。両サブツリーはそのままである。
好適な実施例では最終的にCOMMITメッセージを受
けるデアロケートされるべき会話の側のサブツリーはそ
れ用の新しいLUWIDを発生し、それをそのサブツリ
ーの残りのノードまたはTPに送る。これは残りのノー
ドとの会話を維持しているからである。他のサブツリー
はその現在のLUWIDを増分させるだけであり、新し
いワークで進む。この結果を常に達成するために、この
ルールは通常の会話デアロケーションがまずコミット動
作を行わないかぎり生じえないようにする。SYNCP
T動詞を後に伴うDEALLOCATE TYPE(S
YNC−LEVEL)が、許される唯一の通常デアロケ
ーションタイプである。もしSYNCPT動詞がLUW
をバックアウトさせるものであればその会話はデアロケ
ートされない。LUがPREPARE TO COMM
ITに応じてHMまたはFORGETを送った場合、コ
ミット動作の第2相によりトランザクションツリーにお
いてそのLUより上の部分で通常デアロケーションによ
る破断が生じていると、そのLUは更新されたLUWI
Dを受けることが出来ない。それ故、コミットイニシエ
ータは変化がある場合に次のLUWのスタート時NE
W−LUWIDメッセージをそのLUに送らねばならな
い。NEW−LUWIDメッセージは他の2相コミット
メッセージと共に流れるメッセージである。このメッセ
ージは受信パートナーに、そのメッセージに含まれる新
しいLUWIDが、古いLUWIDが捨てられるために
次のトランザクションについて用いられるべきであるこ
とを知らせる。このNEW−LUWIDメッセージはC
OMMITメッセージに続き、好適には同一メッセージ
フロー内で送られる。これはTPがコミットフローの部
分としてデアロケートされているパートナーからCOM
MITメッセージを受けるとき送られる。このLUWI
DはそのLU識別フィールド200内でそれを発生した
同期点管理プログラムのLU名を有する。
【0025】ノードまたはTP間の通信故障またはエラ
ーによりツリーの破断が生じると、それにより生じたサ
ブツリーの両方におけるデータベースは一貫性状態に強
制されねばならず、これらサブツリーはもはや互いに関
係するコミットまたはバックアウト動作ではないから以
降のワーク単位において同一のLUWIDを用いないよ
うにされねばらならない。どのように一貫性ある状態に
なるかはエラーまたは故障が各ノードで検出される点に
よりきまる。コミット動作間で故障またはABENDが
生じるならば両サブツリーは一緒にコミットしえないか
ら、現在のLUWをバックアウトする。コミット動作中
に故障またはABENDが生じると、コミット動作はお
そらく再同期化で完了しなければならず、新しいLUW
が増分されたLUWIDで、分離したサブツリー内にワ
ークが生じないようにするためにバックアウトされる。
【0026】ツリーの破断に続き、各サブツリーで用い
られるLUWIDは異なったものとされなくてはならな
い。これを行うために2つの分断されたサブツリーにお
けるルールは異なる。好適な実施例においては、アロケ
ーションツリーのルートを含むサブツリー即ちアロケー
タツリーでは故障を検出するノードの同期点管理プログ
ラムがそのサブツリーのそれらに隣接するノードにおけ
るすべての資源変更をバックアウトし、この隣接ノード
が更にその隣接ノードにバックアウトを伝えることを繰
り返す。このLUWIDはこのサブツリー内のすべての
ノードにおいて自動的に増分され、ワークはその増分し
たLUWIDで続けることが出来る。いずれのサブツリ
ー内のTPも古いLUWIDでワークをすでにスタート
しているかもしれないので、そのLUWIDに関連する
ワークは両サブツリーにおいてバックアウトされねばな
らない。非アロケータツリーの第1ノードすなわち破断
点に最も近いノードの同期点管理プログラムはそれがア
ロケートしたすべての対話をデアロケートする。これは
DEALLOCATE TYPE(ABEND)動詞で
達成されることは前述したことである。これは対話を切
り離し、そして切り離された会話の両側をしてLUWを
バックアウトさせるものである。図3の例ではノード3
00−2と300−4の間の通信が故障したものとす
る。アロケータツリーではSPM307−2がノード3
00−1と300−3にBACKOUTメッセージを送
る。非アロケータツリーではLU306−4がノード3
00−5と300−6にDEALLOCATE TYP
E(ABEND)を送る。
【0027】これが異常デアロケーションを伝ぱんした
後に非アロケータツリー内の同期点管理プログラムがそ
のTPによりスタートしたワークにつき新しいLUWI
Dを与え、このLUWIDのLU識別フィールド200
内にそれ自体のLU名を有する。これによりそのTPが
新しいワークを安全に開始しうるようになる。本発明に
よれば非アロケータツリーの更に下位の各LUはDEA
LLOCATE TYPE(ABEND)に応じて同一
の論理動作を行い、それ故非アロケータサブツリー全体
が捨てられ、その非アロケータサブツリー内の各TPに
は資源への以降のアクセスのためそれ自体のLU識別を
用いてそれ自体の固有のLUWIDが与えられる。
【0028】図4〜6のフローチャートはLUWIDを
管理するための上記の概念を示すものである。これらフ
ローはトランザクションツリーの各ノードにおいてSP
MとLUを含むオペレーティングシステムにより実行さ
れる。ステップ400(図4)でTPにより発行される
動詞を受ける。ステップ402で、動詞がSYNCPT
(コミット)動詞であるかまたはBACKOUT動詞で
あるかを判断する。それらでなければステップ404
(図6)においてLUは通常のようにこの動詞の内容を
実行する。この通常の処理の一部は動詞を実行した結果
を決定することである。この結果を示すリターンコード
がステップ406でTPにもどされる。ステップ408
で、このリターンコードがパートナーTPで通信故障が
検出されたことを示すか、あるいはDEALLOCAT
E(ABEND)メッセージがパートナーTPから入っ
たかどうかを判断する。ここで「NO」の場合、LUは
(図6のプログラム出口Bおよび図4のプログラム入口
Bを介して)ステップ400の状態にもどり、問題のT
Pによる次の動詞の発生を待つ。現在のLUWIDは増
加されない。これはSYNCPTまたはBACKOUT
動作後にのみ生じる。ステップ408でリターンコード
が通信故障またはDEALLOCATE(ABEND)
メッセージが入ったことを示す場合には、ステップ41
0で問題のTPから次の動詞を待つ状態に入る。この時
点でバックアウト動作が要求されるが、これはSYNC
PTまたはBACKOUT動詞でTPにより開始しう
る。この場合のSYNCPT動詞はBACKOUT動詞
として処理される。従って、次の動詞が入ると、ステッ
プ412で、その動詞がSYNCPT動詞かBACKO
UT動詞かを判断する。それらでなければこれはTPが
処理不可能な動詞を出したことになる。この場合、ステ
ップ414で「チェックステート」リターンコードをT
Pにもどしてそれに非一貫性を通知し、ステップ410
にもどりSYNCPTまたはBACKOUT動詞を待
つ。SYNCPTまたはBACKOUT動詞が入ると、
プログラム出入口Cを介してステップ440(図4)に
飛び、ここでこのLUが非アロケータサブツリーにある
かどうかを判断する。この場合、ステップ418(図
5)でサブツリーの廃棄を開始する。これは元々LUが
アロケートした会話を介してLUがそのパートナーLU
にDEALLOCATE TYPE(ABEND)メッ
セージを送ることにより行われる。このように、図3に
おいて、TP302−2がDEALLOCATE TY
PE(ABEND)をLU306−4に送るかあるいは
通信故障が会話312に生じるかする場合には、ノード
300−4におけるLU306−4がステップ418に
おいてノード300−5,300−6にDEALLOC
ATE TYPE(ABEND)を送ることにより、メ
ンバーであるサブツリーの廃棄を開始する。ノード30
0−4はステップ420でTP300−4について新し
いLUWIDを発生してステップ400でそのワークを
進める。LU300−5と300−6の夫々のノードに
LU300−4からDEALLOCATE TYPE
(ABEND)動詞を受けるとき、そのノードにおいて
実行するLUプログラムインスタンスのステップ408
(図6)または後述する他のステップは夫々のノードに
よりアロケートされたサブツリーがあれば、そのサブツ
リーの部分を更に捨てるためにその動詞に作用する。こ
のように、図3において、トランザクションツリーの一
部としてノード300−5によりアロケートされた付加
的会話があるとすれば、対応するTPはノード300−
5からDEALLOCATE TYPE(ABEND)
メッセージを受けることになる。捨てられようとしてい
るサブツリーの各ノードはそのサブツリーから切り離さ
れるから、それはそれ自体用の新しいLUWIDを発生
し、その新しいLUWIDを用いて新しいワークに進
む。これをステップ420(図5)に示す。LUWID
の発生についての前記したルールによれば、夫々捨てら
れたモードで発生されるLUWIDはフィールド200
にそれ自体のLU識別を含む。
【0029】ステップ402(図4)にもどり、1つの
ノードでTPにより出される動詞がSYNCPTまたは
BACKOUTであれば、ステップ424でそれをSP
Mに送ることによりその動詞の実行を開始する。ステッ
プ426で次にこのSYNCPTまたはBACKOUT
の実行中、通信故障が検出されるかあるいはDEALL
OCATE TYPE(ABEND)メッセージがパー
トナーTPにあるいはそれから入ったかどうかを判断す
る。通常、答えは否であり、ステップ428で実行中の
動詞がBACKOUTかどうかを判断する。この動詞が
BACKOUTであれば、その動詞の実行は完了し、プ
ログラム出入口Aを介してステップ400へもどる。入
口Aにおいてステップ422はステップ400でのTP
による次の動詞の発生の前に現在のLUWIDを増分さ
せる。これは、現在のトランザクションが完了しており
(この場合にはバックアウトされている)、新しいトラ
ンザクションが今はじまりつつあるために行われる。ア
ロケータツリーのノードで実行される図4〜6のLU
プログラムはその新しいトランザクションを扱う前に同
じ状態までそのLUWIDを増分させるために同じステ
ップを行う。
【0030】ステップ428において、現在の動詞がB
ACKOUTでないとすると、それはSYNCPTでな
くてはならない。もし、コミット動作中、SPMがCO
MMITメッセージ(ステップ430:図5)を受ける
とすれば、ステップ434は、この会話がコミット動作
の終りに通常通りデアロケートされるべきかどうかの判
断を行う。もし、ここで否定であれば、プログラムはス
テップ432に進む。もし肯定であれば、ステップ43
6と438でアロケーションツリーが分割されているた
めに新しいLUWIDを発生しそれをこのサブツリー内
の他のすべてのパートナーSPMに伝えなければならな
い。これは、コミットする必要のある変化をなさないた
め回避ヴォートを示すPREPARE TO COMM
ITに対しFORGETを返したパートナーを含む。こ
のように、このサブツリー内のすべてのSPMは同じL
UWIDで進む。ステップ400でSPMはそのTPか
ら入る次の動詞を待つ。この新しいLUWIDはステッ
プ436からの次のトランザクションについて固有のL
UWIDをすでに有するからステップ400に進む前に
増分されない。
【0031】ステップ432において、問題のSPMが
HM(CEB)またはFORGET(RIP,CEB)
を受ければ、これは、故障による破断がこのSPMに隣
接するもの以外のアロケーションツリーのどこかで生じ
たことを意味する。CEBインジケータは、このSPM
を含むノードがアロケーションツリーから分けられるべ
きであり、それ故このアロケーションツリーの他の部分
との通信をその後行うことの出来ないサブツリーを形成
することを意味する。それ故、遠隔ツリーの破断に応答
するためこのサブツリーを捨て、あるいはバックアウト
するための特別なアクションをとらねばならない。ステ
ップ416で、デアロケートされている会話がこのSP
Mをアロケートしたものであると判断されれば、残りの
ノードあるいはSPMはステップ418で捨てられる。
これはすべてのパートナーSPMにDEALLOCAT
E TYPE (ABEND)を送ることにより開始さ
れる。ステップ420で次のワークのためにこのサブツ
リー用の新しいLUWIDが発生される。デアロケート
されている会話がこのSPMによりサービスを受けるT
Pをアロケートしたものでないならば、このSPMを含
むサブツリーはそのままとされてバックアウトされる
(図6:ステップ442)。ステップ432(図5)で
HM(CEB)またはFORGET(RIP,CEB)
が入らないなら、これは通常のコミット動作である。ス
テップ422がLUWIDを増分して新しいワークを進
める。ステップ426での判断結果が肯定であれば、動
詞の実行を終了してLUWIDを増分した後、前述のス
テップ440に進む。
【0032】図7〜12は、ノードの夫々における図4
〜6のプログラムの実行により生じる図3のノード間の
メッセージの流れを示す。これらの図は後述するある種
の速記法を用いる。用語はLU6.2に固有のものであ
り、その詳細についてはIBM社の文献SNA LU
6.2 REFERENCE:PEER PROTOC
OLS(SC31−6808)を参照されたい。 D(S)=DEALLOCATE TYPE(SYNC
−LEVEL):コミット後の会話をデアロケートす
る。 D(A)=DEALLOCATE TYPE(ABEN
D):プロトコル違反またはプログラムで検出されるエ
ラーのような異常発生により会話をデアロケートする。 INIT=同期点イニシエータ(コミットコーディネー
タ) 文字A〜Fは夫々図3のノード300−1〜6を表わす
ために用いられる。
【0033】これらの図の各ノードの下は、A.1でス
タートし、TPに制御をもどすとき用いられるLUWI
Dのシーケンスである。AのようなLUWID内の文字
はそれを作成したノードを示し、数字は図に示す事象の
スタートに対するシーケンス数を示す。それ故、A.1
はアロケータツリーのルートノードAがコミット処理用
に用いられる第1LUWIDを開始したことを示す。
「A.1;A2(BO);A.3」のようなシーケンス
が、「A.1のシーケンス数がA.2に増分され;A.
2LUWがバックアウト(BO)され;A.3がLUW
ID管理フローによるLUWIDである」という具合に
読取られる。ツリーの異なる部分におけるメッセージフ
ロー間の時間順位を示す必要がある場合には、これらフ
ローは発生回数でマークされ、かくして、「フロー(発
生数)」である。
【0034】各例において、全分散トランザクションの
すべてのメンバーはLUWIDA.1でスタートするも
のとする。1つの図で障害のある会話は“X”を付して
示す。
【0035】図7はコミット動作以外で生じる会話の中
断すなわちD(A)の場合を示す。この例ではノードB
とDの間の会話が中断されコミット動作が進行しないも
のとする。ノードBとDのTPはSYNCPTまたはB
ACKOUT動詞のみを受け入れうる状態にある。ノー
ドBのTPがBACKOUT動詞を出すと、BACKO
UTメッセージがAとCに送られ、A,B,Cのすべて
がA.1で識別されるLUWをバックアウトし、新しい
LUWで進むためにLUWIDを増分させる。ノードD
でのトランザクションプログラムがBACKOUT動詞
を出すと、SPMがその残りの会話の夫々にDEALL
OCATE TYPE(ABEND)を出し、A.1で
識別されるLUWをバックアウトし、そして新しいトラ
ンザクションを続けることが出来ように新しいLUWI
Dを発生する。EとFはノードDからDEALLOCA
TE TYPE(ABEND)を受けるとき同じ動作を
行う。メッセージフローの終りでA.1は各ノードでバ
ックアウトされており、そして4本の切り離されたサブ
ツリー(A−B−C,D,E,F)の夫々が異なるLU
WIDを使用する
【0036】図8はDEALLOCATE TYPE
(SYNC−LEVEL)動詞に続くコミット動作後に
生じる正常な会話デアロケーションに続くメッセージフ
ローを示す。LU Eはコミットイニシエータである。
ノードBとDの間の会話はコミット動作が完了するとき
デアロケートされる。ノードBがノードDからCOMM
ITメッセージを受けるとき、ノードBはそのサブツリ
ー用の新しいLUWIDを発生してそれをCOMMIT
メッセージと共にAとCに送る。次にノードBはFOR
GET,CEBをノードDに送り同期点動作を完了す
る。D,E,Fは元のLUWIDを増分させて、次のL
UW用のLUWIDを発生する。この動作の終了時に、
LUWIDA.1はすべてのノードでコミットされてお
り、そして2本の分断されたサブツリー(A−B−Cと
D−E−F)は異なるLUWIDで継続する。D−E−
Fサブツリーで用いられるLUWIDは、Aがそのサブ
ツリーに接続されなくてもそのAについてのLU名を有
しつづける。これは問題ではない。というのは、LUW
ID内のLU名の目的は固有性を保証することだけであ
り、LU Aはこの例のスタート時に用いたA.1を複
製する他のLUWIDを発生しないからである
【0037】図9はCEBを伴わないFORGETがP
REPARE TO COMMITメッセージに対する
応答に出される場合を示す。LU Eはコミットイニシ
エータである。A−B−CサブツリーはPREPARE
に対する応答としてFORGETをヴォートし、A.1
LUW中に資源に対する変化がなされなかったことを
示す。同期点管理プログラムは次のメッセージが入るま
でA,BまたはCのTPに制御をもどさない。トランザ
クションツリー内(EとDの間)のどこかのデアロケー
トされた会話はDに新しいLUWIDのそのサブツリー
への伝ぱんを要求する。A,B,Cは新しいLUWID
が入るまで持続しえない。デアロケートされた会話がな
い場合には、任意の種類の次のメッセージがA,Bまた
はCの同期点管理プログラムの、新しいLUWIDが送
られないことを示す信号である。この動作の終了時に、
LUW A.1はD,E,Fでコミットされており、
A,B,Cでは変更がなされていないからコミットメン
トは必要でなく、これら2つの分離されたサブツリー
(EおよびF−D−B−A−C)は異なるLUWIDを
使用する
【0038】図10はHMCEBまたはFORGET,
RIP CEBがアロケータツリーを流下される場合を
示す。LU Eはコミットイニシエータである。ノード
BとCの間の会話はコミット動作の第2相の中間で故障
する。便宜上、その前のメッセージは図示していない。
第1再同期化が失敗してノードBにDから入るCOMM
ITメッセージに対しFORGET,RIPを送らせる
か、ノードBが再同期化中にヒューリスティックダメー
ジを検出するかする。いずれの場合にもノードBからD
へのメッセージではCEBインジケータを伴い、会話を
終了させる。AのTPはEとFでのトランザクションプ
ログラムでも用いられているLUWIDA.2をすでに
続けているからノードBはAにBACKOUTを送る。
ノードDがHMまたはFORGET,RIPをそのイニ
シエータEに送った後に、EはLUWID A.2を続
けるTPにもどる。それ故ノードDはDEALLOCA
TE TYPE(ABEND)メッセージと共にHMま
たはFORGET,RIPメッセージを従えなくてはな
らず、そしてこれがA.2をバックアウトし、Eをして
次のトランザクション用の新しいLUWIDを発生させ
る。Cは流下会話を有しないから、それがそのTPにも
どる前に行わねばならないアクションは新しいLUWI
Dを発生することだけである。それが下向きの会話を有
しているとすれば、それらにDEALLOCATE T
YPE(ABEND)を送ることにより、それらをして
LUW A.2をバックアウトさせてそれら自体の新し
いLUWIDを発生させることになる。この動作の終了
時にA.1はA,B,D,E,Fでコミットされてい
る。5本の分離したサブツリー(A−B,C,D,E,
F)はA.2をバックアウトして異なるLUWIDを使
用する
【0039】図11はHM CEBまたはFORGE
T,RIP CEBがアロケータツリーを逆のぼる場合
を示す。LU Aはコミットイニシエータである。ノー
ドDはEとFにCOMMITメッセージを送る間にFと
の会話の中断を検出する。便宜上、前のメッセージは示
していない。Fとの再同期化は失敗するか、あるいは、
ヒューリスティックダメージが生じたことを明らかにす
る。ノードDはこの情報をBに送り、会話終了インジケ
ータ(CEB)をセットする。ノードDのBとの会話は
コミット動作の一部としてデアロケートされるから、ノ
ードDは通常のコミットフローの一部としてEに新しい
LUWIDを送る。ノードBはDとの会話のアロケータ
であったから、それがHMまたはFORGET,RIP
メッセージを受けるとき、次のLUWをバックアウト
し、LUWID A.2でロックするその分離されたサ
ブツリーのノードが無いようにする。このように、ノー
ドBは局所的にバックアウトしてCにBACKOUTメ
ッセージを送る。AはHMまたはFORGET,RIP
メッセージをノードBから受けるとき同じアクションを
行うから、BがAにBACKOUTを送る必要はない。
この動作の終了時にはLUWID A.1はコミットさ
れており、LUWID A.2はバックアウトされてお
り、そして分離したサブツリー(A−B−C,D−E,
F)のすべてが異なるLUWIDを使用する
【0040】図12はコミット動作中のノードBとDの
間の会話の中断の場合を示す。便宜上、全コミットシー
ケンスは示していない。この例ではどのノードがコミッ
イニシエータであるかは重要でない。再同期化がBと
Dの間で完了した後、BACKOUTがAとCに送ら
れ、そしてDEALLOCATE TYPE(ABEN
D)がEとFに送られる。この動作の終了時には、再同
期化を支配する通常のプロトコルにより、LUWID
A.1はバックアウトするかコミットする。LUW
A.2はすべての関係部分でバックアウトされ、そして
分離されたサブツリー(A−B−C,D,E,F)は異
なったLUWIDを使用する
【図面の簡単な説明】
【図1】通信リンクにより直列に接続されたツリーノー
ドからなる簡単な分散ネットワークを示す図。
【図2】論理的ワーク単位識別子(LUWID)のフォ
ーマット例を示す図。
【図3】各ノードがSPM,トランザクションプログラ
ム(TP)、データベース資源、およびTPが同一また
は異なるノードの他のTPと通信しうるようにするため
に用いられる論理ユニット(LU)を含むより複雑な分
散ネットワークを示す図。
【図4】異常および正常な事象により生じるTPの切断
されたサブツリーの面での図3と同様の連鎖トランザク
ション処理システム用の異なるTPでのLUWIDを管
理するためのステップを示すフローチャートの第1部分
を示す図。
【図5】図4とI−I線で結合される図4と同一フロー
チャートの第2部分を示す図。
【図6】図4とII−II線で結合される図4と同一フロー
チャートの第3部分を示す図。
【図7】システム内に生じる異なる状況についてLUW
IDを管理するための、図3のシステムのノード間のメ
ッセージフローの第1の態様を示す図。
【図8】図7と同様のメッセージフローの第2の態様を
示す図。
【図9】図7と同様のメッセージフローの第3の態様を
示す図。
【図10】図7と同様のメッセージフローの第4の態様
を示す図。
【図11】図7と同様のメッセージフローの第5の態様
を示す図。
【図12】図7と同様のメッセージフローの第6の態様
を示す図。
【符号の説明】
300−1 ノード 300−2 ノード 300−3 ノード 300−4 ノード 300−5 ノード 300−6 ノード 302−1 トランザクションプログラム(TP) 302−2 トランザクションプログラム(TP) 302−3 トランザクションプログラム(TP) 302−4 トランザクションプログラム(TP) 302−5 トランザクションプログラム(TP) 302−6 トランザクションプログラム(TP) 304−1 データベース(DB) 304−2 データベース(DB) 304−3 データベース(DB) 304−4 データベース(DB) 304−5 データベース(DB) 304−6 データベース(DB) 306−1 論理ユニット(LU) 306−2 論理ユニット(LU) 306−3 論理ユニット(LU) 306−4 論理ユニット(LU) 306−5 論理ユニット(LU) 306−6 論理ユニット(LU) 307−1 SPM 307−2 SPM 307−3 SPM 307−4 SPM 307−5 SPM 307−6 SPM
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アンドルー、ポール、シトロン アメリカ合衆国ノースカロライナ州、ロ ーリー、ホワイトストーン、ロード、 10216 (72)発明者 ブルース、ギルバート、リンゼー アメリカ合衆国カリフォルニア州、サ ン、ノゼ、セットル、アベニュ、1185 (56)参考文献 「情報処理学会研究報告」vol. 87,No.82(89−DPS−43−3) (1989−9) 「情報処理学会第40回(平成2年前 期)全国大会講演論文集」(1990−3) p.1458−1459 「情報処理学会第39回(平成元年後 期)全国大会講演論文集」(1989−10) 「bit別冊ACM ConpuTi ng surveys’84 コンピュー ターサイエンス」(1986)p.145−188 (58)調査した分野(Int.Cl.6,DB名) G06F 12/00 G06F 17/30

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】ツリーを形成するように論理的に接続され
    た複数の処理ノードを有し、各ノードが現在のワーク単
    位識別子から次のワーク単位識別子を自動的に作成す
    る、2相コミット方式の連鎖分散データベーストランザ
    クションシステムにおいてワーク単位識別子を管理する
    方法であって、 上記ツリーの切断を生じさせる非障害状態が生じたこと
    に応答して、 上記切断により生じる第1サブツリーおよび第2サブツ
    リーにおいて分散データベースに対してなされたすべて
    の変更をコミットするステップと、 上記第1サブツリーのノードの夫々において現在のワー
    ク単位識別子から次のトランザクションのワーク単位識
    別子を作成するステップと、 上記第1サブツリーでトランザクションワークを進める
    ステップと、上記次のトランザクションのワーク単位識別子とは異な
    る新しい ワーク単位識別子を発生するステップと、上記新しいワーク単位識別子を上記第2サブツリー中で
    伝搬させる ステップと、 上記第2サブツリーでトランザクションワークを進める
    ステップと、 を有する連鎖分散データベーストランザクションシステ
    ムにおけるワーク単位識別子の管理方法。
  2. 【請求項2】トランザクションツリーを形成するように
    論理的に接続された複数の処理ノードを有し、各ノード
    現在のワーク単位識別子から次のワーク単位識別子を
    自動的に作成する、2相コミット方式の連鎖分散データ
    ベーストランザクションシステムにおいてワーク単位識
    別子を管理する方法であって、上記ツリー中 の2つのノード間の通信障害の発生に応答
    して、 上記通信障害によるツリーの切断により形成されるサブ
    ツリーのうちの第1サブツリーにおいて現在のトランザ
    クションの処理により生じたすべてのデータベース変更
    バックアウトするステップと、 上記第1サブツリーのノードの夫々において現在のワー
    ク単位識別子から次の トランザクションのワーク単位識
    別子を作成するステップと、 上記第1サブツリーでトランザクションワークを進める
    ステップと、 上記通信障害により形成された上記サブツリーのうちの
    第2サブツリーにおいて現在のトランザクションの処理
    により生じたすべてのデータベース変更をバックアウト
    し、上記次のトランザクションのワーク単位識別子とは
    異なる新しいワーク単位識別子を発生するステップと、 を有する連鎖分散データベーストランザクションシステ
    ムにおけるワーク単位識別子の管理方法。
  3. 【請求項3】トランザクションツリーを形成するように
    論理的に接続された複数の処理ノードを有し、各ノード
    現在のワーク単位識別子から次のワーク単位識別子を
    自動的に作成する、2相コミット方式の連鎖分散データ
    ベーストランザクションシステムにおいてワーク単位識
    別子を管理する方法であって、コミット動作中に上記ツリーの切断を生じさせる障害状
    態が発生したかどうかを判断するステップと上記障害状態が発生したことに応答してコミット動作を
    終わらせ、上記次のワーク単位識別子を作成する ステッ
    プと、上記ツリーの切断により形成されるサブツリーのうち、
    上記ツリーの構築を開始したルートノードを含む第1サ
    ブツリーにおいて上記次のワーク単位識別子により示さ
    れる次のトランザクションをバックアウトした後、その
    次のワーク単位識別子を作成してトランザクションワー
    クを進める ステップと、上記ルートノードを含まない第2サブツリーにおいて上
    記第1サブツリーのものとは異なる新しいワーク単位識
    別子を発生する ステップと、 を有する連鎖分散データベーストランザクションシステ
    ムにおけるワーク単位識別子の管理方法。
JP3135748A 1990-09-17 1991-05-10 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法 Expired - Lifetime JP2837288B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US58354290A 1990-09-17 1990-09-17
US583542 1990-09-17

Publications (2)

Publication Number Publication Date
JPH04230541A JPH04230541A (ja) 1992-08-19
JP2837288B2 true JP2837288B2 (ja) 1998-12-14

Family

ID=24333537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3135748A Expired - Lifetime JP2837288B2 (ja) 1990-09-17 1991-05-10 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法

Country Status (4)

Country Link
US (1) US5371886A (ja)
EP (1) EP0477123B1 (ja)
JP (1) JP2837288B2 (ja)
DE (1) DE69126587T2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2675968B2 (ja) * 1992-08-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 加入者分散2相コミット・プロトコルの拡張機能
EP0593062A3 (en) * 1992-10-16 1995-08-30 Siemens Ind Automation Inc Redundant networked database system
US5414841A (en) * 1992-10-19 1995-05-09 International Business Machines Corporation Computerized system for representing data items using token identifiers
US6259446B1 (en) 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
JP3793226B2 (ja) * 1992-12-23 2006-07-05 オブジェクト テクノロジー ライセンシング コーポレイション アトミック・コマンド・システム
FR2705803B1 (fr) * 1993-05-26 1995-07-07 Gemplus Card Int Procédé d'écriture d'informations dans une mémoire non-volatile.
WO1995010805A1 (en) * 1993-10-08 1995-04-20 International Business Machines Corporation Message transmission across a network
EP0694838A1 (en) * 1994-07-25 1996-01-31 International Business Machines Corporation Step level recovery
US6205464B1 (en) * 1994-09-16 2001-03-20 International Businesss Machines Corporation System for building optimal commit trees in a distributed transaction processing system
US5553234A (en) * 1994-09-23 1996-09-03 International Business Machines Corporation System and method for including stored procedures, user-defined functions, and trigger processing in an existing unit of work
US5745687A (en) * 1994-09-30 1998-04-28 Hewlett-Packard Co System for distributed workflow in which a routing node selects next node to be performed within a workflow procedure
US5768582A (en) * 1995-06-07 1998-06-16 International Business Machines Corporation Computer program product for domained incremental changes storage and retrieval
GB2301909A (en) * 1995-06-07 1996-12-18 Ibm Reduction of logging in distributed transaction processing systems
GB2303474A (en) * 1995-07-19 1997-02-19 Ibm Optimized synchronisation procedure
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
US6031978A (en) * 1996-06-28 2000-02-29 International Business Machines Corporation System, method and program for enabling a client to reconnect to a same server in a network of computer systems after the server has moved to a different network address
US5884327A (en) * 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging
EP0876023A1 (en) 1997-04-30 1998-11-04 Sony Corporation Transmitter and transmitting method, receiver and receiving method, and transceiver and transmitting/receiving method
JP3498887B2 (ja) 1997-04-30 2004-02-23 ソニー株式会社 送信装置および送信方法、並びに受信装置および受信方法
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US7159005B1 (en) 1998-10-16 2007-01-02 International Business Machines Corporation Methods, systems and computer program products for restartable multiplexed file transfers
US6243715B1 (en) 1998-11-09 2001-06-05 Lucent Technologies Inc. Replicated database synchronization method whereby primary database is selected queries to secondary databases are referred to primary database, primary database is updated, then secondary databases are updated
US6401136B1 (en) 1998-11-13 2002-06-04 International Business Machines Corporation Methods, systems and computer program products for synchronization of queue-to-queue communications
US6279041B1 (en) 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
US6874104B1 (en) 1999-06-11 2005-03-29 International Business Machines Corporation Assigning recoverable unique sequence numbers in a transaction processing system
US6915515B2 (en) * 2000-12-21 2005-07-05 International Business Machines Corporation Method for creating path-sensitive branch registry for cyclic distributed transactions
US7236967B2 (en) * 2002-06-03 2007-06-26 Hewlett-Packard Development Company, L.P. Methods and systems for maintaining transaction semantics in a computer system
GB0428109D0 (en) * 2004-12-23 2005-01-26 Ibm A method for determining participation in a distributed transaction
US9110712B2 (en) * 2005-06-10 2015-08-18 International Business Machines Corporation Method for encapsulating logical units of work using business objects
US8874390B2 (en) 2011-03-23 2014-10-28 Hach Company Instrument and method for processing a doppler measurement signal
JP6515753B2 (ja) 2015-09-07 2019-05-22 富士通株式会社 データベース制御プログラム、データベース制御方法及びデータベース制御装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665520A (en) * 1985-02-01 1987-05-12 International Business Machines Corporation Optimistic recovery in a distributed processing system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
「bit別冊ACM ConpuTing surveys’84 コンピューターサイエンス」(1986)p.145−188
「情報処理学会研究報告」vol.87,No.82(89−DPS−43−3)(1989−9)
「情報処理学会第39回(平成元年後期)全国大会講演論文集」(1989−10)
「情報処理学会第40回(平成2年前期)全国大会講演論文集」(1990−3)p.1458−1459

Also Published As

Publication number Publication date
DE69126587D1 (de) 1997-07-24
EP0477123A3 (en) 1993-05-12
EP0477123A2 (en) 1992-03-25
DE69126587T2 (de) 1998-01-15
JPH04230541A (ja) 1992-08-19
US5371886A (en) 1994-12-06
EP0477123B1 (en) 1997-06-18

Similar Documents

Publication Publication Date Title
JP2837288B2 (ja) 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法
WO2018103318A1 (zh) 分布式事务处理方法和系统
TWI244617B (en) A client/server-based data processing system for performing transactions between clients and a server and a method of performing the transactions
EP1078316B1 (en) Method and apparatus for enabling a component in a first transaction processing environment to access a resource in another environment
US6938070B2 (en) Conflict resolution for collaborative work system
US5546582A (en) Extension of two phase commit protocol to distributed participants
JPH08153027A (ja) 並列データベースにおける分散要求の管理システム及び方法
JP4291060B2 (ja) トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム
US20020161840A1 (en) Adapter for interfacing with a workflow engine
CN113396407A (zh) 用于利用区块链技术扩充数据库应用的系统和方法
EP0684558A1 (en) Distributed data processing system
US20060235952A1 (en) Exactly once JMS communication
EP0457116A2 (en) Optimization of commit procedures
CN111259083A (zh) 分布式事务处理方法及装置
US5790788A (en) Managing group events by a name server for a group of processors in a distributed computing environment
KR101278818B1 (ko) 트랜잭션 일관 및 문제 상태
JP2005004754A (ja) ソフトウェア環境において統合トランザクション・マネージャなしでリソース保全性を維持するための装置及び方法
JPH09146870A (ja) 文脈依存型の送信経路を開設する方法および装置
US7228351B2 (en) Method and apparatus for managing resource contention in a multisystem cluster
US5706500A (en) Selective transaction oriented recovery and restart for message-driven business applications
US7454761B1 (en) Method and apparatus for correlating output of distributed processes
US6141679A (en) High performance distributed transaction processing methods and apparatus
CN112148436B (zh) 去中心化的tcc事务管理方法、装置、设备及系统
US5258982A (en) Method of excluding inactive nodes from two-phase commit operations in a distributed transaction processing system
JPH10506742A (ja) 経路指定ノードにおける同期化プロシージャ

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20071009

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081009

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091009

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101009

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20101009

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20111009

Year of fee payment: 13

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111009

Year of fee payment: 13