JP2557192B2 - トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法 - Google Patents

トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法

Info

Publication number
JP2557192B2
JP2557192B2 JP6042285A JP4228594A JP2557192B2 JP 2557192 B2 JP2557192 B2 JP 2557192B2 JP 6042285 A JP6042285 A JP 6042285A JP 4228594 A JP4228594 A JP 4228594A JP 2557192 B2 JP2557192 B2 JP 2557192B2
Authority
JP
Japan
Prior art keywords
transaction
resource
application
request
database
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
JP6042285A
Other languages
English (en)
Other versions
JPH06301588A (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 JPH06301588A publication Critical patent/JPH06301588A/ja
Application granted granted Critical
Publication of JP2557192B2 publication Critical patent/JP2557192B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は分散型のトランザクショ
ン指向データベース・システムに係り、更に詳細に説明
すれば、複数のサイトのうち一部が複数フェーズのトラ
ンザクション同期手続きをサポートするような分散型
データベース・システムにおいて、かかる複数のサイ
トにおけるトランザクション処理を調整(coordinate)
することに係る。
【0002】
【従来の技術】C. J. Date が著作した刊行物の、"An I
ntroduction to Database Systems",Vol. 2, Addison-W
esley Publishing Company, 1983 で指摘されているよ
うに、データベース・システムの目的は、トランザクシ
ョンを実行することである。トランザクションとは、ア
プリケーションが指定した一連の動作の実行を含む1つ
の作業単位であって、「トランザクション開始」動作で
開始し且つ「コミット」又は「バックアウト」動作で終
了するまで、データベースの1つ以上の「更新」又は
「読取」アクセス動作を含むようなものである。コミッ
ト動作がトランザクションの正常終了を通知するのに対
し、バックアウト動作は異常な状況に起因するトランザ
クションの異常終了を通知する。
【0003】コミット動作やバックアウト動作は、トラ
ンザクションの原子性(atomicity)を保証するために
利用される。各トランザクションは、成功するか又は失
敗するかのいずれかである。成功する場合は、トランザ
クションの結果が永久化(コミット)されるのに対し、
失敗する場合は、異常トランザクションの全ての結果が
除去(バックアウト)されることになる。トランザクシ
ョン指向システムが含んでいる回復マネージャは、典型
的には、トランザクションの原子性を維持し且つ障害後
にシステム動作を再確立するように作用する一又は複数
の手続きから成る。かかる回復マネージャは、トランザ
クション同期手続きによって原子性を維持する。普通、
このような手続きは、「コミット」手続きと呼ばれる。
【0004】トランザクション動作を実行する単一のサ
イトを含むか、又は任意のトランザクション中にトラン
ザクション動作を1つのサイトだけで実行することを許
容するようなトランザクション指向システムでは、単一
フェーズの同期動作が、トランザクションの原子性を保
証する。すなわち、トランザクションが完了した場合、
回復マネージャは、このトランザクション中に生じたデ
ータベースへの全ての変更を永久化するように、かかる
サイトに要求し、これに応答して、かかるサイトは、単
一フェーズの間に、これらの変更をコミット又はバック
アウトするとともに、このコミット又はバックアウトを
回復マネージャへ報告するのである。
【0005】各々が一のデータベースをそれぞれ含み得
る、複数のサイトを包含する分散型データベース・シス
テムでは、一のトランザクションが複数のデータベース
の内容を変更せしめることがある。このようなシステム
では、このトランザクションに関係する全てのサイトが
その結果に合意した場合にのみ、原子性を保証すること
ができる。H. F. Korth 外が著作した刊行物の、"Datab
ase System Concepts", McGraw-Hill Book Company, Co
pyright 1986 に記述されているように、分散型データ
ベース・システムは、2フェーズのコミット・プロトコ
ルと呼ばれるトランザクション同期手続きを使用して、
原子性を保証することができる。この点に関連して、一
のトランザクションが一の実行サイトで正常に終了し且
つ一の回復マネージャが、全てのデータベース・サイト
に対し、このトランザクションに関係するデータベース
・アクセス動作をコミットするように要求するものと仮
定する。このプロトコルの第1のフェーズでは、関係す
る全てのデータベース・サイトが、コミットを準備する
ように要求される。これに応答し且つローカルの条件に
基づいて、これらのデータベース・サイトは、それぞれ
の動作をコミットするか又はバックアウトするかを個々
に判定する。次に、これらの判定結果が一の同期ロケー
ションへ通信され、そこで「投票」がカウントされる。
第2のフェーズでは、もし全てのサイトがコミットする
ことに投票すれば、一のコミット要求が発行され、これ
に応答して、かかる全てのサイトがそれぞれの動作をコ
ミットする。他方、任意のサイトがその動作をバックア
ウトすることに投票すれば、全てのサイトは、それぞれ
の動作をバックアウトするように命令されることにな
る。
【0006】
【発明が解決しようとする課題】複数のサイトを包含す
る分散型データベース・システムでは、そのうちの幾つ
かのサイトが2フェーズのコミット・プロトコルを利用
するのに対し、他のサイトは単一フェーズの動作だけを
遂行し得ることがある。以下、かかるシステムを「分散
型異種データベース・システム」と呼ぶ。かかる分散型
異種データベース・システムに特有の問題は、一のトラ
ンザクションが複数のサイトにおける更新動作を生ぜし
め得る、という点にある。すなわち、第1の更新サイト
が単一フェーズのコミット・プロトコルのみをサポート
し且つ第2のサイトが2フェーズのプロトコルをサポー
トするものと仮定すると、一方のサイトにおけるコミッ
トメントが他方のサイトにおけるバックアウトに先行す
る場合には、かかるコミットメントを取消すことができ
ないのである。この点に係る1つの解決法は、全てのケ
ースにおいて単一サイトのみを更新するように、各トラ
ンザクションを制限するというものである。しかしなが
ら、かかる解決法は、分散型システムに固有の柔軟性と
速度を犠牲にするという点で、望ましいとは言えない。
【0007】従って、分散型異種データベース・システ
ムの分野では、全てのサイトを2フェーズ動作へ移行さ
せないで複数サイトの更新動作を行うことができるよう
に、単一フェーズ及び複数フェーズのコミット処理を調
整することによって、トランザクションの原子性を保証
することが望ましい。前述の従来技術の問題点に徴し
て、本発明の第1番目の目的は、複数のサイトを有する
分散型異種データベース・システムにおいて、トランザ
クション処理を同期させるための方法を提供することに
ある。この第1番目の目的に関係する本発明の第2番目
の目的は、所定のトランザクションの間に複数の資源サ
イトにおける更新が要求されていない場合は、当該トラ
ンザクションの間に更新を行う最初の資源サイトへ更新
特権(privilege) が制限され、他方、当該トランザク
ションの間に複数の資源サイトにおける更新が要求され
ている場合は、複数フェーズのコミット処理によってサ
ポートされた資源サイトにのみ更新特権が付与される、
という制約を利用する方法を提供することにある。
【0008】
【課題を解決するための手段】本発明を実施するのに適
した、複数のサイトを有する分散型異種データベース・
システムは、トランザクション実行用の一のアプリケー
ション・プログラムを実行するためのプロセッサ及びア
プリケーションのトランザクション要求を転送し且つか
かるトランザクション要求に対する応答を受信するため
の一のアプリケーション・リクエスタ手続きを有する少
なくとも1つのアプリケーション・サイトを備えてい
る。また、このシステムには、少なくとも1つの第1の
資源サイト及び少なくとも1つの第2の資源サイトを含
む複数の資源サイトと、前記アプリケーション・サイト
及び前記複数の資源サイトを含む全てのサイト相互間の
通信を行うために当該全てのサイトを接続する通信手段
とが設けられている。前記第1の資源サイトの各々は、
一のデータベースと、単一フェーズのトランザクション
同期手続きの制御下で、トランザクション要求に応答し
てデータベース・アクセス動作を遂行するための一のデ
ータベース管理プロセッサ(第1の資源プロセッサ)
と、トランザクション要求を受信し且つかかるトランザ
クション要求に対する応答を転送するためのサーバ手段
とを有し、前記第2の資源サイトは、一のデータベース
と、複数フェーズのトランザクション調整手続きの制御
下で、トランザクション要求に応答してデータベース・
アクセス動作を遂行するための一のデータベース管理
ロセッサ(第2の資源プロセッサ)と、トランザクショ
ン要求を受信し且つかかるトランザクション要求に対す
る応答を転送するためのサーバ手段とを有している。
【0009】このようなシステム・コンテキストにおい
て、本発明の方法は、以下のステップを含んでいる。 (1)一の前記資源サイトにおける少なくとも1つのデ
ータベース・アクセス動作を含む一のトランザクション
を、前記アプリケーション・サイトにおいて実行するス
テップ。 (2)前記アプリケーション・サイトから一のトランザ
クション同期要求を発行し且つ当該トランザクション同
期要求を前記アプリケーション・リクエスタへ通信する
ステップ。 (3)前記第1の資源サイトのうち任意のものが当該ト
ランザクションの間にデータベース・アクセス動作を遂
行したか否かを、前記アプリケーション・リクエスタに
おいて判定するステップ。 (4)前記第1の資源サイトだけが当該トランザクショ
ンの間にデータベース・アクセス動作を遂行した場合
は、前記アプリケーション・リクエスタからかかるデー
タベース・アクセス動作を遂行した第1の資源サイトの
全てへトランザクション・コミット要求をそれぞれ通信
し、当該トランザクション・コミット要求に応答して、
かかるデータベース・アクセス動作を遂行した第1の資
源サイトの全てにおいて単一フェーズのトランザクショ
ン同期手続きをそれぞれ行うとともに、当該単一フェー
ズのトランザクション同期手続きのそれぞれの結果を前
記アプリケーション・サイトへ通信するステップ。 (5)前記第1の資源サイト及び第2の資源サイトが当
該トランザクションの間にデータベース・アクセス動作
を遂行した場合は、先ず、かかるデータベース・アクセ
ス動作を遂行した第2の資源サイトの全て及び前記アプ
リケーション・リクエスタへトランザクション・コミッ
ト要求をそれぞれ通信し、かかるデータベース・アクセ
ス動作を遂行した第2の資源サイトの全て及び前記アプ
リケーション・リクエスタを含めて、複数フェーズのト
ランザクション同期手続きを開始し、前記アプリケーシ
ョン・リクエスタからかかるデータベース・アクセス動
作を遂行した第1の資源サイトの全てへトランザクショ
ン同期要求をそれぞれ通信し、当該トランザクション同
期要求に応答して、かかるデータベース・アクセス動作
を遂行した第1の資源サイトの全てにおいて単一フェー
ズのトランザクション同期手続きをそれぞれ行い、当該
単一フェーズのトランザクション同期手続きのそれぞれ
の結果を前記アプリケーション・サイトへ通信し、次
に、前記複数フェーズのトランザクション同期手続きを
完了させ且つ当該複数フェーズのトランザクション同期
手続きの結果を前記アプリケーション・サイトへ通信す
るステップ。 (6)前記アプリケーション・サイトへ通信された前記
トランザクション同期手続きの結果に応答して、当該ト
ランザクションをコミットするか又はバックアウトする
ステップ。
【0010】本発明の方法は、以下の2つの制約に従っ
て実行される。 制約1:もし、アプリケーションが一のトランザクショ
ンの間に複数の資源サイトにおける更新を要求しなけれ
ば、当該トランザクションの間に更新を行う最初の資源
サイトへ単独の更新特権が付与される。 制約2:もし、アプリケーションが一のトランザクショ
ンの間に複数の資源サイトにおける更新を要求すれば、
複数フェーズのコミット処理を行うことができる資源サ
イトだけに更新特権が付与される。
【0011】
【実施例】図1は、本発明を実施するのに適した、分散
型異種データベース・システムの物理的アーキテクチャ
を示す。図示のように、このシステムは4つのサイトを
備えている。アプリケーション・サイト10では、IB
M社が提供する多重仮想記憶(MVS)オペレーテイン
グ・システムを搭載したエンタープライズ・システム
(ES)9000型のメインフレーム・コンピュータ
が、トランザクション実行用のアプリケーション・プロ
グラム、すなわちIBM社が提供する周知の「データベ
ース2」製品のようなデータベース管理システム(DB
MS)を介して、直接アクセス記憶装置(DASD)上
の一のデータベースをアクセスするアプリケーション・
プログラムを実行する。アプリケーション・サイト10
は、これと同様の構成を有する他の資源サイト12、1
4及び16と通信を行うことができるように、そのデー
タ通信サービス手段(DC)及び通信設備(COMM
S)18を通して、前者の資源サイトに対応するデータ
通信サービス手段(DC)へそれぞれ結合されている。
アプリケーション・サイト10におけるトランザクショ
ン実行用のアプリケーション・プログラムは、例えば周
知のLU6.2アーキテクチャ拡張機能で実現されてい
る「ピア・ツー・ピア」(peer-to-peer)プロトコルを
利用する、周知のシステム・アプリケーション・アーキ
テクチャ(SAA)又はシステム・ネットワーク・アー
キテクチャ(SNA)のような標準的なシステム・イン
タフェースを通して、資源サイト12、14及び16の
データベースをそれぞれアクセスすることができる。
【0012】図2は、本発明を実施するのに適した、代
替的な分散型異種データベース・システムの物理的アー
キテクチャを示す。同図中のアプリケーション・サイト
20は、例えばIBM社が提供するOS/2型のオペレ
ーテイング・システムをそれぞれ搭載し且つ通常のトー
クン・リング・アーキテクチャを通して互いにリンクさ
れる、PS/2型のパーソナル・コンピュータ(PC)
22−24を含んでいる。トランザクション実行用のア
プリケーション・プログラムを実行する第1のパーソナ
ル・コンピュータ22は、通常のデータベース・マネー
ジャ(DBM)21も搭載している。第2のパーソナル
・コンピュータ23が、第1のパーソナル・コンピュー
タ22のアプリケーション・プログラムに対するアプリ
ケーション・サーバとして機能するのに対し、第3のパ
ーソナル・コンピュータ24は、データベース・アクセ
ス要求及びその応答を通信設備(COMMS)30を通
して資源サイト27−29と授受するための分散型デー
タ接続サービス手段(DDCS)25を備えた、ゲート
ウェイ装置として動作する。
【0013】第1の資源サイト27は、例えばエンター
プライズ・システム(ES)9000型のメインフレー
ム・コンピュータを備え、これは多重仮想記憶(MV
S)オペレーテイング・システムの下で動作して、直接
アクセス記憶装置(DASD)上の一のデータベースを
アクセスするために「データベース2」製品のような、
データベース管理システム(DBMS)を実行する。分
散型データ接続サービス手段25と第1の資源サイト2
7中にあるデータ通信サービス手段(DC)との間で
は、ピア・ツー・ピア通信が行われる。第2の資源サイ
ト28は、例えばIBM社が提供するOS/400型オ
ペレーテイング・システムの下で動作するAS/400
型の中規模コンピュータを備え、これはアプリケーショ
ンの開発及び待ち行列管理を行うためにSQL/400
プリコンパイラを含むことができる。アプリケーション
・サイト20と第2の資源サイト28との間のピア・ツ
ー・ピア通信は、分散型データ接続サービス手段25と
第2の資源サイト28中にあるデータ通信サービス手段
とによって行われる。第3の資源サイト29は、例えば
周知の仮想計算機(VM)オペレーテイング・システム
の下で動作するエンタープライズ・システム(ES)9
000型のメインフレーム・コンピュータを含み、これ
はIBM社が提供するSQL/VSのようなデータベー
ス管理システムを実行する。アプリケーションサイト2
0と第3の資源サイト29との間のピア・ツー・ピア通
信は、分散型データ接続サービス手段25と第3の資源
サイト29中にあるデータ通信サービス手段とによって
行われる。
【0014】図3は、本発明を実施するのに適した、分
散型異種データベース・システムの論理的アーキテクチ
ャを示す。同図中のアプリケーション・サイト300で
は、トランザクション実行用のアプリケーション・プロ
グラム(APPL)302が、通常のトランザクション
指向データベースを動作させるためのデータベース言語
インタフェース(DBLIF)303に関連して実行さ
れる。アプリケーション・プログラム302及びデータ
ベース言語インタフェース303は、これらに代わって
複数の分散型データベース資源へ要求を転送したり、か
かる分散型データベース資源からの応答を受信する、ア
プリケーション・リクエスタ304によってサービスさ
れる。ネットワーク通信サービス手段(NET COM
MS)305は、当該分散型データベースシステムの複
数の資源サイトに対し、一のデータ通信インタフェース
を提供する。ネットワーク通信サービス手段305は、
論理装置(LU)ピア相互間の論理的接続(セション)
を与えることが望ましい。更に、アプリケーション・サ
イト300は、動作用サービスの一部として、論理イン
タフェース308及び309を有するような同期点マネ
ージャ(SPM)306を含んでいる。論理インタフェ
ース308は、同期点マネージャ306とアプリケーシ
ョン・プログラム302との間にあり、アプリケーショ
ン・リクエスタ304がアプリケーション・プログラム
302の代わりに活動する場合は、同期点マネージャ3
06とアプリケーション・リクエスタ304との間にも
ある。このため、論理インタフェース308は、「同期
点マネージャ−アプリケーション」インタフェース(S
PM−APPL INTF)と呼ばれる。論理インタフ
ェース309について言えば、その一方は同期点マネー
ジャ306の側にあり、他方はアプリケーション・リク
エスタ304及びネットワーク通信サービス手段305
の側にある。このため、論理インタフェース309は、
「同期点マネージャ−資源マネージャ」インタフェース
(SPM−RM INTF)と呼ばれる。
【0015】アプリケーション・リクエスタ304は、
アプリケーション・プログラム302を有する一のプロ
セッサで実行されるような一の手続きであって、資源マ
ネージャ(RM)として取扱われる。回復マネージャと
も呼ばれる同期点マネージャ306は、前述の2フェー
ズのコミット手続きによって種々の分散型資源相互間の
コミット及びバックアウト動作を調整する、動作環境の
1構成要素である。同期点マネージャ306が存在する
と、「同期点マネージャ−資源マネージャ」インタフェ
ース309を使用するアプリケーション・サイト300
上の全ての資源が「保護資源」となるのに対し、同期点
マネージャ306へのアクセスを持たない資源は「非保
護資源」となる。同期点マネージャ306は、論理装置
(LU)ピアと通信する。本発明において、同期点マネ
ージャ306のピアは、これとセションを行うことがで
きるような、他の同期点マネージャ、アプリケーション
・リクエスタ304及び他の任意の資源マネージャであ
る。
【0016】図3のシステムが分散型異種データベース
・システムと呼ばれる所以は、資源サイト320及び3
30が非保護資源サイト(保護されていない資源サイ
ト)となるのに対し、資源サイト340及び350は保
護サイト(保護されている資源サイト)となるという点
にある。非保護サイトの論理的アーキテクチャは、実質
的に同等であって、一のアプリケーション・サーバと、
一のデータベース管理システム(DBMS)と、一のネ
ットワーク通信サービス手段(NET COMMS)と
を含んでいる。データベース管理システム322及び3
32の各々は、アプリケーション・プログラム302が
発行するトランザクション要求に応答してデータベース
・アクセス動作を行うとともに、これらの動作を単一フ
ェーズのコミット・プロトコルによってトランザクショ
ン活動と同期させることができる。保護資源サイト34
0及び350のアーキテクチャも実質的に同等であっ
て、一のアプリケーション・サーバと、一のデータベー
ス管理システムと、一のネットワーク通信サービス手段
と、一の同期点マネージャとを含んでいる。かかる同期
点マネージャとネットワーク通信サービス手段及びデー
タベース管理システムを含む資源マネージャとの間に
は、「同期点マネージャ−資源マネージャ」インタフェ
ースが設けられ、またかかる同期点マネージャとアプリ
ケーション・サーバとの間には、「同期点マネージャ−
アプリケーション」インタフェースが設けられる。通信
設備(COMMS)360は、広域ネットワーク(WA
N)又はローカル・エリア・ネットワーク(LAN)の
ような通常のアーキテクチャを利用して、アプリケーシ
ョン・サイト300と複数の資源サイト320−350
とを相互接続する。
【0017】分散型データベース・システム(必ずしも
異種ではない)の詳細を理解するには、IBM社から発
行されている以下の刊行物を参照されたい。 1.System Application Architecture - Common Progr
amming Interface Re-source Recovery Reference, For
m No. SC31-6821-00, Copyright 1991; 2.Distributed Data Library - Distributed Relatio
nal Database Archit-ecture Reference, Form No. SC2
6-4651-00, Copyright 1991; 3.System Network Architecture - LU6.2 Reference:
Peer Protocols, Fo-rm No. SC31-4808, Copyright 19
91。
【0018】図4は、アプリケーション・サイト300
と、保護資源サイト340及び350並びに非保護資源
サイト320及び330との相互接続を包含する、論理
的構成を一層詳細に示す。アプリケーション・リクエス
タ304は、前掲のIBM社発行の刊行物(Form No. S
C26-4651-00)で記述されている分散型リレーショナル
・データベース・アーキテクチャを実現した、現用製品
に見い出されるような全てのリクエスタ機能を含むこと
が望ましい。更に、本発明を実現するため、アプリケー
ション・リクエスタ304は、一のモニタ・プロセス3
04aと、一のコミット・プロセス304bと、一の資
源テーブル304cとを含んでいる。アプリケーション
・リクエスタ304とアプリケーション・プログラム3
02との間のアプリケーション・インタフェース304
dは、アプリケーション・プログラム302から、一の
トランザクションの間に複数の資源が更新可能であるか
否かを表示する「複数更新」信号を受信する。アプリケ
ーション・プログラム302及びアプリケーション・リ
クエスタ304は、コール/応答プロトコルによってプ
ロセス間通信を行う。同様のプロセス間通信は、アプリ
ケーション・プログラム302と同期点マネージャ30
6との間、ネットワーク通信サービス手段305が提供
する保護会話を介しての同期点マネージャ306と保護
資源サイト340及び350との間、「同期点マネージ
ャ−資源マネージャ」インタフェース309を通しての
同期点マネージャ306とアプリケーション・リクエス
タ304との間、そしてアプリケーション・リクエスタ
304と非保護資源サイト320及び330との間にそ
れぞれ与えられる。更に、アプリケーション・リクエス
タ304は、アプリケーション・プログラム302に代
わって、「同期点マネージャ−アプリケーション」イン
タフェース308を通して同期点マネージャ306へ一
のコールを発行することができる。
【0019】<モニタ・プロセス> アプリケーション・リクエスタ304のモニタ・プロセ
ス304aは、どの資源が「更新」動作を行うことを許
容され、どの資源が「読取」動作のみに制限されるかと
いう制約を実現することによって、分散型異種データベ
ース・システムの環境を設定及びモニタする。これらの
制約は、次の通りである。 制約1:もし、アプリケーション・プログラム302が
所定のトランザクションの間に複数の資源サイトにおけ
更新を要求しなければ(この場合には、図4の「複数
更新」信号がセットされない)、当該トランザクション
の間に更新を行う最初の資源サイトへ排他的な更新特権
が付与される。 制約2:もし、アプリケーション・プログラム302が
所定のトランザクションの間に複数の資源サイトにおけ
更新を要求すれば(この場合には、図4の「複数更
新」信号がセットされる)、当該トランザクション に関
係する保護資源サイトだけに更新特権が付与される。
【0020】かくて、アプリケーション・リクエスタ3
04へ与えられる「複数更新」信号は、このアプリケー
ション・リクエスタ304が正しい制約を適用すること
を可能にする。本発明の実施例では、一のトランザクシ
ョンが同期点マネージャの制御下になければ、前述の制
約1が適用される。この制約1に従属するトランザクシ
ョンは、任意のトランザクションの間に、唯1つの資源
サイトだけが更新を行うことを許容する。この制限事項
は、かかるトランザクションの原子性を保証するために
必要となるものである。他方、前述の制約2は、同期点
マネージャの制御下にあるトランザクション用のもので
あって、かかるトランザクションの間に複数の資源が更
新を行うことを許容する。この制約2中に暗示されてい
る制限事項とは、更新動作を許容される資源サイトだけ
が同期点マネージャのサポートを有し且つかかるサポー
トを使用しなければならない、というものである。他の
全ての資源サイトは、読取専用動作に制限される。
【0021】一のアプリケーションが複数の資源サイト
を更新中であるか否かという点については、本発明はこ
れを定義しない。本発明が必要とするのは、この情報が
アプリケーション・プログラム302のような或る環境
源によってアプリケーション・リクエスタ304へ供給
される、ということだけである。アプリケーション・リ
クエスタ304は分散型トランザクション用のアプリケ
ーション・プログラムを代表し、そして全ての分散型ト
ランザクション要求はこのアプリケーション・リクエス
タ304を通して取扱われるから、本発明に従ったアプ
リケーション・リクエスタ304は、トランザクション
がその多様な動作を適正に同期させ得ることを保証する
ように、環境をモニタしなければならない。
【0022】アプリケーション・リクエスタ304は、
一の分散型応答メッセージによって環境をモニタするこ
とができる。一のトランザクション要求に応答する任意
の資源サイトは、かかるメッセージを介して、当該資源
サイトがその最初の更新要求を受信する時間及び当該ト
ランザクション中に更新実行要求を再び受信する場合は
その任意の受信時間を、アプリケーション・リクエスタ
304に通知する。アプリケーション・リクエスタ30
4は、かかる情報を資源テーブル304cへ収集し、ど
の資源サイトが更新を許容されているかということを追
跡し、全ての資源サイトに関し信頼性のある同期化コミ
ットを妨げるような一の更新が生ずる場合には、当該ト
ランザクションをバックアウトするのである。
【0023】以下の表1ないし表4は、前述の制約1の
下での、モニタ・プロセスを示す。これらの表は、図4
に示す資源テーブル304cの相次ぐインスタンス
(instantiation )であり、その最初の4欄がモニタ・
プロセスに関係する。最初に、表1では、一の資源サイ
ト(RS)が一のトランザクション中に拘束(engage)
される際、この資源サイトが第1の欄で識別される。一
の資源サイトが最初のトランザクション要求に応答する
場合、この資源サイトは、これが保護されているか否か
という信号も与える。かくて、表1ないし表4の第2欄
を見ると、関係する3つの資源サイトはいずれも保護さ
れていないことが判る。これらの表の第3欄は、それぞ
れの資源サイトから受信された更新メッセージをログす
る。この点に関し、一の資源サイトが一の更新要求」
メッセージを受信するたびに、この資源サイトは、アプ
リケーション・リクエスタ304に対し、一の「更新要
求済み」メッセージで応答する。かかるメッセージのう
ち最初のものが第2の資源サイト(RS2)から受信さ
れて、表2の第3欄へ記入される。その後に、第2の
資源サイト(RS2)の更新を許容し且つ第1及び第3
の資源サイト(RS1、RS3)が更新を許容されてい
ないことを表示するように、表2の第4欄中の値がそれ
ぞれ変更される。この段階で、アプリケーション・リク
エスタ304が第1の資源サイト(RS1)又は第3の
資源サイト(RS3)から一の「更新要求済み」メッセ
ージを受信する場合、アプリケーション・リクエスタ3
04は、当該トランザクション全体のバックアウトを開
始する。一方、当該トランザクションについて一の「コ
ミット」コマンドが発行された場合は、かかるコミット
処理の成功に応じて、表3及び表4に示すように資源テ
ーブル304cの第3欄及び第4欄の内容が変わる。こ
のコミット処理については、以下で詳述する。
【0024】
【表1】
【0025】
【表2】
【0026】
【表3】
【0027】
【表4】
【0028】以下に掲げる表5及び表6は、制約2の下
での、資源テーブル304cの状態を示す。これらの表
では、保護された第3及び第4の資源サイト(RS3、
RS4)だけが更新を許容されているので、これらの資
源サイトは表6に暗示されているように更新を同時に行
うことができる。表7は、システム設計及び操作上の要
件に沿った特別の状況を示す。この点について説明を補
足すると、アプリケーション・リクエスタ304が第1
の非保護資源サイト(RS1)から一の「更新要求済
み」メッセージを受信する場合、アプリケーション・リ
クエスタ304は、保護資源サイトを含む他の全ての資
源サイトが更新を行うことを禁止する。このように、単
一及び複数フェーズのトランザクション同期手続きが同
時に発生するのを防止することにより、原子性が維持さ
れるのである。
【0029】
【表5】
【0030】
【表6】
【0031】
【表7】
【0032】図5は、本発明のアプリケーション・リク
エスタ304で行われるモニタ・プロセスを示す流れ図
である。最初に、図4に示す「複数更新」信号の状態
を、ステップ500で調べる。もし、この信号がセット
されていなければ、判定ステップ500の否定出口を通
してステップ501に至り、そこで前述の制約1の下の
更新要求メッセージが資源テーブル304cによっ
てモニタされ、次のステップ502で、最初の更新元が
資源テーブル304c中にマークされる。後続のステッ
プ503では、当該トランザクションの処理中に資源テ
ーブル304cを参照して、データベース・アクセス動
作がモニタされる。ここで、他の全ての資源サイトが
「更新要求済み」メッセージを発行していないという通
常の動作を仮定すると、このプロセスは、当該トランザ
クションをコミットするようにコマンドが発行されるま
で、判定ステップ503及び504を通してループす
る。ステップ506では、トランザクション同期処理が
行われる。更新を禁止されている一の資源サイトが新た
に一の更新要求メッセージを受信したことを通知す
る場合、アプリケーション・リクエスタ304は、判定
ステップ503の肯定出口を通してステップ507に至
り、このステップで「バックアウト」要求を発行する。
かくて、ステップ506でトランザクション同期処理が
開始してバックアウトが行われることになる。
【0033】複数の更新が許容される場合、判定ステッ
プ500の肯定出口を通してステップ508に至り、そ
こで当該トランザクションがアンフォールドする際に資
源テーブル304cへのエントリが行われ、ステップ5
09では、「更新要求」メッセージがマークされ、次の
ステップ510で、非保護資源サイト320又は330
による更新の試行を検知する場合は、ステップ510の
肯定出口を通してステップ507に至り、そこで「バッ
クアウト」要求が行われる。前述の制約2によって許容
された動作を仮定すると、アプリケーション・リクエス
タ304は、当該トランザクションをコミットする一の
コマンドが発行されるまで、ステップ510及び511
を通してループする。この時点で、判定ステップ511
の肯定出口を通してステップ506に至り、そこでトラ
ンザクション同期処理が行われることになる。
【0034】資源サイトのアプリケーション・サーバ
321、331、341及び351(図3)の観点から
すると、各サーバがアプリケーション・サイト300か
ら一のデータベース・アクセス要求を受信する場合、当
該サーバは、この要求を処理し、その結果をバッファ
る。一のアクセスが一の更新に帰着する場合であって、
しかもこのトランザクションについて先の更新表示が戻
されていない場合には、当該サーバは、一の更新表示を
バッファし、このバッファの内容をアプリケーション・
リクエスタ304へ伝送する。
【0035】<コミット・プロセス>アプリケーション
・リクエスタ304のコミット・プロセス304bは、
分散型異種データベース・システムにおける「コミッ
ト」及び「バックアウト」シーケンシングによって、ト
ランザクション同期処理を行うための複数のプロトコル
を実現する。これらのプロトコルは、生じなければなら
ない一連のアクションを包含する。正確なシーケンス
は、アプリケーション・プログラム302からの最初の
「コミット」又は「バックアウト」コマンドの目標に依
存する。かかる最初の「コミット」又は「バックアウ
ト」コマンドについては、以下に示す3つの可能な目標
が存在する。 1. アプリケーション・サイト300の同期点マネー
ジャ306; 2. アプリケーション・リクエスタ304; 3. 資源サイト320−350の1つ。
【0036】もし、その目標がアプリケーション・サイ
ト300の同期点マネージャ306であれば、この同期
点マネージャ306は、全ての保護資源サイト340及
び350、アプリケーション・リクエスタ304及び同
期点マネージャ306が当該トランザクションの間に取
扱った他の任意の資源管理ピアを包含する、トランザク
ション同期手続きを調整する。この点に関連して説明を
補足すると、アプリケーション・リクエスタ304は、
同期点マネージャ306に対し、当該トランザクション
に関係する一の資源サイトとして特定されるから、これ
は2フェーズのコミット・プロセスの間に拘束されるこ
とになる。
【0037】もし、一の「コミット」又は「バックアウ
ト」要求の目標がアプリケーション・リクエスタ304
であれば、アプリケーション・プログラム302に代わ
って作動しているアプリケーション・リクエスタ304
が、同期点マネージャ306に接触して、2フェーズの
コミット処理を開始することができる。モニタ・プロセ
ス304aが前述の制約2を実現している場合のよう
に、当該トランザクションが同期点マネージャ306の
制御下にあれば、アプリケーション・リクエスタ304
は同期点マネージャ306に接触するに過ぎない。この
場合、同期点マネージャ306は、アプリケーション・
リクエスタ304が2フェーズのコミット処理に関与す
るように、これを拘束する。
【0038】もし、一の「コミット」又は「バックアウ
ト」要求の目標が一の資源サイトであれば、この資源サ
イトは、トランザクション同期処理を開始しない。その
代わり、この資源サイトは、アプリケーション・リクエ
スタ304に対し、一の「コミット」又は「バックアウ
ト」が要求されたことを、「コミット要求済み」又は
「バックアウト要求済み」メッセージの形式で通知す
る。この場合、アプリケーション・リクエスタ304
は、これがあたかも要求されたアクションの目標であっ
たかの如く、前記と同じ手続きに従う。
【0039】本発明の基礎をなす本発明者の重要な知見
とは、分散型異種データベースシステムでは、(非保
護)資源サイトで行われる単一フェーズのトランザクシ
ョン同期動作を2フェーズのコミット処理と統合化する
ことができるが、そうするためには、この2フェーズの
コミット処理中にアプリケーション・リクエスタ304
が全ての非保護資源サイトを代表し得ることが条件とな
る、というものである。このことに関連して言えば、2
フェーズのコミット処理が開始される場合、その第1フ
ェーズの間に、アプリケーション・リクエスタ304
は、全ての非保護資源サイト320、330がコミット
することを求めるとともに、これらの非保護資源サイト
からの応答に従って2フェーズのコミット処理の間に投
票を行う。もし全ての非保護資源320、330がコミ
ットすれば、アプリケーション・リクエスタ304は、
第1フェーズの間にコミットするように投票する。他
方、もし任意の非保護資源サイト320又は330がバ
ックアウトするのであれば、アプリケーション・リクエ
スタ304は、第1フェーズの間にバックアウトするよ
うに投票する。前記した制約2の推奨モードでは、どの
非保護資源サイトも、更新を行うことを許容されない。
従って、もしアプリケーション・リクエスタ304が第
1フェーズの間にコミットするように投票し且つ一の保
護資源サイト340又は350がバックアウトするよう
に投票するのであれば、どの非保護資源サイトも、一の
コミット済み更新をバックアウトする必要はない。
【0040】以下にリストする1組のシーケンスは、ア
プリケーション・プログラム302からの一の「コミッ
ト」又は「バックアウト」コマンドの目標に依存して、
一のトランザクションをコミット又はバックアウトする
ステップを記述するものである。かかる10個のシーケ
ンスを以下に示す。
【0041】1.アプリケーション・サイト300の同
期点マネージャ(SPM)306を目標とするコミッ
ト; 2.制約2の下で、一の資源サイトを目標とするコミッ
ト; 3.制約1の下で、一の資源サイトを目標とするコミッ
ト; 4.制約2の下で、アプリケーション・リクエスタ30
4を目標とするコミット; 5.制約1の下で、アプリケーション・リクエスタ30
4を目標とするコミット; 6.アプリケーション・サイト300の同期点マネージ
ャ(SPM)306を目標とするバックアウト; 7.制約2の下で、一の資源サイトを目標とするバック
アウト; 8.制約1の下で、一の資源サイトを目標とするバック
アウト; 9.制約2の下で、アプリケーション・リクエスタ30
4を目標とするバックアウト; 10.制約1の下で、アプリケーション・リクエスタ3
04を目標とするバックアウト。
【0042】これらのシーケンスの詳細を、以下に提示
する。各シーケンスの後にあるコメントは、当該シーケ
ンス期間中の各ステップに対応するものである。これら
のシーケンスは正常なフロー・シーケンスであって、ト
ランザクション同期処理を妨げるようなエラーが生じな
いことを仮定している。本発明は、「バックアウト」コ
マンドに帰着するような諸条件を説明する。同期点マネ
ージャ306のアクションは通常のものであるから、そ
の詳細を省略する。説明の便宜上、アプリケーション・
リクエスタ304を「リクエスタ」と略称し、同期点マ
ネージャ306を「SPM」と、資源サイトを「資源」
と、アプリケーション・プログラム302を「アプリケ
ーション」と、2フェーズの処理を「同期点処理」とそ
れぞれ略称する。2フェーズのコミット処理について
は、コミットに対する通知を「コミット要求」と称し、
コミット完了を「コミット済み」と称し、バックアウト
完了を「バックアウト済み」と称する。
【0043】1.アプリケーション・サイトのSPMを
目標とするコミット: 1.アプリケーションはSPMにコミットするよう要請
する。 2. SPMはリクエスタにコミットを準備するよう要
請する。SPMは全ての保護資源にコミットを準備する
よう要請する。 3. リクエスタは全ての非保護資源にコミットする
よう要請する。全ての非保護資源がコミットし、リクエ
スタに応答する。 4. リクエスタがコミット要求でSPMに応答する。
全ての保護資源がコミット要求でSPMに応答する。 5. SPMはリクエスタにコミットするよう要請す
る。SPMは全ての保護資源にコミットするよう要請す
る。 6. リクエスタがコミット済みでSPMに応答する。
全ての保護資源がコミット済みでSPMに応答する。 7.SPMがOKをアプリケーションへ返送する。
【0044】<コメント> 1.アプリケーションはSPMに対し、トランザクショ
ンをコミットするよう要請する。 2.同期点処理が開始する。2フェーズのコミット・プ
ロトコルの第1フェーズの間、SPMはこのトランザク
ションについて登録された全ての資源に対し、このトラ
ンザクションをコミットする準備を行うように要請す
る。リクエスタはこのトランザクションについて登録さ
れているから、このリクエスタへの接触が行われる。リ
クエスタはこれらの非保護資源を代表する。SPMは、
これが必要とする順序で、これらの資源及びリクエスタ
に要請することができる。例えば、SPMは、リクエス
タより前にこれらの保護資源に要請することができる。
SPMが複数の資源を登録し且つこれらの登録済みの資
源に接触する順序は、本発明には無関係である。 3.リクエスタはこの準備を受信し、これらの非保護資
源をコミットするため資源に特有のプロトコルを使用す
る。非保護資源の各々はコミットした後に、リクエスタ
に対し、当該資源における当該トランザクションのステ
ータスで応答する。 4.リクエスタはこれらの非保護資源からの諸応答を受
信し、そして全ての資源が当該トランザクションをコミ
ットした場合、リクエスタはSPMに対し、当該トラン
ザクションの一のコミット要求で応答する。さもなけれ
ば、リクエスタは一のバックアウトを要求する。SPM
は、複数の保護資源からの諸応答をも受信する。 5.2フェーズのコミット・プロトコルの第2フェーズ
の間、SPMはこれらの保護資源及びリクエスタに対
し、コミットするように要請する。 6.リクエスタはSPMに応答して、当該トランザクシ
ョンがコミット済みであることを表示する。またSPM
は、これらの保護資源からの応答を受信する。 7.同期点処理が完了する場合、SPMが諸結果をアプ
リケーションへ返送する。
【0045】2.制約2の下で、一の資源を目標とする
コミット: 1.アプリケーションが一の資源にコミットするよう要
請する。 2. この資源がリクエスタにコミット要求済みの表示
で応答する。 3. リクエスタはSPMにコミットするよう要請す
る。(前記シーケンス1のステップ2−6参照) 9. SPMがリクエスタにOKで応答する。 10.リクエスタがアプリケーションに当該トランザク
ションのステータスで応答する。
【0046】<コメント> 1.アプリケーションは一の資源に対し、当該トランザ
クションをコミットするように要請する。 2.この資源はコミットしないで、コミット要求済みの
表示をリクエスタに返送する。 3.リクエスタはコミット要求済みの表示を受信し、ア
プリケーションに代わり、SPMに対しトランザクショ
ンをコミットするように要請する。(前記シーケンス1
のステップ2−6に関するコメント参照) 9.同期処理が完了すると、SPMが諸結果をリクエス
タへ返送する。 10.リクエスタがこれらの結果をアプリケーションへ
返送する。
【0047】3.制約1の下で、一の資源を目標とする
コミット: 1.アプリケーションは一の資源にコミットするよう要
請する。 2. この資源がリクエスタにコミット要求済みの表示
で応答する。 3. リクエスタは全ての非保護読取専用資源にコミッ
トするよう要請する。 4. 全ての非保護読取専用資源がコミットし且つリク
エスタに応答する。 5. リクエスタは非保護更新資源にコミットするよう
要請する。 6. この非保護更新資源がコミットし且つリクエスタ
に応答する。 7.リクエスタがアプリケーションに当該トランザクシ
ョンのステータスで応答する。
【0048】<コメント> 1.アプリケーションは、一の資源に対し、当該トラン
ザクションをコミットするように要請する。 2.この資源はコミットせずに、コミット要求済みの表
示をリクエスタに返送する。 3.リクエスタは、全ての非保護読取専用資源に対しコ
ミットするように要請するため、資源に特有のプロトコ
ルを使用する。これらの非保護読取専用資源がコミット
し且つリクエスタにこれらの資源における当該トランザ
クションのステータスで応答する。 4.リクエスタは、非保護更新資源に対し、コミットす
るように要請する。この非保護更新資源がリクエスタに
応答する。 5.リクエスタが諸結果をアプリケーションへ返送す
る。
【0049】4.制約2の下で、リクエスタを目標とす
るコミット: 1.アプリケーションはリクエスタにコミットするよう
要請する。 2. リクエスタはSPMにコミットするよう要請す
る。(前記シーケンス1のステップ2−6参照) 8. SPMがリクエスタに最初のコミットに対するO
Kで応答する。 9.リクエスタがアプリケーションに当該トランザクシ
ョンのステータスで応答する。
【0050】<コメント> 1.アプリケーションはリクエスタに対し、当該トラン
ザクションをコミットするように要請する。 2.リクエスタは、アプリケーションに代わって、SP
Mに対しコミットするように要請する。(前記シーケン
ス1のステップ2−6に関するコメントを参照) 8.同期点処理が完了すると、SPMが諸結果をリクエ
スタに返送する。 9.リクエスタがこれらの結果をアプリケーションへ返
送する。
【0051】5.制約1の下で、リクエスタを目標とす
るコミット: 1.アプリケーションはリクエスタにコミットするよう
要請する。 2. リクエスタは全ての非保護読取専用資源にコミッ
トするよう要請する。全ての非保護読取専用資源がコミ
ットし且つリクエスタに応答する。 3. リクエスタは非保護更新資源にコミットするよう
要請する。この非保護更新資源がコミットし且つリクエ
スタに応答する。 4. リクエスタがアプリケーションに当該トランザク
ションのステータスで応答する。
【0052】<コメント> 1.アプリケーションはリクエスタに対し、当該トラン
ザクションをコミットするように要請する。 2.リクエスタは、全ての非保護読取専用資源に対しコ
ミットするように要請するため、資源に特有のプロトコ
ルを使用する。これらの非保護読取専用資源がコミット
し且つリクエスタに対し、これらの資源における当該ト
ランザクションのステータスで応答する。 3.リクエスタは非保護更新資源に対し、コミットする
ように要請する。この非保護更新資源がリクエスタに応
答する。 4.リクエスタが諸結果をアプリケーションへ返送す
る。
【0053】6.アプリケーション・サイトのSPMを
目標とするバックアウト: 1.アプリケーションはSPMにバックアウトするよう
要請する。 2. SPMはリクエスタにバックアウトするよう要請
する。SPMは全ての保護資源にバックアウトするよう
要請する。 3. リクエスタは全ての非保護資源にバックアウト
するよう要請し、全ての非保護資源がバックアウトし、
そしてリクエスタに応答する。 4. リクエスタがSPMにバックアウト済みで応答
し、全ての保護資源がSPMにバックアウト済みで応答
する。 5.SPMがアプリケーションにOKを返送する。
【0054】<コメント> 1.アプリケーションはSPMに対し、当該トランザク
ションをバックアウトするように要請する。 2.バックアウト処理が開始する。SPMは当該トラン
ザクションのために登録された全ての資源に対し、バッ
クアウトするように要請する。リクエスタは当該トラン
ザクションのために登録されているから、リクエスタへ
の接触が行われる。SPMは、これが必要とする順序
で、これらの資源及びリクエスタに要請することができ
る。例えば、SPMはリクエスタより前にこれらの保護
資源に要請することができる。SPMが登録された諸資
源に接触する順序は、本発明に無関係である。 3.リクエスタがバックアウトを受信し、そしてこれら
の非保護資源をバックアウトするため、資源に特有のプ
ロトコルを使用する。 4.リクエスタはこれらの非保護資源からの諸応答を受
信し、SPMに対しバックアウト済みで応答する。 5.同期点処理が完了する場合、SPMが諸結果をアプ
リケーションへ返送する。
【0055】7.制約2の下で、一の資源を目標とする
バックアウト: 1.アプリケーションは一の資源にバックアウトするよ
う要請する。 2. この資源がリクエスタにバックアウト要求済みの
表示で応答する。 3. リクエスタはSPMにバックアウトするよう要請
する。(前記シーケンス6のステップ2−4参照) 7. SPMがリクエスタにバックアウトに対するOK
で応答する。 8.リクエスタがアプリケーションに当該トランザクシ
ョンのステータスで応答する。
【0056】<コメント> 1.アプリケーションは一の資源に対し、当該トランザ
クションをバックアウトするように要請する。 2.この資源はバックアウトせずに、リクエスタにバッ
クアウト要求済みの表示を返送する。 3.リクエスタがバックアウト要求済みの表示を受信
し、SPMに対し当該トランザクションをバックアウト
するように要請する。(前記シーケンス6のステップ2
−4に関するコメント参照) 7.バックアウト処理が完了すると、SPMがリクエス
タへOKを返送する。8.リクエスタが諸結果をアプリ
ケーションへ返送する。
【0057】8.制約1の下で、一の資源を目標とする
バックアウト: 1.アプリケーションは一の資源にバックアウトするよ
う要請する。 2. この資源がリクエスタにバックアウト要求済みの
表示で応答する。 3. リクエスタは全ての非保護資源にバックアウトす
るよう要請し、これらの全ての非保護資源がバックアウ
トして、リクエスタに応答する。 4.リクエスタがアプリケーションに当該トランザクシ
ョンのステータスで応答する。
【0058】<コメント> 1.アプリケーションは一の資源に対し、当該トランザ
クションをバックアウトするように要請する。 2.この資源はバックアウトせずに、リクエスタにバッ
クアウト要求済みの表示を返送する。 3.リクエスタはバックアウト要求済みの表示を受信
し、これらの非保護資源をバックアウトするため、資源
に特有のプロトコルを使用する。これらの非保護資源が
バックアウトし、リクエスタにこれらの資源における当
該トランザクションのステータスで応答する。
【0059】4.リクエスタがアプリケーションに諸結
果を返送する。
【0060】9.制約2の下で、リクエスタを目標とす
るバックアウト: 1.アプリケーションはリクエスタにバックアウトする
よう要請する。 2. リクエスタはSPMにバックアウトするよう要請
する。(前記シーケンス6のステップ2−4参照) 6. SPMがリクエスタにバックアウト・コールに対
するOKで応答する。 7.リクエスタがアプリケーションに当該トランザクシ
ョンのステータスで応答する。
【0061】<コメント> 1.アプリケーションはリクエスタに対し、当該トラン
ザクションをバックアウトするように要請する。 2.リクエスタはSPMに対し、バックアウトするよう
に要請する。
【0062】(前記シーケンス6のステップ2−4に関
するコメント参照) 6.バックアウト処理が完了する場合、SPMがリクエ
スタに諸結果を返送する。
【0063】7.リクエスタがアプリケーションにこれ
らの結果を返送する。
【0064】10.制約1の下で、リクエスタを目標と
するバックアウト: 1.アプリケーションはリクエスタにバックアウトする
よう要請する。 2. リクエスタは全ての非保護資源にバックアウトす
るよう要請する。 3.リクエスタがアプリケーションに当該トランザクシ
ョンのステータスで応答する。
【0065】<コメント> 1.アプリケーションはリクエスタに対し、当該トラン
ザクションをバックアウトするように要請する。 2.リクエスタは、これらの非保護資源をバックアウト
するため、資源に特有のプロトコルを使用する。これら
の非保護資源がバックアウトし、リクエスタに対し、こ
れらの資源における当該トランザクションのステータス
で応答する。 3.リクエスタがアプリケーションに諸結果を返送す
る。
【0066】制約1の下でアプリケーション・リクエス
タ304がトランザクション同期処理を行う任意の時間
に、アプリケーション・リクエスタ304は資源テーブ
ル304cを使用して、複数の資源がコミット又はバッ
クアウトされる順序を決定する。表3及び表4並びに前
述の各シーケンスが示すように、複数の読取専用資源サ
イトは、更新資源サイトより前にコミットするように要
請される。この順序でコミットを行わせると、一の更新
をバックアウトせねばならない場合に、当該トランザク
ションをバックアウトする前及び後に複数のデータベー
スの一貫性を維持することができる。なぜなら、読取専
用資源は当該トランザクションによっては変更されてい
ないからである。
【0067】図6は、アプリケーション・リクエスタ3
04が遂行するコミット・プロセスを実現するための諸
手続きを示す。同図中のアプリケーション・プロセス6
01は、本明細書で説明した物理的及び論理的アーキテ
クチャの任意のものについて実行可能な任意のアプリケ
ーション・プログラムを含んでいる。これを実行する
と、1つ以上の分散型データベースで行われるトランザ
クション指向のデータベース・アクセス動作が開始さ
れ、そのトランザクション同期は「コミット」及び「バ
ックアウト」手続き又はそれらに等価な手続きによって
制御される。アプリケーション・プロセス601は、そ
のアプリケーション・リクエスタへ論理的に結合されて
おり、そしてこのアプリケーション・リクエスタは、以
下の表8に記述されているリクエスタ手続き602を含
んでいる。アプリケーション・プロセス601は、SP
Mプロセス603にも論理的に結合されている。SPM
プロセス603は通常のものであって、複数フェーズの
コミット手続きを行うことが可能な前記同期点マネージ
ャ(SPM)又はこれと同等の回復マネージャの構成及
び機能を有する。各保護資源サイトにおける各アプリケ
ーション・サーバは、アプリケーション・リクエスタ3
04のピアであって、一の同期点マネージャに関連して
実行されるアプリケーション・サーバ用の通常の諸機能
に加えて、以下の表15に記述されている保護手続きブ
ロック604が表す複数の機能を有する。同様に、各非
保護資源サイトにおける各アプリケーション・サーバ
は、通常の機能に加えて、以下の表16に記述されてい
る非保護手続きブロック605が表す複数の機能を有す
る。ブロック602、604及び605がそれぞれ表す
複数のプロセスは、全体として、コミット・プロセスの
前記複数のシーケンスを実現するものである。
【0068】アプリケーション・プロセス601は、S
PMプロセス603、リクエスタ手続き602並びに保
護手続き604及び非保護手続き605をコールする。
リクエスタ手続き602は、SPMプロセス603、保
護手続き604及び非保護手続き605をコールする。
SPMプロセス603は、リクエスタ手続き602及び
保護手続き604をコールする。保護手続き604は、
リクエスタ手続き602をコールし、非保護手続き60
5は、リクエスタ手続き602をコールする。
【0069】以下の表8に記述されているリクエスタ手
続き602は、複数のコールを受信して、これらを以下
の表9ないし表11に記述されているアプリケーション
・リクエスタ304の複数の手続きにルートする。表9
に記述されている資源コール手続き602aは、複数の
資源サイトを目標とする全てのコールがアプリケーショ
ン・リクエスタ304を通過し且つそれぞれのアプリケ
ーション・サーバを介して当該資源サイトに至ることを
仮定する。このコールは資源サイトにおけるアプリケー
ション・サーバからの応答を導き、この応答はアプリケ
ーション・リクエスタ304へ向けられ、そこで分析さ
れ、必要に応じて処理され、それらの意図する受信先へ
送信され、そして最初のコールがアプリケーション・リ
クエスタ304によって処理される。
【0070】表10に記述されているリクエスタ・コミ
ット手続き602bが呼出されるのは、アプリケーショ
ン・リクエスタ304が一のトランザクションをコミッ
トするようにコールされる場合である。表11に記述さ
れているリクエスタ・バックアウト手続き602cの呼
出しは、一のトランザクションをバックアウトするため
のアプリケーション・リクエスタ304へのコールに応
答して行われる。(表12−表14にそれぞれ記述され
ている)準備手続き602d、コミット済み手続き60
2e及びバックアウト手続き602fは、同期点マネー
ジャ(SPM)によって行われる2フェーズのコミット
・トランザクション同期手続きの第1フェーズ(準備)
及び第2(コミット又はバックアウト)フェーズに応答
して、アプリケーション・リクエスタ304によって行
われる。
【0071】保護手続き604は、種々の源から一の保
護資源サイトにある一のアプリケーション・サーバへな
される複数のコールを、表15中の適当な手続きへルー
トするものである。準備手続き604a、コミット手続
き604b及びバックアウト手続き604cは、2フェ
ーズのトランザクション同期の間にコールされる。資源
コミット手続き604d及び資源バックアウト手続き6
04eは、アプリケーション・プログラムから行われ得
る動的なコールを表す(なお、かかるアプリケーション
・プログラムは、そのコンパイル時に、これらのコール
に関する知識を一切持っていない)。かかるコールの各
々は、アプリケーション・サーバへ向けられる一の要求
を導く。ここで注意すべきは、アプリケーション・リク
エスタ304で発信され且つ各保護資源サイトへ向けら
れる「コミット」及び「バックアウト」コールが本発明
のプロトコルに違反し、従って「コマンド違反」表示を
返送するという点である。
【0072】非保護手続き605から行われるコール
が、アプリケーション・プログラムから発信された場合
(ブロック605a及び605b)、アプリケーション
・リクエスタ304へ一の「要求済み」メッセージが返
送される。アプリケーション・リクエスタ304からの
「コミット」及び「バックアウト」コールに応答して、
非保護手続き605はブロック605c及び605dに
よって表される手続きへのコールを行って、非保護資源
をコミット又はバックアウトする。以下の表8ないし表
16は、一般に、「IF−THEN−ELSE−EN
D」の形式でそれぞれの手続きを記述する。但し、説明
の便宜のために、「IF」文を、「もし、・・・なら
ば」という形式で表現してある。
【0073】
【表8】
【0074】
【表9】 −資源コール手続き 資源を目標とするコールがリクエスタを通してこの資源へパスされる; もし、複数−資源更新で且つこの資源からの応答がコミットであれば then SPMをコールしてトランザクションをコミット; もし、複数−資源更新で且つこの資源からの応答がバックアウトであれば then SPMをコールしてトランザクションをバックアウト; もし、非複数−資源更新で且つこの資源からの応答がコミットであれば then 全ての読取専用資源について又はバックアウトが生ずるまで反復 コミット・コマンドを読取専用資源へ送信; もし、応答がバックアウトであれば then 全ての読取専用資源について反復 バックアウト・コマンドを読取専用資源へ送信; 反復終了; then 終了; 反復終了; もし、読取専用資源がバックアウト済みであれば then バックアウトを更新資源へ送信 else コミットを更新資源へ送信 もし、更新資源がバックアウトすれば then 全ての読取専用資源について反復 バックアウト・コマンドを資源へ送信; 反復終了; then 終了; else 終了; then 終了; もし、非複数−資源更新で且つこの資源からの応答がバックアウトであれば then 全ての資源について反復 バックアウト・コマンドを資源へ送信; 反復終了; then 終了; トランザクションのステータスを返送; −資源コール手続き終了。
【0075】
【表10】 −リクエスタ・コミット手続き もし、複数−資源更新であれば then SPMをコールして当該トランザクションをコミット; もし、非複数−資源更新であれば then 全ての読取専用資源について又はバックアウトが生ずるまで反復 コミット・コマンドを読取専用資源へ送信; もし、応答がバックアウトであれば then 全ての読取専用資源について反復 バックアウト・コマンドを読取専用資源へ送信; 反復終了; then 終了; 反復終了; もし、読取専用資源がバックアウト済みであれば then バックアウトを更新資源へ送信 else コミットを更新資源へ送信 もし、更新資源がバックアウトすれば then 全ての読取専用資源について反復 バックアウト・コマンドを読取専用資源へ送信 反復終了 then 終了; else 終了; then 終了; トランザクションのステータスを返送; −リクエスタ・コミット手続き終了。
【0076】
【表11】 −リクエスタ・バックアウト手続き もし、複数−資源更新であれば then SPMをコールして当該トランザクションをバックアウト; もし、非複数−資源更新であれば 全ての資源について反復 バックアウト・コマンドを資源へ送信; 反復終了; トランザクションのステータスを返送; −リクエスタ・バックアウト手続き終了。
【0077】
【表12】 −準備手続き 全ての非保護資源について又はバックアウトが生ずるまで反復 コミット・コマンドを資源へ送信; もし、応答がバックアウトであれば then 全ての非保護資源について反復 バックアウト・コマンドを非保護資源へ送信; 反復終了; then 終了; 反復終了; もし、資源がバックアウト済みであれば then バックアウト済みを返送 else リクエスタ・コミットを返送; −準備手続き終了。
【0078】
【表13】
【0079】
【表14】
【0080】
【表15】
【0081】
【表16】
【0082】
【発明の効果】以上のように、本発明によれば、分散型
異種データベース・システム中の全てのサイトを2フェ
ーズ動作へ移行させないで複数サイトの更新動作を行う
ことができるように、単一フェーズ及び複数フェーズの
コミット処理を調整することによって、トランザクショ
ンの原子性を保証することができる。
【図面の簡単な説明】
【図1】本発明を実施するのに適した、分散型異種デー
タベース・システムの物理的アーキテクチャを示すブロ
ック図である。
【図2】本発明を実施するのに適した、代替的な分散型
異種データベース・システムの物理的アーキテクチャを
示すブロック図である。
【図3】本発明を実施するのに適した、分散型異種デー
タベース・システムの論理的アーキテクチャを示すブロ
ック図である。
【図4】アプリケーション・サイトの論理的構成要素と
接続形態を一層詳細に示す図である。
【図5】2つの制約を組込んだ、本発明の方法を示す流
れ図である。
【図6】本発明の分散型異種データベース・システムに
おける、アプリケーション・プロセスからトランザクシ
ョン同期プロセスへの制御の流れを示す図である。
【符号の説明】
300・・・・・・・アプリケーション・サイト 302・・・・・・・アプリケーション・プログラム 303・・・・・・・データベース言語インタフェース 304・・・・・・・アプリケーション・リクエスタ 304a・・・・・・モニタ・プロセス 304b・・・・・・コミット・プロセス 304c・・・・・・資源テーブル 304d・・・・・・アプリケーション・インタフェー
ス 305・・・・・・・ネットワーク通信サービス手段 306・・・・・・・同期点マネージャ 308・・・・・・・同期点マネージャ−アプリケーシ
ョン・インタフェース 309・・・・・・・同期点マネージャ−資源マネージ
ャ・インタフェース 320、330・・・非保護資源サイト 340、350・・・保護資源サイト
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート・ジョセフ・グラーフェ アメリカ合衆国テキサス州、オースチ ン、ハンターズ・トレード 9201番地 (72)発明者 ロバート・ディーン・ジャクソン アメリカ合衆国カリフォルニア州、マー フィス、ピー・オー・ボックス 487 (72)発明者 ロジャー・アラン・ラインシュ アメリカ合衆国カリフォルニア州、クペ ルティノ、グリーンリーフ・ドライブ 20663番地 (72)発明者 リチャード・ロランド・サンダース アメリカ合衆国ミネソタ州、ロチェスタ ー、サーティ・フォース・ストリート、 エヌ・ダブリュー 1846番地 (72)発明者 ヤコブ・スロニム カナダ国トロント州、スカーブロー・ロ ード 230番地 (72)発明者 メルビン・リチャード・ジモウスキー アメリカ合衆国カリフォルニア州、サ ン・ホゼ、スリアン・コート 1079番地 (56)参考文献 特開 平4−229334(JP,A) 特開 平1−245344(JP,A) 特開 平5−219136(JP,A)

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】トランザクション実行用の一のアプリケー
    ション・プログラムを実行するためのプロセッサ及びア
    プリケーションのトランザクション要求を転送し且つ当
    該トランザクション要求に対する応答を受信するための
    一のアプリケーション・リクエスタを含んでいる少なく
    とも1つのアプリケーション・サイトと; 少なくとも1つの第1の資源サイト及び少なくとも1つ
    の第2の資源サイトを含む複数の資源サイトとを備え; 前記第1の資源サイトの各々は、一のデータベースと、
    単一フェーズのトランザクション同期手続きの制御下
    で、トランザクション要求に応答してデータベース・ア
    クセス動作を遂行するための一のデータベース管理シス
    テムを有するプロセッサと、トランザクション要求を受
    信し且つかかるトランザクション要求に対する応答を転
    送するためのサーバ手段とを含み; 前記第2の資源サイトの各々は、一のデータベースと、
    複数フェーズのトランザクション同期手続きの制御下
    で、トランザクション要求に応答してデータベース・ア
    クセス動作を遂行するための一のデータベース管理シス
    テムを有するプロセッサと、トランザクション要求を受
    信し且つ当該トランザクション要求に対する応答を転送
    するためのサーバ手段とを含み; 更に、前記アプリケーション・サイト及び前記複数の資
    源サイトを含む全てのサイト相互間の通信を行うために
    当該全てのサイトを接続する通信手段とを備えて成る、
    分散型異種データベース・システムにおいて: (1)一の前記資源サイトにおけるデータベース・アク
    セス動作に対する少なく とも1つの要求を含む一のトラ
    ンザクションを、前記アプリケーション・サイトにおい
    て実行するステップと; (2)前記アプリケーション・サイトから一のトランザ
    クション同期要求を発行し且つ当該トランザクション同
    期要求を前記アプリケーション・リクエスタへ通信する
    ステップと; (3)前記第1の資源サイトのうち任意のものが当該ト
    ランザクションの間にデータベース・アクセス動作を遂
    行したか否かを、前記アプリケーション・リクエスタに
    おいて判定するステップと; (4)1つ以上の前記第1の資源サイトだけが当該トラ
    ンザクションの間にデータベース・アクセス動作を遂行
    した場合は、前記アプリケーション・リクエスタからか
    かるデータベース・アクセス動作を遂行した第1の資源
    サイトの全てへトランザクション・コミット要求をそれ
    ぞれ通信し、当該トランザクション・コミット要求に応
    答して、かかるデータベース・アクセス動作を遂行した
    第1の資源サイトの全てにおいて単一フェーズのトラン
    ザクション同期手続きをそれぞれ行うとともに、当該単
    一フェーズのトランザクション同期手続きのそれぞれの
    結果を前記アプリケーション・サイトへ通信するステッ
    プと; (5)1つ以上の前記第1の資源サイト及び1つ以上の
    前記第2の資源サイトが当該トランザクションの間にデ
    ータベース・アクセス動作を遂行した場合は、先ず、か
    かるデータベース・アクセス動作を遂行した第2の資源
    サイトの全て及び前記アプリケーション・リクエスタへ
    トランザクション・コミット要求をそれぞれ通信し、か
    かるデータベース・アクセス動作を遂行した第2の資源
    サイトの全て及び前記アプリケーション・リクエスタを
    含めて、複数フェーズのトランザクション同期手続きを
    開始し、前記アプリケーション・リクエスタからかかる
    データベース・アクセス動作を遂行した第1の資源サイ
    トの全てへトランザクション同期要求をそれぞれ通信
    し、当該トランザクション同期要求に応答して、かかる
    データベース・アクセス動作を遂行した第1の資源サイ
    トの全てにおいて単一フェーズのトランザクション同期
    手続きをそれぞれ行い、当該単一フェーズのトランザク
    ション同期手続きのそれぞれの結果を前記アプリケーシ
    ョン・サイトへ通信し、次に、前記複数フェーズのトラ
    ンザクション同期手続きを完了させ且つ当該複数フェー
    ズのトランザクション同期手続きの結果を前記アプリケ
    ーション・サイトへ通信するステップと; (6)前記アプリケーション・サイトへ通信された前記
    トランザクション同期手続きの結果に応答して、当該ト
    ランザクションをコミットするか又はバックアウトする
    ステップと; より成る、トランザクション処理の同期方法。
  2. 【請求項2】更に、当該トランザクションが一の前記第
    1の資源サイトにおける一のデータベース更新動作及び
    他の任意の資源サイトにおける一のデータベース更新動
    作を必要とする場合は、前記アプリケーション・リクエ
    スタにおいて一のトランザクション・バックアウト要求
    を生成し、当該トランザクション・バックアウト要求を
    前記アプリケーション・プログラムへ供給するステップ
    と; 当該トランザクションをバックアウトするステップと; より成る、請求項1記載のトランザクション処理の同期
    方法。
  3. 【請求項3】前記ステップ(4)が、 前記第1の資源サイトのうち任意のものが当該トランザ
    クションの間に一のデータベース更新動作を遂行した場
    合は、先ず、前記アプリケーション・リクエスタから当
    該トランザクションの間にかかるデータベース読取動作
    を行った第1の資源サイトの全てへトランザクション・
    コミット要求をそれぞれ通信し、かかるデータベース読
    取動作を行った第1の資源サイトの全てにおいて単一フ
    ェーズのトランザクション同期手続きをそれぞれ行い、
    当該単一フェーズのトランザクション同期手続きのそれ
    ぞれの結果を前記アプリケーション・リクエスタへ通信
    し、次に、前記アプリケーション・リクエスタから当該
    トランザクションの間に前記データベース更新動作を行
    った第1の資源サイトへトランザクション・コミット要
    求を通信し、かかるデータベース更新動作を行った第1
    の資源サイトにおいて単一フェーズのトランザクション
    同期手続きを行うとともに、当該単一フェーズのトラン
    ザクション同期手続きの結果を前記アプリケーション・
    リクエスタへ通信する、 ことを含んでいる、請求項2記載のトランザクション処
    理の同期方法。
  4. 【請求項4】トランザクション実行用の一のアプリケー
    ション・プログラムを実行するためのプロセッサ及びア
    プリケーションのトランザクション要求を転送し且つ当
    該トランザクション要求に対する応答を受信するための
    一のアプリケーション・リクエスタを含んでいる少なく
    とも1つのアプリケーション・サイトと; 少なくとも1つの第1の資源サイト及び少なくとも1つ
    の第2の資源サイトを含む複数の資源サイトとを備え; 前記第1の資源サイトの各々は、一のデータベースと、
    単一フェーズのトランザクション同期手続きの制御下
    で、トランザクション要求に応答してデータベース・ア
    クセス動作を遂行するための一のデータベース管理シス
    テムを有するプロセッサと、トランザクション要求を受
    信し且つかかるトランザクション要求に対する応答を転
    送するためのサーバ手段とを含み; 前記第2の資源サイトの各々は、一のデータベースと、
    複数フェーズのトランザクション同期手続きの制御下
    で、トランザクション要求に応答してデータベース・ア
    クセス動作を遂行するための一のデータベース管理シス
    テムを有するプロセッサと、トランザクション要求を受
    信し且つ当該トランザクション要求に対する応答を転送
    するためのサーバ手段とを含み; 更に、前記アプリケーション・サイト及び前記複数の資
    源サイトを含む全てのサイト相互間の通信を行うために
    当該全てのサイトを接続する通信手段とを備えて成る、
    分散型異種データベース・システムにおいて: (1)一の前記資源サイトにおけるデータベース・アク
    セス動作に対する少なく とも1つの要求を含む一のトラ
    ンザクションを、前記アプリケーション・サイトにおい
    て実行するステップと; (2)当該トランザクションが一の前記第1の資源サイ
    トにおける一のデータベース更新動作及び他の任意の資
    源サイトにおける一のデータベース更新動作を必要とす
    る場合は、前記アプリケーション・リクエスタにおいて
    一のトランザクション・バックアウト要求を生成し、当
    該トランザクション・バックアウト要求を前記アプリケ
    ーション・プログラムへ供給するステップと; (3)当該トランザクションをバックアウトするステッ
    プと; より成る、トランザクション処理のモニタ方法。
  5. 【請求項5】更に、当該トランザクションが複数の資源
    サイトにおけるデータベース更新動作を必要とし且つ当
    該複数の資源サイトの1つが前記第1の資源サイトであ
    る場合は、前記アプリケーション・リクエスタにおいて
    一のトランザクション・バックアウト要求を生成し、当
    該トランザクション・バックアウト要求を前記アプリケ
    ーション・プログラムへ供給するステップと; 当該トランザクションをバックアウトするステップと; より成る、請求項4記載のトランザクション処理のモニ
    方法。
  6. 【請求項6】トランザクション指向の一のアプリケーシ
    ョン・プログラムを実行する少なくとも1つのアプリケ
    ーション・プロセッサと、データベース・アクセス動作
    を遂行する複数の資源プロセッサと、前記アプリケーシ
    ョン・プロセッサ及び前記複数の資源プロセッサを互い
    にリンクする通信手段とを備え; 前記複数の資源プロセッサのうち少なくとも1つの第1
    の資源プロセッサの各々が、単一フェーズのトランザク
    ション同期手続きの制御下で、データベース・アクセス
    動作を実行し、前記複数の資源プロセッサのうち少なく
    とも1つの第2の資源プロセッサの各々が、複数フェー
    ズのトランザクション同期手続きの制御下で、データベ
    ース・アクセス動作を実行するようにした、分散型異種
    データベース・システムにおいて: (1)複数のデータベース・アクセス動作要求を含む一
    のトランザクションを、前記アプリケーション・プロセ
    ッサにおいて実行するステップと; (2)前記データベース・アクセス動作要求に応答し
    て、1つ以上の前記資源プロセッサにおいてデータベー
    ス・アクセス動作を行うステップと; (3)当該トランザクションをコミットするように前記
    アプリケーション・プロセッサから一の要求を発行する
    ステップと; (4)当該トランザクションの間にデータベース・アク
    セス動作を実行した前記第2の資源プロセッサの全て及
    び前記アプリケーション・プロセッサを含めて、複数フ
    ェーズのコミット手続きを開始するステップと; (5)当該トランザクションの間にデータベース・アク
    セス動作を実行した前記第1の資源プロセッサの全てに
    おいて単一フェーズのコミット手続きをそれぞれ行い、
    当該単一フェーズのコミット手続きのそれぞれの結果を
    前記アプリケーション・プロセッサへ通信するステップ
    と; (6)前記複数フェーズのコミット手続きを完了し且つ
    当該複数フェーズのコミット手続きの結果を前記アプリ
    ケーション・プロセッサへ通信するステップと、 (7)前記アプリケーション・プロセッサへ通信された
    前記コミット手続きの結果に応答して、当該トランザク
    ションをコミットするか又はバックアウトするステップ
    と; より成る、トランザクションのコミット処理方法。
  7. 【請求項7】更に、前記データベース・アクセス動作要
    求が一の前記第1の資源プロセッサで遂行される一の更
    新要求を含み且つ他の更新要求が他の任意の資源プロセ
    ッサへ向けられる場合は、一のトランザクション・バッ
    クアウト要求を生成するステップと; 当該トランザクションをバックアウトするステップと; より成る、請求項6記載のトランザクションのコミット
    処理方法。
  8. 【請求項8】トランザクション実行用の一のアプリケー
    ション・プログラムを実行するためのアプリケーション
    ・プロセッサ及びアプリケーションのトランザクション
    要求を転送し且つ当該トランザクション要求に対する応
    答を受信するための一のアプリケーション・リクエスタ
    を含んでいる少なくとも1つのアプリケーション・サイ
    と;少なくとも1つの第1の資源サイト及び少なくとも1つ
    の第2の資源サイトを含む複数の資源サイトとを備え; 前記第1の資源サイトの各々は、一のデータベースと、
    単一フェーズのトランザクション同期手続きの制御下
    で、トランザクション要求に応答してデータベース・ア
    クセス動作を遂行するための第1の資源プロセッサとを
    含み; 前記第2の資源サイトの各々は、一のデータベースと、
    複数フェーズのトランザクション同期手続きの制御下
    で、トランザクション要求に応答してデータベース・ア
    クセス動作を遂行するための第2の資源プロセッサとを
    含み; 更に、前記アプリケーション・サイト及び前記複数の資
    源サイトを含む全てのサイト相互間の通信を行うために
    当該全てのサイトを接続する通信手段とを備えて成る、
    分散型異種データベース・ システムにおいて: (1)一の資源サイトにおいて行われるデータベース・
    アクセス動作に対する少 なくとも1つの要求を含む一の
    トランザクションを、前記アプリケーション・プロセッ
    サにおいて実行するステップと; (2)前記アプリケーション・プロセッサから一のトラ
    ンザクション同期要求を発行し、当該トランザクション
    同期要求を前記アプリケーション・リクエ スタ及びデー
    タベース・アクセス動作を行った前記第2の資源プロセ
    ッサの全てへ通信するステップと; (3)前記第1の資源プロセッサのうち任意のものが当
    該トランザクションの間にデータベース・アクセス動作
    を遂行したか否かを、前記アプリケーショ ン・リクエス
    において判定するステップと; (4)1つ以上の前記第1の資源プロセッサだけが当該
    トランザクションの間にデータベース・アクセス動作を
    遂行した場合は、前記アプリケーション・プロセッサか
    らかかるデータベース・アクセス動作を遂行した第1の
    資源プロセッサの全てへトランザクション・コミット要
    求をそれぞれ通信し、当該トランザクション・コミット
    要求に応答して、かかるデータベース・ アクセス動作を
    遂行した第1の資源プロセッサの全てにおいて単一フェ
    ーズのトランザクション同期手続きをそれぞれ行い、当
    該単一フェーズのトランザクション同期手続きのそれぞ
    れの結果を前記アプリケーション・リ クエスタへ通信す
    るステップと; (5)1つ以上の前記第1の資源プロセッサ及び1つ以
    上の前記第2の資源プロセッサが当該トランザクション
    の間にデータベース・アクセス動作を遂行した場合は、
    先ず、トランザクション・コミット要求をかかるデータ
    ベー ス・アクセス動作を遂行した第2の資源プロセッサ
    の全て及び前記アプリ ケーション・リクエスタへそれぞ
    れ通信し、かかるデータベース・アクセス動作を遂行し
    た第2の資源プロセッサの全て及び前記アプリケーショ
    ・リクエスタを含めて、複数フェーズのトランザクシ
    ョン同期手続きを開始し、当該複数フェーズのトランザ
    クション同期手続きの第1フェーズの間に、前記アプリ
    ケーション・プロセッサからかかるデータベース・アク
    セス動作を遂行した第1の資源プロセッサの全てへコミ
    ット要求をそれぞれ通信し、当該コミット要求に応答し
    てかかるデータベース・アクセス動作を遂行した第1の
    資源プロセッサの全てにおいて単一フェーズのトランザ
    クション同期手続きをそれぞれ行い、当該単一フェーズ
    のトランザクション同期手続きのそれぞれの結果を前記
    アプリケーション・リクエスタへ通信し、次に、前記複
    数フェーズのトランザクション同期手続きの残りのフェ
    ーズを行い、当該複数フェーズのトランザクション同期
    手続きの結果を前記アプリケーション・リクエスタへ通
    信するステップと; ()前記アプリケーション・リクエスタへ通信された
    前記トランザクション同期手続きの結果に応答して、当
    該トランザクションをコミットするか又はバックアウト
    するステップと; より成る、トランザクション処理の同期方法。
  9. 【請求項9】前記複数フェーズのトランザクション同期
    手続きが2フェーズのトランザクション同期手続きであ
    り、その第1フェーズの間には前記アプリケーション・
    リクエスタ及び前記データベース・アクセス動作を遂行
    した第2の資源プロセッサの全てが当該トランザクショ
    ンをコミットするか又はバックアウトするように投票
    し、第2フェーズの間には当該第1フェーズの間に行わ
    れた投票に応答して当該トランザクションがコミットさ
    れるか又はバックアウトされ; 前記2フェーズのトランザクション同期手続きの前記第
    1フェーズの間には前記ステップ(4)が遂行され; 前記データベース・アクセス動作を遂行した第1の資源
    プロセッサの全てがコミットする場合、又は前記データ
    ベース・アクセス動作を遂行した第1の資源プロセッサ
    の任意のものがバックアウトする場合、前記アプリケー
    ション・リクエスタは前記2フェーズのトランザクショ
    ン同期手続きの第1フェーズの間に当該トランザクショ
    ンをコミットするか又はバックアウトするように投票を
    行う、 請求項8記載のトランザクション処理の同期方法。
JP6042285A 1993-03-15 1994-03-14 トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法 Expired - Lifetime JP2557192B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3208993A 1993-03-15 1993-03-15
US032089 1993-03-15

Publications (2)

Publication Number Publication Date
JPH06301588A JPH06301588A (ja) 1994-10-28
JP2557192B2 true JP2557192B2 (ja) 1996-11-27

Family

ID=21863045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6042285A Expired - Lifetime JP2557192B2 (ja) 1993-03-15 1994-03-14 トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法

Country Status (2)

Country Link
US (1) US5561797A (ja)
JP (1) JP2557192B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469724B2 (en) 2001-09-28 2008-12-30 Max Kabushiki Kaisha Reinforcement binding machine, reel, and method of detecting rotation of reel
US7819143B2 (en) 2004-01-09 2010-10-26 Max Kabushiki Kaisha Reinforcing bar binder, wire reel and method for identifying wire reel

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2148459C (en) * 1993-10-08 2000-01-11 Paul Clarke Message transmission across a network
JPH0836513A (ja) * 1993-12-29 1996-02-06 Xerox Corp データ管理方法及びデータ管理エラー回復方法
US6813769B1 (en) 1997-10-28 2004-11-02 Microsoft Corporation Server application components with control over state duration
US5835757A (en) * 1994-03-30 1998-11-10 Siemens Telecom Networks Distributed database management system for servicing application requests in a telecommunications switching system
US5675796A (en) * 1994-04-08 1997-10-07 Microsoft Corporation Concurrency management component for use by a computer program during the transfer of a message
JP3085085B2 (ja) * 1994-05-09 2000-09-04 三菱電機株式会社 データアクセス装置及び分散データベースシステム
US5802295A (en) * 1994-09-12 1998-09-01 Canon Kabushiki Kaisha Information processing method and system therefor
US6381595B1 (en) 1994-09-29 2002-04-30 International Business Machines Corporation System and method for compensation of functional differences between heterogeneous database management systems
US5768577A (en) * 1994-09-29 1998-06-16 International Business Machines Corporation Performance optimization in a heterogeneous, distributed database environment
US6182108B1 (en) 1995-01-31 2001-01-30 Microsoft Corporation Method and system for multi-threaded processing
US5729733A (en) * 1995-05-05 1998-03-17 Harris Corporation Method of operating a distributed databse based on object ownership and transaction classification utilizing an aggressive reverse one phase commit protocol
GB2301686A (en) * 1995-06-03 1996-12-11 Ibm Transaction synchronisation procedure in a routing node
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
US5668958A (en) * 1995-09-12 1997-09-16 International Business Machines Corporation Heterogeneous filing system with common API and reconciled file management rules
US5758150A (en) * 1995-10-06 1998-05-26 Tele-Communications, Inc. System and method for database synchronization
US5761421A (en) * 1996-03-25 1998-06-02 Sun Microsystems, Inc. System and method for secure peer-to-peer communication between downloaded programs
US5890165A (en) * 1996-03-29 1999-03-30 Emc Corporation Method and apparatus for automatic discovery of databases
US6052712A (en) * 1996-04-30 2000-04-18 International Business Machines Corporation System for barrier synchronization wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each subsequent phase
US5768538A (en) * 1996-04-30 1998-06-16 International Business Machines Corporation Barrier synchronization method wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each new phase
US6016505A (en) * 1996-04-30 2000-01-18 International Business Machines Corporation Program product to effect barrier synchronization in a distributed computing environment
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
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US20060195595A1 (en) 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US5924095A (en) * 1997-02-05 1999-07-13 Oracle Corporation Processing distributed transactions in heterogeneous computing environments using two-phase commit
US7490112B1 (en) * 1997-04-15 2009-02-10 Intellisync Corporation System and methods for synchronizing information among disparate datasets
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
US6170017B1 (en) 1997-05-08 2001-01-02 International Business Machines Corporation Method and system coordinating actions among a group of servers
US6061708A (en) * 1997-05-31 2000-05-09 International Business Machines Corporation System and method for supporting mixed-phase transactions in an object-oriented environment
US5920863A (en) * 1997-05-31 1999-07-06 International Business Machines Corporation System and method for supporting transactions for a thin client lacking a persistent store in a distributed object-oriented environment
US5940818A (en) * 1997-06-30 1999-08-17 International Business Machines Corporation Attribute-based access for multi-dimensional databases
US5995947A (en) * 1997-09-12 1999-11-30 Imx Mortgage Exchange Interactive mortgage and loan information and real-time trading system
US5953719A (en) * 1997-09-15 1999-09-14 International Business Machines Corporation Heterogeneous database system with dynamic commit procedure control
US5956727A (en) * 1997-09-15 1999-09-21 International Business Machines Corporation Heterogeneous database system with data source extensibility and alteration of database functions
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US6631425B1 (en) 1997-10-28 2003-10-07 Microsoft Corporation Just-in-time activation and as-soon-as-possible deactivation or server application components
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US5890161A (en) 1997-10-28 1999-03-30 Microsoft Corporation Automatic transaction processing of component-based server applications
FR2773241B1 (fr) * 1997-12-30 2001-09-07 Bull Sa Procede d'assistance a l'administration d'une application distribuee basee sur un fichier binaire de configuration dans un systeme informatique
US6157927A (en) * 1998-04-22 2000-12-05 Unisys Corporation Methods and apparatus for enabling a component in a first transaction processing environment to access a resource in another environment that is under the control of an Xatmi complaint transaction manager
US7209949B2 (en) 1998-05-29 2007-04-24 Research In Motion Limited System and method for synchronizing information between a host system and a mobile data communication device
US6952829B1 (en) * 1998-06-29 2005-10-04 International Business Machines Corporation Dynamically adapting between pessimistic and optimistic notifications to replicated objects
US6526416B1 (en) 1998-06-30 2003-02-25 Microsoft Corporation Compensating resource managers
US7159005B1 (en) 1998-10-16 2007-01-02 International Business Machines Corporation Methods, systems and computer program products for restartable multiplexed file transfers
JP3578385B2 (ja) * 1998-10-22 2004-10-20 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ、及びレプリカ同一性保持方法
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
US6330686B1 (en) * 1998-11-30 2001-12-11 International Business Machines Corp. Handling protected conversation messages across IMS restart in shared queues environment
US6138143A (en) * 1999-01-28 2000-10-24 Genrad, Inc. Method and apparatus for asynchronous transaction processing
US6728879B1 (en) 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6502088B1 (en) 1999-07-08 2002-12-31 International Business Machines Corporation Method and system for improved access to non-relational databases
JP4237354B2 (ja) * 1999-09-29 2009-03-11 株式会社東芝 トランザクション処理方法及びトランザクション処理システム
US7660830B2 (en) * 2000-04-17 2010-02-09 Avaya Inc. System for integrating diverse database and maintaining their consistency
US7325046B1 (en) 2000-05-31 2008-01-29 International Business Machines Corporation Method, system and program products for managing processing groups of a distributed computing environment
AU2001286786A1 (en) * 2000-08-25 2002-03-13 Stuart E. Massey Transaction-based enterprise application integration (eai) and development system
US7174359B1 (en) 2000-11-09 2007-02-06 International Business Machines Corporation Apparatus and methods for sequentially scheduling a plurality of commands in a processing environment which executes commands concurrently
US6772176B1 (en) * 2000-11-17 2004-08-03 Oracle International Corporation Coordinating a distributed transaction between participants unable to follow a two-phase commit
US7426730B2 (en) * 2001-04-19 2008-09-16 Wre-Hol Llc Method and system for generalized and adaptive transaction processing between uniform information services and applications
US20020194244A1 (en) * 2001-06-01 2002-12-19 Joan Raventos System and method for enabling transaction-based service utilizing non-transactional resources
US6918013B2 (en) * 2001-07-16 2005-07-12 Bea Systems, Inc. System and method for flushing bean cache
US6799172B2 (en) * 2001-08-28 2004-09-28 International Business Machines Corporation Method and system for removal of resource manager affinity during restart in a transaction processing system
US20030046230A1 (en) * 2001-08-30 2003-03-06 Jacobs Dean Bernard Method for maintaining account consistency
US7028030B2 (en) * 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
US6799188B2 (en) * 2001-08-31 2004-09-28 Borland Software Corporation Transaction processing system providing improved methodology for two-phase commit decision
US7251693B2 (en) * 2001-10-12 2007-07-31 Direct Computer Resources, Inc. System and method for data quality management and control of heterogeneous data sources
US7181489B2 (en) * 2002-01-10 2007-02-20 International Business Machines Corporation Method, apparatus, and program for distributing a document object model in a web server cluster
US7120704B2 (en) * 2002-01-31 2006-10-10 International Business Machines Corporation Method and system for workload balancing in a network of computer systems
US7028055B2 (en) * 2002-03-22 2006-04-11 Sun Microsystems, Inc. Method and apparatus for improving transaction specification by marking application states
US20080046592A1 (en) 2002-06-26 2008-02-21 Research In Motion Limited System and Method for Pushing Information Between a Host System and a Mobile Data Communication Device
DE10231424B4 (de) * 2002-07-11 2006-11-09 Pro Design Electronic & Cad-Layout Gmbh Vorrichtung und Verfahren zur Datenkommunikation
US7477953B2 (en) * 2002-09-12 2009-01-13 International Business Machines Corporation Data processing system adapted to integrating non-homogeneous processes
US7742980B1 (en) 2002-11-15 2010-06-22 Imx, Inc. Automated loan approval 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
ATE333680T1 (de) * 2003-10-08 2006-08-15 Cit Alcatel Schnelle datenbankreplikation
US7526489B2 (en) * 2003-11-18 2009-04-28 International Business Machines Corporation Methods to integrate user-defined operations into a database
US7730478B2 (en) * 2006-10-04 2010-06-01 Salesforce.Com, Inc. Method and system for allowing access to developed applications via a multi-tenant on-demand database service
WO2008104437A1 (en) * 2007-02-28 2008-09-04 International Business Machines Corporation A method for resolving a unit of work
US7711712B2 (en) * 2007-03-12 2010-05-04 Hitachi, Ltd. System and method for managing consistency among volumes based on application information
US8892558B2 (en) 2007-09-26 2014-11-18 International Business Machines Corporation Inserting data into an in-memory distributed nodal database
US8027996B2 (en) * 2007-11-29 2011-09-27 International Business Machines Corporation Commitment control for less than an entire record in an in-memory database in a parallel computer system
US10007547B2 (en) 2008-01-17 2018-06-26 International Business Machines Corporation Specifying an invocation order of a plurality of resources in a transaction according to resource distance
US9501312B2 (en) * 2014-01-30 2016-11-22 Red Hat, Inc. Using compensation transactions for multiple one-phase commit participants
US11386065B2 (en) * 2017-01-31 2022-07-12 Salesforce.Com, Inc. Database concurrency control through hash-bucket latching
US10691696B2 (en) 2017-01-31 2020-06-23 Salesforce.Com, Inc. Key-value storage using a skip list

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4507751A (en) * 1982-06-21 1985-03-26 International Business Machines Corporation Method and apparatus for logging journal data using a log write ahead data set
US4714995A (en) * 1985-09-13 1987-12-22 Trw Inc. Computer integration system
US4868744A (en) * 1986-03-03 1989-09-19 International Business Machines Corporation Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log
JP2667818B2 (ja) * 1986-10-09 1997-10-27 株式会社日立製作所 トランザクション処理方法
JPS63138439A (ja) * 1986-12-01 1988-06-10 Hitachi Ltd 分散データベースアクセス要求処理方法
US5065311A (en) * 1987-04-20 1991-11-12 Hitachi, Ltd. Distributed data base system of composite subsystem type, and method fault recovery for the system
US4881166A (en) * 1987-07-24 1989-11-14 Amoco Corporation Method for consistent multidatabase transaction processing
US4982325A (en) * 1988-03-18 1991-01-01 At&T Bell Laboratories Applications processor module for interfacing to a database system
JP2545436B2 (ja) * 1988-03-28 1996-10-16 沖電気工業株式会社 分散デ―タベ―スコミットメント処理装置
US5095421A (en) * 1989-08-17 1992-03-10 International Business Machines Corporation Transaction processing facility within an operating system environment
US5261089A (en) * 1990-05-16 1993-11-09 International Business Machines Corporation Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary
US5276876A (en) * 1990-05-16 1994-01-04 International Business Machines Corporation Registration of resources for commit procedures
JP3293839B2 (ja) * 1990-05-16 2002-06-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5363121A (en) * 1990-06-29 1994-11-08 International Business Machines Corporation Multiple protocol communication interface for distributed transaction processing
US5261069A (en) * 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
US5142470A (en) * 1990-09-26 1992-08-25 Honeywell Inc. Method of maintaining synchronization of a free-running secondary processor
US5241675A (en) * 1992-04-09 1993-08-31 Bell Communications Research, Inc. Method for enforcing the serialization of global multidatabase transactions through committing only on consistent subtransaction serialization by the local database managers
US5452445A (en) * 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
US5335343A (en) * 1992-07-06 1994-08-02 Digital Equipment Corporation Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
US5432926A (en) * 1992-12-04 1995-07-11 International Business Machines Corporation Method and apparatus for improving database reliability and response time in a distributed transaction processing system
US5491822A (en) * 1993-12-30 1996-02-13 International Business Machines Corporation Multi-phase commit processing for creation and deletion of managed objects

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469724B2 (en) 2001-09-28 2008-12-30 Max Kabushiki Kaisha Reinforcement binding machine, reel, and method of detecting rotation of reel
US7819143B2 (en) 2004-01-09 2010-10-26 Max Kabushiki Kaisha Reinforcing bar binder, wire reel and method for identifying wire reel

Also Published As

Publication number Publication date
JPH06301588A (ja) 1994-10-28
US5561797A (en) 1996-10-01

Similar Documents

Publication Publication Date Title
JP2557192B2 (ja) トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法
EP1099164B1 (en) Method and program for processing administrative requests of a distributed network application executing in a clustered computing environment
JP3268534B2 (ja) 保護された資源の同期点管理を行うコンピュータ・システム
JP2691080B2 (ja) 同期点回復手段を有するコンピュータ装置
JP2691081B2 (ja) コンピュータ・ネットワーク
US6728958B1 (en) Volatile resource manager with pre-prepare notification
JP3293839B2 (ja) 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム
US20020035590A1 (en) Guaranteed end-to-end transaction execution in a client/server environment
JPH04229334A (ja) コンピュータ・システム及びアプリケーションプログラム実行方法
JPH04229335A (ja) コミット手順の最適化方法
US7610388B2 (en) System, method and program for coordinating timeouts for distributed servers
JPH06215032A (ja) 分散トランザクション処理システムのデータベースの信頼性と応答時間を向上させる方法および装置
JPH0831043B2 (ja) コミット手順の非同期的再同期化実行装置および方法
US5706500A (en) Selective transaction oriented recovery and restart for message-driven business applications
US6330686B1 (en) Handling protected conversation messages across IMS restart in shared queues environment
JPH11272630A (ja) サ―バ処理装置、サ―バ処理方法、コンピュ―タ・プログラム製品及びサ―バ
JP2005538460A (ja) データ処理システム及び方法(非同種プロセスを統合するように適合されたデータ処理システム)
US20070011328A1 (en) System and method for application deployment service
US6237018B1 (en) Apparatus method and computer program product for client/server computing with improved transactional interface
JP3548030B2 (ja) サーバ処理装置及びサーバ処理方法
JP3574030B2 (ja) コンピューティング装置、操作方法およびプログラム記憶装置
JPH10149286A (ja) 効率的な共通オブジェクトリクエストブローカアーキテクチャトランザクションを実行するための方法および装置
JP2000242607A (ja) サーバ・データ処理装置、操作方法および記憶装置
US6324589B1 (en) Apparatus, method and computer program product for client/server computing with reduced cross-process calls
EP0616284A2 (en) Transaction processing