JPH06259397A - 分散トランザクション処理システム - Google Patents

分散トランザクション処理システム

Info

Publication number
JPH06259397A
JPH06259397A JP5044063A JP4406393A JPH06259397A JP H06259397 A JPH06259397 A JP H06259397A JP 5044063 A JP5044063 A JP 5044063A JP 4406393 A JP4406393 A JP 4406393A JP H06259397 A JPH06259397 A JP H06259397A
Authority
JP
Japan
Prior art keywords
transaction
site
distributed
computer
history information
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.)
Pending
Application number
JP5044063A
Other languages
English (en)
Inventor
Mitsunobu Tasaka
光伸 田坂
Kiyotaka Kibo
清隆 木保
Kazuyoshi Negishi
和義 根岸
Shunichi Torii
俊一 鳥居
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5044063A priority Critical patent/JPH06259397A/ja
Publication of JPH06259397A publication Critical patent/JPH06259397A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 分散トランザクション処理システムにおい
て、障害によってサイトが停止しても、コミット制御を
保留することなく、トランザクションの回復を可能とす
る。 【構成】 履歴情報を管理するサイトが独立して存在す
る分散トランザクション処理システムにおいて、障害に
よって停止したサイトが処理していたトランザクション
の状態を再現する手段と、前記トランザクションが属す
る分散トランザクションのコミットあるいはアボ−トを
決定する手段を、前記の停止したサイトが出力した履歴
情報を管理するサイトに備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の計算機が通信ネ
ットワークで接続された分散システムにおいて、複数の
計算機が協調してトランザクション処理を遂行するよう
な分散トランザクション処理システムに係り、特に、分
散トランザクション処理システムにおいて障害が発生し
たときの、トランザクションの回復に関するものであ
る。
【0002】
【従来技術】データ処理システムの重要な機能として、
障害回復機能がある。これは、当該システムに障害が発
生した場合でも、処理対象のデータの一貫性を保証する
ものである。障害回復機能の実現のために、多くのデー
タ処理システムが導入している概念が、トランザクショ
ンである。トランザクションとは、Gray, et al:"TheRe
covery Manager of the System R Database Manager,"
ACM Computing Surveys, Vol.13, No.2, pp.223-242, 1
981.の第224頁、および、第227〜228頁に述べ
られているように、データに対して行なわれる処理シー
ケンスの構成単位である。ここで、データ処理システム
に対して処理を要求するユーザ、あるいは、アプリケー
ションプログラム(UAP)が、トランザクションを定
義する。データ処理システムは、トランザクションの原
子性を保証する。原子性の保証とは、複数のデータ処理
から構成されるトランザクションに対して、当該トラン
ザクションの終了後のデータの内容に、当該トランザク
ションが行なった処理が、全て反映されるか、全て反映
されないかのどちらかであることを保証するものであ
る。ここで、一般に、トランザクションを前者の状態に
することをコミットと呼び、後者の状態にすることをア
ボートと呼ぶ。
【0003】上記のようなトランザクションを処理する
データ処理システムを、トランザクション処理システム
と呼ぶ。トランザクション処理システムは、UAPが発
行したコミット要求に応じて、トランザクションをコミ
ットする。ここで、コミットの完了は、多くのトランザ
クション処理システムにおいて、必ずしも、トランザク
ションが行なった処理内容をその都度データに反映する
ことを意味しない。しばしば、処理性能向上の目的で、
複数のトランザクションの処理内容を、一括してデータ
に反映するといったような方式が用いられる。一方、ト
ランザクション処理システムがトランザクションをアボ
ートする場合には、UAPが発行したアボート要求に応
じて行なう場合と、トランザクション処理システムの内
部で障害が発生したときに、自動的に行なう場合があ
る。
【0004】上記の論文にも述べられているように、障
害が発生すると、トランザクション処理システムは、ト
ランザクションの原子性を保証するために、障害が発生
したときに処理していたトランザクションをコミットす
るか、アボートするかを決定する。つまり、障害が発生
したときにコミットが完了していないトランザクション
については、アボートを決定して、当該トランザクショ
ンが行なった処理を取り消す。これに対し、障害が発生
したときにコミットが完了していたトランザクションに
ついては、コミットを決定し、当該トランザクションが
行なった処理がデータに反映されることを保証する。こ
のように、障害が発生した後に、トランザクションのコ
ミットやアボートを決定する処理を、以降では、トラン
ザクションの回復処理と呼ぶ。
【0005】トランザクションの回復処理を可能にする
ために用いられるのが、トランザクション履歴情報であ
る。例えば、上記の論文では、コミットログと呼ばれる
履歴情報が導入されている。ここで、コミットログは、
コミットの完了を示す履歴情報である。コミットログ
は、コミットの完了と同時に、不揮発性記録媒体として
のディスクへ出力される。障害が発生した後のトランザ
クション回復処理において、トランザクション処理シス
テムは、障害発生時に処理していたトランザクションの
コミットログが、ディスク上に存在するかどうかを調べ
る。存在するならば、当該トランザクションのコミット
を決定し、存在しないならば、アボートを決定する。
【0006】複数の計算機(サイト)がネットワークで
相互に接続され、かつ、各サイトが、それぞれトランザ
クション処理システムを持つような分散システムを、分
散トランザクション処理システムと呼ぶ。混同を避ける
ために、各サイトが有するトランザクション処理システ
ムのことを、以降は、トランザクション管理システム
(TM)と呼ぶことにする。また、分散トランザクショ
ン処理システムにおいては、UAPが定義したトランザ
クションは、さらに、複数のトランザクション群に分割
され、それぞれが異なるサイトのTMで実行される。こ
こで、UAPが定義したトランザクションのことを、分
散トランザクションと呼ぶ。
【0007】分散トランザクション処理システムにおい
て、障害が発生したときに、分散トランザクションの原
子性を保証するためには、各TMが、自らが処理するト
ランザクションの原子性を保証するだけでは不十分であ
る。それらのうちの一つでも、障害などの要因で、処理
を完了できなかった場合には、全てのトランザクション
を取り消さなければならない。このためには、分散トラ
ンザクションのコミットに応じて、それを構成するトラ
ンザクション群のコミットを同期制御することが必要に
なる。
【0008】分散トランザクションのコミット制御方式
については、例えば、Mohan, et al:"Efficient Commit
Protocols for the Tree of Processes Model of Dist
ributed Transactions", ACM Proceedings of the 2nd
SIGACT/SIGOPS Symposium onPrnciples of Distributed
Computing, pp.76-88, 1983.に詳しく述べられてい
る。ここで行なわれるコミット制御プロトコルは、2フ
ェーズコミット(以下、2PCという)と呼ばれる。分
散トランザクションにおいて、トランザクション群は、
親子関係を持つ。つまり、親トランザクションが、子ト
ランザクション群に分岐する。2PCは、親トランザク
ションを処理するTMが、子トランザクション群のコミ
ットの同期制御を行うものである。ここで、親トランザ
クションを処理するTMをコーディネイタ、子トランザ
クションを処理するTMをサブオーディネイトと呼ぶ。
【0009】2PCによるコミット制御は、以下のよう
に行なわれる。分散トランザクションのコミットが要求
されると、コーディネイタは、サブオーディネイト群に
コミット準備(プリペア)要求を発行する。サブオーデ
ィネイト群は、自らが正常状態であるならば、肯定応答
を返す。ここで、障害などの要因によって異常状態であ
るならば、否定応答を返す。コーディネイタは、サブオ
ーディネイトからの応答に応じて、分散トランザクショ
ンをコミットするか、アボートするかを決定する。コー
ディネイタは、全てのサブオーディネイトから肯定応答
を受けると、分散トランザクションのコミットを決定
し、サブオーディネイト群に対して、コミット要求を発
行する。これに対し、一つのサブオーディネイトでも否
定応答を返したならば、分散トランザクションのアボー
トを決定し、サブオーディネイト群に対して、アボート
要求を発行する。
【0010】障害が発生したとき、分散トランザクショ
ン処理システムは、上述したトランザクションの回復処
理と同様に、分散トランザクションの回復処理を行な
う。分散トランザクションのためのトランザクション履
歴情報は、コーディネイタとサブオーディネイトによっ
て異なる。例えば、上記の論文では、以下のような履歴
情報が導入されている。サブオーディネイトは、プリペ
アログと呼ばれる履歴情報を出力する。あるトランザク
ションのプリペアログは、サブオーディネイトが、当該
トランザクションのプリペア要求に対して肯定応答を決
定したことを意味する。対して、コーディネイタは、コ
ミットログと呼ばれる履歴情報を出力する。ここで、コ
ミットログは、分散トランザクションのコミットが決定
されたことを意味する。つまり、これらのトランザクシ
ョン履歴情報は、分散トランザクションの2PCが、い
かなる段階まで進んでいたかを示すものである。
【0011】上記の論文の2PCでは、障害が発生した
場合について、以下のような分散トランザクションの回
復処理が提案されている。
【0012】(1)コーディネイタ コミットログがディスクに存在するかどうかを調べる。
存在するならば、分散トランザクションのコミットを決
定する。存在しない場合には、アボートを決定する。
【0013】(2)サブオーディネイト プリペアログがディスクに存在するかどうかを調べる。
存在しないならば、分散トランザクションはアボートさ
れるとみなして、自らが処理するトランザクションをア
ボートする。しかし、プリペアログが存在する場合に
は、前記のような単独での決定を行なうことができな
い。他のサブオーディネイトの状態によっては、分散ト
ランザクションをアボートせねばならないかもしれない
からである。
【0014】このような場合、当該サブオーディネイト
は、コーディネイタに対して、分散トランザクションの
回復処理の結果を問合せる。コーディネイタは、(1)
で述べたような決定を行なって、この問合せに応答す
る。
【0015】さて、分散トランザクション処理システム
における、トランザクション履歴情報の管理方式とし
て、従来から、様々なものが提案されている。上記の論
文では、これらの履歴情報は、それが出力されたサイト
において格納、管理されている。
【0016】一方、トランザクション履歴情報を、まと
めて管理するサイトを設けた分散トランザクション処理
システムが提案されている。これは、例えば、特開平4
−199339号「分散処理システムの分散トランザク
ションファイル制御方法」に述べられているように、複
数のサイトが出力する履歴情報を、単一のサイトが有す
るファイルに、まとめて格納するものである。図2は、
上記の公知例における代表的なシステム構成を示す。
【0017】以下、図2を用いて、本公知例における、
分散トランザクションの回復処理を説明する。
【0018】図2は、複数のサイト100が通信ネット
ワーク114で接続された分散システムで動作する分散
トランザクション処理システムを示す。サイトには、デ
ータファイル102を有するサイト、履歴情報ファイル
104を有するサイト、複数のUAP106が存在する
サイトがある。データファイル102を有するサイトと
UAP106が存在するサイトには、トランザクション
管理システム(TM)108が存在する。TM108
は、複数のトランザクション112を並行処理する。U
AP106が存在するサイトのTMは、UAP106か
ら分散トランザクションを投入される。このTMは、当
該分散トランザクションを分割し、それぞれのトランザ
クションの実行を、データファイル102を有するサイ
トに要求する。データファイル102を有するサイトの
TMは、前記トランザクションを処理する。ここで、U
AP16が存在するサイトのTMが処理するトランザク
ションと、データファイル102を有するサイトのTM
が処理するトランザクションの間には、トランザクショ
ンの親子関係116ができる。
【0019】トランザクションの親子関係116に従っ
て、図2の分散トランザクション処理システムは、分散
トランザクションのコミット制御を行なう。本公知例の
コミット制御では、上述した2PCが用いられている。
つまり、親トランザクションを処理するサイト(UAP
が存在するサイト)のTMがコーディネイタ、子トラン
ザクションを処理するサイト(データファイルを有する
サイト)のTMがサブオーディネイトとなって、2PC
が行なわれる。2PCの進行に応じて、コーディネイタ
とサブオーディネイトは、トランザクション履歴情報を
履歴情報ファイル104を有するサイトに出力する。履
歴情報ファイル104を有するサイトには、履歴情報管
理システム(以下、JMという)110が存在する。J
M110は、他サイトのTMから受けとったトランザク
ション履歴情報を、履歴情報ファイル104に出力す
る。障害が発生すると、各サイトのTMは、分散トラン
ザクションの回復処理を行なうために、JM110か
ら、自らが処理していたトランザクションに関するトラ
ンザクション履歴情報を取得する。ここで、上述した2
PCと同様の分散トランザクションの回復処理が行なわ
れる。
【0020】
【発明が解決しようとする課題】図2に示した公知例に
は、以下のような課題が存在する。
【0021】分散トランザクション処理システムにおい
ては、障害によってサイトが停止してしまうような場合
がある。ここで、分散トランザクションのコーディネイ
タが存在するサイト(コーディネイタサイト)が障害に
よって停止してしまったとき、当該サイトが再び稼働状
態になるまで、分散トランザクションの回復処理を行な
うことができない。
【0022】これは、上記の公知例が、前述した2PC
と同様の分散トランザクション回復処理の方式をとって
いることによる。すなわち、プリペアログを出力してい
たサブオーディネイトが回復処理の結果を知るために
は、コーディネイタに問合せるしかない。しかし、上述
したような状況においては、コーディネイタサイトが停
止状態であるために、分散トランザクションの回復処理
を行なうことができず、当該分散トランザクションの処
理は、コーディネイタサイトが再び稼働状態になるま
で、保留されることになってしまう。このような課題
は、上記の2PCに関する論文でも、「コミットプロト
コルのブロッキング」として言及されている。
【0023】また、分散トランザクション処理システム
が用いるコミット制御プロトコルとして、上記の2PC
以外のものも考えられる。2PCでは、障害が発生した
ときに、コーディネイタがプリペア要求の発行を完了し
ていても、コミットログを出力していない限り、分散ト
ランザクションはアボートされる。言い替えれば、コー
ディネイタが、全てのサブオーディネイトからの肯定応
答を確認しない限り、分散トランザクションはアボート
される。しかし、このような状況にあっても、分散トラ
ンザクションを真にアボートすべきであるとは限らな
い。全てのサブオーディネイトが、プリペア要求に対し
て肯定応答を決定していたにもかかわらず、障害の発生
のタイミングによっては、上記のような状況になりうる
からである。
【0024】これは、分散トランザクション処理システ
ムの与える分散環境が、ユーザにとって透過になってい
る場合に、特に、重要な課題となる。例えば、近年、非
共有のメモリを持つCPUとディスクのペアを、複数
個、専用の相互結合網で接続したような並列計算機の内
部分散環境において動作する分散トランザクション処理
システムが、市場に登場してきている。ユーザにとっ
て、このような並列計算機は、単一のトランザクション
処理システムとして動作しているように見える。従っ
て、ユーザにとっては、単一のCPUとディスクのペア
をもつシステムで動作するトランザクション処理システ
ムと比べると、ハードウェアのコンポーネント数が増加
した分だけ、障害の発生確率が増加したように見える。
このため、前記のような並列計算機で動作する分散トラ
ンザクション処理システムにおいては、システム責任の
障害でアボートされるトランザクションの数を削減し、
信頼性について、システム内部の分散環境の透過性を高
めることが重要になる。このための方策として、上述し
たような、全てのサブオーディネイトがプリペア処理を
完了しているにも係わらず、分散トランザクションがア
ボートされることを防ぐための別のコミット制御プロト
コルを考えることができる。
【0025】障害が発生しても、上記のような分散トラ
ンザクションをコミットできるようにするためには、コ
ーディネイタが、分散トランザクションの回復処理にお
いて、全てのサブオーディネイトの状態を知ることがで
きるように、コミット制御プロトコルを設定する必要が
ある。しかし、そのようなコミット制御を行う場合に
は、コーディネイタサイトの停止だけでなく、サブオー
ディネイトが存在するサイトの停止も、コミットプロト
コルのブロッキングを引き起こしてしまうことは、明ら
かである。
【0026】コミットプロトコルのブロッキングが発生
すると、処理が保留された分散トランザクションは、そ
れを処理するサイト群において、処理対象のデータや、
メモリなどの資源を占有し続ける。これでは、同じ資源
を用いようとする他の分散トランザクションを処理する
ことができないため、分散トランザクション処理システ
ムのスループットを低下させることになる。
【0027】本発明の目的は、障害によって、分散トラ
ンザクションのコミット制御におけるコーディネイタが
存在するサイトや、サブオーディネイトが存在するサイ
トが停止してしまっても、コミットプロトコルのブロッ
キングを発生させずに、分散トランザクションの回復処
理を行なうことができるような分散トランザクション処
理システムを提供することにある。
【0028】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明の分散トランザクション処理システムは、
トランザクション履歴情報をまとめて管理するサイトを
設けた分散トランザクション処理システムであり、か
つ、障害が発生して、トランザクションを処理していた
サイトが停止してしまったとき、前記の停止したサイト
が出力した履歴情報を管理するサイトが、前記の停止し
たサイトが行なうはずであった分散トランザクションの
回復処理を代行する。
【0029】このために、本発明の分散トランザクショ
ン処理システムでは、前記の履歴情報を管理するサイト
に、停止してしまったサイトが処理していたトランザク
ションに関するトランザクション履歴情報を履歴情報フ
ァイルから取得し、当該トランザクションの状態を再現
するための手段と、前記の停止したサイトが行なうはず
であった分散トランザクションの回復処理を行なうため
の手段を設ける。
【0030】また、本発明の分散トランザクション処理
システムは、障害の発生によってサイトが停止したとき
に、履歴情報を管理するサイトへ、上記の分散トランザ
クションの回復処理を開始することを指示する手段を有
する。
【0031】さらに、本発明の分散トランザクション処
理システムでは、データファイルを有するサイト、およ
び、UAPが存在するサイトに、自らが処理するトラン
ザクションが親子関係をもつトランザクションのうち
で、障害によって停止したサイトが処理するトランザク
ションについて、当該トランザクションを処理するサイ
トを示す情報を、前記の停止したサイトが出力した履歴
情報を管理するサイトを示すように変更する手段を設け
る。
【0032】
【作用】以下、図1を用いて、本発明の原理を説明す
る。図1は、本発明の分散トランザクション処理システ
ムの一構成例を示している。図2の分散トランザクショ
ン処理システムと同様に、本発明の分散トランザクショ
ン処理システムは、複数のサイト100が通信ネットワ
ーク114で接続された分散システムで動作するもので
あり、データファイル102を有するサイトと、UAP
106が動作するサイトと、履歴情報ファイル104を
有するサイトとを備える。データファイル102を有す
るサイトと、UAP106が存在するサイトは、トラン
ザクション112を並行処理するトランザクション管理
システム(TM)108を有する。これらのTM108
は、UAP106から投入された分散トランザクション
に対して、図2のTM108と同様の処理を行なう。ま
た、履歴情報ファイル104を有するサイトは、履歴情
報管理システム(以下、JMという)110を有する。
本発明の分散トランザクション処理システムのJM11
0は、図1のJM110と同様の処理を行なう。
【0033】本発明の分散トランザクション処理システ
ムは、図2の分散トランザクション処理システムとは次
の点で異なる。すなわち、まず、履歴情報ファイルを有
するサイトに、トランザクション回復システム120を
備える。
【0034】また、本発明の分散トランザクション処理
システムでは、障害によってサイトが停止したことを検
出するモニタリングシステム118が、当該サイトのT
Mが行なうはずであった分散トランザクションの回復処
理の開始を、前記トランザクション回復システム120
に指示する機能を有する。すなわち、モニタリングシス
テム118は、データファイル102を有するサイト、
あるいは、UAP106が存在するサイトが、障害によ
って停止してしまったことを検出すると、それを、履歴
情報ファイル104を有するサイトのトランザクション
回復システムに通知する。
【0035】本発明の分散トランザクション処理システ
ムの特徴は、履歴情報ファイル104を有するサイト
に、トランザクション履歴情報を用いて、分散トランザ
クションの回復処理を行なうトランザクション回復シス
テム120を設けたことにある。トランザクション回復
システム120は、データファイル102を有するサイ
トや、UAP106が存在するサイトのTM108と同
様に、履歴情報ファイル104から、JM110を介し
て、特定のサイトが処理していたトランザクションに関
するトランザクション履歴情報を取得する機能と、障害
が発生したときの当該トランザクションの状態を調べた
うえで、当該トランザクションが属する分散トランザク
ションの回復処理を行なう機能を有する。
【0036】これらの機能によって、トランザクション
回復システム120は、前記のモニタリングシステム1
18からの通知を受けとると、停止したサイトのTMが
処理していたトランザクションに関するトランザクショ
ン履歴情報をJM110から取得したうえで、前記TM
に代わって、分散トランザクションの回復処理を行な
う。これによって、前記の停止したサイトが、再び稼働
状態になるのを待たなくても、当該サイトのTMが処理
していた分散トランザクションの回復処理を行なえるよ
うになる。
【0037】また、本発明の分散トランザクション処理
システムで、TMは、障害によって他のサイトが停止す
ると、自らが処理するトランザクションのうちで、停止
したサイトのTMが処理していたトランザクションと親
子関係を有するものに関して、その親トランザクショ
ン、あるいは、子トランザクションを処理するサイトを
示す情報を、前記の停止したサイトが出力した履歴情報
を管理するサイトを示す情報に変更する。これによっ
て、正常なサイトのTMは、分散トランザクションの回
復処理を、停止したサイトのTMではなく、その停止し
たサイトのために履歴情報を管理するサイトのトランザ
クション回復システム120とともに行なえるようにな
る。
【0038】
【実施例】本発明の実施例を、他の図面を用いて詳細に
説明する。
【0039】図3は、本発明を適用した分散トランザク
ション処理システムの構成を示す。本発明の分散トラン
ザクション処理システムは、複数のサイトが、通信ネッ
トワーク114で接続された分散システムにおいて動作
する。サイトには、トランザクションを処理するトラン
ザクションサイト320と、トランザクションサイトが
出力する履歴情報を管理するログサイト322と、トラ
ンザクションサイト320が障害によって停止したこと
を検出するためのモニタサイト324とがある。本発明
の分散トランザクション処理システムは、トランザクシ
ョンサイト320においてトランザクションを処理する
トランザクション管理システム(TM)108と、ログ
サイト322において履歴情報を管理する履歴情報管理
システム(JM)110と、ログサイト322におい
て、障害によって停止したトランザクションサイトの分
散トランザクション回復処理を代行するトランザクショ
ン回復システム120と、モニタサイト324において
トランザクションサイト320が障害によって停止した
ことを検出するモニタリングシステム118から構成さ
れる。また、トランザクションサイト320には、デー
タファイル102を有するサイトと、UAP106が存
在するサイトとがあり、本発明の分散トランザクション
処理システムが行なうコミット制御において、前者のT
Mはコーディネイタ、後者のTMはサブオーディネイト
となる。
【0040】なお、図3に示した構成のTMは、コーデ
ィネイタとしても、サブオーディネイトとしても動作で
きるが、いずれかにしか用いられない機能部も存在す
る。
【0041】TM108は、以下の機能部から構成され
る。
【0042】入出力管理部314は、コーディネイタに
おいて、UAP106から、分散トランザクションと、
そのコミット要求、および、アボート要求を受けとる。
【0043】トランザクション処理部300は、TMに
おいて様々な機能を果たす。先ず、トランザクション処
理部は、コーディネイタにおいて、入出力管理部から分
散トランザクションを受けとって解析を行ない、他のト
ランザクションサイトで動作するトランザクションに分
解したうえで、前記トランザクションサイトに通信管理
部316を介して、前記トランザクションを投入する。
また、トランザクション処理部300は、コーディネイ
タにおいて、入出力管理部から受けとった分散トランザ
クションのコミット要求やアボート要求に応じて、その
分散トランザクションに属するトランザクションを処理
するトランザクションサイトに、コミット制御プロトコ
ルに従って、プリペア要求、コミット要求、および、ア
ボート要求を、送信する。トランザクション処理部30
0は、サブオーディネイトにおいては、通信管理部31
6を介して、トランザクションを受けとり、そのトラン
ザクションの内容であるデータファイル102に対する
処理要求を、データファイルアクセス部306に渡す。
また、トランザクション処理部300は、自らが処理す
るトランザクションの識別子やコミット制御における状
態を、トランザクション管理テーブル302に登録して
管理する。また、トランザクション処理部300は、コ
ミット制御プロトコルに従って、トランザクション履歴
情報を生成し、ログ入出力管理部308に渡す。さら
に、トランザクション処理部300は、障害が発生した
ときに、自らが処理していたトランザクションについ
て、取消し処理や再実行処理を行なって、前記トランザ
クションの原子性を保証する。また、トランザクション
処理部300は、前記の取り消し処理や再実行処理を行
うために、ログ入出力管理部308に、前記トランザク
ションについての更新履歴情報を要求する。
【0044】データファイルアクセス部306は、トラ
ンザクション処理部300から受けとったデータファイ
ル102に対する処理要求を、データファイル102に
対して実行する。このとき、データファイルアクセス部
306は、前記処理要求の内容を示す更新履歴情報を生
成して、ログ入出力管理部308に渡す。
【0045】ログ入出力管理部308は、トランザクシ
ョン処理部300から受けとったトランザクション履歴
情報や、データファイルアクセス部306から受けとっ
た更新履歴情報を、通信管理部316を介して、ログサ
イト322のJM110に送信する。また、ログ入出力
管理部308は、トランザクション処理部300や、分
散トランザクション回復処理部304から、更新履歴情
報やトランザクション履歴情報の取得要求を受けとり、
通信管理部316を介して、ログサイト322から、前
記履歴情報を取得する。また、ログ入出力管理部308
は、ログサイト情報318を参照して、当該トランザク
ションサイトが出力する履歴情報を管理するログサイト
322を特定し、そのログサイトに履歴情報を送信した
り、そのログサイトから履歴情報を取得する。
【0046】障害検出部312は、他のトランザクショ
ンサイトが、障害によって停止したことを検出して、そ
の旨を、回復処理代行管理部310に通知する。ここ
で、障害検出部312が検出する障害は、トランザクシ
ョン処理部300が処理するトランザクションの親トラ
ンザクション、あるいは、子トランザクションを処理す
るトランザクションサイトの障害であるとする。
【0047】回復処理代行管理部310は、本発明の分
散トランザクション処理システムが特徴とする機能のう
ちの一つである。回復処理代行管理部310は、障害検
出部312から、他のトランザクションサイトが障害に
よって停止したことを通知されると、分散トランザクシ
ョンの回復処理を行うことを分散トランザクション回復
処理部304に要求する。このとき、回復処理代行管理
部310は、トランザクション管理テーブル302の内
容のうちで、前記トランザクションサイトを示すデータ
を、ログサイト情報318を参照して、前記トランザク
ションサイトが出力する履歴情報を管理するログサイト
に書き換える。さらに、回復処理代行管理部310は、
障害によって自らのサイトが停止し、かつ、その後に再
起動されたときに、トランザクション回復システム12
0が行った分散トランザクションの回復処理の結果を受
け取る。また、回復処理代行管理部310は、トランザ
クション処理部300に、前記分散トランザクション回
復処理の結果に従って、トランザクションの取消し処理
や再実行処理を行うことを要求する。
【0048】分散トランザクション回復処理部304
は、本発明の分散トランザクション処理システムに障害
が発生すると、障害が発生したトランザクションサイト
が処理していたトランザクションと親子関係をもつトラ
ンザクションについて、分散トランザクションの回復処
理を行なう。ここで、分散トランザクション回復処理部
304は、トランザクション管理テーブル302を参照
して、前記トランザクションの状態や、コーディネイ
タ、および、サブオーディネイトを識別し、コミット制
御プロトコルに従って処理を行なう。前記障害によっ
て、前記トランザクション管理テーブル302の内容が
失われた場合には、ログ入出力管理部308に、トラン
ザクション履歴情報の取得を要求し、前記トランザクシ
ョン履歴情報を用いて、分散トランザクションの回復処
理を行う。なお、トランザクションサイト320の分散
トランザクション回復処理部304は、障害によって自
らのサイトが停止し、かつ、その後に再起動された場合
には、何もしない。
【0049】モニタリングシステム118は、以下の機
能部から構成される。サイト障害検出部326は、トラ
ンザクションサイト320が障害によって停止したこと
を検出すると、回復処理代行要求部328に、その旨を
通知する。回復処理代行要求部328は、本発明の分散
トランザクション処理システムが特徴とする機能部の一
つである。回復処理代行要求部328は、ログサイト情
報318を参照して、前記の停止したトランザクション
サイトが出力した履歴情報を管理するログサイトを識別
し、そのログサイトに、通信管理部316を介して、停
止したトランザクションサイトで行なわれるべき分散ト
ランザクション回復処理の実行を要求する。
【0050】ログサイト322のJM110は、以下の
機能部を有する。
【0051】履歴情報ファイルアクセス部332は、通
信管理部316を介して、トランザクションサイト32
0から更新履歴情報やトランザクション履歴情報を受け
とって、履歴情報ファイル104に格納する。また、履
歴情報ファイルアクセス部332は、通信管理部316
を介して、トランザクションサイト320から、更新履
歴情報やトランザクション履歴情報の要求を受けとっ
て、履歴情報ファイル104より、前記履歴情報を取得
する。また、履歴情報ファイルアクセス部332は、履
歴情報ファイル104より取得した履歴情報を、通信管
理部316を介して、前記履歴情報を要求したトランザ
クションサイト320に送信する。ここで、履歴情報フ
ァイル104に対する履歴情報の入出力には、ログバッ
ファ334が用いられる。
【0052】ログサイト322のトランザクション回復
システム120は、本発明の分散トランザクション処理
システムが最大の特徴とする機能部である。トランザク
ション回復システム120は、さらに、以下の機能部か
らなる。
【0053】回復処理代行制御部336は、モニタサイ
ト324から、分散トランザクションの回復処理の要求
を、通信管理部316を介して受けとり、分散トランザ
クション回復処理部304に渡す。分散トランザクショ
ン回復処理部304は、障害によって停止したトランザ
クションサイト320が行なうべき分散トランザクショ
ンの回復処理を代行する。分散トランザクション回復処
理部304は、ログ入出力管理部308に、前記トラン
ザクションサイト320が出力したトランザクション履
歴情報を要求する。分散トランザクション回復処理部3
04は、前記トランザクション履歴情報を用いて、トラ
ンザクション状態回復テーブル342に、前記トランザ
クションサイト320が処理していたトランザクション
の状態を回復したうえで、前記で要求された分散トラン
ザクション回復処理を、後述するように行なう。ログ入
出力管理部308は、分散トランザクション回復処理部
304からの要求に応じて、JM110に、前記トラン
ザクション履歴情報の取得を要求する。
【0054】次に、図4を用いて、本発明の第一の実施
例で用いるコミット制御プロトコルである2フェーズコ
ミット(2PC)の処理の流れについて説明する。本発
明の分散トランザクション処理システムでは、トランザ
クションサイト320のTM108は、ログサイト32
2のJM110に対して、トランザクション履歴情報を
出力する。親トランザクション400を処理するコーデ
ィネイタ、および、子トランザクション402を処理す
るサブオーディネイトは、ともに、トランザクションの
開始に応じて、開始ログを出力し(404)、終了に応
じて、終了ログを出力する(408)。また、コーディ
ネイタは、プリペア要求に対するサブオーディネイトか
らの応答を受けてコミットを決定すると、コミットログ
を出力する(406)。また、サブオーディネイトは、
コーディネイタからのプリペア要求に応じて、プリペア
処理を完了して、肯定応答を決定すると、プリペアログ
を出力する(410)。また、サブオーディネイトは、
コーディネイタからのコミット要求を受信すると、コミ
ットログを出力する(412)。
【0055】本実施例の分散トランザクション処理シス
テムが用いる2PCでは、アボートにおけるトランザク
ション履歴情報を出力しない。このため、障害が発生し
たとき、プリペアログ、あるいは、コミットログが出力
されていないトランザクションには、アボートが決定さ
れる。障害が発生したとき、サブオーディネイトは、プ
リペアログを出力する前ならば、一方的に子トランザク
ションをアボートする。このとき、サブオーディネイト
は、トランザクション履歴情報を出力せず、コーディネ
イタからのプリペア要求に対して否定応答を行なうのみ
である。いいかえれば、障害発生時点で、プリペアログ
が出力されていなければ、コーディネイタに問い合わせ
ることなく、トランザクションのアボートを決定する。
プリペアログの出力時点以降に障害が発生すると、サブ
オーディネイトは、コーディネイタに、分散トランザク
ションの回復処理の結果を問合せる。一方、コーディネ
イタは、障害が発生したときに、コミットログが出力さ
れていなければ、アボートを決定する。
【0056】次に、図5を用いて、本発明の実施例を説
明するための分散トランザクションを説明する。図5で
は、トランザクションサイト0(500)に、UAPa
512、UAPb514、UAPc516が存在し、そ
れぞれ、トランザクションa0(518)、トランザク
ションb0(520)、トランザクションc0(52
2)の実行を、コーディネイタ534に要求する。トラ
ンザクションa0は、トランザクションサイト1(50
1)およびトランザクションサイト2(502)のそれ
ぞれに、子トランザクションであるトランザクションa
1(524)とトランザクションa2(528)を有す
る。トランザクションb0は、トランザクションサイト
1とトランザクションサイト3(504)のそれぞれ
に、子トランザクションであるトランザクションb1
(526)とトランザクションb3(532)を有す
る。トランザクションc0は、トランザクションサイト
2とトランザクションサイト3のそれぞれに、子トラン
ザクションであるトランザクションc2(530)とト
ランザクションc3(533)を有する。トランザクシ
ョンサイト1〜3では、サブオーディネイト1〜3(5
36〜540)が、それぞれ、トランザクションを処理
し、コーディネイタ534からの要求に従って、コミッ
ト制御を行なう。コミット制御は、各トランザクション
の親子関係116に従って、行なわれる。
【0057】図6は、本発明の実施例における、図5の
トランザクションの、ある時点での状態を示している。
図6は、前記トランザクションの状態を、個々のトラン
ザクションサイトのTMが有するトランザクション管理
テーブル302の内容によって示したものである。
【0058】先ず、トランザクション管理テーブル30
2の構造を説明する。トランザクション管理テーブル3
02は、TMが処理している個々のトランザクションに
対応してエントリを有する。各エントリは、トランザク
ション識別子6002、親トランザクション識別子60
04、コーディネイタサイト識別子6006、トランザ
クション状態6008、分岐管理テーブルポインタ60
10を有する。コーディネイタのトランザクション管理
テーブル3020では、各エントリが示すトランザクシ
ョンは、親トランザクションを持たないため、親トラン
ザクション識別子とコーディネイタサイト識別子は、N
ULLとなっている。また、分岐管理テーブルポインタ
6010がポインタ6016によって接続する分岐管理
テーブル608は、当該エントリが示すトランザクショ
ンの子トランザクションを示す。分岐管理テーブル60
8は、個々の子トランザクションに対応してエントリを
有する。分岐管理テーブル608の各エントリは、サイ
ト識別子6012、トランザクション状態6014を有
する。サイト識別子6012は、当該子トランザクショ
ンを処理するトランザクションサイトを示す。サブオー
ディネイト1〜3のトランザクション管理テーブル(3
022,3024,3026)では、各エントリは、当
該トランザクションの親トランザクションの識別子と、
この親トランザクションを処理するコーディネイタのサ
イトの識別子を有する。これらのサブオーディネイトが
処理するトランザクションは、子トランザクションを有
さないために、分岐管理テーブルポインタ6010はN
ULLを示している。
【0059】これらのトランザクション管理テーブル3
02のトランザクション状態6008や、分岐管理テー
ブルのトランザクション状態6014は、それぞれのエ
ントリに対応するトランザクションが、コミット制御に
おいて、いかなる段階まで進んでいるかを示す。例え
ば、コーディネイタのトランザクション管理テーブル3
020において、トランザクションb0のトランザクシ
ョン状態は、"PREPARING"、すなわち、コーディネイタ
はプリペア要求を発行したが、サブオーディネイトから
の応答が集まっていないことを示している。また、サブ
オーディネイト3のトランザクション管理テーブル30
26において、トランザクションb3のトランザクショ
ン状態は、"PREPARED"、すなわち、コーディネイタのプ
リペア要求に対して肯定応答を決定したことを示してい
る。ここで、コーディネイタのトランザクション管理テ
ーブル3020のトランザクションb0についての分岐
管理テーブル608において、トランザクションb3の
トランザクション状態は、"PREPARING"、すなわち、コ
ーディネイタ534が、トランザクションb3につい
て、プリペア要求に対する応答を受信していないことを
示している。これは、サブオーディネイト3(540)
がプリペア要求に対する肯定応答を決定したとしても、
前記肯定応答が、通信ネットワーク114を介してコー
ディネイタ534に到達するまでに、時間間隔があるた
めである。
【0060】次に、図7を用いて、本発明の実施例にお
いて、トランザクションサイトのTMが出力するトラン
ザクション履歴情報について説明する。トランザクショ
ン履歴情報は、当該トランザクション履歴情報を出力す
るトランザクションサイトのサイト識別子7002、当
該トランザクション履歴情報が示すトランザクションの
識別子7004、前記トランザクションの親トランザク
ションの識別子7006、前記トランザクションのコー
ディネイタが存在するサイトの識別子7008、当該ト
ランザクション履歴情報のログ種別7010を有する。
図7は、コーディネイタが出力するコミットログ700
と、サブオーディネイトが出力するプリペアログ702
の例を示している。
【0061】次に、図8を用いて、本発明の実施例にお
ける、ログサイト情報318(図3)を説明する。サイ
ト識別子802は、トランザクションサイトの識別子を
示す。ログサイト識別子804は、当該トランザクショ
ンサイトが出力するトランザクション履歴情報を管理す
るログサイトの識別子を示す。実施例においては、全て
のトランザクションサイトが、同一のログサイト322
(ログサイト#1)にトランザクション履歴情報を出力
する。しかし、本発明を適用する分散トランザクション
処理システムにおいては、任意の数のログサイトが存在
してかまわない。ただし、特定のトランザクションサイ
トが出力するトランザクション履歴情報は、特定のログ
サイトが管理しなければならない。
【0062】本実施例においては、図3の分散トランザ
クション処理システムが、図5に示したようなトランザ
クションを処理している場合に関して説明する。本実施
例では、前記分散トランザクション処理システムが、図
4で説明したような2PCを用いることを想定する。さ
らに、本実施例は、前記トランザクションが図6のよう
な状態にある時点で障害が発生し、コーディネイタ53
4が存在するトランザクションサイトであるトランザク
ションサイト0(500)が停止してしまった場合の、
本発明を適用した分散トランザクション処理システムに
よる分散トランザクションの回復処理の様子を示すもの
である。
【0063】先ず、図9を用いて、モニタリングシステ
ム118における処理の流れについて説明する。モニタ
リングシステムにおいて、サイト障害検出部326が、
障害によってトランザクションサイト0(500)が停
止したことを検出する(902)。次に、サイト障害検
出部326は、回復処理代行要求部328に、トランザ
クションサイト0の停止を通知する(904)。回復処
理代行要求部328は、前記通知を受けると、ログサイ
ト情報318を用いて、トランザクションサイト0が出
力したトランザクション履歴情報を管理するログサイト
を判別する(906)。図8のログサイト情報318に
よれば、トランザクションサイト0のトランザクション
履歴情報を管理するサイトは、ログサイト322であ
る。次に、回復処理代行要求部328は、ログサイト3
22のトランザクション回復システム120に対して、
トランザクションサイト0で行なわれるべき分散トラン
ザクションの回復処理の代行を要求する(908)。
【0064】次に、図10から図12を用いて、ログサ
イトにおけるトランザクション回復システム120が行
なう処理の流れを説明する。
【0065】図9のステップ908で、モニタリングシ
ステム118の回復処理代行要求部328が発行した分
散トランザクション回復処理の代行要求を、回復処理代
行制御部336が、通信管理部316を介して受けとる
(1002)。次に、回復処理代行制御部336が、ト
ランザクションサイト0で行なわれるべき分散トランザ
クションの回復処理、すなわち、トランザクションサイ
ト0のコーディネイタが処理していたトランザクション
についての分散トランザクション回復処理を、ログサイ
ト322の分散トランザクション回復処理部304に要
求する(1004)。この分散トランザクション回復処
理部304は、ログ入出力管理部308に、トランザク
ションサイト0が出力したトランザクション履歴情報を
要求する(1006)。ログ入出力管理部308は、J
M110を介して、履歴情報ファイル104より、前記
トランザクション履歴情報を取得する(1008)。こ
こで、図7が示すように、トランザクション履歴情報
は、サイト識別子7002を持っており、JM110
は、前記サイト識別子7002がトランザクションサイ
ト0を示すトランザクション履歴情報を、履歴情報ファ
イル104から抽出して、ログ入出力管理部308に渡
す。次に、分散トランザクション回復処理部304が、
ログ入出力管理部308より、トランザクションサイト
0が出力したトランザクション履歴情報を取得する(1
010)。
【0066】次に、分散トランザクション回復処理部3
04は、トランザクションサイト0が処理していたトラ
ンザクションの状態を、トランザクション状態回復テー
ブル342に再現する(1012)。ここで、分散トラ
ンザクション回復処理部304が、トランザクション状
態回復テーブル342に状態を再現するのは、障害が発
生したときにトランザクションサイト0で動作していた
可能性のあるトランザクションである。すなわち、分散
トランザクション回復処理部304は、ステップ101
0で取得したトランザクション履歴情報を調べて、終了
ログが出力されていないトランザクションを選び出す。
【0067】図11に、ステップ1012で生成された
トランザクション状態回復テーブル342を示す。この
トランザクション状態回復テーブル342は、分散トラ
ンザクション回復処理の代行の対象のトランザクション
サイトが処理していたトランザクションについてのエン
トリを有する。各エントリは、当該トランザクションの
トランザクション識別子1102、親トランザクション
識別子1104、コーディネイタサイト識別子110
6、トランザクション状態1108を有する。ここで、
トランザクションサイト0のTMは、図5の全てのトラ
ンザクションについてコーディネイタであるので、図1
1のトランザクション状態回復テーブル342の全ての
エントリの親トランザクション識別子とコーディネイタ
サイト識別子は、NULLを示している。
【0068】トランザクション状態1108は、分散ト
ランザクション回復処理部304が、前記トランザクシ
ョン履歴情報を調べることによって再現した、障害が発
生した時点でのトランザクションの状態を示す。図6の
テーブルを参照しながら説明する。トランザクションa
0は、コーディネイタのトランザクション管理テーブル
3020のトランザクション状態6008によれば、障
害が発生したとき、"COMITTED"となっている。これは、
トランザクションa0のコミットが決定されて、コミッ
トログの出力が完了したことを示している。しかるに、
ステップ1008において、履歴情報ファイル104
は、トランザクションa0についてのコミットログを格
納しているので、トランザクション回復システム120
において、分散トランザクション回復処理部304は、
障害が発生したときのトランザクションa0の状態
を、"COMMITED"と決定し、トランザクション状態回復テ
ーブル1108に、その旨を反映する。また、同様に、
トランザクションb0は、トランザクション管理テーブ
ル3020において、"PREPARING"なる状態を示してい
る。従って、図10のステップ1008において、履歴
情報ファイル104は、トランザクションb0につい
て、開始ログを格納するのみである。よって、分散トラ
ンザクション回復処理部304は、障害が発生したとき
のトランザクションb0の状態を、"UNRESOLVED"、すな
わち、コミットが決定されていない状態であると決定す
る。また、同様に、トランザクションc0は、トランザ
クション管理テーブル3020において、"ABORTED"な
る状態を示している。これは、トランザクションc0の
アボートが決定されたことを示す。前述したように、本
実施例が用いる2PCでは、トランザクションがアボー
トされた場合、トランザクション履歴情報が出力されな
い。従って、ステップ1008において、履歴情報ファ
イル104は、トランザクションc0について、開始ロ
グを格納するのみである。よって、トランザクションb
0と同様に、分散トランザクション回復処理部は、障害
が発生したときのトランザクションc0の状態を、"UNR
ESOLVED"と決定する。
【0069】ふたたび、図10の説明にもどる。ステッ
プ1012で再現されたトランザクション状態回復テー
ブル342の各エントリが示すトランザクションについ
て、分散トランザクション回復処理部304は、分散ト
ランザクションの回復処理を行う(1014)。
【0070】ここで、図12を説明する。図12は、図
10のステップ1014において、トランザクション回
復システム120の分散トランザクション回復処理部3
04が行う、分散トランザクションの回復処理の流れを
示す。先ず、分散トランザクション回復処理部304
は、トランザクション状態テーブル342の各エントリ
について、トランザクション識別子1102を判別し
(1202)、親トランザクション識別子1104を判
別する(1204)。親トランザクション識別子がNU
LLであるとき、当該エントリが示すトランザクション
は、コーディネイタが処理していたトランザクションで
あり、ステップ1208へ進む(1206)。対して、
親トランザクションがNULLでないならば、当該トラ
ンザクションは、サブオーディネイトが処理していたト
ランザクションであり、直ちに、処理を終了する。これ
は、本実施例のコミット制御には、図4で説明したよう
な2PCが用いられるためである。つまり、障害によっ
てサブオーディネイトの存在するトランザクションサイ
トが停止した場合には、コーディネイタ534は、前記
サブオーディネイトによる分散トランザクションの回復
処理の完了を待たずに、分散トランザクションのコミッ
トあるいは、アボートを決定する。よって、本実施例の
ように、2PCが用いられる分散トランザクション処理
システムにおいては、トランザクション回復システム1
20はコーディネイタの存在するトランザクションサイ
トが停止した場合に、そのコーディネイタの分散トラン
ザクション回復処理を代行することを目的とする。
【0071】さて、ステップ1208で、分散トランザ
クション回復処理部304は、トランザクション状態1
108を判別する。次に、分散トランザクション回復処
理部304は、前記トランザクション状態に応じ、コミ
ット制御プロトコルに従って、分散トランザクションの
コミット、あるいは、アボートを決定する(121
0)。ステップ1210の処理は、図13に示すように
行われる。
【0072】図13は、一般に、2PCを用いる分散ト
ランザクション処理システムに障害が発生したときの、
コーディネイタが処理していたトランザクションの障害
発生時の状態に応じた、分散トランザクションのコミッ
トやアボートの決定の様子を示している。ここで、前記
トランザクションの状態が、"UNRESOLVED"(130
2)、"PREPARING"(1304)、"ABORTED"(130
6)であれば、分散トランザクションをアボートするこ
とを決定する(1312)。ただし、本実施例は、コー
ディネイタ534が存在するトランザクションサイト0
が障害によって停止した場合についてのものであり、前
記コーディネイタに代わって分散トランザクション回復
処理を行うトランザクション回復システム120は、ト
ランザクション履歴情報によって、前記トランザクショ
ンの状態を判別する。従って、前記トランザクションの
状態が、"PREPARING"や"ABORTED"であった場合には、前
記トランザクションの状態は、"UNRESOLVED"と判定され
る。また、前記トランザクションの状態が、"COMMITED"
であれば(1310)、分散トランザクションをコミッ
トすることを決定する(1314)。すなわち、本実施
例においては、トランザクションa0についてはコミッ
ト、トランザクションb0とトランザクションc0につ
いては、アボートが決定される。
【0073】再び、図12の説明にもどる。ステップ1
210の処理の終了後、分散トランザクション回復処理
部304は、トランザクション状態回復テーブル342
のトランザクション状態1108に、ステップ1210
で行なった決定の結果を反映して(1212)、ステッ
プ1014の処理を終了する。
【0074】再び、図10の説明にもどる。ステップ1
014の処理後、トランザクション回復システム120
の分散トランザクション回復処理部304は、障害が復
旧して再起動したトランザクションサイト0のコーディ
ネイタ534から、分散トランザクション回復処理の結
果の問い合わせを受けて、トランザクション状態回復テ
ーブル1108を渡して(1016)、終了する。
【0075】なお、本実施例において、トランザクショ
ン回復システム120の分散トランザクション回復処理
部304は、図10の処理終了後に、サブオーディネイ
トから、分散トランザクション回復処理の結果について
の問い合わせがあると、ステップ1210で決定した分
散トランザクションのコミット、あるいは、アボートを
応答する。
【0076】図10から図12の説明において明らかな
ように、本発明を適用した分散トランザクション処理シ
ステムでは、障害によって、コーディネイタ534が存
在するトランザクションサイト0が停止したとしても、
前記コーディネイタが行なうべき分散トランザクション
の回復処理を、前記コーディネイタが出力したトランザ
クション履歴情報を管理するログサイト322におい
て、前記トランザクション履歴情報を用いて、代行でき
る。ここで、図12に示された分散トランザクションの
コミットやアボートの決定の結果は、本発明を適用せ
ず、従来技術である2PCのみを用いた場合でも同様の
ものになる。ただし、本発明を適用しない場合には、前
記の決定は、トランザクションサイト0が、障害から復
旧して、再起動された後に行われるので、コミットプロ
トコルのブロッキングが発生することに注意されたい。
また、本発明の分散トランザクション処理システムにお
いて、コミット制御の過程で出力されるトランザクショ
ン履歴情報の数は、従来技術である2PCにおいて出力
されるトランザクション履歴情報の数と同一である。
【0077】次に、図14を用いて、障害が発生しな
い、正常なトランザクションサイト、すなわち、本実施
例におけるトランザクションサイト1〜3(501〜5
04)での処理の流れについて説明する。この処理は、
2PCにおける分散トランザクションの回復処理と類似
しているが、その処理過程で、コーディネイタ534の
代わりに、ログサイト322のトランザクション回復シ
ステム120を相手にするところが異っている。
【0078】先ず、トランザクションサイト1〜3のサ
ブオーディネイト1〜3(536〜540)の障害検出
部312が、トランザクションサイト0が障害によって
停止したことを検出する。ここで、前記障害検出部31
2は、トランザクションサイト0のサイト識別子を、回
復処理代行管理部310に通知する(1402)。回復
処理代行管理部310は、ログサイト情報318を参照
して、トランザクションサイト0が出力したトランザク
ション履歴情報を管理するログサイトを識別する(14
04)。しかるのちに、回復処理代行管理部310は、
トランザクション管理テーブル302の各エントリを参
照して(1406)、コーディネイタサイト識別子60
08が、停止したトランザクションサイト0であれば、
前記コーディネイタサイト識別子6008を、ステップ
1404で判別したログサイト322の識別子に変更す
る(1408)。次に、回復処理代行管理部310は、
分散トランザクション回復処理部304に、分散トラン
ザクション回復処理を要求する(1410)。
【0079】次に、分散トランザクション回復処理部3
04は、トランザクション管理テーブル302の各エン
トリを参照して(1412)、コーディネイタ識別子6
008を識別する(1414)。前記コーディネイタ識
別子がNULLでなければ、前記分散トランザクション
回復処理部304が属するTMは、当該トランザクショ
ンについてサブオーディネイトであり、ステップ142
0へ進む。前記コーディネイタ識別子がNULLであれ
ば、前記TMは、当該トランザクションについてコーデ
ィネイタであり、図13に示した分散トランザクション
の回復処理を行って(1418)、ステップ1432進
む。これは、前記TMが、当該トランザクションについ
てコーディネイタであった場合、すなわち、サブオーデ
ィネイトが存在するトランザクションサイトの障害の場
合には、前述したように、トランザクション回復システ
ム120による分散トランザクションの回復処理が行わ
れないためである。本実施例は、コーディネイタ534
が存在するトランザクションサイト0の障害を問題とし
ているので、図14の処理は、ステップ1420へ進
む。
【0080】ステップ1420で、ステップ1414で
判別したコーディネイタ識別子6008が、ステップ1
404で識別したログサイト322を示しているならば
(1422)、当該トランザクションは、障害によって
分散トランザクション回復処理が必要なトランザクショ
ンであり、ステップ1420へ進む。前記コーディネイ
タ識別子が、前記ログサイトを示していないならば、当
該トランザクションは、障害に関係しないトランザクシ
ョンであり、処理を終了する。次に、ステップ1422
で、分散トランザクション回復処理部304は、トラン
ザクション状態6008を判別する(1422)。次
に、分散トランザクション回復処理部304は、コミッ
ト制御プロトコルに従って、当該トランザクションのコ
ミット、あるいは、アボートを決定する(1424)。
ステップ1424の処理は、図15に示すように行なわ
れる。
【0081】図15は、一般に、2PCを用いる分散ト
ランザクション処理システムに障害が発生したときの、
サブオーディネイトが処理していたトランザクションの
障害発生時の状態に応じた、前記トランザクションのコ
ミット、および、アボートの決定の様子を示す。ここ
で、トランザクションの状態が、"UNRESOLVED"(150
2)、"PREPARING"(1504)、"ABORTED"(150
6)を示していれば、当該トランザクションのアボート
を決定する(1512)。トランザクション状態が、"C
OMMITED"を示しているならば(1510)、当該トラン
ザクションのコミットを決定する(1514)。一方、
トランザクション状態が、"PREPARED"を示しているなら
ば(1508)、当該サブオーディネイトだけでは、コ
ミット、あるいは、アボートを決定できないので、その
まま終了する。すなわち、本実施例では、例えば、サブ
オーディネイト2においては、トランザクションc2に
ついてはアボートが決定されるが、トランザクションa
2についてはコミットかアボートかを決定できない。
【0082】再び、図14の説明にもどる。ステップ1
424の処理の終了後、サブオーディネイト1〜3の分
散トランザクション回復処理部304は、ステップ14
24において、トランザクションのコミット、あるい
は、アボートが決定されたかどうかを判別し、決定され
ていれば(1426)、ステップ1432へ進む。未決
定であれば、ステップ1414で調べたコーディネイタ
識別子6008が示すログサイト322のトランザクシ
ョン回復システム120に、分散トランザクションの回
復処理の結果を問い合せる(1428)。しかるのち
に、分散トランザクション回復処理部304は、トラン
ザクション回復システム120から、分散トランザクシ
ョンのコミット、あるいは、アボートを示す応答を受け
とる(1430)。最後に、分散トランザクション回復
処理部304は、トランザクション管理テーブル302
に、ステップ1424での決定の結果、あるいは、ステ
ップ1428で、トランザクション回復システム120
から受けとった分散トランザクションのコミット、ある
いは、アボートの応答を反映したうえで、トランザクシ
ョン処理部300に、自らのサイトでのトランザクショ
ンの取り消し処理や再実行処理を要求して(143
8)、終了する。すなわち、例えば、サブオーディネイ
ト2の分散トランザクション回復処理部300は、ステ
ップ1426において、トランザクションa2につい
て、分散トランザクションの回復処理の結果、すなわ
ち、トランザクションa2の親トランザクションである
トランザクションa0のコミット、あるいは、アボート
の決定を、トランザクション回復システム120に問合
せる。ここで、トランザクション回復システム120
は、前述したように、トランザクションa0をコミット
することを決定しているので、「コミット」を応答す
る。
【0083】図14の説明によって明らかなように、本
発明を適用した分散トランザクション処理システムで
は、コーディネイタが存在するトランザクションサイト
が、障害によって停止したような場合で、かつ、サブオ
ーディネイトがプリペア要求に肯定応答を既に決定して
いた場合でも、コミットプロトコルのブロッキングを発
生させずに、分散トランザクションの回復処理を行うこ
とができる。つまり、サブオーディネイト1〜3(53
6〜540)は、トランザクションa2のように、"PRE
PARED"なる状態を示すトランザクションについて、トラ
ンザクションサイト0の再起動を待たずに、前記トラン
ザクションのコミットやアボートを決定して、処理を進
めることができる。また、本発明を適用した分散トラン
ザクション処理システムにおいて、正常状態、および、
障害発生状態で通信されるコミット制御のためのメッセ
ージの数は、従来技術である2PCと同一になってい
る。
【0084】次に、図16を用いて、トランザクション
サイト0(500)の、障害から復旧し、再起動された
ときの処理について説明する。トランザクションサイト
0が再起動されると、コーディネイタ534の回復処理
代行管理部310は、ログサイト情報318を用いて、
トランザクションサイト0が出力したトランザクション
履歴情報を管理するログサイト322を判別する(16
02)。次に、回復処理代行管理部310は、前記ログ
サイトへ、トランザクション回復システム120が行な
った分散トランザクション回復処理の結果を問い合わ
せ、図10のステップ1014で生成されたトランザク
ション状態回復テーブル342を取得する(160
4)。次に、回復処理代行管理部310は、前記トラン
ザクション状態回復テーブル342の内容を、トランザ
クション管理テーブル3020に反映し(1606)、
トランザクション処理部300に、自らのサイトでのト
ランザクションの取り消し処理や再実行処理を要求して
(1608)、終了する。
【0085】次に、本発明の第二の実施例を説明する。
本実施例は、2PCとは異なるコミット制御プロトコル
を用いる分散トランザクション処理システムに、本発明
を適用した例を示すものである。本実施例は、第一の実
施例と同様に、図3の分散トランザクション処理システ
ムが、図5に示したようなトランザクションを処理して
いる場合についてのものである。また、本実施例は、前
記のトランザクションが図6に示したような状態にある
時点で障害が発生した場合の、本発明の分散トランザク
ション処理システムによる分散トランザクションの回復
処理の様子を示すものである。
【0086】先ず、図17によって、本実施例で用いる
コミット制御プロトコルを説明する。図17のコミット
制御プロトコルは、図4で説明した2PCと、ほぼ同様
のものである。ただし、親トランザクション400を処
理するコーディネイタは、プリペア要求の発行を完了す
ると、サブオーディネイトリストログを出力する(17
02)。サブオーディネイトリストログは、後述するよ
うに、前記プリペア要求を発行したサブオーディネイト
の存在するトランザクションサイトの一覧を示すトラン
ザクション履歴情報である。このコミット制御プロトコ
ルでは、分散トランザクション処理システムで障害が発
生すると、コーディネイタは、コミットログだけでな
く、前記のサブオーディネイトリストログを基準にし
て、分散トランザクションの回復処理を行う。つまり、
コーディネイタは、サブオーディネイトリストログが出
力されていれば、直ちにアボートを決定するのではな
く、全てのサブオーディネイトのプリペア要求に対する
応答を確認したうえで、分散トランザクションをコミッ
トするか、アボートするかを決定する。なお、サブオー
ディネイトでは、2PCと同様の分散トランザクション
回復処理が行われる。
【0087】図21に、図17に登場したサブオーディ
ネイトリストログの構造を示す。サブオーディネイトリ
ストログ2100は、図7に示したコミットログ700
やプリペアログ702とは異なる構造を持つ。コーディ
ネイタサイト識別子2102は、このログ2100が示
す分散トランザクションのコーディネイタサイトを示
す。サブオーディネイトリストログ2100は、コーデ
ィネイタのみが出力するログであり、コーディネイタサ
イト識別子2102は、同時に、本ログ2100を出力
したサイトをも示す。親トランザクション識別子210
4は、本ログが示すトランザクションの識別子である。
サブオーディネイト2106は、親トランザクション識
別子2104が示すトランザクションから分岐した子ト
ランザクションを示すデータ群である。このデータは、
二つのフィールドから構成される。トランザクション識
別子2108は、前記の子トランザクションの識別子を
示す。サブオーディネイトサイト識別子2110は、前
記の子トランザクションを処理するサブオーディネイト
サイトを示す。本ログ2100は、子トランザクション
の数分のサブオーディネイト2106を有する。ログ種
別2112は、本ログ2100がサブオーディネイトリ
ストであることを示している。同時に、ログ種別211
2は、本ログ2100の終端をも示す。これは、サブオ
ーディネイト2106の数は不変であるため、本ログ2
100が可変長になることから、必要な役割である。
【0088】図18は、コーディネイタにおける分散ト
ランザクションのコミット、および、アボートの決定の
様子を示す。図18は、ほぼ図13の処理と同様の流れ
を示している。ただし、前記コーディネイタが処理して
いたトランザクションの状態が、"PREPARING"、つま
り、プリペア要求の発行後であれば、前記の決定を行う
ことができない。トランザクションの状態が"PREPARIN
G"であることは、トランザクション履歴情報では、前記
サブオーディネイトリストログ2100の存在によって
示される。
【0089】さて、本実施例において、障害によってト
ランザクションサイトが停止したとき、先ず、モニタリ
ングシステム118が図9の処理を行う。次に、ログサ
イト322のトランザクション回復システム120が、
図10の処理を行う。ここで、前記の停止したトランザ
クションサイトがトランザクションサイト0(500)
の場合、ステップ1008で取得するトランザクション
履歴情報は、前記サブオーディネイトリストログ210
0をも含む。また、図11に示した、ステップ1012
において生成されるトランザクション状態回復テーブル
342において、トランザクションb0についてのトラ
ンザクション状態1108が、前記トランザクションb
0についてのサブオーディネイトリストログによっ
て、"PREPARING"となる。また、前記の停止したサイト
が、トランザクションサイト1〜3(501〜504)
のいずれかである場合、ステップ1012においては、
サブオーディネイト1〜3(536〜540)のいずれ
かが処理していたトランザクションについてトランザク
ション状態回復テーブルが生成される。さらに、ステッ
プ1014の処理が、図19に示すように行われる。
【0090】図19は、本実施例において、トランザク
ション回復システム120の分散トランザクション回復
処理部304が行う分散トランザクション回復処理の様
子を示す。ステップ1902から1906の処理は、図
12のステップ1202からステップ1204と同様の
処理である。ステップ1906で、親トランザクション
識別子1104がNULLの場合には、分散トランザク
ション回復処理の代行の対象が、コーディネイタ534
であり、ステップ1908に進む。対して、NULLで
ない場合には、分散トランザクション回復処理の代行の
対象が、サブオーディネイト1〜3(536〜540)
のいずれかであり、ステップ1920に進む。ステップ
1908で、分散トランザクション回復処理部304
は、トランザクション状態1108を判別し、コミット
制御プロトコルに従って、分散トランザクションのコミ
ットやアボートを決定する(1910)。つまり、ステ
ップ1910の処理は、図18に示したように行われ
る。ただし、前記トランザクション状態1108は、ト
ランザクション履歴情報より導かれるものであるから、
障害発生時に"ABORTED"であったトランザクションは、
ステップ1908では、"UNRESOLVED"として、その状態
を認識される。次に、ステップ1910で、分散トラン
ザクションのコミット、あるいは、アボートが決定され
たかどうかを判断し、未決定であれば(1912)、ス
テップ1914へ進む。決定されていれば、ステップ1
932へ進む。ステップ1914で、分散トランザクシ
ョン回復処理部304は、当該トランザクションについ
てのサブオーディネイトリストログによって、サブオー
ディネイトが存在するトランザクションサイトの識別子
を判別する(1914)。次に、分散トランザクション
回復処理部304は、前記サブオーディネイトへ、前記
サブオーディネイトが処理するトランザクションについ
てのプリペア要求に対する応答を問い合わせる(191
6)。次に、分散トランザクション回復処理部304
は、前記サブオーディネイトから、前記のプリペア要求
に対する応答を取得する(1918)。さらに、分散ト
ランザクション回復処理部304は、この応答に従っ
て、分散トランザクションのコミット、あるいは、アボ
ートを決定する(1919)。すなわち、本実施例にお
いて、障害によってトランザクションサイト0が停止し
た場合、トランザクション回復システム120は、コー
ディネイタ534が処理していたトランザクションのう
ち、トランザクションb0が"PREPARING"なる状態であ
ることを判別する。さらに、トランザクション回復シス
テム120は、サブオーディネイト1(536)とサブ
オーディネイト3(540)に、トランザクションb0
の子トランザクションについて、プリペア要求に対する
応答を問合せて、分散トランザクションの回復処理を行
う。
【0091】一方、ステップ1920で、分散トランザ
クション回復処理部304は、トランザクション状態1
108を判別し、コミット制御プロトコルに従って、分
散トランザクション回復処理の代行の対象であるサブオ
ーディネイトが処理していたトランザクションのコミッ
ト、あるいは、アボートを決定する(1922)。ステ
ップ1922の処理は、図15に示したように行われ
る。ただし、前記トランザクション状態1108は、ト
ランザクション履歴情報より導かれるものであるから、
障害発生時に"PREPARING"、や、"ABORTED"であったトラ
ンザクションは、ステップ1920では、"UNRESOLVED"
として、その状態を認識される。次に、分散トランザク
ション回復処理部304は、ステップ1922で、前記
トランザクションのコミットやアボートが決定されてい
たかどうかを判断し、未決定であれば(1924)、ス
テップ1926に進む。決定されていれば、ステップ1
932に進む。ステップ1926で、分散トランザクシ
ョン回復処理部は、コーディネイタサイト識別子110
6を判別し(1926)、前記コーディネイタサイト識
別子が示すトランザクションサイト0のコーディネイタ
534に、分散トランザクションのコミット、あるい
は、アボートの決定の結果を問い合わせ(1928)、
前記コーディネイタから、その応答を受け取る(193
0)。すなわち、本実施例において、例えば、トランザ
クションサイト3が、障害によって停止した場合、トラ
ンザクション回復システム120が、前記トランザクシ
ョンサイト3が行うべき分散トランザクションの回復処
理を代行する。ここで、トランザクション回復システム
120は、トランザクションc3についてアボートを決
定し、トランザクションb3については、コーディネイ
タ534に、親トランザクションであるトランザクショ
ンb0のコミット、あるいは、アボートの決定の結果を
問い合わせる。
【0092】最後に、分散トランザクション処理システ
ムは、ステップ1910から1918、あるいは、ステ
ップ1922から1930の処理で決定されたトランザ
クションのコミットやアボートの決定を、トランザクシ
ョン状態1108に反映して(1932)、終了する。
【0093】次に、本実施例において、障害の発生しな
いトランザクションサイトにおける処理について説明す
る。この処理は、図14の処理と、ほぼ同様になる。た
だし、ステップ1408において、回復処理代行管理部
310は、コーディネイタサイト識別し6008に加え
て、分岐管理テーブル608のサイト識別子6012を
も判別し、それらが停止したトランザクションサイトで
あれば、ステップ1404で判別したログサイト322
のサイト識別子に変更する。さらに、ステップ1418
においては、図20に示す処理を行う。
【0094】図20は、本実施例において、トランザク
ションサイト1〜3のいずれかが、障害によって停止し
た場合の、コーディネイタ534における分散トランザ
クションの回復処理の様子を示している。先ず、コーデ
ィネイタの分散トランザクション回復処理部304が、
トランザクション管理テーブル3020の各エントリが
示すトランザクションについて、分岐管理テーブル60
8の各エントリを参照し(2002)、サイト識別子6
012を判別する(2004)。このサイト識別子が、
ログサイト322を示していれば、前記トランザクショ
ンについて分散トランザクション回復処理が必要であ
り、ステップ2008に進む。サイト識別子が、前記ロ
グサイトでなければ、前記トランザクションは、障害に
関係がないので、処理を終了する。ステップ2008
で、分散トランザクション処理部は、前記トランザクシ
ョン管理テーブル3020のトランザクション状態60
08を判別し(2008)、コミット制御プロトコルに
従って、分散トランザクションのコミット、あるいは、
アボートを決定する(2010)。ステップ2010の
処理は、図18に示したように行われる。次に、分散ト
ランザクション処理部300は、ステップ2010で、
分散トランザクションのコミットやアボートが決定され
たかどうかを判断し、決定されていれば(2012)、
終了する。未決定であれば、分散トランザクション処理
部300は、ログサイト322のトランザクション回復
システム120に、分散トランザクション回復処理の結
果を問い合わせる(2014)。この場合、トランザク
ション回復システム120は、前記の停止したトランザ
クションサイトの代わりに、前記トランザクションサイ
トのサブオーディネイトが処理していたトランザクショ
ンのプリペア要求に対する応答を決定している。ここ
で、コーディネイタ534の分散トランザクション回復
処理部304は、トランザクション回復システム120
から、前記の決定の結果を受け取る(2016)。最後
に、この決定に従って、分散トランザクションのコミッ
ト、あるいは、アボートを決定したうえで(201
8)、終了する。
【0095】本実施例から明らかなように、本実施例の
ようなコミット制御プロトコルを用いた分散トランザク
ション処理システムにおいて、本発明は、障害によって
コーディネイタが存在するトランザクションサイトが停
止した場合だけでなく、サブオーディネイトが存在する
トランザクションサイトが停止した場合のコミットプロ
トコルのブロッキングの発生を防ぐことができる。つま
り、図17に示したようなコミット制御プロトコルを用
いる場合で、かつ、本発明を適用しない場合には、例え
ば、障害によってトランザクションサイト1が停止した
ときにでも、コミットプロトコルのブロッキングが発生
する。本実施例では、このような問題を、前記サブオー
ディネイトにおける分散トランザクションの回復処理
を、ログサイト322のトランザクション回復システム
120が代行することによって解決している。
【0096】
【発明の効果】本発明によれば、分散トランザクション
処理システムにおいて、障害によってサイトが停止して
しまった場合でも、コミットプロトコルのブロッキング
を発生させずに、分散トランザクションの回復処理を進
めることができる。これによって、停止したサイトの再
起動を待たなくても、その停止したサイトが処理してい
たトランザクションと同一の分散トランザクションに属
するトランザクション群が、複数のサイトにおいて占有
している資源を、解放することができる。
【図面の簡単な説明】
【図1】本発明を適用した分散トランザクション処理シ
ステムのシステム構成を示すブロック図。
【図2】従来技術を用いた分散トランザクション処理シ
ステムのシステム構成を示すブロック図。
【図3】本発明の実施例を説明するための分散トランザ
クション処理システムのシステム構成を示すブロック
図。
【図4】本発明の第一の実施例で用いる2フェーズコミ
ットプロトコルに従ったトランザクション処理の流れ
と、その過程でのトランザクション履歴情報の出力の様
子を示す説明図。
【図5】本発明の実施例で用いる分散トランザクション
を示す説明図。
【図6】本発明の実施例で用いる分散トランザクション
の障害が発生した時点での状態を示す説明図。
【図7】本発明の実施例で用いるトランザクション履歴
情報の例を示す説明図。
【図8】本発明の実施例で用いるログサイト情報を示す
説明図。
【図9】本発明の実施例におけるモニタリングシステム
の処理の流れを示すフローチャート。
【図10】本発明の実施例における、ログサイトのトラ
ンザクション回復システムの処理の流れを示すフローチ
ャート。
【図11】本発明の実施例において、ログサイトのトラ
ンザクション回復システムが、分散トランザクション回
復処理に用いるトランザクション状態回復テーブルを示
す説明図。
【図12】本発明の第一の実施例におけるログサイトの
トランザクション回復システムの処理の流れを示すフロ
ーチャート。
【図13】本発明の第一の実施例で、コーディネイタに
おける分散トランザクションのコミット、および、アボ
ートの決定規則を示すフローチャート。
【図14】本発明の第一の実施例における、障害が発生
していないサイトが行なう分散トランザクション回復処
理の流れを示すフローチャート。
【図15】本発明の第一の実施例で、サブオーディネイ
トにおけるトランザクションのコミット、および、アボ
ートの決定規則を示す説明図。
【図16】本発明の実施例における、障害によって停止
したサイトが再起動されるときの処理の流れを示すフロ
ーチャート。
【図17】本発明の第二の実施例が用いるコミット制御
プロトコルに従ったトランザクション処理の流れと、そ
の過程でのトランザクション履歴情報の出力の様子を示
す説明図。
【図18】本発明の第二の実施例で、コーディネイタに
おける分散トランザクションのコミット、および、アボ
ートの決定規則を示す説明図。
【図19】本発明の第二の実施例におけるログサイトの
トランザクション回復システムの処理の流れを示すフロ
ーチャート。
【図20】本発明の第二の実施例において、障害が発生
していないサイトのコーディネイタが行なう分散トラン
ザクション回復処理の流れを示すフローチャート。
【図21】図17に示したサブオーディネイトリストロ
グの説明図。
【符号の説明】
102・・・データファイル 106・・・UAP 108・・・トランザクション管理システム 110・・・
履歴情報管理システム 118・・・モニタリングシステム 120・・・トランザ
クション回復システム 302・・・トランザクション管理テーブル 304・・・分散トランザクション回復処理部 308・
・・ログ入出力管理部 310・・・回復処理代行管理部 318・・・ログサイト
情報 320・・・トランザクションサイト 322・・・ログサ
イト 324・・・モニタサイト 328・・・回復処理代行要求
部 336・・・回復処理代行制御部 342・・・トランザク
ション状態回復テーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鳥居 俊一 神奈川県川崎市麻生区王禅寺1099 株式会 社日立製作所システム開発研究所内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】複数の計算機が通信ネットワークで接続さ
    れた分散システムにおいて、複数のトランザクションに
    分解されて前記複数の計算機で処理される分散トランザ
    クションを処理するシステムであって、 トランザクションを処理する計算機が出力した履歴情報
    をまとめて管理する計算機を備え、 トランザクションを処理する計算機が障害によって停止
    してしまったときに、該停止した計算機が出力した履歴
    情報を管理する計算機に、前記停止した計算機が処理し
    ていたトランザクションについての履歴情報を取得して
    前記トランザクションの障害発生時点での状態を再現す
    る手段と、該再現内容に基づいて、前記停止した計算機
    が処理していたトランザクションが属する分散トランザ
    クションをコミットするか、あるいは、アボートするか
    を決定する手段を設けることを特徴とする分散トランザ
    クション処理システム。
  2. 【請求項2】請求項1記載の分散トランザクション処理
    システムにおいて、トランザクションを処理する計算機
    が障害によって停止したときに、該停止した計算機が処
    理していたトランザクションの状態を再現し、前記トラ
    ンザクションが属する分散トランザクションをコミット
    するかあるいはアボートするかを決定する処理の開始
    を、前記停止した計算機が出力した履歴情報を管理する
    計算機に対して要求する手段を設けたことを特徴とする
    分散トランザクション処理システム。
  3. 【請求項3】請求項1記載の分散トランザクション処理
    システムにおいて、トランザクションを処理する第一の
    計算機に、トランザクションを処理する第二の計算機が
    障害によって停止したときに、前記第一の計算機が処理
    する第一のトランザクションと同一の分散トランザクシ
    ョンに属するトランザクションのうちで、前記第二の計
    算機が処理する第二のトランザクションについて、前記
    第一の計算機が有する、前記第二のトランザクションを
    処理する計算機を示す情報を、前記第二の計算機が出力
    した履歴情報を管理する計算機を示すように変更する手
    段を設けたことを特徴とする分散トランザクション処理
    システム。
  4. 【請求項4】請求項3記載の分散トランザクション処理
    システムにおいて、前記停止した第二の計算機が出力し
    た履歴情報を管理する計算機に、前記第一の計算機か
    ら、前記の分散トランザクションをコミットするかある
    いはアボートするかの決定の結果の問い合わせを受けと
    って、該問い合わせに対する応答を、前記第一の計算機
    に返す手段を設けたことを特徴とする分散トランザクシ
    ョン処理システム。
  5. 【請求項5】請求項4記載の分散トランザクション処理
    システムにおいて、前記停止した第二の計算機が出力し
    た履歴情報を管理する計算機に、前記第二の計算機が処
    理していたトランザクションをコミットできるかアボー
    トできるかを判断する手段と、該判断が不可能であれ
    ば、前記トランザクションと同一の分散トランザクショ
    ンに属するトランザクションを処理する第三の計算機
    に、前記分散トランザクションをコミットするかあるい
    はアボートするかを問い合わせて、前記の第三の計算機
    から、前記問い合わせに対する応答を取得する手段を設
    けたことを特徴とする分散トランザクション処理システ
    ム。
  6. 【請求項6】請求項1記載の分散トランザクション処理
    システムにおいて、トランザクションを処理する計算機
    に、該計算機が障害によって停止した後に、再び起動し
    たときに、当該計算機が出力した履歴情報を管理する計
    算機に対して、前記分散トランザクションをコミットす
    るかアボートするかの決定の結果を問い合わせて、前記
    履歴情報を管理する計算機から、前記問い合わせに対す
    る応答を取得する手段を設けたことを特徴とする分散ト
    ランザクション処理システム。
JP5044063A 1993-03-04 1993-03-04 分散トランザクション処理システム Pending JPH06259397A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5044063A JPH06259397A (ja) 1993-03-04 1993-03-04 分散トランザクション処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5044063A JPH06259397A (ja) 1993-03-04 1993-03-04 分散トランザクション処理システム

Publications (1)

Publication Number Publication Date
JPH06259397A true JPH06259397A (ja) 1994-09-16

Family

ID=12681173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5044063A Pending JPH06259397A (ja) 1993-03-04 1993-03-04 分散トランザクション処理システム

Country Status (1)

Country Link
JP (1) JPH06259397A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004754A (ja) * 2003-06-10 2005-01-06 Internatl Business Mach Corp <Ibm> ソフトウェア環境において統合トランザクション・マネージャなしでリソース保全性を維持するための装置及び方法
WO2006057061A1 (ja) * 2004-11-29 2006-06-01 Fujitsu Limited 分散トランザクション処理方法、装置、及びプログラム
JP2010146134A (ja) * 2008-12-17 2010-07-01 Nec Corp 分散トランザクション処理システム、サーバ装置及びそれらに用いる分散トランザクションの障害復旧方法
WO2017042890A1 (ja) * 2015-09-08 2017-03-16 株式会社東芝 データベースシステム、サーバ装置、プログラムおよび情報処理方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004754A (ja) * 2003-06-10 2005-01-06 Internatl Business Mach Corp <Ibm> ソフトウェア環境において統合トランザクション・マネージャなしでリソース保全性を維持するための装置及び方法
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
US7448035B2 (en) 2003-06-10 2008-11-04 International Business Machines Corporation Apparatus for maintaining resource integrity without a unified transaction manager in a software environment
WO2006057061A1 (ja) * 2004-11-29 2006-06-01 Fujitsu Limited 分散トランザクション処理方法、装置、及びプログラム
JPWO2006057061A1 (ja) * 2004-11-29 2008-06-05 富士通株式会社 分散トランザクション処理方法、装置、及びプログラム
US7836338B2 (en) 2004-11-29 2010-11-16 Fujitsu Limited Distributed transaction processing method, distributed transaction processing system, transaction management device, and computer product
JP2010146134A (ja) * 2008-12-17 2010-07-01 Nec Corp 分散トランザクション処理システム、サーバ装置及びそれらに用いる分散トランザクションの障害復旧方法
WO2017042890A1 (ja) * 2015-09-08 2017-03-16 株式会社東芝 データベースシステム、サーバ装置、プログラムおよび情報処理方法
JPWO2017042890A1 (ja) * 2015-09-08 2018-02-15 株式会社東芝 データベースシステム、サーバ装置、プログラムおよび情報処理方法

Similar Documents

Publication Publication Date Title
US5659682A (en) Scheme to determine completion of directory operations for server recovery
US10296606B2 (en) Stateless datastore—independent transactions
US5434994A (en) System and method for maintaining replicated data coherency in a data processing system
US6584477B1 (en) High speed system and method for replicating a large database at a remote location
US5809238A (en) Data server with event driven sampling
US6145094A (en) Transaction locks for high availability
US5923833A (en) Restart and recovery of OMG-compliant transaction systems
US10942823B2 (en) Transaction processing system, recovery subsystem and method for operating a recovery subsystem
US7743036B2 (en) High performance support for XA protocols in a clustered shared database
US8635193B2 (en) Cluster-wide read-copy update system and method
JP2705006B2 (ja) キャッシュ管理方法、コンピュータ・ファイル・システム及びキャッシュ装置
EP1649397B1 (en) One-phase commit in a shared-nothing database system
US5845117A (en) Deadlock detecting device
JP2691080B2 (ja) 同期点回復手段を有するコンピュータ装置
US20040267807A1 (en) Persistent data storage techniques
US20040215772A1 (en) Distributed token manager with transactional properties
US20070043726A1 (en) Affinity-based recovery/failover in a cluster environment
US20110078516A1 (en) Method and a system for performing a two-phase commit protocol
US5852732A (en) Heterogeneous operations with differing transaction protocols
US5729733A (en) Method of operating a distributed databse based on object ownership and transaction classification utilizing an aggressive reverse one phase commit protocol
WO1993018454A1 (en) Distributed transaction processing system
JPH06103132A (ja) 並行制御方法
US20040010538A1 (en) Apparatus and method for determining valid data during a merge in a computer cluster
US6490595B1 (en) Method, system and program products for providing efficient syncpoint processing of distributed transactions
JPH06259397A (ja) 分散トランザクション処理システム