JP3672208B2 - 階層化トランザクション処理方法 - Google Patents

階層化トランザクション処理方法 Download PDF

Info

Publication number
JP3672208B2
JP3672208B2 JP16757197A JP16757197A JP3672208B2 JP 3672208 B2 JP3672208 B2 JP 3672208B2 JP 16757197 A JP16757197 A JP 16757197A JP 16757197 A JP16757197 A JP 16757197A JP 3672208 B2 JP3672208 B2 JP 3672208B2
Authority
JP
Japan
Prior art keywords
transaction
transactions
processing
hierarchy
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP16757197A
Other languages
English (en)
Other versions
JPH1069418A (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 JPH1069418A publication Critical patent/JPH1069418A/ja
Application granted granted Critical
Publication of JP3672208B2 publication Critical patent/JP3672208B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ化トランザクション処理方法に関する。より詳細には、本発明は、トランザクションの総体のアトミック性を保証する、潜在的に分散した多数のトランザクションの総体のコンピュータ化処理に関する。
【0002】
【従来の技術】
トランザクション・アプリケーションとも呼ばれるトランザクションは、回復可能なリソースおよびデータ、たとえばデータベースを一つの整合状態から別の整合状態に変化させる一連の処理を含む。トランザクション処理システムは、あるトランザクションが回復可能なリソースまたはデータに対して何らかの更新を実行し、そのトランザクションがその正常な終了または整合性の中間点に達する前に障害が起こるならば、そのような更新が取り消されること(ロールバック)を保証する。新たな整合性の点に達し、トランザクションによって実施されたすべての更新が永久的にされなければならないとき、トランザクションはコミットする。
【0003】
このトランザクション回復保証を履行するためには、システムは、システム動作不能状態の間、進行中のトランザクションおよびそれらの更新動作の両方を、システムが再起動したとき、回復可能データに対するそれらの効果を正しく反映させることができるよう、記憶することができなければならない。一般に、システムは、トランザクション回復保証を履行するために、ログ・マネージャによって記録され、維持される、各トランザクションの進行状態ならびにリソースおよびデータに対する変更に関するログを維持する。ログ・レコードとして知られるログ・データを審査すると、トランザクションのコミットした動作が、データベースに反映されているか、取り消されたかのいずれかであることを保証することができる。また、ログ・レコードが実データを含むときには、ログ・レコードを利用して、たとえば記憶装置の障害によって損傷または損失したデータを再構成することもできる。ログは、常に成長する順次アクセス・ファイルと考えることができる。
【0004】
ログは、システム障害の際にも無傷で利用可能な状態にとどまる安定な記憶装置、たとえばディスク・ファイル上に永久的に記憶されている。ログ・レコードは、まず、コンピュータのメモリの中の一時的な揮発性ログ・ファイル・バッファに書き込まれたのち、一定の時機(たとえば、トランザクションがコミットされたとき)に安定な記憶装置に移される。
【0005】
ロック・マネージャによってサポートされる「ロッキング」は、共用リソースおよび共用データに対して同時に実行される(すなわち、並行な)トランザクションのアクセスを制御するのに使用され、特に、並行トランザクションが同じリソースおよびデータを不整合に変更してしまうことを防ぐのに使用される。ロッキングを適切に使用すると、トランザクションが操作するリソースおよびトランザクションが読み出すデータが整合状態にあり、リソースおよびデータが他のトランザクションのコミットしていない更新を含まないことをトランザクションに保証することができる。
【0006】
トランザクションが操作する回復可能なリソースおよびデータはさらに、リソース・マネージャによってサポートされることもできる。リソース・マネージャとは、一定のタイプのトランザクション・オブジェクトを管理するサブシステムである。リソース・マネージャは通常、システム全体で利用可能であるかもしれないサービスを、アプリケーションまたは他のリソース・マネージャに提供する。トランザクション・データベース・システム、トランザクション待ち行列マネージャ、トランザクション・セッション・マネージャなどはすべてリソース・マネージャとして働くことができる。
【0007】
トランザクション・マネージャは、コンピュータ・システムの中で並行に処理が起こる多数のトランザクションの流れを統制し、管理し、協調させる。これは、トランザクションのコミットおよび取り消し、すなわちロールバックならびにそれらが失敗したのちのオブジェクト、リソース・マネージャまたはサイトの回復を命令する。
【0008】
局所または分散トランザクション・システム中での一定のトランザクションおよび他すべての並行に処理が起こるトランザクションに関する上述の整合性要件は、ACID要件としてより正確に表現される。実際、ACID性とは、以下に説明する4種の異なる部分的要件を組み合わせたものである。
【0009】
・アトミック性(Atomicity)
システム全体の状態に対するトランザクションの変更はアトミック性である。すなわち、すべてが起こるか、何も起こらないかである。これらの変更は、データベース変更、メッセージ、変換器に対する動作などをはじめとする、リソースに対するすべての変更を含む。
【0010】
・整合性(Consistency)
トランザクションは、システム状態の正確な変換である。一つのグループとして受け取られる動作は、状態に関連する整合性制約のいずれをも侵害しない。これには、トランザクションが正しいプログラムであることを要する。
【0011】
・隔離(Isolation)
トランザクションが並行に実行されるとしても、それぞれのトランザクションTにとっては、他のトランザクションがTの前またはTの後のいずれか(前後両方ではない)で実行されるように見える。
【0012】
・耐性(Durability)
ひとたびトランザクションが正常に完了し、その作業をコミットするならば、状態に対するその変更は障害に耐えて存続する。すなわち、状態変化は永久的になる。
【0013】
コンピュータ科学の分野では、大域トランザクションのアトミック性を保証する機構が公知である。詳細は、たとえば、「J. Gray, A. Reute, Transaction Processing: Concepts and Techniques, Morgan Kaufmann Publishers, San Francisco(CA)」に見いだすことができる。焦点は、トランザクションの総体が整合性のある共通のトランザクション結果、すなわち整合性のシステム状態(すなわちコミットまたはアボートのいずれか)に達することを許す同期プロトコルである、いわゆるアトミック・コミット・プロトコル(ACP)にある。もっとも普及し、開発されているACPは、多数の異なる商業用システムにおいて幾度も実現され、使用されてきた、いわゆる2相コミット(2PC)プロトコルである。
【0014】
その重要性から、2PCは、企業連合によって標準化された。たとえば、手続き可変要素は、X/OPENによって標準化された。X/OPENの詳細は、「X/OPEN Guide, Distributed Transaction Processing Reference Model(Version 2), X/OPEN Company Ltd., U.K. 1993」に見いだすことができる。オブジェクト指向可変要素は、オブジェクト管理グループ(OMG)によって標準化された。オブジェクト管理グループの詳細は、「Object Management Group, Object Transaction Services(OTS), OMG Document TC 94.8.4(1994)」に見いだすことができる。対応するX/OPEN規格の多くの規格準拠インプリメンテーションが存在し、対応するOMG規格の多くの準拠インプリメンテーションが進行中であるか、最近リリースされたばかりである。
【0015】
もう一つの公知のACPは、いわゆる3相コミット・プロトコルである。
【0016】
一つのアトミック作業だけからなる標準的なトランザクションの表現力は非常に限られている。標準的なトランザクションが提供するよりも融通性のある制御手段が求められるであろう多くの状況が存在する。特に実世界の応用の場合には、大域トランザクションと呼ばれるトランザクションの総体が協力して所望の処理目標を達成しなければならない。
【0017】
そのような複雑なトランザクションのために、種々の異なるモデルが開発されている。例は、セーブポイント技術、入れ子トランザクション、連鎖トランザクションなどである。種々のモデルの概説は、たとえば、「J. Gray, A. Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann Publishers, San Francisco(CA)」に見いだすことができる。
【0018】
これらすべてのトランザクション・モデルは、局所または分散トランザクションの総体、すなわち大域トランザクションのためのアトミック性を保証するための媒体として単独に考慮されるとき、根本的な問題を抱えている。これらの問題に共通の根源は、一方でのアトミック性と他方での並行性との間で適切なバランスを見いだすことの難しさである。一方でアプリケーション全体の整合性を危険にさらさないようにすることは、大域トランザクションの終了までホールドされるロックの数を増すことを意味する。これは、結果として、アトミック性を保証する協調制御努力の途方もない増大をもたらし、それにより、特に分散処理環境において、性能劣化および並行性における深刻な損失を同時にもたらすであろう。他方、現在の技術水準によると、協調制御努力の減少ならびに性能および並行性における改善は整合性の危険を伴う。
【0019】
大域トランザクションの連鎖トランザクション・モデルは、トランザクションの総体に包含されるトランザクションが最終的に成功することを保証する。この結果は、トランザクションの総体が2PC処理に包含されると仮定することなく達成され、それにより、上述の問題のいくつかを回避することができる。
【0020】
トランザクション連鎖によると、一つの、すなわち第一のトランザクションをコミットして、もはや必要とされないすべてのオブジェクトを解放し、なおも必要とされる処理コンテキストを、暗黙に開始される次の、すなわち第二のトランザクションに渡すことができる。第一のトランザクションのコミットメントと、次のトランザクションの開始とは、一つのアトミック操作にいっしょに包み込まれる。これは、逆に、他のどのトランザクションも、一方のトランザクションから他方のトランザクションに渡されるコンテキスト・データを見た(または変更した)はずがないことを意味する。連鎖トランザクション・モデルの欠点は、その固有の非同期モードの処理によるものである。第一のトランザクションは、第二のトランザクションの処理の要求を開始するだけであり、第二のトランザクションがすでに始まったかどうかに関して何らかの情報を同期的に戻すこともなく、その処理の結果に関する情報を戻すこともない。連鎖トランザクションのまさにその定義により、このトランザクションは、最終的には、すべての包含されたトランザクションがそれらのサービス要求を受けるということを保証するが、保証された時間枠の中で受けるということは保証できない。したがって、作業単位の概念を提供しながらも、そのような単位はしばしば、ユーザ(エンドユーザとプログラマの両方)がこの作業単位があるべきとみなすものとは対照的である。より理解しやすい(たとえば結合最大期間を有する)作業単位の概念を実現することはやっかいである。
【0021】
【発明が解決しようとする課題】
本発明は、潜在的に分散した多数のトランザクションの総体を処理して、その総体のトランザクション挙動を保証する、すなわちそのアトミック性を保証する課題に基づく。アトミック処理挙動を提供することと同時に、本発明の課題は、前記トランザクションの協調のために通信量を最適化することである。さらに同時に、本発明の課題は、並行性挙動および前記トランザクションの総体の処理能力を最適化することである。
【0022】
【課題を解決するための手段】
本発明の課題は、請求項1によって解決される。大域トランザクションに包含される潜在的に分散したトランザクションの総体を処理するための本発明の根本的な手法は、メンバ・トランザクションの総体をトランザクションのグループに分割する手法に基づく。それぞれのグループは「トランザクション階層」または単に「階層」と呼ばれる。各階層は、アトミック・コミット・プロトコルを介して処理され、同期化され、それにより、個々の階層ごとにACID処理結果が保証される。したがって、得られたトランザクションのグループの総体として、すなわち階層の総体として構成される大域トランザクションは、連鎖トランザクション処理の原理にしたがって、連鎖階層のセットとして処理される。連鎖階層実行は大域トランザクションのアトミック実行を保証する。
【0023】
本発明によって提案される技法は、トランザクション挙動をメンバ・トランザクションの総体に提供するために本来求められる協調および同期化の努力を有意に減らす。アトミック・コミット・プロトコルによる処理集約的な協調および同期化の努力は、同じ階層に属する比較的少数のメンバ・トランザクション(大域トランザクション全体の一部である潜在的に多数のメンバ・トランザクションに比較して)についてしか求められない。そのような比較的小さなメンバ・トランザクションのグループについてだけ、ACID性を保証するための処理の負担が求められる。
【0024】
そのうえ、大域トランザクションを多数の階層に分割する結果として、環境全体の並行性挙動および処理能力が増大する。理由は、各階層は、2PCを介して協調された、より少数のトランザクションしか含まず、したがって、階層一つあたりにホールドされるロックがより少ないからである。さらには、各階層は、並行に動作中である他の階層から独立してコミットして、ロックを解除するまでに必要な時間を減らす。換言するならば、要するに、階層化トランザクション処理が粒度を下げ、したがって、並行性およびシステム処理能力を増大させるのである。
【0025】
階層を形成しているメンバ・トランザクションは、それらのACID性保証結果により、作業の単位とみなすことができるため、階層手法は「作業単位」という新たな概念を実現することができる。たとえば、作業単位は、ユーザとの対話に関して定義することもできる。ユーザの要求によって開始された階層は、コミットしたのち、それによって生じた他の階層の正常な完了を待つ必要なく、ただちに戻ることができる。その結果、ユーザの応答時間は一般に短縮される。
【0026】
連鎖トランザクション処理の概念による階層の連鎖処理により、トランザクションの総体のアトミック性が保証され、したがって、大域トランザクションのトランザクション挙動が提供される。
【0027】
さらなる利点が請求項2によって達成される。本発明のさらなる実施態様によると、第一のトランザクション階層と第二のトランザクション階層とを連鎖するための処理作業は、第一および第二のトランザクション階層の一部である。本発明によると、階層の連鎖は、実行要求を待ち行列に挿入し、それを待ち行列から取り出すことによって達成される。
【0028】
階層の一部としてのこれらの実行要求の扱いは、ACID操作に参加するための扱いを許し、階層をコミットした時点で、実行要求の扱いが正常に完了することを保証する。
【0029】
さらなる利点が請求項3によって達成される。本発明のこのさらなる実施態様は、非同期トランザクション処理をサポートする待ち行列を教示している。すなわち、トランザクション実行要求を待ち行列に挿入したのち、制御は、要求されたトランザクションがその処理を開始または終了することを待たずに、挿入作業に戻る。
【0030】
非同期トランザクション処理は、特にユーザ対話が関連する場合に多大な応答時間を有意に減らす。
【0031】
さらなる利点が請求項4によって達成される。本発明のさらなる実施態様によると、前記待ち行列は、リソース・マネージャによって管理される耐性保護リソースを表している。
【0032】
保護リソースである待ち行列は、トランザクション実行要求が、ひとたび正常に待ち行列に挿入されると、システムのクラッシュなどの場合でさえ、システムによって常に記憶されることを保証する。最後に、この技術により、一つの階層のアトミック性だけでなく、大域トランザクション全体のアトミック性が保証される。
【0033】
各メンバ・トランザクション、ひいては各階層を任意の巨大で複雑なコンピュータ・ネットワーク内のどこででも処理できるようにすることにより、さらなる利点が達成される。したがって、メンバ・トランザクションおよび階層が多数のコンピュータ・システムの中に分散していてもよい。
【0034】
多数の異なるポリシーが、階層内で処理されるメンバ・トランザクションを定義することを許すことにより、さらなる利点が達成される。したがって、個々の階層をアセンブルするメンバ・トランザクションの選択のための完全な自由が提供される。
【0035】
たとえば、あるポリシーによると、同じコンピュータ・システム上で実行されるメンバ・トランザクションを組み合わせて、個々のトランザクション階層を形成する。このようなポリシーは、潜在的に分散したトランザクションの総体を協調させるのに必要なネットワーク通信量を減らすことができる。一つの同じ物理的機械上で処理されるすべてのメンバ・トランザクションを、必要なトランザクション・マネージャのインスタンスとともに、一つのトランザクション階層の中で処理することができるため、これは、2PCに準拠するために必要なメッセージを機械境界を越えて送ることを回避させ、階層あたりの協調処理の性能を高める。
【0036】
【発明の実施の形態】
本明細書の記載がトランザクションを引用しているならば、局所トランザクションまたは分散トランザクションには限定されない。通常、本明細書の記載によると、トランザクションは、そのようなタイプのいかなるものであってもよい。
【0037】
導入
すでに概説したように、トランザクション・アプリケーションとも呼ばれるトランザクションは、回復可能なリソースおよびデータ、たとえばデータベースを一つの整合状態から別の整合状態に変化させる一連の処理を含む。トランザクション処理システムは、トランザクションが回復可能なリソースおよびデータに対して何らかの更新を実行し、そのトランザクションがその正常な終了または整合性のインテリム・ポイントに達する前に障害が起こるならば、そのような更新が取り消されること(ロールバック)を保証する。新たな整合性の点に達し、トランザクションによって実施されたすべての更新が永久的にされなければならないとき、トランザクションはコミットされる。
【0038】
図1は、疑似コードで表記されたトランザクション・プログラムの全体構造の概要を示す。当然、トランザクション・アプリケーション・プログラムは、いかなる従来の、または特殊なプログラム言語で書くこともできる。このトランザクション・アプリケーション・プログラムは、1行目でBEGIN WORK()を呼び出すことにより、新たなトランザクションの開始を宣言する。その後、プログラムによって実行されるすべての操作は、このトランザクションの一部になる。また、トランザクション・アプリケーション・プログラムの使用中に他のプログラムによって実行されるすべての操作(2〜3行目のプログラム有効範囲の中)もまた、トランザクションの一部になる。プログラムは、図1の5行目のCOMMIT WORK()を呼び出すことにより、トランザクションがシステム状態の完全で正しい変換であることを宣言する。ひとたびトランザクションが正常にコミットすると、トランザクションの効果は耐性かつ持続性になる。トランザクション中に何かがおかしくなるならば、トランザクション・アプリケーションは、7行目でROLLBACK WORK()を呼び出すことにより、すべての操作を取り消すことができる。トランザクションの実行中に障害が出るならば、システムは、トランザクションを一方向的にロールバックさせることができる。そして、BEGIN-COMMITまたはBEGIN-ROLLBACKを使用して、ACID変換をブラケットすることができる。
【0039】
トランザクション・アプリケーションの基本制御の流れおよびトランザクション処理システム中の主要部品を図2に示す。図2は以下のものを表している。
【0040】
・トランザクション・プログラム200
【0041】
・潜在的に多数のリソース・マネージャ210の一つ。リソース・マネージャとは、一定のタイプのトランザクション・オブジェクトを管理するサブシステムである。リソース・マネージャは通常、システム全体で利用できるかもしれないサービスをアプリケーションまたは他のリソース・マネージャに提供する。
【0042】
・トランザクション・マネージャ220。これは、トランザクションのコミットおよびロールバックならびに障害後のオブジェクト、リソース、リソース・マネージャまたは局所もしくは遠隔サイトの回復を命令する。
【0043】
・ログ・マネージャ230。これは、障害時にすべてのオブジェクトおよびリソースの整合性のあるバージョンを再構成することができるよう、トランザクションによって実施された変更のログを記録する。
【0044】
・ロック・マネージャ240。これは、オブジェクトおよびリソースに対する並行アクセスを規制して、リソース・マネージャがトランザクション隔離を提供するのに役立つ汎用機構を提供する。
【0045】
・トランザクション回復機能250。これは、トランザクション・プログラムのコミット有効範囲内で障害の場合に起動される。
【0046】
図2を参照すると、BEGIN WORK()201がトランザクションを開始し、それをトランザクション・マネージャに登録し(202)、固有のトランザクション識別名203を作り出す。ひとたびアプリケーションがトランザクションを開始すると、アプリケーションは、リソース・マネージャ204および205を呼び出し始め、データベースに対して読み書きを行ったり、局所および遠隔サイトに要求を送付したり、他のタイプのリソースを操作したりすることができる。
【0047】
リソース・マネージャ210がそのトランザクションに関連する最初の要求を受け取ると、それはトランザクションに加わり(211)、局所トランザクション・マネージャ220に対し、それがトランザクションのコミットメントおよびロールバック操作に参与したいことを伝える。いくつかのリソース・マネージャがトランザクションに加わることは通常のことである。これらのリソース・マネージャがトランザクションを代表して作業を実行するとき、リソース・マネージャは、オブジェクトに対して加えた変更のリストを維持する。原則として、リソース・マネージャは、オブジェクトまたはリソースの旧値および新値の両方を記録する。トランザクション処理システムは、そのような変更を記録するためのロギング・サービス212を提供する。ログ・マネージャ230は、オブジェクトおよびリソースに対するトランザクションのすべての更新の順アクセス・ファイルを効率的に実現する。当然、リソース・マネージャは、これらの更新が何であるかをログ・マネージャに伝えなければならない。
【0048】
隔離を提供するため、リソース・マネージャは、トランザクションによってアクセスされるオブジェクトおよびリソースをロックする(213)。これは、他のトランザクションがこのトランザクションのコミットされていない更新を見ることを防ぎ、他のトランザクションが、このコミットされていないトランザクションによって読み書きされるデータを変更することを防ぐ。トランザクション処理システムは、他のリソース・マネージャが使用することができるロック・マネージャ240を提供する。
【0049】
トランザクション200がCOMMIT WORK()206を発すると、トランザクション・マネージャは、アトミック・コミット・プロトコル、すなわち、この場合では、2相コミット・プロトコル260を実行する。まず、トランザクションに加わったすべてのリソース・マネージャに問い合わせて、トランザクションが整合性のある完全な変換であると思うかどうか尋ねる。いずれかのリソース・マネージャがNoと答えると(262)、その場合、コミットは失敗する。すべてのリソース・マネージャがYesと答えるならば(262)、トランザクションは正しい変換であり、トランザクション・マネージャはこの事実をログに記録し、各リソース・マネージャに対し、トランザクションが完了したことを知らせる。この時点で、リソース・マネージャは、ロックを解除し、トランザクションを完了するのに必要な他の操作を実行することができる。実行中にトランザクションが失敗するか、あるいは、2PCの相1の間にリソース・マネージャがNoと答えるならば、トランザクション・マネージャはトランザクション・ロールバックを命令する。この場合、トランザクション・マネージャは、トランザクションのログを読み、ログ・レコードごとに、そのログ・レコードを書いたリソース・マネージャを呼び出して、そのリソース・マネージャに対し、操作を取り消すよう求める。ひとたび取り消しスキャンが完了すると、トランザクション・マネージャは、トランザクションに加わった各リソース・マネージャを呼び出し、トランザクションがアボートされたことを伝える。
【0050】
トランザクション・マネージャはまた、ノードまたはサイトが障害を起こした場合にもトランザクション回復を命令する。トランザクション・マネージャは、一つのオブジェクトの障害、リソース・マネージャの障害およびサイト全体の障害のための汎用サービスを提供する。
【0051】
以下、トランザクション・マネージャがシステムの回復に役立つ方法を説明する。
【0052】
サイトが障害を起こしたのち、トランザクション処理(TP)システムがすべてのリソース・マネージャを再起動する。いくつかのトランザクションは障害発生時に進行中であったかもしれない。リソース・マネージャは、それらの再起動ロジックの一部としてトランザクション・マネージャに接触する。そのとき、トランザクション・マネージャは、障害が起きたときに作業中であった各トランザクションの結果をリソース・マネージャに知らせる。いくつかはコミットしていたかもしれず、いくつかはアボートされていたかもしれず、いくつかはコミットする過程にあったかもしれない。リソース・マネージャは、そのコミットした状態を独立して回復することもできるし、トランザクション・マネージャによるログの取り消しおよび繰り返しスキャンに参与することもできる。
【0053】
リソース・マネージャは障害を起こすが、TPシステムの残りが動作を続けるならば、トランザクション・マネージャは、そのリソース・マネージャに関連するすべてのトランザクションをアボートする。リソース・マネージャがサービスに戻ると、トランザクション・マネージャは、それらのトランザクションの結果をリソース・マネージャに知らせる。リソース・マネージャは、この情報およびトランザクション・ログを使用して、その状態を再構成することができる。
【0054】
特定のオブジェクトは損失したが、リソース・マネージャが他の方法で動作しているならば、リソース・マネージャは、他のオブジェクトに関してサービスを提供し続け、その間、失敗したオブジェクトがアーカイブ・コピーおよびそのコピーに対してコミットしたすべての変更のログから再構成される。トランザクション・マネージャおよびログ・マネージャは、アーカイブコピーからのオブジェクトの回復を支援する。
【0055】
各サイトは普通、別個のトランザクション・マネージャを有している。これが、各サイトが互いに独立して動作することを許して、局所自律性を提供する。トランザクションの実行がいくつかのサイトの中に分散しているとき、それは、いくつかのトランザクション・マネージャの中に分散する。その場合、多数のトランザクション・マネージャの中で2PCプロトコルが使用される。
【0056】
リソース・マネージャによって維持、制御される、トランザクション・オブジェクトとも呼ばれるリソースは、保護リソースまたは回復可能リソースである。保護リソースに対して向けられる動作は、それらの動作が完全に終了する前にそれらの結果を外部に出すことはない。これらの更新はコミットメント制御され、正常に終了する前に何かがおかしくなるならばロールバックすることができ、ひとたび正常終了に達すると、一方向のロールバックはなくなる。このように、保護リソースに向けられる動作はACIDの性質を有する。
【0057】
図3は、分散TPシステムの側面により焦点を当てたTPシステムを示す。さらに、図2に概略したモデルとは異なるいくつかの変更を示す。図3のモデルは、X/OPEN企業連合の観点のラインに沿っている。
【0058】
図は、コンピュータ・ネットワーク303を介して接続された二つのTPシステム301および302を示す。両TPシステムは、それらの間の通信を司る特定のリソース・マネージャ、すなわち通信マネージャ304および305を含む。さらにこのモデルでは、各リソース・マネージャ306および307が専用のログおよび専用のロック・マネージャを有するものと仮定する。トランザクションがアボートする場合、リソース・マネージャは、トランザクション・マネージャからの一回のロールバック呼び出しに基づいて、それ自身のロールバックを実行すると考えられる。
【0059】
大域トランザクション
一つのアトミック作業だけからなる標準的なトランザクションの表現力は非常に限られている。標準的なトランザクションが提供するよりも融通性のある制御手段が求められるであろう多くの状況が存在する。特に実世界の応用の場合には、トランザクションの総体が協力して所望の処理目的を達成しなければならない。そのような伝統的なACIDトランザクションの総体は、そのアトミック性が保証されるならば、「大域トランザクション」と呼ばれる。
【0060】
コンピュータ科学の分野では、大域トランザクションのアトミック性を保証する機構が公知である。大域トランザクションの問題を扱う一つの手法は、いわゆる「連鎖トランザクション(Chained Transactions)」である。連鎖トランザクションは、ACID性を保証するための同期アトミック・コミット・プロトコル(ACP)に関する処理努力をある程度減らすための特別な手法を提供する。
【0061】
CTが、標準的なメンバ・トランザクションT1〜Tnからなる連鎖トランザクションであると仮定する。連鎖トランザクションの概念は、長く続く大域トランザクションCTに対して順副階層構造を課すことを許す。この概念は、メンバ・トランザクションTiの中から、「CHAIN」実行要求により、メンバ・トランザクションTjのトランザクション処理要求を出すことを許す。二種類の連鎖トランザクションが可能である。同期連鎖トランザクション・モデルによると、メンバ・トランザクションTiのコミットメントは、結果的に、連鎖トランザクションTjの実行を同期的にもたらす。他方、非同期連鎖トランザクション・モデルでは、メンバ・トランザクションTiのコミットメントの後には、連鎖トランザクションTjの非同期実行が続く。以下、はっきりと必要ではない限り、連鎖トランザクション原理に関するこれらの異なる表現を区別しない。
【0062】
Tiの処理に拘束された潜在的な実行コンテキスト、たとえばデータベース・カーソルなどを包含するデータベース・コンテキストは、保存し、Tjの処理に渡すことができる。したがって、トランザクション連鎖を用いると、一つのトランザクションTiをコミットして、もはや必要ではないすべてのリソースおよびオブジェクトを解放し、なおも必要とされる処理コンテキストを、TP処理システムによって暗黙に開始される次のトランザクションTjに渡すことができる。第一のトランザクションTiのコミットメントと、次のトランザクションTjの開始とは、一つのアトミック操作にいっしょに包み込まれる。これは逆に、他のトランザクションが、一方のトランザクションTiから他方のトランザクションTjに渡されるコンテキスト・データを見た、または変更したはずがないことを意味する。
【0063】
連鎖ステップはトランザクション(Ti)を取り消し不能に完了するため、ロールバックは、連鎖トランザクションCTの中の現在作業中のメンバ・トランザクション(Tj)に限定される。Tiのコミットは、トランザクション・アプリケーションCTが、その後は必要としないロックを解除することを許す。連鎖トランザクション方式による再起動の扱いは、最新のコミット、すなわち、もっとも最近にコミットされたメンバ・トランザクションのコミットの状態を再び確立することによって実行される。
【0064】
メンバ・トランザクションTiの中で次のメンバ・トランザクションTjを連鎖するとき、この処理要求が、呼び出し側トランザクションTiのコミット有効範囲の一部として、要求待ち行列に挿入される。この要求待ち行列は当然、回復可能、すなわち耐性のリソースであり、この挿入処理はACID性の要件を満たす。したがって、これらの多数の回復可能な要求待ち行列は、持続性のある回復可能なメッセージングをサポートする。次のメンバ・トランザクションTjの処理要求を待ち行列から取り出すことは、Tjのコミット有効範囲の一部である。
【0065】
CTの中でメンバ・トランザクションTiから次のメンバ・トランザクションTjを連鎖する処理が本質的に非同期的であるならば、これらの非同期トランザクション処理要求は、結果として、次のメンバ・トランザクションTjの処理を同時にはもたらさない。その代わりに、処理要求は、呼び出し側トランザクションTiのコミット有効範囲の一部として要求待ち行列に挿入される。この処理要求が、結果として、要求された次のメンバ・トランザクションTjの実行をいつもたらすかは、TPシステムしだいである。
【0066】
図4は、メンバ・トランザクションT1、T2、T3、すなわち401、402、403を包含する連鎖トランザクションCTの簡単な例を示す図である。そのコミット有効範囲の中で、T1は、ACID性が保証される特定の作業を実行する。特定のデータベースのアクセス407は一つの例である。同じくそのコミット有効範囲の中で、すなわちその作業をコミットする前に、T1は、連鎖トランザクションCTの一部である次のメンバ・トランザクションT2の実行要求を出す(404)。ひとたびメンバ・トランザクションT2が制御を得ると、それは、同様な方法で、それが司る作業を実行する。特定の時点で、それは、連鎖トランザクションCTの一部である最後のメンバ・トランザクションT3の実行要求を出す(405)。この例によると、メンバ・トランザクションT3は、制御を得たのち、そのコミット有効範囲の中でさらなるデータベースにアクセスする(406)。
【0067】
本発明はまた、トランザクションがネットワーク中に分散している場合をも取り扱う。そこで、本発明はまた、分散トランザクション処理の分野にも関連する。これは、メンバ・トランザクションそれぞれが、ホストのオペレーティング・システムの別個のスレッドまたはプロセスの中で、またはネットワーク中の異なる物理的機械上で実行するかもしれないことを意味する。したがって、概念的に、一定のトランザクションがネットワーク中のどのコンピュータ・システム上で処理されるのかを区別することはもはや必要ではない。
【0068】
ネットワーク内のコンピュータ・システム間の通信目的のためのメッセージ指向性ミドルウェア(MOM)の出現により、分散トランザクションの処理のための新たな概念が可能になった。過去数年間、メッセージ指向性ミドルウェア(MOM)はその重要性を増した。MQシリーズをもって、IBM社は、現在、MQシリーズのプロトコルを主に採用するISOおよびOMGのような公の標準化機関で進行中の作業によって示される、この分野における事実上の基準を確立した。IBM社のMQシリーズに関しては、たとえば「MQSeries Planning Guide, Document Number GC33-1349-01」を参照されたい。メッセージ指向性ミドルウェアは、リソース・マネージャによって管理される保護リソースの意味での回復可能リソースとして扱われる持続性の回復可能待ち行列を提供する。すなわち、そのような待ち行列の操作をトランザクション内で実施して、メッセージ待ち行列を扱うためのACID性サポートを保証することができる。
【0069】
図5は、MOMを利用して、連鎖トランザクション・モデルにしたがって分散大域トランザクションを処理する方法を例示する。MOMの利用は、二つの連鎖トランザクションの同じ結果を保証するため、非同期プロトコルを考慮している。トランザクション・アプリケーションが二つのメンバ・トランザクションT1(501)およびT3(503)に分割され、関連の分散アプリケーションの意味的に正しい実行を結果的にもたらすためには、T1およびT3がいずれも起こらなければならない(すなわち、コミットしなければならない)と仮定する。この場合、T1は、それがメッセージを出して(504)、その局所的な持続性回復可能待ち行列Q1(505)の中でT3を開始したものと同じ局所トランザクションの中でその対象の回復可能リソースを操作しなければならない。Q1からQ2(506)(T3に局所的な待ち行列)へのメッセージの伝達は、利用されるメッセージング・ミドルウェア層によって保証され、したがって、第三の独立したトランザクションT2(502)として認められることができる。T3は逆に、この要求を、それがその対象の回復可能リソースを操作したものと同じ局所トランザクションの中でその局所待ち行列Q2から得なければならない。その結果、T1がその作業をコミットするならば、T3は、最終的に、その関連の作業を正常に実行する。
【0070】
現在の技術水準によって処理される大域トランザクションは、潜在的に分散したトランザクションの総体のアトミック性を保証する根本的な課題を抱えている。
【0071】
たとえば分散トランザクション・アプリケーションは、それぞれがネットワーク中のどこかで実行している二つ以上の意味的に関連した実行スレッドからなることができる。この場合、スレッドの概念は、そのもっとも一般的な意味で、実行中の1片のコードのOS表現として使用され、オペレーティング・システムのディスパッチまたはスワップの単位の厳密な意味では使用されない。このスレッドの総体のサブセットがトランザクションからなるとき、これらのトランザクションの結果は同期化されなければならない。普通、すべての参与するトランザクションがコミットするか、すべてがアボートされるかのいずれかであることが保証されなければならない。2PCは、このアトミック性の課題の解決方法である反面、トランザクションの総体が同じトランザクション結果(すなわち、コミットまたはアボートのいずれか)に達することを許す同期プロトコルであるACPプロトコルのファミリーの一つの代表として、いくつか周知の欠点を抱えている。たとえば、大域トランザクションの最後まで保持されるロックによるシステム全体の中での並行性の低下や、2PCに固有の、環境全体の性能の低下を招く高いメッセージ複雑性である。
【0072】
これらの欠点は、結果的に、多くの場合、2PCの利用を回避させるインプリメンテーションをもたらす。その結果、アプリケーション全体の整合性が危うくなる。クラッシュの場合には、多くの状況では、やっかいであり、しばしば誤りを起こしやすい手作業によって全体の整合性を再び確立しなければならない。
【0073】
一見すると、連鎖トランザクション処理方式が代替となりうるかもしれない。連鎖トランザクション・モデルは、包含されたトランザクションが最終的には成功するということを保証する。これは、トランザクションの総体が2PC処理に包含されるものと仮定せずにそれを保証し、したがって、上述の問題を回避させる。
【0074】
連鎖トランザクション・モデルの欠点は、非同期であることに基づく。まさにその定義により、連鎖トランザクション・モデルは、最終的には、すべての包含されたメンバ・トランザクションがそれらのサービス要求を受けることを保証するが、保証された時間枠の中で受けるということは保証できない。したがって、作業単位の概念を提供しながらも、そのような単位はしばしば、ユーザ(エンドユーザとプログラマの両方)がこの作業単位があるべきとみなすものとは対照的である。より理解しやすい(たとえば結合最大期間を有する)作業単位の概念を実現することはやっかいである。
【0075】
そのうえ、連鎖トランザクション・モデルは、完全なACID機能性を連鎖トランザクションに全体では提供することができないという欠点を抱えている。ACID性は、個々のメンバ・トランザクションだけに利用できる。
【0076】
階層化大域トランザクション
大域トランザクションに含まれる潜在的に分散したトランザクションの総体を処理するための本発明の根本的な概念は、以下の技術に基づく。
【0077】
・トランザクションの総体をトランザクションのグループに分割する。各グループは「トランザクション階層」または単に「階層」と呼ばれる。
【0078】
・各階層をACP(たとえば2PC)プロトコルによって処理し、同期化し、それにより、個々の階層ごとのACID処理結果を保証する。
【0079】
・得られるトランザクションのグループの総体として、すなわち階層の総体として構成された大域トランザクションを、連鎖トランザクションの原理にしたがって、連鎖階層のセットとして処理する。連鎖階層実行は、大域トランザクションのアトミック実行を保証する。
【0080】
階層、すなわちグループに分割されたメンバ・トランザクションの総体を包含する大域トランザクションを処理する手法は、多くの実際の状況で、すべての参加するトランザクションがデフォルトでそれらの終了に同期的に達する必要がないという憶測に基づく。それでも存続することは、すべての参加するトランザクションが同じ判定、すなわちコミットまたはアボートのいずれかに達するということである。この状況では、すべての参加するトランザクションの結果が2PCを介して同期化される必要はない。そのうえ、大域トランザクションを階層の総体に分割する処理は、異なるポリシーにしたがって起こることができる。たとえば、分割方法の例は、ネットワークの同じTPシステムで処理されるトランザクションどうしを同じ階層に分類するものでもよい。この手法は、ACPを介する分散同期化努力を有意に減らす。もう一つの分割ポリシーによると、もっとも重要な回復可能リソースを実施するようなメンバ・トランザクション同士が同じ階層の中で処理される。一般に、参加するトランザクションの総体は、トランザクション結果をACPを介して同期化しなければならない(たとえば、利用者による作業単位の認識を満たすために)ような、直接協力するトランザクション同士のグループに分割される。利用者の視点からは、階層の構造は見えない。すなわち、それは単に一体のトランザクションとして認識される。同じ物理的機械上で動作する参加するトランザクションのセットまたはエンドユーザによって直接認識される作業単位を実行する参加するトランザクションのセットは当然、階層としての候補である。
【0081】
階層間のトランザクション依存性は、一つの階層の中のトランザクションが一斉にコミットしたならば、他の階層もまたコミットするということである。この状況は、協力するトランザクションのグループ(すなわち階層)が協力するトランザクションの他のグループ(すなわち階層)からサービスを要求する場合に頻繁に見ることができる。各個々の階層のトランザクション結果は、2PCによって管理される。この手法は、各階層の処理に対するACID性を保証する。階層のセットそのものは、連鎖トランザクション(上記に概説したような連鎖トランザクションの意味で)の総体として管理され、したがって、「非同期トランザクション束」または「連鎖階層」と呼ばれる。非同期トランザクション束を処理するための連鎖手法はアトミック性を保証する。
【0082】
非同期トランザクション束は、そのインプリメンテーションのために、持続性の回復可能メッセージングに依存する。このような持続性の回復可能待ち行列は、TPシステムの一部であるかもしれず、根底のメッセージング・ミドルウェアによって促進されるかもしれない。MQシリーズは、使用することができる持続性の回復可能待ち行列の一例である。このため、非同期トランザクション束に参加する各階層は、その回復可能リソースを操作して、その適切なビジネス機能を、それが独立型のトランザクションであるかのように実行する。これに加えて、階層内の各トランザクションは、根底のメッセージング層の持続性の回復可能待ち行列にメッセージを入れて、包含する分散アプリケーションの意味的成功のために、前者のトランザクションが確かに実行されなければならない、他の階層のトランザクションからのサービスを要求することを司る。アトミック性を達成するためには、これらの要求を待ち行列に入れる動作が適切な各トランザクションの一部として起こるということが決定的である。代わって、同じ理由から、待ち行列中の要求によって開始される階層内の各トランザクションは、要求そのものを取り出すことがその適切なトランザクションの一部であることを確かめなければならない。その結果、階層の中でトランザクションによって実行されるすべての「PUT」および「GET」は、包含する階層がコミットする場合にコミットされるか、包含する階層がコミットする場合にしかコミットされない。
【0083】
潜在的に分散したトランザクションの総体を階層に分類し、階層のセットを非同期トランザクションの束として構成すると、得られたトランザクション・モデルを「階層化トランザクション(Stratified Transaction)」と呼ぶ。
【0084】
「PUT」および「GET」を適切なトランザクションに参与させるためには、根底の待ち行列インプリメンテーションは、それ自体がリソース・マネージャとして働かなければならない。特に、ACP(たとえば2PC)プロトコルに参加しなければならない。さらには、待ち行列インプリメンテーションの運搬機構は、ひとたび待ち行列システムが「PUT」を待ち行列にコミットすると、その送達が保証されなければならないという意味において処理されなければならない。
【0085】
分散トランザクションの総体を協調させるのに要するネットワーク通信量は、2PCに参加するトランザクションを制限して、すべてを一つの同じ物理的機械上で動作させることによって減らすことができる。これは、特定の階層に関連するすべてのトランザクションが(理想的には)同じ機械上で動作するということを意味する。当然、特定の機械またはTPシステムが多数の階層のホストであってもよい。連鎖トランザクション・モデルを利用して、階層そのものを参加するトランザクションとして協調させることにより、階層化トランザクション全体の整合性のある結果が達成される。
【0086】
図6は、二つのトランザクション階層S1(610)およびS2(620)に分割された(何らかのタイプのポリシーにしたがって)簡単な階層化トランザクションSTの例を示す。階層S1は、S1のコミット有効範囲で処理され、したがって、階層S1の結果にACID性を保証するn個のメンバ・トランザクションT11(611)〜T1n(612)を含む。S1のコミット有効範囲の一部としての階層レベル上の連鎖機構613を介して、S1は、階層S2の非同期処理を出す。ひとたび階層S2が制御を取得し、処理を開始すると、そのm個のメンバ・トランザクションT21(621)〜T2m(622)は、S2のコミット有効範囲で処理されて、ACID性を保証する。上記の説明によると、メンバ・トランザクションT11〜T1nおよびT21〜T2mのグループの中でだけ、ACPプロトコルは処理結果を同期化する。
【0087】
図7は、図6の場合を、ただし、個々のトランザクション階層を連鎖するのにMOMを使用する形態で示す。階層S1の中では、「PUT」701によって階層S2の処理要求を挿入することにより、さらなる階層S2が開始される。分散階層化トランザクションSTの意味的に正しい実行をもたらすためには、S1は、S1のコミット有効範囲の中でその対象の回復可能リソースを操作しなければならない。したがって、S2を開始するメッセージをその局所的な持続性の回復可能待ち行列に挿入することは、S1のコミットの一部である。Q1からQ2へのメッセージの伝達は、利用されるメッセージング・ミドルウェア層によって保証される。S2は、逆に、S2のコミット有効範囲の中でこの要求をその局所待ち行列Q2から「GET」(702)しなければならない。
【0088】
最後に、図8は、本発明による、より複雑な階層化トランザクションを示す。この例の大域トランザクションは、4個のトランザクション階層S1(810)、S2(820)、S3(830)、S4(840)に分割されている。各トランザクション階層は、そのコミット有効範囲の中に、メンバ・トランザクションの総体を含む。保護メッセージ待ち行列の中にメッセージを挿入することにより、メンバ・トランザクションT11が階層S2の処理を要求し(811)、メンバ・トランザクションT12が階層S2およびS3の処理を要求し(812、813)、さらにメンバ・トランザクションT14が階層S3の処理を要求する。そのうえ、トランザクション階層S2の処理の間、メンバ・トランザクションT21が階層S4の処理を要求し(821)、メンバ・トランザクションT23が階層S4の処理を要求する(822)。
【0089】
利点
トランザクションの階層化は、潜在的に分散したトランザクションの総体を協調させるのに必要なネットワーク通信量を減らすことができる。これは、種々のポリシーにしたがって、特定の階層に関して含まれるメンバ・トランザクションをグループ分けすることによって達成される。たとえば、一つのグループ分けポリシーによると、一つの同じ物理的機械上で処理されるすべてのメンバ・トランザクションを、必要なトランザクション・マネージャのインスタンスとともに、一つのトランザクション階層の中で処理することもできる。これが、2PCに準拠するために必要なメッセージを機械境界を越えて送ることを回避させ、階層あたりの協調処理の性能を高める。
【0090】
大域トランザクションを多数の階層に分割する結果として、環境全体の並行性挙動および処理能力が増大する。理由は、各階層は、2PCを介して協調された、より少数のトランザクションしか含まず、各階層内のトランザクションの数の減少のため、階層一つあたりにホールドされるロックがより少ないからである。さらには、各階層は、並行に動作中である他の階層から独立してコミットして、ロックを解除するまでに必要な時間を減らす。
【0091】
ユーザの応答時間は一般に短縮される。理由は、ユーザの要求によって開始された階層は、コミットしたのち、それによって生じた他の階層の正常な完了を待つ必要なく、ただちに戻ることができるからである。
【0092】
ネットワーク中心のコンピューティング・パラダイムおよびオブジェクト要求ブローカ・パラダイムがますます採用されると、結果的にトランザクションの拡散が起こる。これらのトランザクションは、アプリケーションに組み合わせなければならない別々のサービスを提供する。この組み合わせは、しばしば、包含されるトランザクションの協調した結果を保証しなければならない。本発明は、現在の技術水準の機構に比較して、概説した利点を有することにより、これを提供する。
【0093】
したがって、意味的な整合性を危うくすることなく、上述のパラダイムの中でアプリケーションの性能を調整するように努力する、分散アプリケーションの実現者は、本教示を利用するための候補者である。
【0094】
略号
2PC 2相コミット・プロトコル
ACP アトミック・コミット・プロトコル
ISO 国際標準化機構
MOM メッセージ指向性ミドルウェア
OMG オブジェクト管理グループ
TM トランザクション・マネージャ
TP トランザクション処理
【0095】
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)アプリケーション・プログラム定義コミット有効範囲に関してアトミック・コミット・プロトコルによってアプリケーション・プログラムにACID性機能を提供する少なくとも一つのコンピュータ・システムによるトランザクション処理方法において、
それぞれが少なくとも一つのメンバ・トランザクションを含む、第一のトランザクション階層および第二のトランザクション階層を少なくとも含むことと、
第一のステップにおいて、コミット有効範囲をもつ前記第一のトランザクション階層を処理して、前記アトミック・コミット・プロトコルによって処理結果のACID性を保証し、さらに、前記第一のステップにおいて、前記第二のトランザクション階層の処理を要求するトランザクション実行要求を待ち行列に挿入することと、
連鎖トランザクションの概念にしたがって、前記第一のステップを、前記第一のトランザクション階層がその処理を正常にコミットする場合にのみ処理される第二のステップと連鎖させることと、
前記第二のステップにおいて、前記待ち行列から前記トランザクション実行要求を取り出すことを含み、さらに、前記第二のステップにおいて、コミット有効範囲をもつ前記第二のトランザクション階層を処理して、前記アトミック・コミット・プロトコルによって処理結果のACID性を保証することと、
を特徴とする方法。
(2)前記待ち行列への前記トランザクション実行要求の挿入が、前記第一のトランザクション階層の前記コミット有効範囲の一部であり、前記待ち行列からの前記トランザクション実行要求の取り出しが、前記第二のトランザクション階層の前記コミット有効範囲の一部である上記(1)記載のトランザクション処理方法。
(3)前記待ち行列が多数の異なるコンピュータ・システムに分散している、かつ/または、前記待ち行列に挿入される前記要求がトランザクション保護によって扱われる上記(1)または(2)記載のトランザクション処理方法。
(4)前記待ち行列が、前記トランザクション実行要求を非同期に処理することによって非同期トランザクション処理をサポートしている上記(1)〜(3)のいずれか1項記載のトランザクション処理方法。
(5)前記待ち行列が、リソース・マネージャによって管理される耐性保護リソースを表している上記(1)〜(4)のいずれか1項記載のトランザクション処理方法。
(6)前記第一のトランザクション階層および/または前記第二のトランザクション階層によって構成される前記メンバ・トランザクションまたは前記メンバ・トランザクションの一部が、何らかの種類のコンピュータ・ネットワークによって接続された多数のコンピュータ・システムによって処理される上記(1)〜(5)のいずれか1項記載のトランザクション処理方法。
(7)前記アトミック・コミット・プロトコルが2相コミット・プロトコルまたは3相コミット・プロトコルとして実現されている上記(1)〜(6)のいずれか1項記載のトランザクション処理方法。
(8)多数の異なるポリシーが、前記階層それぞれの中で処理されるメンバ・トランザクションを定義する上記(1)〜(7)のいずれか1項記載のトランザクション処理方法。
(9)局所ノード・ポリシーが、同じトランザクション階層の中で処理すべき、同じコンピュータ・システム上で実行されるすべてのメンバ・トランザクションを定義する上記(8)記載のトランザクション処理方法。
【図面の簡単な説明】
【図1】 疑似コードで書かれたトランザクション・プログラムの全体構造を示す図である。
【図2】 トランザクション・アプリケーションの基本制御の流れおよびトランザクション処理システム内の主要構成部品を示す図である。
【図3】 分散トランザクション・モデルを示す図である。
【図4】 連鎖トランザクションの簡単な例を示す図である。
【図5】 分散大域トランザクションを連鎖トランザクション・モデルによって処理するためにMOMを利用する方法を例示する図である。
【図6】 本発明の階層化トランザクションの簡単な例を示す図である。
【図7】 個々のトランザクション階層を連鎖するためにMOMを使用する本発明の階層化トランザクションの簡単な例を示す図である。
【図8】 多数のトランザクション階層を用いる本発明の階層化トランザクションのより複雑な例を示す図である。
【符号の説明】
210、306、307 リソース・マネージャ
220 トランザクション・マネージャ
230 ログ・マネージャ
240 ロック・マネージャ
304、305 通信マネージャ

Claims (9)

  1. アプリケーション・プログラム定義コミット有効範囲に関してアトミック・コミット・プロトコルによってアプリケーション・プログラムにACID性機能を提供する、大域トランザクションに包含され、階層と呼ばれるトランザクションのグループに分割された潜在的に分散したトランザクションの総体のトランザクション処理方法であって、
    第一のステップにおいて、トランザクションが整合性のある完全な変換である場合にトランザクション・ログとして記憶させ、前記アトミック・コミット・プロトコルによって処理結果のACID性を保証するコミット有効範囲を有する、前記トランザクションの少なくとも一つをメンバとして含む第一のトランザクション階層を処理するステップと、
    前記トランザクションの少なくとも他の一つをメンバとして含む第二のトランザクション階層の処理を要求するトランザクション実行要求を、トランザクション・ログを使用して回復可能に構成された待ち行列に挿入するステップと、
    前記待ち行列から前記トランザクション実行要求を取り出すステップと、
    連鎖トランザクションの概念にしたがって前記第一のステップと連鎖される、前記第一のトランザクション階層が処理をコミットするか否かのみを処理する第二のステップにおいて、前記アトミック・コミット・プロトコルによって前記処理結果のACID性を保証するコミット有効範囲を有する前記第二のトランザクション階層を処理するステップと
    を含む、方法。
  2. 前記待ち行列への前記トランザクション実行要求の挿入が、前記第一のトランザクション階層の前記コミット有効範囲の一部であり、前記待ち行列からの前記トランザクション実行要求の取り出しが、前記第二のトランザクション階層の前記コミット有効範囲の一部である請求項1記載のトランザクション処理方法。
  3. 前記待ち行列が多数の異なるコンピュータ・システムに分散している、かつ/または、前記待ち行列に挿入される前記要求がトランザクション保護によって扱われる請求項1または2記載のトランザクション処理方法。
  4. 前記待ち行列が、前記トランザクション実行要求を非同期に処理することによって非同期トランザクション処理をサポートしている請求項1〜3のいずれか1項記載のトランザクション処理方法。
  5. 前記待ち行列が、リソース・マネージャによって管理される耐性保護リソースを表している請求項1〜4のいずれか1項記載のトランザクション処理方法。
  6. 前記第一のトランザクション階層および/または前記第二のトランザクション階層によって構成される前記メンバ・トランザクションまたは前記メンバ・トランザクションの一部が、何らかの種類のコンピュータ・ネットワークによって接続された多数のコンピュータ・システムによって処理される請求項1〜5のいずれか1項記載のトランザクション処理方法。
  7. 前記アトミック・コミット・プロトコルが2相コミット・プロトコルまたは3相コミット・プロトコルとして実現されている請求項1〜6のいずれか1項記載のトランザクション処理方法。
  8. 多数の異なるポリシーが、前記階層それぞれの中で処理されるメンバ・トランザクションを定義する請求項1〜7のいずれか1項記載のトランザクション処理方法。
  9. 局所ノード・ポリシーが、同じトランザクション階層の中で処理すべき、同じコンピュータ・システム上で実行されるすべてのメンバ・トランザクションを定義する請求項8記載のトランザクション処理方法。
JP16757197A 1996-07-02 1997-06-24 階層化トランザクション処理方法 Expired - Fee Related JP3672208B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP96110649 1996-07-02
DE96110649.9 1996-07-02

Publications (2)

Publication Number Publication Date
JPH1069418A JPH1069418A (ja) 1998-03-10
JP3672208B2 true JP3672208B2 (ja) 2005-07-20

Family

ID=8222968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16757197A Expired - Fee Related JP3672208B2 (ja) 1996-07-02 1997-06-24 階層化トランザクション処理方法

Country Status (3)

Country Link
US (1) US6012094A (ja)
JP (1) JP3672208B2 (ja)
DE (1) DE69718715T2 (ja)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2313524A (en) * 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
GB2321540A (en) * 1997-01-25 1998-07-29 Ibm Automatic transactional locking using object request broker
GB2330923A (en) * 1997-10-28 1999-05-05 Ibm Transaction manager
US6233585B1 (en) * 1998-03-12 2001-05-15 Crossworlds Software, Inc. Isolation levels and compensating transactions in an information system
US6529932B1 (en) * 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
US6119129A (en) * 1998-05-14 2000-09-12 Sun Microsystems, Inc. Multi-threaded journaling in a configuration database
US6247023B1 (en) * 1998-07-21 2001-06-12 Internationl Business Machines Corp. Method for providing database recovery across multiple nodes
GB2343020A (en) * 1998-10-19 2000-04-26 Ibm Handling transaction failures in a transaction processing system
US6446087B1 (en) * 1998-11-04 2002-09-03 Lucent Technologies Inc. System for maintaining the integrity of application data
JP4094752B2 (ja) * 1998-11-27 2008-06-04 株式会社日立製作所 トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US6625601B1 (en) * 1999-01-07 2003-09-23 Compaq Information Technologies Group, L.P. Escrow-locking multithreaded process-pair resource manager dictionary
US6138143A (en) * 1999-01-28 2000-10-24 Genrad, Inc. Method and apparatus for asynchronous transaction processing
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US6918053B1 (en) * 2000-04-28 2005-07-12 Microsoft Corporation Compensation framework for long running transactions
US6625602B1 (en) * 2000-04-28 2003-09-23 Microsoft Corporation Method and system for hierarchical transactions and compensation
US6651073B1 (en) * 2000-05-23 2003-11-18 International Business Machines Corporation Method and apparatus for insuring database data integrity without data recovery logging
US7328263B1 (en) * 2001-01-30 2008-02-05 Cisco Technology, Inc. Controlling access of concurrent users of computer resources in a distributed system using an improved semaphore counting approach
JP3732113B2 (ja) * 2001-05-14 2006-01-05 株式会社八十二銀行 トランザクション制御システム、方法及びプログラム
US7191337B2 (en) * 2001-06-30 2007-03-13 International Business Machines Corporation Apparatus for wildcarded security policy and method therefor
GB0130399D0 (en) * 2001-12-19 2002-02-06 Ibm Message ordering in a messaging system
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
US7526519B2 (en) * 2002-05-01 2009-04-28 Bea Systems, Inc. High availability application view deployment
US7222148B2 (en) * 2002-05-02 2007-05-22 Bea Systems, Inc. System and method for providing highly available processing of asynchronous service requests
GB0215808D0 (en) * 2002-07-09 2002-08-14 Ibm A system and method for managing transactions in a messaging system
US20040068479A1 (en) * 2002-10-04 2004-04-08 International Business Machines Corporation Exploiting asynchronous access to database operations
GB0225733D0 (en) * 2002-11-05 2002-12-11 Ibm Persistent messaging in a transaction processing environment
US20040133458A1 (en) * 2002-12-23 2004-07-08 Sap Aktiengesellschaft Distribution scheduling system and method
US7730046B2 (en) * 2002-12-23 2010-06-01 Sap Ag Nomination locking system and method
US7584474B2 (en) * 2003-02-25 2009-09-01 Bea Systems, Inc. Systems and methods for transaction chaining
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
US7409587B2 (en) * 2004-08-24 2008-08-05 Symantec Operating Corporation Recovering from storage transaction failures using checkpoints
GB0324961D0 (en) * 2003-10-25 2003-11-26 Ibm Invocation of a follow on unit of work
US7730489B1 (en) * 2003-12-10 2010-06-01 Oracle America, Inc. Horizontally scalable and reliable distributed transaction management in a clustered application server environment
KR100659971B1 (ko) * 2003-12-26 2006-12-22 한국전자통신연구원 웹서비스 트랜잭션의 자동중단 처리시스템 및 방법
US7523088B2 (en) * 2004-03-31 2009-04-21 International Business Machines Corporation Method for increasing system resource availability in database management systems
GB0424489D0 (en) * 2004-11-05 2004-12-08 Ibm A method apparatus computer program and computer program product for reducing the number of operations performed by a persistence manager against a persistent
GB0426847D0 (en) * 2004-12-08 2005-01-12 Ibm Method and system of committing operations of a synchronised transaction
US7603363B2 (en) * 2005-01-05 2009-10-13 Microsoft Corporation Systems and methods for controlling transaction participation for groups of steps in a workflow
US7350034B2 (en) * 2005-06-20 2008-03-25 International Business Machines Corporation Architecture support of best-effort atomic transactions for multiprocessor systems
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US8078588B2 (en) * 2005-10-10 2011-12-13 Oracle International Corporation Recoverable execution
JPWO2007088728A1 (ja) * 2006-01-31 2009-06-25 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 多層分散処理システム
DE102006014909A1 (de) * 2006-03-30 2007-10-18 Siemens Ag Verfahren zum rechnergestützten Betrieb eines verteilten Netzsystems
US8538931B2 (en) * 2006-04-28 2013-09-17 International Business Machines Corporation Protecting the integrity of dependent multi-tiered transactions
US8015570B2 (en) * 2006-06-30 2011-09-06 Microsoft Corporation Arbitration mechanisms to deal with conflicting applications and user data
EP2050013A4 (en) 2006-08-10 2010-01-06 Ab Initio Software Llc DISTRIBUTION SERVICES IN DIAGRAM-BASED CALCULATIONS
US20080082761A1 (en) * 2006-09-29 2008-04-03 Eric Nels Herness Generic locking service for business integration
US7921075B2 (en) * 2006-09-29 2011-04-05 International Business Machines Corporation Generic sequencing service for business integration
US9514201B2 (en) * 2006-10-13 2016-12-06 International Business Machines Corporation Method and system for non-intrusive event sequencing
US9274857B2 (en) 2006-10-13 2016-03-01 International Business Machines Corporation Method and system for detecting work completion in loosely coupled components
US7805420B2 (en) * 2006-11-20 2010-09-28 Microsoft Corporation Versioning and concurrency control for multiple client access of data
US7921189B2 (en) * 2006-11-20 2011-04-05 Microsoft Corporation Single virtual client for multiple client access and equivalency
US8140479B2 (en) * 2006-12-21 2012-03-20 International Business Machines Corporation Logical classification of objects on a computer system
US9449047B2 (en) * 2007-06-19 2016-09-20 Sybase, Inc. Dynamic modification of schemas in streaming databases
US7899999B2 (en) * 2007-06-27 2011-03-01 Microsoft Corporation Handling falsely doomed parents of nested transactions
KR101758670B1 (ko) * 2007-07-26 2017-07-18 아브 이니티오 테크놀로지 엘엘시 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
US7890472B2 (en) 2007-09-18 2011-02-15 Microsoft Corporation Parallel nested transactions in transactional memory
US9027030B2 (en) 2007-11-29 2015-05-05 Red Hat, Inc. Commit-one-phase distributed transactions with multiple starting participants
US8073962B2 (en) * 2008-03-03 2011-12-06 Oracle International Corporation Queued transaction processing
JP5385545B2 (ja) * 2008-04-17 2014-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクションの実行を制御する装置及び方法
US8352421B2 (en) * 2008-05-28 2013-01-08 Red Hat, Inc. Recording distributed transactions using probabalistic data structures
US7873604B2 (en) * 2008-05-29 2011-01-18 Red Hat, Inc. Batch recovery of distributed transactions
US9418005B2 (en) 2008-07-15 2016-08-16 International Business Machines Corporation Managing garbage collection in a data processing system
US20100017583A1 (en) * 2008-07-15 2010-01-21 International Business Machines Corporation Call Stack Sampling for a Multi-Processor System
TW201032535A (en) * 2008-10-14 2010-09-01 Ibm A method of handling a message
US9818118B2 (en) * 2008-11-19 2017-11-14 Visa International Service Association Transaction aggregator
NO332009B1 (no) * 2008-12-12 2012-05-21 Cisco Systems Int Sarl Fremgangsmate for a igangsette kommunikasjonsforbindelser
KR20150038758A (ko) * 2009-02-13 2015-04-08 아브 이니티오 테크놀로지 엘엘시 태스크 실행 관리
US20100333071A1 (en) * 2009-06-30 2010-12-30 International Business Machines Corporation Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
US8626705B2 (en) * 2009-11-05 2014-01-07 Visa International Service Association Transaction aggregator for closed processing
US9176783B2 (en) 2010-05-24 2015-11-03 International Business Machines Corporation Idle transitions sampling with execution context
US8843684B2 (en) 2010-06-11 2014-09-23 International Business Machines Corporation Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration
EP2583168B1 (en) 2010-06-15 2017-11-08 Ab Initio Technology LLC Dynamically loading graph-based computations
US8799872B2 (en) 2010-06-27 2014-08-05 International Business Machines Corporation Sampling with sample pacing
US8799904B2 (en) 2011-01-21 2014-08-05 International Business Machines Corporation Scalable system call stack sampling
US9055065B2 (en) * 2011-11-21 2015-06-09 Red Hat, lnc. Managing participant order in distributed transactions
US20130160022A1 (en) * 2011-12-19 2013-06-20 International Business Machines Corporation Transaction manager for negotiating large transactions
US9760584B2 (en) * 2012-03-16 2017-09-12 Oracle International Corporation Systems and methods for supporting inline delegation of middle-tier transaction logs to database
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
FR3001816B1 (fr) * 2013-02-05 2015-03-06 Thales Sa Systeme de processeur multi-utilisateurs de traitement d'informations
GB2512086A (en) 2013-03-20 2014-09-24 Ibm Transaction capable queuing
US9304839B2 (en) 2013-04-30 2016-04-05 Hewlett Packard Enterprise Development Lp Resending messages
US9524510B2 (en) * 2013-10-02 2016-12-20 Turn Inc. Adaptive fuzzy fallback stratified sampling for fast reporting and forecasting
WO2015085152A1 (en) 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
WO2016155002A1 (en) 2015-04-03 2016-10-06 Yahoo! Inc. Method and system for data recovery in a data system
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
AU2016377516B2 (en) 2015-12-21 2020-01-30 Ab Initio Technology Llc Sub-graph interface generation
CN110300984B (zh) 2017-02-17 2024-03-26 诺基亚技术有限公司 改变在区块链中记录的智能合约
CN111143746B (zh) * 2019-12-27 2023-10-20 支付宝(杭州)信息技术有限公司 一种灰度任务的发布方法、装置及设备
US20220321567A1 (en) * 2021-03-31 2022-10-06 Netapp, Inc. Context Tracking Across a Data Management Platform

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170480A (en) * 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
US5247664A (en) * 1991-03-28 1993-09-21 Amoco Corporation Fault-tolerant distributed database system and method for the management of correctable subtransaction faults by the global transaction source node
GB2263988B (en) * 1992-02-04 1996-05-22 Digital Equipment Corp Work flow management system and method
SE9300671D0 (sv) * 1993-03-01 1993-03-01 Sven Nauckhoff Work flow management

Also Published As

Publication number Publication date
US6012094A (en) 2000-01-04
DE69718715T2 (de) 2003-09-18
DE69718715D1 (de) 2003-03-06
JPH1069418A (ja) 1998-03-10

Similar Documents

Publication Publication Date Title
JP3672208B2 (ja) 階層化トランザクション処理方法
CN104793988B (zh) 跨数据库分布式事务的实现方法和装置
US5452445A (en) Two-pass multi-version read consistency
US4868744A (en) Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log
JP5296615B2 (ja) 分散トランザクション回復システムおよび方法
EP1341088B1 (en) Rebuilding "in-doubt" states reliably after multiple system failures in a transaction processing system
Mueller et al. A nested transaction mechanism for LOCUS
US20040158549A1 (en) Method and apparatus for online transaction processing
JPH05197604A (ja) マルチプロセッサ・コンピュータ及びその動作方法
Samaras et al. Two-phase commit optimizations and tradeoffs in the commercial environment
JPH0784815A (ja) フォールト・トレラント・トランザクション指向データ処理システムおよび方法
US6625601B1 (en) Escrow-locking multithreaded process-pair resource manager dictionary
EP0834122B1 (en) Synchronisation procedure in a routing node
Pandey et al. LIFT-A new linear two-phase commit protocol
Satyanarayanan et al. Efficient execution of read-only transactions in replicated multiversion databases
CN110532069A (zh) 一种分布式事务提交方法及装置
US20070038569A1 (en) Inherited transactions in asynchronous messaging
US20030191918A1 (en) Data processing arrangement and method
EP0817019B1 (en) Method of stratified transaction processing
WO2023103340A1 (zh) 一种区块数据提交的方法及装置
Liskov et al. Issues in process and communication structure for distributed programs
Rawashdeh et al. An optimistic approach in distributed database concurrency control
Kiviniemi et al. Transaction processing in the RODAIN real-time database system
Siek et al. Atomic RMI 2: Highly parallel pessimistic distributed transactional memory
Patiño-Martínez et al. Synchronizing group transaction with rendezvous in a distributed Ada environment

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040705

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040708

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050405

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20050405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees