JP2002512400A - 第1のトランザクション処理環境におけるコンポーネントを能動化して別の環境におけるリソースにアクセスするための方法および装置 - Google Patents
第1のトランザクション処理環境におけるコンポーネントを能動化して別の環境におけるリソースにアクセスするための方法および装置Info
- Publication number
- JP2002512400A JP2002512400A JP2000545097A JP2000545097A JP2002512400A JP 2002512400 A JP2002512400 A JP 2002512400A JP 2000545097 A JP2000545097 A JP 2000545097A JP 2000545097 A JP2000545097 A JP 2000545097A JP 2002512400 A JP2002512400 A JP 2002512400A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- branch
- manager
- protocol
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 140
- 238000000034 method Methods 0.000 title claims description 269
- 230000003213 activating effect Effects 0.000 title description 2
- 230000006854 communication Effects 0.000 claims abstract description 51
- 238000004891 communication Methods 0.000 claims abstract description 49
- 238000011084 recovery Methods 0.000 claims abstract description 45
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 23
- 238000013507 mapping Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 47
- 230000009471 action Effects 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 3
- 238000012937 correction Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 19
- 238000002360 preparation method Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 13
- 239000002253 acid Substances 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- KEZYHIPQRGTUDU-UHFFFAOYSA-N 2-[dithiocarboxy(methyl)amino]acetic acid Chemical compound SC(=S)N(C)CC(O)=O KEZYHIPQRGTUDU-UHFFFAOYSA-N 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 108700041121 sarcosine dithiocarbamate Proteins 0.000 description 4
- 206010000210 abortion Diseases 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 101001074449 Crotalus durissus terrificus Phospholipase A2 inhibitor CNF Proteins 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- WMFYOYKPJLRMJI-UHFFFAOYSA-N Lercanidipine hydrochloride Chemical compound Cl.COC(=O)C1=C(C)NC(C)=C(C(=O)OC(C)(C)CN(C)CCC(C=2C=CC=CC=2)C=2C=CC=CC=2)C1C1=CC=CC([N+]([O-])=O)=C1 WMFYOYKPJLRMJI-UHFFFAOYSA-N 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010006 flight Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- IOVGROKTTNBUGK-SJCJKPOMSA-N ritodrine Chemical compound N([C@@H](C)[C@H](O)C=1C=CC(O)=CC=1)CCC1=CC=C(O)C=C1 IOVGROKTTNBUGK-SJCJKPOMSA-N 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000035899 viability Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
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)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
トランザクション処理環境におけるコンポーネントが、XATMI−適合ではないトランザクションマネージャの制御下にあるグローバルトランザクションの部分として、XATMI−適合トランザクションマネージャの制御下にある環境の外部のリモートサーバのリソースを要求できるようにするための相互接続は、リソースマネージャと接続マネージャとを含む。リソースマネージャはコンポーネントからのXATMIサービスリクエストを受ける第1のインタフェイスと、グローバルトランザクションに関する第1のトランザクションマネージャによって発行される命令を受ける第2のインタフェイスとを有する。リソースマネージャは、(i)XATMIサービスリクエストおよび命令を、双方向2相実行通信プロトコルの、対応のサービスリクエストに変換し、(ii)対応のサービスリクエストを接続マネージャのプロトコルマシンに発行し、(iii)プロトコルマシンによる対応のサービスリクエストの処理と、第1のトランザクションマネージャのトランザクション処理環境における対応のイベントの処理とを統御する。リソースマネージャはさらに、(i)第1のトランザクションマネージャのトランザクション処理環境内のグローバルトランザクションを特定する第1の識別子を、プロトコルマシン内のトランザクションを一意に特定する第2の識別子にマッピングするための手段と、(ii)それらに関する情報が記憶されているトランザクションの各ブランチに対する記録を維持するための手段と、(iii)第1のトランザクションマネージャおよびプロトコルマシンのトランザクション処理環境の両方に関するリカバリ情報を安全記憶装置に共に記録するための手段とを含む。
Description
【0001】
この特許書類の開示は部分は、著作権の保護対象となる事項を含む。著作権者
は、米国特許商標庁のファイルまたは記録にある特許書類または特許開示につい
ては、何人による複写に対しても異議を唱えないが、それ以外の著作権について
は全て留保する。
は、米国特許商標庁のファイルまたは記録にある特許書類または特許開示につい
ては、何人による複写に対しても異議を唱えないが、それ以外の著作権について
は全て留保する。
【0002】
本発明は分散型トランザクション処理システムに向けられる。特に、本発明は
、たとえばマイクロソフトトランザクションサーバ環境などの第1のトランザク
ション処理環境におけるコンポーネントを能動化して、XATMI−適合トラン
ザクションマネージャの制御下にある別のトランザクション処理環境におけるリ
モートサーバのリソースにアクセスするための方法および装置に向けられる。
、たとえばマイクロソフトトランザクションサーバ環境などの第1のトランザク
ション処理環境におけるコンポーネントを能動化して、XATMI−適合トラン
ザクションマネージャの制御下にある別のトランザクション処理環境におけるリ
モートサーバのリソースにアクセスするための方法および装置に向けられる。
【0003】
I.オンライントランザクション処理 オンライントランザクション処理(OLTP)は長年にわたって多くの企業に
よってビジネスに重要な用途として用いられてきており、成功を収めている技術
である。OLTPにより、端末にいるユーザはアプリケーションプログラムにメ
ッセージを送信し、これらによりリアルタイムでデータベースが更新される。こ
れは、トランザクションが後の時点で処理される、トランザクションのバッチ処
理または待ち行列処理とは対照的である。
よってビジネスに重要な用途として用いられてきており、成功を収めている技術
である。OLTPにより、端末にいるユーザはアプリケーションプログラムにメ
ッセージを送信し、これらによりリアルタイムでデータベースが更新される。こ
れは、トランザクションが後の時点で処理される、トランザクションのバッチ処
理または待ち行列処理とは対照的である。
【0004】 OLTPアプリケーションの一例としては航空会社の予約システムが挙げられ
る。旅行代理店が飛行機の座席の予約を要求すると、これに応じてデータベース
が更新され、代理店の端末に確認メッセージが送り返される。すべてのタスクは
1回のトランザクションの一部分であり、多くの代理店が同時にトランザクショ
ンを行ない得る。OLTPシステムは典型的には、多数のユーザをサポートする
環境において使用され、すべて同じデータベースにアクセスし、何百、時には何
千というトランザクションが1秒間に行なわれる。システムは典型的には、これ
らの環境によって要求される性能、信頼性およびデータの保全性を提供し得る大
型のエンタプライズサーバの上に構築される。
る。旅行代理店が飛行機の座席の予約を要求すると、これに応じてデータベース
が更新され、代理店の端末に確認メッセージが送り返される。すべてのタスクは
1回のトランザクションの一部分であり、多くの代理店が同時にトランザクショ
ンを行ない得る。OLTPシステムは典型的には、多数のユーザをサポートする
環境において使用され、すべて同じデータベースにアクセスし、何百、時には何
千というトランザクションが1秒間に行なわれる。システムは典型的には、これ
らの環境によって要求される性能、信頼性およびデータの保全性を提供し得る大
型のエンタプライズサーバの上に構築される。
【0005】 トランザクションは、トランザクション処理システムによって行なわれる1組
のアクションとして考えることができ、これらのアクションは併せて、不可分性
(Atomicity)、整合性(consistency)、分離性(Isolation)および耐久性(Durabili
ty)(ACID)の特性を持つ。以下に示す定義はTransaction Processing: Con
cepts and Techniques, by Jim Gray and Andreas Reuter, Morgan Kaufmann Pu
blishers, Inc., 1993, p.6に記載されているものである。
のアクションとして考えることができ、これらのアクションは併せて、不可分性
(Atomicity)、整合性(consistency)、分離性(Isolation)および耐久性(Durabili
ty)(ACID)の特性を持つ。以下に示す定義はTransaction Processing: Con
cepts and Techniques, by Jim Gray and Andreas Reuter, Morgan Kaufmann Pu
blishers, Inc., 1993, p.6に記載されているものである。
【0006】 不可分性。状態に対するトランザクションの変化は不可分であり、すべてが起
こるか全く起こらないかのいずれかである。これらの変化には、データベースの
変化、メッセージ、およびトランスデューサのアクションが含まれる。
こるか全く起こらないかのいずれかである。これらの変化には、データベースの
変化、メッセージ、およびトランスデューサのアクションが含まれる。
【0007】 整合性。トランザクションとは状態の正しい変換である。グループとして扱わ
れるアクションは状態に関連した保全性の制約のいずれにも反しない。これには
トランザクションが正しいプログラムである必要がある。
れるアクションは状態に関連した保全性の制約のいずれにも反しない。これには
トランザクションが正しいプログラムである必要がある。
【0008】 分離性。トランザクションが同時に実行されたとしても、各トランザクション
Tには、他のトランザクションがTの前または後一方で実行されたかのように見
え、かつ両方で実行されたようには見えない。
Tには、他のトランザクションがTの前または後一方で実行されたかのように見
え、かつ両方で実行されたようには見えない。
【0009】 耐久性。トランザクションがうまく完了すると(実行)、トランザクションが
うまく完了したことを表わすようデータの状態が変化し、データの状態はシステ
ムの異常によって影響を受けない。
うまく完了したことを表わすようデータの状態が変化し、データの状態はシステ
ムの異常によって影響を受けない。
【0010】 上記特性を維持するために、トランザクション処理の開始時には、トランザク
ション処理アプリケーションプログラムは典型的には、トランザクション処理が
開始したことを示す何らかの形式のトランザクション開始機能を呼出す。この動
作は典型的に監査ファイルに記録され、特定のトランザクションに関連した動作
を区別するようにする。トランザクション開始機能に次いで、アプリケーション
規定のトランザクションに関連した他の機能が行なわれ、これらもまた監査ファ
イルに記録される。トランザクションに関連したすべての動作がうまく完了する
と、実行機能が呼出されて、トランザクションの結果として起こったすべての状
態の変化を永続的なものとする。実行動作は、すべての動作がうまく完了したこ
とを示す監査ファイルに記録される。トランザクション処理時にエラーが発生し
、実行動作が行なわれない場合、ロールバック機能が呼出されて、トランザクシ
ョン処理時でその時点までに行なわれた動作を無効にする。
ション処理アプリケーションプログラムは典型的には、トランザクション処理が
開始したことを示す何らかの形式のトランザクション開始機能を呼出す。この動
作は典型的に監査ファイルに記録され、特定のトランザクションに関連した動作
を区別するようにする。トランザクション開始機能に次いで、アプリケーション
規定のトランザクションに関連した他の機能が行なわれ、これらもまた監査ファ
イルに記録される。トランザクションに関連したすべての動作がうまく完了する
と、実行機能が呼出されて、トランザクションの結果として起こったすべての状
態の変化を永続的なものとする。実行動作は、すべての動作がうまく完了したこ
とを示す監査ファイルに記録される。トランザクション処理時にエラーが発生し
、実行動作が行なわれない場合、ロールバック機能が呼出されて、トランザクシ
ョン処理時でその時点までに行なわれた動作を無効にする。
【0011】 分散型トランザクション処理(DTP)は、ネットワーク上の1つまたは2つ
以上のコンピュータの1つまたは2つ以上のデータベースにアクセスする多数の
アプリケーションプログラムによって1回のトランザクションが行なわれるよう
にする、オンライントランザクション処理の形式である。多数のアプリケーショ
ンプログラムが協働するこのタイプのトランザクションは分散型トランザクショ
ンと呼ばれる。DTPを用いると、たとえば、地域的でありかつ支店の場所にあ
る関連のデータベースを同期化できる。DTPはまた、多数の企業にわたるトラ
ンザクション処理を容易にする。たとえば、DTPは製造業者および供給者のコ
ンピュータを統御したり、または旅行代理店、航空会社、レンタカー業者、およ
びホテル業界といった関連の業界の企業のコンピュータを統御するために用いら
れ得る。
以上のコンピュータの1つまたは2つ以上のデータベースにアクセスする多数の
アプリケーションプログラムによって1回のトランザクションが行なわれるよう
にする、オンライントランザクション処理の形式である。多数のアプリケーショ
ンプログラムが協働するこのタイプのトランザクションは分散型トランザクショ
ンと呼ばれる。DTPを用いると、たとえば、地域的でありかつ支店の場所にあ
る関連のデータベースを同期化できる。DTPはまた、多数の企業にわたるトラ
ンザクション処理を容易にする。たとえば、DTPは製造業者および供給者のコ
ンピュータを統御したり、または旅行代理店、航空会社、レンタカー業者、およ
びホテル業界といった関連の業界の企業のコンピュータを統御するために用いら
れ得る。
【0012】 分散型環境におけるトランザクション処理は、非グローバルにもグローバルに
も行なわれ得る。非グローバルトランザクションでは、従来のトランザクション
と同じ作業が行なわれるが、この作業はクライアント/サーバの態様で分散され
る。たとえば、旅行代理店は、グラフィカルユーザインターフェイスを有するク
ライアントアプリケーションプログラムを介して飛行機の座席予約を要求し得る
。クライアントアプリケーションプログラムは予約データベースを管理するサー
バアプリケーションプログラムと交信する。サーバアプリケーションプログラム
はデータベースを更新し、それ自体の作業を実行またはアボートし、クライアン
トアプリケーションプログラムに情報を戻し、このプログラムが旅行代理店に対
する通知を行う。
も行なわれ得る。非グローバルトランザクションでは、従来のトランザクション
と同じ作業が行なわれるが、この作業はクライアント/サーバの態様で分散され
る。たとえば、旅行代理店は、グラフィカルユーザインターフェイスを有するク
ライアントアプリケーションプログラムを介して飛行機の座席予約を要求し得る
。クライアントアプリケーションプログラムは予約データベースを管理するサー
バアプリケーションプログラムと交信する。サーバアプリケーションプログラム
はデータベースを更新し、それ自体の作業を実行またはアボートし、クライアン
トアプリケーションプログラムに情報を戻し、このプログラムが旅行代理店に対
する通知を行う。
【0013】 グローバルトランザクションは、種々のコンピュータで起こり得る複数回の統
御されたデータベース更新からなる。グローバルトランザクションは、すべて更
新されるか、または全く更新されないように、すべてのデータベースを同期化す
ることが重要である場合に用いられる。先ほどの例の続きとして述べると、旅行
代理店はレンタカーおよびホテルの部屋を予約する必要がある。旅行中の顧客は
すべての予約が統御されていることを確かめたい。すなわち、フライトが利用で
きない場合、ホテルや車の予約は必要ないのである。グローバルトランザクショ
ンの例示目的として、航空会社、車およびホテルのデータベースが別々のトラン
ザクション処理システムにあるものとする。
御されたデータベース更新からなる。グローバルトランザクションは、すべて更
新されるか、または全く更新されないように、すべてのデータベースを同期化す
ることが重要である場合に用いられる。先ほどの例の続きとして述べると、旅行
代理店はレンタカーおよびホテルの部屋を予約する必要がある。旅行中の顧客は
すべての予約が統御されていることを確かめたい。すなわち、フライトが利用で
きない場合、ホテルや車の予約は必要ないのである。グローバルトランザクショ
ンの例示目的として、航空会社、車およびホテルのデータベースが別々のトラン
ザクション処理システムにあるものとする。
【0014】 グローバルトランザクションは、旅行代理店がグラフィカルユーザインターフ
ェイスによってワークステーションのクライアントアプリケーションプログラム
からの予約を要求すると開始する。クライアントプログラムは、異なったトラン
ザクション処理システムの3つのサーバアプリケーションプログラムと交信する
。1つのサーバプログラムはフライトを予約し、別のものは車を予約し、もう1
つのものはホテルを予約する。サーバアプリケーションプログラムの各々はそれ
ぞれのデータベースを更新する。各サーバアプリケーションプログラムによって
処理されるトランザクションは、グローバルトランザクションの下位トランザク
ションと呼ばれ得る。グローバルトランザクションマネージャは3つのデータベ
ースに対する更新を統御し、個々のトランザクション処理システムの下位トラン
ザクションマネージャはサーバアプリケーションプログラムによって局所的に統
御する。サーバアプリケーションプログラムはクライアントアプリケーションプ
ログラムに情報を戻す。
ェイスによってワークステーションのクライアントアプリケーションプログラム
からの予約を要求すると開始する。クライアントプログラムは、異なったトラン
ザクション処理システムの3つのサーバアプリケーションプログラムと交信する
。1つのサーバプログラムはフライトを予約し、別のものは車を予約し、もう1
つのものはホテルを予約する。サーバアプリケーションプログラムの各々はそれ
ぞれのデータベースを更新する。各サーバアプリケーションプログラムによって
処理されるトランザクションは、グローバルトランザクションの下位トランザク
ションと呼ばれ得る。グローバルトランザクションマネージャは3つのデータベ
ースに対する更新を統御し、個々のトランザクション処理システムの下位トラン
ザクションマネージャはサーバアプリケーションプログラムによって局所的に統
御する。サーバアプリケーションプログラムはクライアントアプリケーションプ
ログラムに情報を戻す。
【0015】 グローバルトランザクション処理の主な利点としては、以前は個別に処理され
ていたタスクがグループとして処理されることが挙げられ、このタスクのグルー
プはグローバルトランザクションである。データベース更新はすべて行なわれる
かまたは全く行なわれない。たとえば、飛行機に空席がない場合、ホテルおよび
車の予約は行なわれない。したがって、グローバルトランザクションによると、
以前は個別に行なわれていたタスクが統御され自動化され得る。
ていたタスクがグループとして処理されることが挙げられ、このタスクのグルー
プはグローバルトランザクションである。データベース更新はすべて行なわれる
かまたは全く行なわれない。たとえば、飛行機に空席がない場合、ホテルおよび
車の予約は行なわれない。したがって、グローバルトランザクションによると、
以前は個別に行なわれていたタスクが統御され自動化され得る。
【0016】 非グローバルトランザクションの場合と同様に、グローバルトランザクション
はACID特性を持つ必要がある。グローバルトランザクションにACID特性
を持たせておくために、実行処理を2相実行手順に修正する。2相実行では、グ
ローバルトランザクションマネージャはまず、下位トランザクションマネージャ
の各々に、それらの更新をそれぞれのデータベースに実行するための準備を行な
うよう要求する。すべてのローカルトランザクションマネージャが、実行の準備
ができていると応答すると、グローバルトランザクションマネージャはローカル
トランザクションマネージャに実行要求を送信する。したがって、2相実行処理
の2つの部分は(i)データベース更新の実行の準備と、(ii)データベース更
新の実行とである。トランザクションマネージャのうち実行の準備ができないも
のがある場合、グローバルトランザクション全体がアボートされ、各トランザク
ションマネージャはロールバック機能を行ない、その時点までに起こったであろ
う処理を無効にする。要約すると、2相実行処理は、1つのグローバルトランザ
クションに参加する多数のデータベースが確実に同期化されるように、すなわち
グローバルトランザクションによって要求されるデータベース更新すべてが行な
われるか、またはシステムまたはコンポーネントに異常事態がある場合には全く
行なわれないようにする。2相実行はグローバルデータの保全性を保証し、DT
P環境におけるACID特性を維持する。
はACID特性を持つ必要がある。グローバルトランザクションにACID特性
を持たせておくために、実行処理を2相実行手順に修正する。2相実行では、グ
ローバルトランザクションマネージャはまず、下位トランザクションマネージャ
の各々に、それらの更新をそれぞれのデータベースに実行するための準備を行な
うよう要求する。すべてのローカルトランザクションマネージャが、実行の準備
ができていると応答すると、グローバルトランザクションマネージャはローカル
トランザクションマネージャに実行要求を送信する。したがって、2相実行処理
の2つの部分は(i)データベース更新の実行の準備と、(ii)データベース更
新の実行とである。トランザクションマネージャのうち実行の準備ができないも
のがある場合、グローバルトランザクション全体がアボートされ、各トランザク
ションマネージャはロールバック機能を行ない、その時点までに起こったであろ
う処理を無効にする。要約すると、2相実行処理は、1つのグローバルトランザ
クションに参加する多数のデータベースが確実に同期化されるように、すなわち
グローバルトランザクションによって要求されるデータベース更新すべてが行な
われるか、またはシステムまたはコンポーネントに異常事態がある場合には全く
行なわれないようにする。2相実行はグローバルデータの保全性を保証し、DT
P環境におけるACID特性を維持する。
【0017】 II.X/Open分散型トランザクション処理モデル X/Open(商標)として知られているユーザおよびベンダーの産業組合は、X
/Open分散型トランザクション処理モデルと呼ばれる、DTPのモデルアーキテ
クチャを開発している。X/Open DTPモデルは、多数のアプリケーションプ
ログラムが多数のリソースマネージャによって提供されるリソースを共有できる
ようにし、かつそれらの作業がグローバルトランザクションに統御されるように
する、ソフトウェアアーキテクチャである。X/Open DTPモデルは多数のコ
ンポーネント、アプリケーションプログラミングインターフェイス、および通信
インターフェイスを含む。
/Open分散型トランザクション処理モデルと呼ばれる、DTPのモデルアーキテ
クチャを開発している。X/Open DTPモデルは、多数のアプリケーションプ
ログラムが多数のリソースマネージャによって提供されるリソースを共有できる
ようにし、かつそれらの作業がグローバルトランザクションに統御されるように
する、ソフトウェアアーキテクチャである。X/Open DTPモデルは多数のコ
ンポーネント、アプリケーションプログラミングインターフェイス、および通信
インターフェイスを含む。
【0018】 図1は、クライアントシステム10およびサーバシステム12を示し、これら
はいずれもX/Open DTPモデルアーキテクチャに従って構成されている。例
示的な一例としてのクライアントシステム10を参照して、X/Open DTPモデ
ルのコンポーネントには、アプリケーションプログラム(AP)14と、1つま
たは2つ以上のリソースマネージャ(RM)16と、トランザクションマネージ
ャ(TM)18と、通信リソースマネージャ(CRM)20とが含まれる。
はいずれもX/Open DTPモデルアーキテクチャに従って構成されている。例
示的な一例としてのクライアントシステム10を参照して、X/Open DTPモデ
ルのコンポーネントには、アプリケーションプログラム(AP)14と、1つま
たは2つ以上のリソースマネージャ(RM)16と、トランザクションマネージ
ャ(TM)18と、通信リソースマネージャ(CRM)20とが含まれる。
【0019】 クライアントアプリケーションプログラム14などのアプリケーションプログ
ラム(AP)は、グローバルトランザクション境界を規定し、グローバルトラン
ザクションをなすアクションを特定する、ユーザ規定のソフトウェアコンポーネ
ントである。それはまた、トランザクションが要求する1つまたは2つ以上のリ
ソースへのアクセスを提供する。グローバルトランザクションでは、2つまたは
それ以上のAPがそれらの個々の機能を果たし、これらが組合せられるとグロー
バルトランザクションが構成される。APのうちの1つはトランザクションコー
ディネータであり、すなわち、グローバルトランザクションの開始および終了を
行なうAPである。他のAPはこれに従属する。
ラム(AP)は、グローバルトランザクション境界を規定し、グローバルトラン
ザクションをなすアクションを特定する、ユーザ規定のソフトウェアコンポーネ
ントである。それはまた、トランザクションが要求する1つまたは2つ以上のリ
ソースへのアクセスを提供する。グローバルトランザクションでは、2つまたは
それ以上のAPがそれらの個々の機能を果たし、これらが組合せられるとグロー
バルトランザクションが構成される。APのうちの1つはトランザクションコー
ディネータであり、すなわち、グローバルトランザクションの開始および終了を
行なうAPである。他のAPはこれに従属する。
【0020】 リソースマネージャ(RM)16はAP14のリソースへのアクセスを提供す
る。X/Open DTPモデルは多数のリソースマネージャを許容にする。データ
ベース管理システムおよびファイルアクセスシステムは、RMとして作用するシ
ステムソフトウェアコンポーネントの例である。
る。X/Open DTPモデルは多数のリソースマネージャを許容にする。データ
ベース管理システムおよびファイルアクセスシステムは、RMとして作用するシ
ステムソフトウェアコンポーネントの例である。
【0021】 APは、トランザクションマネージャ(TM)18の制御下でトランザクショ
ンを開始および終了する。TM18は、トランザクション識別子をグローバルト
ランザクションに割当て、それらの進捗をモニタリングし、それらの完了を調整
し、かつ故障からの回復を調整する、システムソフトウェアコンポーネントであ
る。TMは不可分性というトランザクション特性を強要する。グローバルトラン
ザクションでは、TMは2相実行トランザクション処理プロトコルを遵守する。
ンを開始および終了する。TM18は、トランザクション識別子をグローバルト
ランザクションに割当て、それらの進捗をモニタリングし、それらの完了を調整
し、かつ故障からの回復を調整する、システムソフトウェアコンポーネントであ
る。TMは不可分性というトランザクション特性を強要する。グローバルトラン
ザクションでは、TMは2相実行トランザクション処理プロトコルを遵守する。
【0022】 CRM20は、グローバルトランザクションに参加するAP14と他のAP(
たとえばAP40)との交信、およびTM18と別個のデータ処理システムのT
M(たとえばシステム12のTM)との交信を制御する。
たとえばAP40)との交信、およびTM18と別個のデータ処理システムのT
M(たとえばシステム12のTM)との交信を制御する。
【0023】 X/Open DTPモデルは、アプリケーションプログラムがシステムコンポー
ネントと相互作用してグローバルトランザクションを行なえるようにする多数の
標準アプリケーションプログラミングインターフェイスを提供する。これらのア
プリケーションプログラミングインターフェイスは1つまたは2つ以上のAP−
RMインターフェイス22と、AP−TMインターフェイス24と、AP−CR
Mインターフェイス26と、RM−TMインターフェイス28と、TM−CRM
インターフェイス30とを含む。
ネントと相互作用してグローバルトランザクションを行なえるようにする多数の
標準アプリケーションプログラミングインターフェイスを提供する。これらのア
プリケーションプログラミングインターフェイスは1つまたは2つ以上のAP−
RMインターフェイス22と、AP−TMインターフェイス24と、AP−CR
Mインターフェイス26と、RM−TMインターフェイス28と、TM−CRM
インターフェイス30とを含む。
【0024】 AP−RMインターフェイス22は、それらのそれぞれのRM16を介して(
データベースなどの)リソースへのアクセスをAP14に提供する。これらのイ
ンターフェイスは、多数の異なったリソースがシステム上に存在し得るため、X
/Open DTPモデルによって特定的に規定されていない。AP−RMインター
フェイスの例としては、構造化照会言語(SQL)および索引順編成方式(IS
AM)が挙げられる。
データベースなどの)リソースへのアクセスをAP14に提供する。これらのイ
ンターフェイスは、多数の異なったリソースがシステム上に存在し得るため、X
/Open DTPモデルによって特定的に規定されていない。AP−RMインター
フェイスの例としては、構造化照会言語(SQL)および索引順編成方式(IS
AM)が挙げられる。
【0025】 AP−TMインターフェイス24は、グローバルトランザクション境界を規定
するようTM18によって提供される。AP−TMインターフェイスはまた、T
Xインターフェイスとも呼ばれる。TXインターフェイスに関するさらなる情報
は、英国のX/Open株式会社の分散型トランザクション処理:TX(トランザク
ション分界)仕様(1992)に記載されている。TXインターフェイスを以下
に詳述する。
するようTM18によって提供される。AP−TMインターフェイスはまた、T
Xインターフェイスとも呼ばれる。TXインターフェイスに関するさらなる情報
は、英国のX/Open株式会社の分散型トランザクション処理:TX(トランザク
ション分界)仕様(1992)に記載されている。TXインターフェイスを以下
に詳述する。
【0026】 AP−CRM26インターフェイスはCRM20によってAP14に与えられ
る。X/Open DTPモデルは次の3つのAP−CRMインターフェイス、すな
わちTxRPCインターフェイス、XATMIインターフェイス、およびCPI
−Cインターフェイスをサポートする。これらのインターフェイスの各々は、同
じインターフェイスを利用するAP間の交信を可能にするために使用され得る。
XATMIを以下に詳述するが、XATMIインターフェイスに関するさらなる
情報は、英国のX/Open株式会社の分散型トランザクション処理:XATMI仕
様(1993)(以下、「XATMI仕様」と称する)に記載されており、ここ
にその全体を引用により援用する。
る。X/Open DTPモデルは次の3つのAP−CRMインターフェイス、すな
わちTxRPCインターフェイス、XATMIインターフェイス、およびCPI
−Cインターフェイスをサポートする。これらのインターフェイスの各々は、同
じインターフェイスを利用するAP間の交信を可能にするために使用され得る。
XATMIを以下に詳述するが、XATMIインターフェイスに関するさらなる
情報は、英国のX/Open株式会社の分散型トランザクション処理:XATMI仕
様(1993)(以下、「XATMI仕様」と称する)に記載されており、ここ
にその全体を引用により援用する。
【0027】 TM−RMインターフェイス28はトランザクション制御(準備、実行または
ロールバック)の目的で使用される。TM−RMインターフェイス28はさらに
、英国のX/Open株式会社のXAインターフェイス、分散型トランザクション処
理:TX(トランザクション分界)仕様(1992)に記載されている。TM−
CRMインターフェイス29はさらに、英国のX/Open株式会社のX/Open仮仕
様−分散型トランザクション処理:XA+仕様(1993)に記載されている。
ロールバック)の目的で使用される。TM−RMインターフェイス28はさらに
、英国のX/Open株式会社のXAインターフェイス、分散型トランザクション処
理:TX(トランザクション分界)仕様(1992)に記載されている。TM−
CRMインターフェイス29はさらに、英国のX/Open株式会社のX/Open仮仕
様−分散型トランザクション処理:XA+仕様(1993)に記載されている。
【0028】 上記アプリケーションプログラミングインターフェイスの他に、X/Open D
TPモデルを実装するシステムは、オープンシステム相互接続(OSI)トラン
ザクション処理(TP)(ISO/IEC10026)(「OSI TP規格」
)として知られている産業規格通信プロトコルを用いて互いに交信し得るが、こ
こにこの規格の全体を引用により援用する。OSI TP規格は、トランザクシ
ョン処理システムにおけるコンピュータ間の交信をサポートするマシン依存型プ
ロトコルを規定する。XAP−TPと呼ばれる産業規格CRM−OSI TPプ
ログラムインターフェイスは、CRM20と、OSI TP規格に準拠するOS
I TPプロトコルマシン34とのインターフェイスを提供する。ISO/IE
C10026−3情報技術−開放型システム間相互接続−分散型トランザクショ
ン処理−パート3:プロトコル仕様(「OSI TPプロトコル仕様」)は、適
合するOSI TPプロトコルマシンが、OSI TP規格に準拠してOSI
TPサービスリクエストを処理する際に発生する必要がある、状態遷移およびプ
ロトコルを規定する。XAP−TPプログラムインターフェイスは、X/Open
ACSE/提示:トランザクション処理API(XAP−TP)CAE仕様(「
XAP−TP仕様」)に明記されている。XAP−TP仕様は、適合するOSI
TPプロトコルマシンの使用を制御する、機能、パラメータおよびエラーを含
むインターフェイスを規定する。下層通信プロトコル36の実装により、ネット
ワーク38を介してシステム10および12間に情報を送信するために必要な下
位レベルの通信処理が取扱われる。これらの下層プロトコルはたとえばOSIま
たはTCP/IPであり得る。X/Open DTPモデルはこれらの下層に対する
インターフェイスを規定しない。
TPモデルを実装するシステムは、オープンシステム相互接続(OSI)トラン
ザクション処理(TP)(ISO/IEC10026)(「OSI TP規格」
)として知られている産業規格通信プロトコルを用いて互いに交信し得るが、こ
こにこの規格の全体を引用により援用する。OSI TP規格は、トランザクシ
ョン処理システムにおけるコンピュータ間の交信をサポートするマシン依存型プ
ロトコルを規定する。XAP−TPと呼ばれる産業規格CRM−OSI TPプ
ログラムインターフェイスは、CRM20と、OSI TP規格に準拠するOS
I TPプロトコルマシン34とのインターフェイスを提供する。ISO/IE
C10026−3情報技術−開放型システム間相互接続−分散型トランザクショ
ン処理−パート3:プロトコル仕様(「OSI TPプロトコル仕様」)は、適
合するOSI TPプロトコルマシンが、OSI TP規格に準拠してOSI
TPサービスリクエストを処理する際に発生する必要がある、状態遷移およびプ
ロトコルを規定する。XAP−TPプログラムインターフェイスは、X/Open
ACSE/提示:トランザクション処理API(XAP−TP)CAE仕様(「
XAP−TP仕様」)に明記されている。XAP−TP仕様は、適合するOSI
TPプロトコルマシンの使用を制御する、機能、パラメータおよびエラーを含
むインターフェイスを規定する。下層通信プロトコル36の実装により、ネット
ワーク38を介してシステム10および12間に情報を送信するために必要な下
位レベルの通信処理が取扱われる。これらの下層プロトコルはたとえばOSIま
たはTCP/IPであり得る。X/Open DTPモデルはこれらの下層に対する
インターフェイスを規定しない。
【0029】 XATMI APIは1組のファンクションコールを提供し、これらは包括的
にtp*()ファンクションコールと称され、さまざまな関数を果たすために呼出
され得る。表1は、任意のC言語アプリケーションプログラムから呼出すことが
できるこれらの関数をまとめたものである。
にtp*()ファンクションコールと称され、さまざまな関数を果たすために呼出
され得る。表1は、任意のC言語アプリケーションプログラムから呼出すことが
できるこれらの関数をまとめたものである。
【0030】
【表1】
【0031】 上記XATMI APIリクエストの各々は、各リクエストのフォーマットお
よび引数を特定するフォーマルな構文を有する。各要求のフォーマル構文はXA
TMI仕様に明記されている。
よび引数を特定するフォーマルな構文を有する。各要求のフォーマル構文はXA
TMI仕様に明記されている。
【0032】 III.マイクロソフトトランザクションサーバ マイクロソフト社は最近、分散型アプリケーションを開発し配備するための、
コンポーネントベースのプログラミングモデルおよび実行環境を提供する、マイ
クロソフト(登録商標)トランザクションサーバ(MTS)と呼ばれる製品を導
入している。「マイクロソフト」、「ウィンドウズ」および「ウィンドウズNT
」はマイクロソフト社の登録商標である。
コンポーネントベースのプログラミングモデルおよび実行環境を提供する、マイ
クロソフト(登録商標)トランザクションサーバ(MTS)と呼ばれる製品を導
入している。「マイクロソフト」、「ウィンドウズ」および「ウィンドウズNT
」はマイクロソフト社の登録商標である。
【0033】 MTSはユーザが3層アプリケーションを構築できるようにする。クライアン
トアプリケーションはDCOMまたはIISアプリケーションのいずれかであり
得る。MTSは再使用可能なビジネスロジックをサポートする中間層となり、デ
ータ記憶装置は第3の層となる。この技術は、ビジネスロジック全体をなすCO
Mオブジェクトの形態で、再使用可能なコンポーネントを構築するという考えに
基づく。このようなコンポーネントの中には以下のタイプのものがある。すなわ
ち、照会:データが入力され、次いでコンポーネントがデータ記憶装置に接続さ
れて情報を得るようにするものと、更新:トランザクションを実行してメッセー
ジを送信しデータベースを更新するものとである。
トアプリケーションはDCOMまたはIISアプリケーションのいずれかであり
得る。MTSは再使用可能なビジネスロジックをサポートする中間層となり、デ
ータ記憶装置は第3の層となる。この技術は、ビジネスロジック全体をなすCO
Mオブジェクトの形態で、再使用可能なコンポーネントを構築するという考えに
基づく。このようなコンポーネントの中には以下のタイプのものがある。すなわ
ち、照会:データが入力され、次いでコンポーネントがデータ記憶装置に接続さ
れて情報を得るようにするものと、更新:トランザクションを実行してメッセー
ジを送信しデータベースを更新するものとである。
【0034】 MTS環境では、クライアントアプリケーションは所与のタスクを行なうため
のMTSコンポーネントのインスタンスを要求する。MTSコンポーネントはそ
のタスクに関連したビジネスロジックを提供する。クライアントアプリケーショ
ンがコンポーネントインスタンスを要求すると、MTSはMTSコンポーネント
のインスタンスを生成し、クライアントアプリケーションに対する参照を送り返
す。MTSコンポーネントのすべてのインスタンスは、MTSコンポーネントに
関する情報を保持する関連のコンテキストオブジェクトを有する。各MTSコン
ポーネントのコンテキストオブジェクトは多くのメソッドを含むIObjectContext
インターフェイスを公開する。トランザクション処理に関する2つのメソッドは
IObjectContext::SetComplete()およびIObjectContext::SetAbort()である。M
TSコンポーネントは、その作業をうまく実行し終えたときにSetComplete()を
呼出す。作業がうまく完了しなかった場合にはSetAbort()が呼出される。GetObj
ectContext()と呼ばれる、MTSによって提供されるグローバルメソッドが、コ
ンテキストオブジェクトのIObjectInterfaceへの参照を得るために使用される。
のMTSコンポーネントのインスタンスを要求する。MTSコンポーネントはそ
のタスクに関連したビジネスロジックを提供する。クライアントアプリケーショ
ンがコンポーネントインスタンスを要求すると、MTSはMTSコンポーネント
のインスタンスを生成し、クライアントアプリケーションに対する参照を送り返
す。MTSコンポーネントのすべてのインスタンスは、MTSコンポーネントに
関する情報を保持する関連のコンテキストオブジェクトを有する。各MTSコン
ポーネントのコンテキストオブジェクトは多くのメソッドを含むIObjectContext
インターフェイスを公開する。トランザクション処理に関する2つのメソッドは
IObjectContext::SetComplete()およびIObjectContext::SetAbort()である。M
TSコンポーネントは、その作業をうまく実行し終えたときにSetComplete()を
呼出す。作業がうまく完了しなかった場合にはSetAbort()が呼出される。GetObj
ectContext()と呼ばれる、MTSによって提供されるグローバルメソッドが、コ
ンテキストオブジェクトのIObjectInterfaceへの参照を得るために使用される。
【0035】 MTSコンポーネント(すなわちCOMオブジェクト)は単一スレッドのユニ
ットとして書かれ、MTSエグゼクティブは並列に関する問題すべてを取扱う。
MTSは、開発者がこのような一連のコンポーネントを集めてパッケージにし、
容易に配備できるようにする。X/Open DTPモデルの場合とは異なり、MT
Sコンポーネントの開発者は、コンポーネントのグローバルトランザクションへ
の導入法について悩まなくてもよい。MTSコンポーネントはすべてを包含する
ユニットとして書かれ、トランザクションを要求またはサポートするものとして
構成されるか、または非トランザクション特性を有するものとして構成される。
MTSコンポーネントのインスタンスが生成されると、MTSはそのトランザク
ション特性を有効にし、MTSコンポーネントがトランザクション特性を有する
ものとして構成される場合には、MTSはこれらの特性を持つコンポーネントの
インスタンスを生成する。トランザクション特性によってインスタンスを生成さ
れたMTSコンポーネントは、進行中である場合にはトランザクションにエンリ
ストする(すなわち参加する)。
ットとして書かれ、MTSエグゼクティブは並列に関する問題すべてを取扱う。
MTSは、開発者がこのような一連のコンポーネントを集めてパッケージにし、
容易に配備できるようにする。X/Open DTPモデルの場合とは異なり、MT
Sコンポーネントの開発者は、コンポーネントのグローバルトランザクションへ
の導入法について悩まなくてもよい。MTSコンポーネントはすべてを包含する
ユニットとして書かれ、トランザクションを要求またはサポートするものとして
構成されるか、または非トランザクション特性を有するものとして構成される。
MTSコンポーネントのインスタンスが生成されると、MTSはそのトランザク
ション特性を有効にし、MTSコンポーネントがトランザクション特性を有する
ものとして構成される場合には、MTSはこれらの特性を持つコンポーネントの
インスタンスを生成する。トランザクション特性によってインスタンスを生成さ
れたMTSコンポーネントは、進行中である場合にはトランザクションにエンリ
ストする(すなわち参加する)。
【0036】 MTS環境内の分散型トランザクションコントローラ(MS DTC)はグロ
ーバルトランザクションにおけるコンポーネントのエンリストメントを制御し、
さらにはトランザクションの実行を統御する。MS DTCは2相実行処理を実
装する。しかしながら、X/Open DTPモデルの場合とは異なり、MTSトラ
ンザクションは、開始および終了を持つものとしてクライアントアプリケーショ
ンによっては境界付けされない。そのかわりに、エンリストメントプロセスを通
して、トランザクションの存続期間がMS DTCによって制御される。
ーバルトランザクションにおけるコンポーネントのエンリストメントを制御し、
さらにはトランザクションの実行を統御する。MS DTCは2相実行処理を実
装する。しかしながら、X/Open DTPモデルの場合とは異なり、MTSトラ
ンザクションは、開始および終了を持つものとしてクライアントアプリケーショ
ンによっては境界付けされない。そのかわりに、エンリストメントプロセスを通
して、トランザクションの存続期間がMS DTCによって制御される。
【0037】 すべてのトランザクション処理システムにおいて、システム中の各リソースは
、ローカルトランザクションマネージャと交信することによりそれ自体を宣言す
るリソースマネージャによって制御される。MTS環境では、ローカルトランザ
クションマネージャはMS DTCであり、リソースマネージャがそれ自体をM
S DTCに宣言するプロセスは、エンリストメントと呼ばれる(トランザクシ
ョン中のエンリストメントとは区別される)。リソースマネージャがMS DT
Cにエンリストした後、それは実行アプリケーションからの要求を待つ。新たな
トランザクションに関連するリクエストが到着すると、リソースマネージャはそ
のトランザクションにもエンリストせねばならない。これにより、トランザクシ
ョンが実行またはアボートする際に、リソースマネージャが確実にMS DTC
からのコールバック(すなわち表示)を得ることになる。
、ローカルトランザクションマネージャと交信することによりそれ自体を宣言す
るリソースマネージャによって制御される。MTS環境では、ローカルトランザ
クションマネージャはMS DTCであり、リソースマネージャがそれ自体をM
S DTCに宣言するプロセスは、エンリストメントと呼ばれる(トランザクシ
ョン中のエンリストメントとは区別される)。リソースマネージャがMS DT
Cにエンリストした後、それは実行アプリケーションからの要求を待つ。新たな
トランザクションに関連するリクエストが到着すると、リソースマネージャはそ
のトランザクションにもエンリストせねばならない。これにより、トランザクシ
ョンが実行またはアボートする際に、リソースマネージャが確実にMS DTC
からのコールバック(すなわち表示)を得ることになる。
【0038】 MS DTCは、2つまたはそれ以上のウィンドウズ(登録商標)95または
ウィンドウズNT(登録商標)システムを介して分散されるトランザクションを
サポートする。各システムはローカルトランザクションマネージャ、すなわちM
S DTCを有する。すべてのコンポーネントおよびリソースマネージャはそれ
らのローカルトランザクションマネージャと交信する。トランザクションマネー
ジャは、OLEトランザクションプロトコルを用いて、複数システム上のトラン
ザクションプロトコルを協働的に管理する。マイクロソフトトランザクションサ
ーバ環境に関するさらなる情報は、データベースワークショップ:マイクロソフ
トトランザクションサーバ2.0 Roger Jennings ed., Sams Publishing, 199
7およびマイクロソフト社のウェブサイトで得られる。
ウィンドウズNT(登録商標)システムを介して分散されるトランザクションを
サポートする。各システムはローカルトランザクションマネージャ、すなわちM
S DTCを有する。すべてのコンポーネントおよびリソースマネージャはそれ
らのローカルトランザクションマネージャと交信する。トランザクションマネー
ジャは、OLEトランザクションプロトコルを用いて、複数システム上のトラン
ザクションプロトコルを協働的に管理する。マイクロソフトトランザクションサ
ーバ環境に関するさらなる情報は、データベースワークショップ:マイクロソフ
トトランザクションサーバ2.0 Roger Jennings ed., Sams Publishing, 199
7およびマイクロソフト社のウェブサイトで得られる。
【0039】 現在、異種ホストのMTSの相互運用性は、IBMのIMSまたはCICSト
ランザクションのための、マイクロソフトCOMTI(COMトランザクション
インターフェイス)を通じて、リモートホストのデータベースに接続するための
第三者のODBC(オープンデータベースコネクティビティ)を通じて、または
XAマッパを介して、存在する。
ランザクションのための、マイクロソフトCOMTI(COMトランザクション
インターフェイス)を通じて、リモートホストのデータベースに接続するための
第三者のODBC(オープンデータベースコネクティビティ)を通じて、または
XAマッパを介して、存在する。
【0040】 COMTIはIBMメインフレーム上で動作する既存のCobolプログラムにウ
ィンドウズベースの新たなクライアントがアクセスできるようにする。ODBC
はMTSコンポーネントによる種々のデータベース(Oracle, Informix, SQL Se
quelサーバ)へのアクセスを許す。XAマッパーは、X/Openに準拠するトラン
ザクションマネージャと交信するクライアントアプリケーションが、それらのX
AプロトコルをMTSのネイティブOLEトランザクションプロトコルにマッピ
ングして、MTS制御リソースに含むようにする。
ィンドウズベースの新たなクライアントがアクセスできるようにする。ODBC
はMTSコンポーネントによる種々のデータベース(Oracle, Informix, SQL Se
quelサーバ)へのアクセスを許す。XAマッパーは、X/Openに準拠するトラン
ザクションマネージャと交信するクライアントアプリケーションが、それらのX
AプロトコルをMTSのネイティブOLEトランザクションプロトコルにマッピ
ングして、MTS制御リソースに含むようにする。
【0041】 不都合なことに、これらの相互運用性の解決策には、既存のトランザクション
処理システムのうちの大きな種類が排除されている。これら種類のシステムとは
、X/Open DTPモデルに従って構築され、アプリケーションプログラムとリ
ソースとの間のインターフェイスとしてXATMIプログラムインターフェイス
を使用するものである。これらのシステムのサーバは、リモートクライアントが
アクセスし得るデータベースを制御するためのビジネスロジックを付与する。X
/Open DTPベースのシステムにおけるトランザクションマネージャはトラン
ザクションの統御およびメッセージの経路づけを制御する。それらはまた、デー
タのロールバックおよび回復、ならびにリモートデータマネージャの同期化を制
御する。
処理システムのうちの大きな種類が排除されている。これら種類のシステムとは
、X/Open DTPモデルに従って構築され、アプリケーションプログラムとリ
ソースとの間のインターフェイスとしてXATMIプログラムインターフェイス
を使用するものである。これらのシステムのサーバは、リモートクライアントが
アクセスし得るデータベースを制御するためのビジネスロジックを付与する。X
/Open DTPベースのシステムにおけるトランザクションマネージャはトラン
ザクションの統御およびメッセージの経路づけを制御する。それらはまた、デー
タのロールバックおよび回復、ならびにリモートデータマネージャの同期化を制
御する。
【0042】 MTS環境にトランザクションマネージャ機能を提供するMS DTCは現在
のところ、X/OpenXATMI−適合トランザクションマネージャによって制御
されるリモートサーバ上のリソースと相互運用できない。MS DTCはXAT
MIに適合しない。このため、XATMI−適合トランザクションマネージャに
よって制御されるサーバはMS DTCによって管理されるグローバルOLEト
ランザクションに参加できない。X/OpenXATMI−適合トランザクションマ
ネージャの上に構築された運用中の多数のクライアント/サーバアプリケーショ
ン〜なる母体が存在している場合、そのようなサーバをMS DTCが制御する
グローバルトランザクションにMS DTCが含ませるようにする方法および装
置を提供することが望ましいであろう。広義には、XATMI−適合トランザク
ションマネージャを採用しないすべてのトランザクション処理環境に、その環境
におけるグローバルトランザクションの部分として、XATMI−適合トランザ
クションマネージャの制御下で動作しない別の環境におけるリモートサーバのリ
ソースにアクセスできる能力を与えることが望ましいであろう。本発明はこの要
求を満たす。
のところ、X/OpenXATMI−適合トランザクションマネージャによって制御
されるリモートサーバ上のリソースと相互運用できない。MS DTCはXAT
MIに適合しない。このため、XATMI−適合トランザクションマネージャに
よって制御されるサーバはMS DTCによって管理されるグローバルOLEト
ランザクションに参加できない。X/OpenXATMI−適合トランザクションマ
ネージャの上に構築された運用中の多数のクライアント/サーバアプリケーショ
ン〜なる母体が存在している場合、そのようなサーバをMS DTCが制御する
グローバルトランザクションにMS DTCが含ませるようにする方法および装
置を提供することが望ましいであろう。広義には、XATMI−適合トランザク
ションマネージャを採用しないすべてのトランザクション処理環境に、その環境
におけるグローバルトランザクションの部分として、XATMI−適合トランザ
クションマネージャの制御下で動作しない別の環境におけるリモートサーバのリ
ソースにアクセスできる能力を与えることが望ましいであろう。本発明はこの要
求を満たす。
【0043】
本発明は、トランザクション処理環境におけるコンポーネントが、XATMI
−適合性でない第1のトランザクションマネージャによって環境内で統御される
グローバルトランザクションの一部分として、XATMI−適合トランザクショ
ンマネージャの制御下の環境外のリモートサーバのリソースを要求できるように
する方法および装置に向けられる。後に詳述するように、本発明の方法および装
置は、マイクロソフトトランザクションサーバ(MTS)環境におけるコンポー
ネントが、MTS環境内のマイクロソフト分散型トランザクションコーディネー
タ(MS DTC)の制御下のグローバルトランザクションの一部分として、X
ATMI−適合トランザクションマネージャの制御下のMTS環境外のリモート
サーバのリソースを要求できるようにするために、特に有用である。好ましい実
施例において、本発明の方法および装置は相互接続の形態で実装される。相互接
続は接続マネージャおよびリソースマネージャを含む。
−適合性でない第1のトランザクションマネージャによって環境内で統御される
グローバルトランザクションの一部分として、XATMI−適合トランザクショ
ンマネージャの制御下の環境外のリモートサーバのリソースを要求できるように
する方法および装置に向けられる。後に詳述するように、本発明の方法および装
置は、マイクロソフトトランザクションサーバ(MTS)環境におけるコンポー
ネントが、MTS環境内のマイクロソフト分散型トランザクションコーディネー
タ(MS DTC)の制御下のグローバルトランザクションの一部分として、X
ATMI−適合トランザクションマネージャの制御下のMTS環境外のリモート
サーバのリソースを要求できるようにするために、特に有用である。好ましい実
施例において、本発明の方法および装置は相互接続の形態で実装される。相互接
続は接続マネージャおよびリソースマネージャを含む。
【0044】 接続マネージャは、双方向の2相実行通信プロトコルに従って、リモートサー
バの、要求されたリソースと交信するプロトコルマシンを含む。好ましい実施例
において、プロトコルマシンは、OSI TPプロトコル仕様を実装するOSI
TPプロトコルマシンを含む。
バの、要求されたリソースと交信するプロトコルマシンを含む。好ましい実施例
において、プロトコルマシンは、OSI TPプロトコル仕様を実装するOSI
TPプロトコルマシンを含む。
【0045】 リソースマネージャは、コンポーネントからのXATMIサービスリクエスト
を受ける第1のインターフェイスと、所与のグローバルトランザクションに関し
て第1のトランザクションマネージャによって発行された命令(たとえば準備、
実行、アボートなど)を受信する第2のインターフェイスとを有する。リソース
マネージャは(i)コンポーネントから受信したXATMIサービスリクエスト
と、第1のトランザクションマネージャによって発行された命令とを、OSI
TPプロトコルマシンの対応のサービスリクエストに変換し、(ii)対応のOS
I TPサービスリクエストをOSI TPプロトコルマシンに発行し、(iii
)OSI TPプロトコルマシンによるOSI TPサービスリクエストの処理
と、第1のトランザクションマネージャのトランザクション処理環境における対
応のイベント(たとえば準備、実行およびアボート)の処理とを、第1のトラン
ザクションマネージャ環境のトランザクション処理環境およびリモートサーバの
両方にトランスペアレントな形で統御する。これにより、第1のトランザクショ
ンマネージャおよびコンポーネントに対してはリモートサーバがそれらのトラン
ザクション処理環境の別のローカルリソースとして見えるようになる。さらに、
好ましい実施例において、リモートサーバに要求を通信するためにOSI TP
プロトコルマシンを使用することにより、本発明の相互接続は、OSI TPプ
ロトコル仕様の堅牢な回復という特徴の利益を享受できるようになり、これによ
り、ACID特性を達成する全体的なトランザクション処理システムの能力が高
まる。好ましい実施例においてはまた、リソースマネージャは、ブランチごとに
リソースマネージャの動作を制御する状態マシンの制御下で動作する。
を受ける第1のインターフェイスと、所与のグローバルトランザクションに関し
て第1のトランザクションマネージャによって発行された命令(たとえば準備、
実行、アボートなど)を受信する第2のインターフェイスとを有する。リソース
マネージャは(i)コンポーネントから受信したXATMIサービスリクエスト
と、第1のトランザクションマネージャによって発行された命令とを、OSI
TPプロトコルマシンの対応のサービスリクエストに変換し、(ii)対応のOS
I TPサービスリクエストをOSI TPプロトコルマシンに発行し、(iii
)OSI TPプロトコルマシンによるOSI TPサービスリクエストの処理
と、第1のトランザクションマネージャのトランザクション処理環境における対
応のイベント(たとえば準備、実行およびアボート)の処理とを、第1のトラン
ザクションマネージャ環境のトランザクション処理環境およびリモートサーバの
両方にトランスペアレントな形で統御する。これにより、第1のトランザクショ
ンマネージャおよびコンポーネントに対してはリモートサーバがそれらのトラン
ザクション処理環境の別のローカルリソースとして見えるようになる。さらに、
好ましい実施例において、リモートサーバに要求を通信するためにOSI TP
プロトコルマシンを使用することにより、本発明の相互接続は、OSI TPプ
ロトコル仕様の堅牢な回復という特徴の利益を享受できるようになり、これによ
り、ACID特性を達成する全体的なトランザクション処理システムの能力が高
まる。好ましい実施例においてはまた、リソースマネージャは、ブランチごとに
リソースマネージャの動作を制御する状態マシンの制御下で動作する。
【0046】 リモートサーバに別個の接続を要求する各XATMIサービスリクエストは、
グローバルトランザクションの1つのブランチを表わす。本発明の別の特徴によ
ると、リソースマネージャはさらに、第1のトランザクションマネージャのトラ
ンザクション処理環境から、その環境内のグローバルトランザクションに割当て
られる第1の識別子を得て、それに基づいて、接続マネージャのプロトコルマシ
ン内でのそのトランザクションを特定するために使用される第2の識別子を生成
する。リソースマネージャは好ましくは、第2の識別子に加えて、プロトコルマ
シン内でのグローバルトランザクションのブランチを一意に特定する第3の識別
子を生成する。接続マネージャのプロトコルマシンがOSI TPプロトコルマ
シンを含む好ましい実施例では、第2および第3の識別子は好ましくは、それぞ
れOSI TPプロトコル仕様の要件に準拠する、不可分アクション識別子(A
AID)およびそれに対するブランチサフィックス(BRID)を含む。本発明
がMTS環境において使用される場合、第1の識別子は好ましくは、MTSによ
るトランザクションに割当てられるグローバルに一意な識別子(GUID)を含
む。
グローバルトランザクションの1つのブランチを表わす。本発明の別の特徴によ
ると、リソースマネージャはさらに、第1のトランザクションマネージャのトラ
ンザクション処理環境から、その環境内のグローバルトランザクションに割当て
られる第1の識別子を得て、それに基づいて、接続マネージャのプロトコルマシ
ン内でのそのトランザクションを特定するために使用される第2の識別子を生成
する。リソースマネージャは好ましくは、第2の識別子に加えて、プロトコルマ
シン内でのグローバルトランザクションのブランチを一意に特定する第3の識別
子を生成する。接続マネージャのプロトコルマシンがOSI TPプロトコルマ
シンを含む好ましい実施例では、第2および第3の識別子は好ましくは、それぞ
れOSI TPプロトコル仕様の要件に準拠する、不可分アクション識別子(A
AID)およびそれに対するブランチサフィックス(BRID)を含む。本発明
がMTS環境において使用される場合、第1の識別子は好ましくは、MTSによ
るトランザクションに割当てられるグローバルに一意な識別子(GUID)を含
む。
【0047】 発明のさらに別の局面によると、プロトコルマシンはグローバルトランザクシ
ョンのブランチごとに、リモートサーバへの接続を確保して、そのブランチに対
するサービスリクエストを処理し、そのブランチについて確保した接続を特定す
る第4の識別子を生成する。第4の識別子は、その接続を介してリモートサーバ
への、後のコールにおいて、その接続を特定するために使用される。
ョンのブランチごとに、リモートサーバへの接続を確保して、そのブランチに対
するサービスリクエストを処理し、そのブランチについて確保した接続を特定す
る第4の識別子を生成する。第4の識別子は、その接続を介してリモートサーバ
への、後のコールにおいて、その接続を特定するために使用される。
【0048】 本発明のさらなる別の局面によると、リソースマネージャはブランチごとに記
録を生成し、ここでは、接続マネージャのプロトコルマシンによるサービスリク
エストの処理と、第1のトランザクションマネージャのトランザクション処理環
境(たとえばMTS環境)における対応のイベントの処理とを統合するにあたり
そのブランチに関する情報が記憶され、リソースマネージャによって使用される
。所与のブランチに関する記録に記憶された情報は好ましくは、上記第1、第2
、第3および第4の識別子を含む。他の情報には、リソースマネージャが参照す
べきいくつかのオブジェクトのポインタおよびブランチの表示が含まれ得る。
録を生成し、ここでは、接続マネージャのプロトコルマシンによるサービスリク
エストの処理と、第1のトランザクションマネージャのトランザクション処理環
境(たとえばMTS環境)における対応のイベントの処理とを統合するにあたり
そのブランチに関する情報が記憶され、リソースマネージャによって使用される
。所与のブランチに関する記録に記憶された情報は好ましくは、上記第1、第2
、第3および第4の識別子を含む。他の情報には、リソースマネージャが参照す
べきいくつかのオブジェクトのポインタおよびブランチの表示が含まれ得る。
【0049】 発明の別の局面によると、リソースマネージャは、グローバルトランザクショ
ンのブランチごとに、第1のトランザクションマネージャ(たとえばMS DT
C)およびプロトコルマシン(たとえばOSI TPプロトコルマシン)の両方
が故障から回復するために要求する情報をともに安全な記憶装置に記憶する。所
与のブランチに関する情報はログ記録の形式で記憶される。所与のブランチのロ
グ記録に対するポインタは、そのブランチに関する上記記録に記憶される。第1
のトランザクションマネージャおよびプロトコルマシンの両方が要求する回復情
報を1つのログ記録にともに記憶し、かつログ記録(ブランチに対して生成され
た記録のポインタ)へのアクセスを行なうために集中化された手段を提供するこ
とにより、これらの環境のうちの一方または両方において回復が容易に行なわれ
るようになる。
ンのブランチごとに、第1のトランザクションマネージャ(たとえばMS DT
C)およびプロトコルマシン(たとえばOSI TPプロトコルマシン)の両方
が故障から回復するために要求する情報をともに安全な記憶装置に記憶する。所
与のブランチに関する情報はログ記録の形式で記憶される。所与のブランチのロ
グ記録に対するポインタは、そのブランチに関する上記記録に記憶される。第1
のトランザクションマネージャおよびプロトコルマシンの両方が要求する回復情
報を1つのログ記録にともに記憶し、かつログ記録(ブランチに対して生成され
た記録のポインタ)へのアクセスを行なうために集中化された手段を提供するこ
とにより、これらの環境のうちの一方または両方において回復が容易に行なわれ
るようになる。
【0050】 使用時には、たとえば、マイクロソフトトランザクションサーバ環境および本
発明の方法を用いた場合、相互接続のリソースマネージャへのXATMIサービ
スリクエスト(たとえばtpcall、tpacallまたはtpconnect)であって、リモート
サーバへのリソースを要求するものをMTSコンポーネントが発行すると、相互
接続は、MTSから、MTSコンポーネントがトランザクションを要求またはサ
ポートするよう構成されているか否かを判断する。MTSコンポーネントがトラ
ンザクション的であるとすると、リソースマネージャはXATMIサービスリク
エストを、OSI TPプロトコルマシンの対応の要求に変換し、プロトコルマ
シンを介してその要求をリモートサーバに発行する。良好な返答が受信されると
、リソースマネージャはトランザクションのブランチをMS DTCに自動的に
エンリストし、MS DTCが、そのトランザクションに関して発行されたすべ
ての実行命令を確実にリソースマネージャに通知するようにする。このプロセス
に関連して、リソースマネージャは、トランザクションブランチを表わしかつM
S DTCがそのブランチに対する命令を発行するために呼出す方法を含むオブ
ジェクトのインスタンスを生成する。
発明の方法を用いた場合、相互接続のリソースマネージャへのXATMIサービ
スリクエスト(たとえばtpcall、tpacallまたはtpconnect)であって、リモート
サーバへのリソースを要求するものをMTSコンポーネントが発行すると、相互
接続は、MTSから、MTSコンポーネントがトランザクションを要求またはサ
ポートするよう構成されているか否かを判断する。MTSコンポーネントがトラ
ンザクション的であるとすると、リソースマネージャはXATMIサービスリク
エストを、OSI TPプロトコルマシンの対応の要求に変換し、プロトコルマ
シンを介してその要求をリモートサーバに発行する。良好な返答が受信されると
、リソースマネージャはトランザクションのブランチをMS DTCに自動的に
エンリストし、MS DTCが、そのトランザクションに関して発行されたすべ
ての実行命令を確実にリソースマネージャに通知するようにする。このプロセス
に関連して、リソースマネージャは、トランザクションブランチを表わしかつM
S DTCがそのブランチに対する命令を発行するために呼出す方法を含むオブ
ジェクトのインスタンスを生成する。
【0051】 上記方法のうちの1つを呼出すことによって所与のブランチの実行命令(たと
えば準備、実行、アボート)が発行されると、リソースマネージャはそのMTS
要求を、接続マネージャの双方向2相実行通信プロトコル(たとえばOSI T
P)の、対応のサービスリクエストに変換し、その対応の要求をプロトコルマシ
ンに発行する。要求はリモートサーバに送信され、リモートサーバのXATMI
−適合トランザクションマネージャは、要求される動作(準備、実行またはアボ
ート)を行なうようリモートサーバのリソースマネージャに命令を与える。動作
が完了すると、リモートサーバは、接続マネージャのプロトコルマシンによって
実装される双方向2相実行通信プロトコル(たとえばOSI TP)を介して本
発明の相互接続のリソースマネージャに表示を送り返す。リソースマネージャが
プロトコルマシンから表示を受信すると、それはMS DTCによって提供され
る通知方法を呼出し、要求される動作が完了したことをMS DTCに通知する
。本発明の相互接続は、MS DTCおよびMTSコンポーネントのおかげでリ
モートサーバとの通信の複雑性の問題を排除することができ、これによりリモー
トサーバが実際にMTS環境内のローカルリソースとして見えるようにする。
えば準備、実行、アボート)が発行されると、リソースマネージャはそのMTS
要求を、接続マネージャの双方向2相実行通信プロトコル(たとえばOSI T
P)の、対応のサービスリクエストに変換し、その対応の要求をプロトコルマシ
ンに発行する。要求はリモートサーバに送信され、リモートサーバのXATMI
−適合トランザクションマネージャは、要求される動作(準備、実行またはアボ
ート)を行なうようリモートサーバのリソースマネージャに命令を与える。動作
が完了すると、リモートサーバは、接続マネージャのプロトコルマシンによって
実装される双方向2相実行通信プロトコル(たとえばOSI TP)を介して本
発明の相互接続のリソースマネージャに表示を送り返す。リソースマネージャが
プロトコルマシンから表示を受信すると、それはMS DTCによって提供され
る通知方法を呼出し、要求される動作が完了したことをMS DTCに通知する
。本発明の相互接続は、MS DTCおよびMTSコンポーネントのおかげでリ
モートサーバとの通信の複雑性の問題を排除することができ、これによりリモー
トサーバが実際にMTS環境内のローカルリソースとして見えるようにする。
【0052】 本発明のさらなる特徴および利点は以下を読むと明らかとなるであろう。 上記概要および好ましい実施例の以下の詳細な説明は、添付の図面を参照して
読むとよりよく理解される。発明の例示目的で、現在の好ましい実施例が図面で
示されるが、本発明は開示される特定の方法および装置に限定されないことを理
解されたい。
読むとよりよく理解される。発明の例示目的で、現在の好ましい実施例が図面で
示されるが、本発明は開示される特定の方法および装置に限定されないことを理
解されたい。
【0053】
I.全体像 II.機能ブロック図 A.コネクションマネージャ B.リソースマネージャ C.他のデータ構造/オブジェクト D.状態マシン III.接続管理/統御 A.GUIDおよびAAID/BRID間マッピング B.TP_ID IV.CRM記録 V.回復のためのログ収集 A.プロセス障害 B.ネットワーク障害 C.MS DTC 障害 D.ノードクラッシュ VI.動作 A.起動:初期エンリストメント B.トランザクションブランチの処理 1.XATMIサービスリクエストに対するサービス 2.実行処理 3.アボート処理 C.回復 I.全体像 本発明は、トランザクション処理環境におけるコンポーネントが、XATMI
に適合しない第1のトランザクションマネージャによってその環境内で統御され
るグローバルトランザクションの一部分として、XATMI−適合トランザクシ
ョンマネージャの制御下の環境の外部のリモートサーバのリソースを要求できる
ようにする方法および装置に向けられる。この明細書および特許請求の範囲で使
用される「XATMI−適合トランザクションマネージャ」は、この名称で知ら
れているか否かにかかわらず、すべてのバージョン、それらの先行版、変形版お
よびその修正例を含むXATMI仕様にしたがって動作するか、またはそれをサ
ポートまたはそれに準拠したインターフェイスを提供するような、トランザクシ
ョンマネージャを意味する。本発明の好ましい実施例を以下に説明するが、発明
の方法および装置はここでは、マイクロソフトトランザクションサーバ(MTS
)環境であって、その環境内で分散型トランザクションコーディネータ(MS
DTC)によってグローバルトランザクションが統御されるものに使用される。
すなわち、上記説明および特許請求の範囲において使用した「トランザクション
処理環境」および「第1のトランザクションマネージャ」という用語にはそれぞ
れ、MTS環境およびそのMS DTCが含まれる。しかしながら、本発明の方
法および装置はMTS環境における用途に限定されないことを理解されたい。本
発明の方法および装置は、XATMI−適合トランザクションマネージャの制御
下の環境外のリモートサーバのリソースを要求する必要のあるすべてのトランザ
クション処理環境に使用され得る。したがって、本発明はここに開示する特定的
な実施例に限定されず、前掲の特許請求の範囲によって規定される本発明の精神
および範囲内に入るすべての変形をカバーすることが意図される。
に適合しない第1のトランザクションマネージャによってその環境内で統御され
るグローバルトランザクションの一部分として、XATMI−適合トランザクシ
ョンマネージャの制御下の環境の外部のリモートサーバのリソースを要求できる
ようにする方法および装置に向けられる。この明細書および特許請求の範囲で使
用される「XATMI−適合トランザクションマネージャ」は、この名称で知ら
れているか否かにかかわらず、すべてのバージョン、それらの先行版、変形版お
よびその修正例を含むXATMI仕様にしたがって動作するか、またはそれをサ
ポートまたはそれに準拠したインターフェイスを提供するような、トランザクシ
ョンマネージャを意味する。本発明の好ましい実施例を以下に説明するが、発明
の方法および装置はここでは、マイクロソフトトランザクションサーバ(MTS
)環境であって、その環境内で分散型トランザクションコーディネータ(MS
DTC)によってグローバルトランザクションが統御されるものに使用される。
すなわち、上記説明および特許請求の範囲において使用した「トランザクション
処理環境」および「第1のトランザクションマネージャ」という用語にはそれぞ
れ、MTS環境およびそのMS DTCが含まれる。しかしながら、本発明の方
法および装置はMTS環境における用途に限定されないことを理解されたい。本
発明の方法および装置は、XATMI−適合トランザクションマネージャの制御
下の環境外のリモートサーバのリソースを要求する必要のあるすべてのトランザ
クション処理環境に使用され得る。したがって、本発明はここに開示する特定的
な実施例に限定されず、前掲の特許請求の範囲によって規定される本発明の精神
および範囲内に入るすべての変形をカバーすることが意図される。
【0054】 本発明の方法および装置は、フロッピィディスク、CD−ROM、ハードドラ
イブまたは何らかの他のマシンで読取可能な記憶媒体といった有形媒体の形のプ
ログラムコード(すなわち命令)の形態を取り得、プログラムコードはコンピュ
ータなどのマシンにロードされて実行され、マシンは発明を実施するための装置
となる。本発明の方法および装置はまた、光ファイバを介して電気配線またはケ
ーブルなどの伝送媒体によって、または何らかの他の形式の伝送法によって伝送
され、プログラムコードはコンピュータなどのマシンで受信され、その中にロー
ドされて実行され、マシンは発明を実施するための装置となる。汎用プロセッサ
に実装される場合、プログラムコードはプロセッサと組合せられて、特定の論理
回路と同様に動作する独特な装置を提供する。
イブまたは何らかの他のマシンで読取可能な記憶媒体といった有形媒体の形のプ
ログラムコード(すなわち命令)の形態を取り得、プログラムコードはコンピュ
ータなどのマシンにロードされて実行され、マシンは発明を実施するための装置
となる。本発明の方法および装置はまた、光ファイバを介して電気配線またはケ
ーブルなどの伝送媒体によって、または何らかの他の形式の伝送法によって伝送
され、プログラムコードはコンピュータなどのマシンで受信され、その中にロー
ドされて実行され、マシンは発明を実施するための装置となる。汎用プロセッサ
に実装される場合、プログラムコードはプロセッサと組合せられて、特定の論理
回路と同様に動作する独特な装置を提供する。
【0055】 類似した参照番号は類似した要素を表わす図面を参照して、図2は、本発明が
実装され得る一例としてのマイクロソフトトランザクションサーバ(MTS)環
境50を示す。MTSは、マイクロソフトウィンドウズNTオペレーティングシ
ステムの下で、またより限定された形でマイクロソフトウィンドウズ95オペレ
ーティングシステムの下でも実行されるランタイム環境である。MTS環境は典
型的には、従来の3層トランザクション処理モデルのうちの第1の層を表わすク
ライアントアプリケーション52を含む。クライアントアプリケーション52は
通常、ユーザインターフェイスを提供し、かつアプリケーションの論理全体のう
ちのいくつかを行なう。アプリケーションのビジネスロジックは1つまたは2つ
以上のMTSコンポーネント(たとえばコンポーネント54)の形態で実装され
る。MTSコンポーネントは単一スレッドのユニットとして書かれ、MTSエク
ゼキュティブは並列に関する問題すべてを扱う。一連のMTSコンポーネントは
配備および使用を容易にするようグループ分けされパッケージ化される。MTS
コンポーネントの開発者はトランザクションを要求またはサポートするものとし
てMTSコンポーネントを構成することができる。かくして構成されたMTSコ
ンポーネントは、トランザクションが進行中である場合には、MTS環境におけ
る分散型トランザクションコーディネータ(MS DTC)56の制御下でトラ
ンザクションに自動的に参加することとなる。MS DTC56はトランザクシ
ョンへのMTSコンポーネントの参加を制御し、2相実行プロセスに従ってトラ
ンザクション実行を統御する。MTSコンポーネントはMTS環境内の1つまた
は2つ以上のリソースマネージャ(図示せず)からのリソースを要求し得る。リ
ソースマネージャはデータベースなどの特定的なリソースへのアクセスを制御す
る。典型的なMTS環境では、MTSコンポーネント54、MS DTC56、
および1つまたは2つ以上のリソースマネージャ(図示せず)がOLEプロトコ
ルを用いて交信する。
実装され得る一例としてのマイクロソフトトランザクションサーバ(MTS)環
境50を示す。MTSは、マイクロソフトウィンドウズNTオペレーティングシ
ステムの下で、またより限定された形でマイクロソフトウィンドウズ95オペレ
ーティングシステムの下でも実行されるランタイム環境である。MTS環境は典
型的には、従来の3層トランザクション処理モデルのうちの第1の層を表わすク
ライアントアプリケーション52を含む。クライアントアプリケーション52は
通常、ユーザインターフェイスを提供し、かつアプリケーションの論理全体のう
ちのいくつかを行なう。アプリケーションのビジネスロジックは1つまたは2つ
以上のMTSコンポーネント(たとえばコンポーネント54)の形態で実装され
る。MTSコンポーネントは単一スレッドのユニットとして書かれ、MTSエク
ゼキュティブは並列に関する問題すべてを扱う。一連のMTSコンポーネントは
配備および使用を容易にするようグループ分けされパッケージ化される。MTS
コンポーネントの開発者はトランザクションを要求またはサポートするものとし
てMTSコンポーネントを構成することができる。かくして構成されたMTSコ
ンポーネントは、トランザクションが進行中である場合には、MTS環境におけ
る分散型トランザクションコーディネータ(MS DTC)56の制御下でトラ
ンザクションに自動的に参加することとなる。MS DTC56はトランザクシ
ョンへのMTSコンポーネントの参加を制御し、2相実行プロセスに従ってトラ
ンザクション実行を統御する。MTSコンポーネントはMTS環境内の1つまた
は2つ以上のリソースマネージャ(図示せず)からのリソースを要求し得る。リ
ソースマネージャはデータベースなどの特定的なリソースへのアクセスを制御す
る。典型的なMTS環境では、MTSコンポーネント54、MS DTC56、
および1つまたは2つ以上のリソースマネージャ(図示せず)がOLEプロトコ
ルを用いて交信する。
【0056】 この実施例では、本発明の方法および装置により、MTSコンポーネント54
が、MS DTC56(XATMI適合ではない)によって統御されるグローバ
ルトランザクションの部分として、MTS環境外のXATMI−適合トランザク
ションマネージャ62の制御下のリモートサーバ60のリソース(たとえばデー
タベース58からのデータ)を要求できるようにする。このようなリモートサー
バはたとえば、この例としてのリモートサーバ60と同様に、X/Open DTPモ
デルに従って構成され得る。すなわち、リモートサーバ60は図1のX/Open D
TPモデルシステムの一例としてのサーバ12と同様に構成され動作する。この
タイプのリモートサーバはOSI TPプロトコル仕様といった双方向2相実行
交信プロトコルに従って他のサーバと交信し得る。
が、MS DTC56(XATMI適合ではない)によって統御されるグローバ
ルトランザクションの部分として、MTS環境外のXATMI−適合トランザク
ションマネージャ62の制御下のリモートサーバ60のリソース(たとえばデー
タベース58からのデータ)を要求できるようにする。このようなリモートサー
バはたとえば、この例としてのリモートサーバ60と同様に、X/Open DTPモ
デルに従って構成され得る。すなわち、リモートサーバ60は図1のX/Open D
TPモデルシステムの一例としてのサーバ12と同様に構成され動作する。この
タイプのリモートサーバはOSI TPプロトコル仕様といった双方向2相実行
交信プロトコルに従って他のサーバと交信し得る。
【0057】 好ましい実施例において、本発明の方法および装置は、図2に示されるように
相互接続64の形態で実装される。本発明のこの実施例によると、相互接続はX
ATMIインターフェイスを介してMTSコンポーネントからXATMIサービ
スリクエスト(たとえばtpcall、tpacall、tpconnectなど)を受信し、MS D
TC56から所与のグローバルトランザクション(たとえば準備、実行およびア
ボートなど)の命令を受信する。後により詳細に説明するが、本発明の相互接続
64はこれらの要求および命令を、リモートサーバ60(この実施例ではたとえ
ばOSI TPプロトコル仕様)によって採用される双方向2相実行通信プロト
コルの、対応のサービスリクエストに変換し、これらのサービスリクエストの処
理と、MTS環境での対応のイベントの処理とを統御する。この態様で、リモー
トサーバ60は、MS DTC56に対してローカルリソースとして見えるよう
になる。相互接続64はMTS環境のネイティブOLEトランザクションプロト
コルを用いてMS DTC56と交信する。この記載および特許請求の範囲にお
ける記載では、「XATMI」、「XATMIインターフェイス」、および「X
ATMIサービスリクエスト」という用語は、XATMI仕様に記載されている
インターフェイスおよびサービスリクエスト、ならびに、同名で公知であるか否
かにかかわらず、他のバージョン、変更、先行版または変形例を包含することが
意図される。
相互接続64の形態で実装される。本発明のこの実施例によると、相互接続はX
ATMIインターフェイスを介してMTSコンポーネントからXATMIサービ
スリクエスト(たとえばtpcall、tpacall、tpconnectなど)を受信し、MS D
TC56から所与のグローバルトランザクション(たとえば準備、実行およびア
ボートなど)の命令を受信する。後により詳細に説明するが、本発明の相互接続
64はこれらの要求および命令を、リモートサーバ60(この実施例ではたとえ
ばOSI TPプロトコル仕様)によって採用される双方向2相実行通信プロト
コルの、対応のサービスリクエストに変換し、これらのサービスリクエストの処
理と、MTS環境での対応のイベントの処理とを統御する。この態様で、リモー
トサーバ60は、MS DTC56に対してローカルリソースとして見えるよう
になる。相互接続64はMTS環境のネイティブOLEトランザクションプロト
コルを用いてMS DTC56と交信する。この記載および特許請求の範囲にお
ける記載では、「XATMI」、「XATMIインターフェイス」、および「X
ATMIサービスリクエスト」という用語は、XATMI仕様に記載されている
インターフェイスおよびサービスリクエスト、ならびに、同名で公知であるか否
かにかかわらず、他のバージョン、変更、先行版または変形例を包含することが
意図される。
【0058】 II.機能ブロック図 図3は、本発明の好ましい実施例による図2の相互接続64のより詳細な機能
ブロック図である。好ましい実施例によると、相互接続64は接続マネージャ6
6とリソースマネージャ70とを含む。MTS環境では、リソースマネージャは
典型的には、現在のトランザクションへの自動的なエンリストメントを提供する
必要があり、かつデータ記憶装置へのすべての接続を管理する必要がある。MT
S−適合リソースマネージャはまた、それが制御するリソースにアクセスするた
めに、それ自体のアプリケーションプログラミングインターフェイス(API)
を規定する必要がある。リソースへのアクセスはすべてアプリケーションとリソ
ースマネージャとの間で直接的に行なわれる。すべての実行またはアボート命令
は、MS DTCを介して、エンリストされたリソースマネージャに統御される
。本発明の相互接続64のリソースマネージャ70と接続マネージャ66とによ
り、MTSが要求する自動エンリストメントおよび接続管理機能が提供される。
ブロック図である。好ましい実施例によると、相互接続64は接続マネージャ6
6とリソースマネージャ70とを含む。MTS環境では、リソースマネージャは
典型的には、現在のトランザクションへの自動的なエンリストメントを提供する
必要があり、かつデータ記憶装置へのすべての接続を管理する必要がある。MT
S−適合リソースマネージャはまた、それが制御するリソースにアクセスするた
めに、それ自体のアプリケーションプログラミングインターフェイス(API)
を規定する必要がある。リソースへのアクセスはすべてアプリケーションとリソ
ースマネージャとの間で直接的に行なわれる。すべての実行またはアボート命令
は、MS DTCを介して、エンリストされたリソースマネージャに統御される
。本発明の相互接続64のリソースマネージャ70と接続マネージャ66とによ
り、MTSが要求する自動エンリストメントおよび接続管理機能が提供される。
【0059】 A.接続マネージャ 好ましい実施例によると、接続マネージャ66は、双方向2相実行通信プロト
コルに従って、リモートサーバ60の、要求されたリソースと通信するプロトコ
ルマシン68を含む。好ましい実施例において、プロトコルマシン68は、OS
I TPプロトコル仕様を実装するOSI TPプロトコルマシンを含む。他の
双方向2相実行通信プロトコルにはSNA LU 6.2が含まれる。
コルに従って、リモートサーバ60の、要求されたリソースと通信するプロトコ
ルマシン68を含む。好ましい実施例において、プロトコルマシン68は、OS
I TPプロトコル仕様を実装するOSI TPプロトコルマシンを含む。他の
双方向2相実行通信プロトコルにはSNA LU 6.2が含まれる。
【0060】 OSI TPプロトコルマシン68に加えて、本発明の相互接続64の接続マ
ネージャ部分はさらに、OSI TPサービスインターフェイス論理88と、関
連のキュー(98および102)を有する出力スレッドと、1つまたは2つ以上
の入力スレッド104と、非同期要求プロセッサ96とを含む。OSI TPプ
ロトコルマシン68はOSI TPプロトコル仕様の全実装を含み得、この場合
、OSI TPサービスインターフェイス論理88が標準XAP−TPインター
フェイスを実装することが望ましい。これに代えて、本発明の好ましい実施例で
は、OSI TPプロトコルマシン68は、その全体が引用によって援用される
、「高性能分散型トランザクション処理方法および装置(“High Performance D
istributed Transaction Processing Methods and Apparatus”)」と題された
同一人に譲渡された同時係属中の米国特許出願連続番号第09/020,213
号に記載されている修正形のOSI TPプロトコルマシンを含む。この好まし
い実現例によるとまた、OSI TPサービスインターフェイス論理88は、標
準XAP−TPインターフェイスではなく、そこに記載されているHPTPXイ
ンターフェイスを含む。
ネージャ部分はさらに、OSI TPサービスインターフェイス論理88と、関
連のキュー(98および102)を有する出力スレッドと、1つまたは2つ以上
の入力スレッド104と、非同期要求プロセッサ96とを含む。OSI TPプ
ロトコルマシン68はOSI TPプロトコル仕様の全実装を含み得、この場合
、OSI TPサービスインターフェイス論理88が標準XAP−TPインター
フェイスを実装することが望ましい。これに代えて、本発明の好ましい実施例で
は、OSI TPプロトコルマシン68は、その全体が引用によって援用される
、「高性能分散型トランザクション処理方法および装置(“High Performance D
istributed Transaction Processing Methods and Apparatus”)」と題された
同一人に譲渡された同時係属中の米国特許出願連続番号第09/020,213
号に記載されている修正形のOSI TPプロトコルマシンを含む。この好まし
い実現例によるとまた、OSI TPサービスインターフェイス論理88は、標
準XAP−TPインターフェイスではなく、そこに記載されているHPTPXイ
ンターフェイスを含む。
【0061】 本実施例では、リソースマネージャ70(後述)を実装するプログラムコード
と、接続マネージャ66を実装するプログラムコードとは、MTS環境をホスト
するマイクロソフトウィンドウズNTオペレーティングシステム内で別個のソフ
トウェアプロセスとして実行される。したがって、リソースマネージャ70がO
SI TPプロトコルマシン68にサービスリクエストを発行するためには、非
同期要求プロセッサ(ARP)96が、このようなリクエストを待ち行列に入れ
、かつこれらのリクエストが2つのソフトウェアプロセスの間で非同期に処理さ
れるようにする必要がある。
と、接続マネージャ66を実装するプログラムコードとは、MTS環境をホスト
するマイクロソフトウィンドウズNTオペレーティングシステム内で別個のソフ
トウェアプロセスとして実行される。したがって、リソースマネージャ70がO
SI TPプロトコルマシン68にサービスリクエストを発行するためには、非
同期要求プロセッサ(ARP)96が、このようなリクエストを待ち行列に入れ
、かつこれらのリクエストが2つのソフトウェアプロセスの間で非同期に処理さ
れるようにする必要がある。
【0062】 OSI TPプロトコルマシンとリモートサーバ60との通信は出力スレッド
100および1つまたは2つ以上の入力スレッド104によって扱われる。TS
U要求キュー98は外に向かうリクエストを集めて出力スレッド100で処理し
、これは後にネットワーク65にリクエストを送る。出力キュー102はネット
ワーク65が輻輳状態にあるときにフロー制御データリクエストを記憶する。
100および1つまたは2つ以上の入力スレッド104によって扱われる。TS
U要求キュー98は外に向かうリクエストを集めて出力スレッド100で処理し
、これは後にネットワーク65にリクエストを送る。出力キュー102はネット
ワーク65が輻輳状態にあるときにフロー制御データリクエストを記憶する。
【0063】 B.リソースマネージャ リソースマネージャ70は、MTSコンポーネント54からのXATMIサー
ビスリクエストを受信する第1のインターフェイス72と、所与のグローバルト
ランザクションに関するMS DTC56によって発行される命令(たとえば準
備、実行、アボートなど)を受信する第2のインターフェイス74とを有する。
リソースマネージャ70は、MTSコンポーネント54から受信したリクエスト
とMS DTC56によって発行された命令とを、OSI TPサービスインタ
ーフェイス88の、対応のサービスリクエストに変換し、このOSI TPサー
ビスインターフェイス88は、好ましい実施例では、同時係属中の出願連続番号
第09/020,213号に記載されているHPTPXインターフェイスを含み
、かつ対応のOSI TPサービスリクエストをOSI TPプロトコルマシン
68に発行する。リモートサーバ60からOSI TPプロトコルマシン68に
よって受信された返答および表示も同様に変換されて、適宜MTSコンポーネン
ト54およびMS DTC56に送り返される。重要なことは、リソースマネー
ジャ70が、OSI TPプロトコルマシン68によるOSI TPサービスリ
クエストの処理と、MTS環境(たとえば準備、実行およびアボート命令)にお
ける対応のイベントの処理とを、MTS環境およびリモートサーバ60の両方に
トランスペアレントな態様で統御することである。リモートサーバ60が、MS
DTC56およびMTSコンポーネント54に対して、単にMTS環境内の別
のローカルリソースとして見えるようにできるのはこの能力のおかげである。さ
らに、リモートサーバ60に要求を伝えるためにOSI TPプロトコルマシン
を用いることにより、本発明の相互接続64は、OSI TPプロトコル仕様の
堅牢な回復という特徴の利益を享受し、全体的なトランザクション処理システム
の能力を高めてACID特性を達成する。
ビスリクエストを受信する第1のインターフェイス72と、所与のグローバルト
ランザクションに関するMS DTC56によって発行される命令(たとえば準
備、実行、アボートなど)を受信する第2のインターフェイス74とを有する。
リソースマネージャ70は、MTSコンポーネント54から受信したリクエスト
とMS DTC56によって発行された命令とを、OSI TPサービスインタ
ーフェイス88の、対応のサービスリクエストに変換し、このOSI TPサー
ビスインターフェイス88は、好ましい実施例では、同時係属中の出願連続番号
第09/020,213号に記載されているHPTPXインターフェイスを含み
、かつ対応のOSI TPサービスリクエストをOSI TPプロトコルマシン
68に発行する。リモートサーバ60からOSI TPプロトコルマシン68に
よって受信された返答および表示も同様に変換されて、適宜MTSコンポーネン
ト54およびMS DTC56に送り返される。重要なことは、リソースマネー
ジャ70が、OSI TPプロトコルマシン68によるOSI TPサービスリ
クエストの処理と、MTS環境(たとえば準備、実行およびアボート命令)にお
ける対応のイベントの処理とを、MTS環境およびリモートサーバ60の両方に
トランスペアレントな態様で統御することである。リモートサーバ60が、MS
DTC56およびMTSコンポーネント54に対して、単にMTS環境内の別
のローカルリソースとして見えるようにできるのはこの能力のおかげである。さ
らに、リモートサーバ60に要求を伝えるためにOSI TPプロトコルマシン
を用いることにより、本発明の相互接続64は、OSI TPプロトコル仕様の
堅牢な回復という特徴の利益を享受し、全体的なトランザクション処理システム
の能力を高めてACID特性を達成する。
【0064】 第1のインターフェイス72は、XATMI仕様に従うXATMIインターフ
ェイスを実装するインターフェイス論理を含む。このインターフェイス論理72
は、バッファ操作と、リモートサーバ60に対するデータの符号化および復号化
と、OSI TPサービスインターフェイス論理88を介する、OSI TPプ
ロトコルマシン68へのサービスリクエストのデータおよび関連パラメータの設
定とを扱う。第2のインターフェイス74は、MS DTC56および関連のオ
ブジェクト(後述)との相互作用を扱う論理を含む。
ェイスを実装するインターフェイス論理を含む。このインターフェイス論理72
は、バッファ操作と、リモートサーバ60に対するデータの符号化および復号化
と、OSI TPサービスインターフェイス論理88を介する、OSI TPプ
ロトコルマシン68へのサービスリクエストのデータおよび関連パラメータの設
定とを扱う。第2のインターフェイス74は、MS DTC56および関連のオ
ブジェクト(後述)との相互作用を扱う論理を含む。
【0065】 リモートサーバ60(たとえばtpcall、tpacall、tpconnect)への接続を要求
するMTSコンポーネント54から受信された各XATMIサービスリクエスト
は、そのリクエストが一部分をなすグローバルトランザクションの別個のブラン
チとして扱われる。具体的には、このような各XATMIサービスリクエストは
XATMIインターフェイス論理72によって受信され、OSI TPプロトコ
ルマシン68に発行されるため、OSI TPプロトコルマシン68はそれをグ
ローバルトランザクションの別個のブランチとして扱い、そのブランチに関する
リモートシステムへの接続をなす。そのブランチに関するすべてのアクティビテ
ィは、確保された接続を介して送信される。
するMTSコンポーネント54から受信された各XATMIサービスリクエスト
は、そのリクエストが一部分をなすグローバルトランザクションの別個のブラン
チとして扱われる。具体的には、このような各XATMIサービスリクエストは
XATMIインターフェイス論理72によって受信され、OSI TPプロトコ
ルマシン68に発行されるため、OSI TPプロトコルマシン68はそれをグ
ローバルトランザクションの別個のブランチとして扱い、そのブランチに関する
リモートシステムへの接続をなす。そのブランチに関するすべてのアクティビテ
ィは、確保された接続を介して送信される。
【0066】 C.他のデータ構造/オブジェクト 本発明の好ましい実施例によると、相互接続64のリソースマネージャ70は
いくつかのオブジェクトおよびデータ構造を生成し、さらにMTSおよびMS
DTC56によって生成されるいくつかのオブジェクトを利用する。
いくつかのオブジェクトおよびデータ構造を生成し、さらにMTSおよびMS
DTC56によって生成されるいくつかのオブジェクトを利用する。
【0067】 MTSコンポーネントのインスタンスが生成されると、MTSは上述のとおり
そのコンポーネントに関するコンテキストオブジェクトを生成する。図4Gは図
3のMTSコンポーネント54のMTSによって生成される、一例としてのコン
テキストオブジェクト79を示す。コンテキストオブジェクト79は、図示され
るように、IUnknown, IObjectContext,およびIObjectContextTransactionインタ
ーフェイスを公開する。
そのコンポーネントに関するコンテキストオブジェクトを生成する。図4Gは図
3のMTSコンポーネント54のMTSによって生成される、一例としてのコン
テキストオブジェクト79を示す。コンテキストオブジェクト79は、図示され
るように、IUnknown, IObjectContext,およびIObjectContextTransactionインタ
ーフェイスを公開する。
【0068】 インスタンスが生成されたMTSコンポーネントがトランザクションを要求ま
たはサポートするものとして構成される場合、MTSは、そのMTSコンポーネ
ントが作業を行なおうとしているトランザクションを表わすトランザクションオ
ブジェクト78(図4D)も生成する。1つより多い数のMTSコンポーネント
が処理のトランザクションに対する作業を行なってもよい。所与のMTSコンポ
ーネントのコンテキストオブジェクトのIObjectContextTransactionインターフ
ェイスのGetTransactionメソッドが、それに対する作業をコンポーネントが行な
うトランザクションを表わすトランザクションオブジェクトへの参照(たとえば
ポインタ)を得るために呼出され得る。同一のトランザクションに対して多数の
MTSコンポーネントが作業を行なう場合、各々のGetTransactionメソッドは同
じトランザクションオブジェクトをポイントし得る。トランザクションオブジェ
クト78に対するポインタが得られると、トランザクションオブジェクト78の
ITransactionインターフェイスのGetTransactionInfoメソッドが呼出されて、そ
のトランザクションに関する情報が得られる。たとえば、この情報は、MTSが
トランザクションに割当てて、MTS環境内でそれを特定するための、グローバ
ルに一意な識別子(GUID)を含む。
たはサポートするものとして構成される場合、MTSは、そのMTSコンポーネ
ントが作業を行なおうとしているトランザクションを表わすトランザクションオ
ブジェクト78(図4D)も生成する。1つより多い数のMTSコンポーネント
が処理のトランザクションに対する作業を行なってもよい。所与のMTSコンポ
ーネントのコンテキストオブジェクトのIObjectContextTransactionインターフ
ェイスのGetTransactionメソッドが、それに対する作業をコンポーネントが行な
うトランザクションを表わすトランザクションオブジェクトへの参照(たとえば
ポインタ)を得るために呼出され得る。同一のトランザクションに対して多数の
MTSコンポーネントが作業を行なう場合、各々のGetTransactionメソッドは同
じトランザクションオブジェクトをポイントし得る。トランザクションオブジェ
クト78に対するポインタが得られると、トランザクションオブジェクト78の
ITransactionインターフェイスのGetTransactionInfoメソッドが呼出されて、そ
のトランザクションに関する情報が得られる。たとえば、この情報は、MTSが
トランザクションに割当てて、MTS環境内でそれを特定するための、グローバ
ルに一意な識別子(GUID)を含む。
【0069】 上記オブジェクトに加えて、MS DTC56はMTSコンポーネントおよび
リソースマネージャを含む他のエンティティが、MS DTCのいくつかのサー
ビス、を要求するために使用する、後続するインターフェイスすなわちIUnknown
, IResourceManagerFactory, ITransactionExportFactoryおよびITransactionIm
portを公開するMS DTCプロキシコアオブジェクトを生成する。一例として
のMS DTCプロキシコアオブジェクト106が図4Aに示される。
リソースマネージャを含む他のエンティティが、MS DTCのいくつかのサー
ビス、を要求するために使用する、後続するインターフェイスすなわちIUnknown
, IResourceManagerFactory, ITransactionExportFactoryおよびITransactionIm
portを公開するMS DTCプロキシコアオブジェクトを生成する。一例として
のMS DTCプロキシコアオブジェクト106が図4Aに示される。
【0070】 MS DTCプロキシコアオブジェクト106のIResourceManagerFactoryイ
ンターフェイスは、リソースマネージャ70が、リソースマネージャ70とMS
DTC56との間のアクティブ接続を表わすリソースマネージャオブジェクト
108を生成するために使用するCreateメソッドを含む。IResourceManagerFact
oryインターフェイスのCreateメソッドは、リソースマネージャ70がMS D
TCへのそのエンリストメント(その存在をMS DTCに宣言する処理の部分
)として呼出すメソッドのうちの1つである。
ンターフェイスは、リソースマネージャ70が、リソースマネージャ70とMS
DTC56との間のアクティブ接続を表わすリソースマネージャオブジェクト
108を生成するために使用するCreateメソッドを含む。IResourceManagerFact
oryインターフェイスのCreateメソッドは、リソースマネージャ70がMS D
TCへのそのエンリストメント(その存在をMS DTCに宣言する処理の部分
)として呼出すメソッドのうちの1つである。
【0071】 図4Eに示されるリソースマネージャオブジェクト108は、IUnknownインタ
ーフェイスおよびIResourceManagerインターフェイスを表わす。リソースマネー
ジャオブジェクト108のIResourceManagerインターフェイスは、Enlistメソッ
ド、ReenlistメソッドおよびReenlistmentCompleteメソッドを提供する。Enlist
メソッドはリソースマネージャ70によって呼出され、MS DTC56にグロ
ーバルトランザクションの特定的なブランチをエンリストする。Reenlistメソッ
ドはリソースマネージャ70によって呼出され、たとえば故障後にMS DTC
56に再エンリストするためのものである。ReenlistmentCompleteメソッドはす
べての不確かなトランザクションブランチが回復した後の回復時に呼出される。
ーフェイスおよびIResourceManagerインターフェイスを表わす。リソースマネー
ジャオブジェクト108のIResourceManagerインターフェイスは、Enlistメソッ
ド、ReenlistメソッドおよびReenlistmentCompleteメソッドを提供する。Enlist
メソッドはリソースマネージャ70によって呼出され、MS DTC56にグロ
ーバルトランザクションの特定的なブランチをエンリストする。Reenlistメソッ
ドはリソースマネージャ70によって呼出され、たとえば故障後にMS DTC
56に再エンリストするためのものである。ReenlistmentCompleteメソッドはす
べての不確かなトランザクションブランチが回復した後の回復時に呼出される。
【0072】 MS DTCプロキシコアオブジェクト106のITransactionExportFactory
インターフェイスは、リソースマネージャ70によって呼出され、エクスポート
オブジェクト(図示せず)を生成するためのCreateメソッドを含む。エクスポー
トオブジェクトは種々のプロセス間で情報を伝達するために使用される。本実施
例では、リソースマネージャ70および接続マネージャ66は別個のプロセスと
して実行される。エクスポートオブジェクトはこれらの2つのプロセスの間に情
報を伝達するために使用される。MS DTCプロキシコアオブジェクト106
のITransactionImportインターフェイスのImportメソッドもまたこの目的として
使用される。具体的には、エクスポートオブジェクトを介して先にエクスポート
されているトランザクション情報を得るために使用される。
インターフェイスは、リソースマネージャ70によって呼出され、エクスポート
オブジェクト(図示せず)を生成するためのCreateメソッドを含む。エクスポー
トオブジェクトは種々のプロセス間で情報を伝達するために使用される。本実施
例では、リソースマネージャ70および接続マネージャ66は別個のプロセスと
して実行される。エクスポートオブジェクトはこれらの2つのプロセスの間に情
報を伝達するために使用される。MS DTCプロキシコアオブジェクト106
のITransactionImportインターフェイスのImportメソッドもまたこの目的として
使用される。具体的には、エクスポートオブジェクトを介して先にエクスポート
されているトランザクション情報を得るために使用される。
【0073】 起動時にリソースマネージャ70がMS DTC56にエンリストするときに
生成されるリソースマネージャオブジェクト108に加えて、リソースマネージ
ャ70もまた、CResourceManagerSink82オブジェクトを生成して、MTS(図
4F)が要求するIResourceManagerSinkインターフェイスを提供するようにする
。IResourceManagerSinkインターフェイスはTMDownメソッドを提供する。TMDown
はコールバックメソッドであり、MS DTC56の故障時にMS DTC56
が呼出すものである。これは回復を行なう必要があることをリソースマネージャ
70に知らせる。
生成されるリソースマネージャオブジェクト108に加えて、リソースマネージ
ャ70もまた、CResourceManagerSink82オブジェクトを生成して、MTS(図
4F)が要求するIResourceManagerSinkインターフェイスを提供するようにする
。IResourceManagerSinkインターフェイスはTMDownメソッドを提供する。TMDown
はコールバックメソッドであり、MS DTC56の故障時にMS DTC56
が呼出すものである。これは回復を行なう必要があることをリソースマネージャ
70に知らせる。
【0074】 リソースマネージャ70がリソースマネージャオブジェクト108のIResourc
eManagerインターフェイスのEnlistメソッドを呼出してMS DTC56に所与
のトランザクションブランチをエンリストすると、リソースマネージャ70はさ
らにCTransactionResourceAsyncオブジェクト76を生成して、そのブランチが
一部分を成しているトランザクションに関するリソースマネージャ70に命令(
たとえば準備、実行およびアボートなど)の能力を付与する。具体的には、図4
Bに示されるように、CTransactionResourceAsyncオブジェクト76は以下のメ
ソッド、すなわちPrepareRequest, CommitRequest, AbortRequestおよびTMDown
を含むITransactionResourceAsyncインターフェイスを表わす。PrepareRequest,
CommitRequest, AbortRequestおよびTMDownは、MS DTC56が、エンリス
トされたトランザクションブランチに関するリソースマネージャ70に実行命令
(準備、実行、アボート)を発行するために呼出す、リソースマネージャ70に
よって実装されるコールバックメソッドである。CResourceManagerSinkオブジェ
クト82のIResourceManagerSinkインタフェースによって提供されるTMDownメソ
ッドなどの、TMDownメソッドは、故障時にMS DTC56が回復を行なう必要
性をリソースマネージャ70に知らせるために使用される。本発明の機能の多く
は、CTransactionResourceAsyncオブジェクト76のPrepareRequest, CommitReq
uest, AbortRequestおよびTMDownメソッドの形で実装される。
eManagerインターフェイスのEnlistメソッドを呼出してMS DTC56に所与
のトランザクションブランチをエンリストすると、リソースマネージャ70はさ
らにCTransactionResourceAsyncオブジェクト76を生成して、そのブランチが
一部分を成しているトランザクションに関するリソースマネージャ70に命令(
たとえば準備、実行およびアボートなど)の能力を付与する。具体的には、図4
Bに示されるように、CTransactionResourceAsyncオブジェクト76は以下のメ
ソッド、すなわちPrepareRequest, CommitRequest, AbortRequestおよびTMDown
を含むITransactionResourceAsyncインターフェイスを表わす。PrepareRequest,
CommitRequest, AbortRequestおよびTMDownは、MS DTC56が、エンリス
トされたトランザクションブランチに関するリソースマネージャ70に実行命令
(準備、実行、アボート)を発行するために呼出す、リソースマネージャ70に
よって実装されるコールバックメソッドである。CResourceManagerSinkオブジェ
クト82のIResourceManagerSinkインタフェースによって提供されるTMDownメソ
ッドなどの、TMDownメソッドは、故障時にMS DTC56が回復を行なう必要
性をリソースマネージャ70に知らせるために使用される。本発明の機能の多く
は、CTransactionResourceAsyncオブジェクト76のPrepareRequest, CommitReq
uest, AbortRequestおよびTMDownメソッドの形で実装される。
【0075】 CTransactionResourceAsyncオブジェクト76はさらに、Initメソッドを提供
するICtralnitインターフェイスを公開する。InitメソッドはCTransactionResou
rceAsyncオブジェクト76内のブランチに関するCRM記録(後述)に関連する
識別子crm_idを記憶する。後に説明するが、MS DTC56がCTransactionR
esourceAsyncオブジェクト76のPrepareRequest, CommitRequest, AbortReques
tまたはTMDownメソッドのいずれかを呼出すときには常に、オブジェクトからcrm
_idが取出されて、その方法が呼出されている特定のブランチを特定するために
相互接続64に対して内部的に使用される。
するICtralnitインターフェイスを公開する。InitメソッドはCTransactionResou
rceAsyncオブジェクト76内のブランチに関するCRM記録(後述)に関連する
識別子crm_idを記憶する。後に説明するが、MS DTC56がCTransactionR
esourceAsyncオブジェクト76のPrepareRequest, CommitRequest, AbortReques
tまたはTMDownメソッドのいずれかを呼出すときには常に、オブジェクトからcrm
_idが取出されて、その方法が呼出されている特定のブランチを特定するために
相互接続64に対して内部的に使用される。
【0076】 所与のトランザクションブランチに関するMS DTC56へのエンリストの
際にリソースマネージャ70によって生成されるCTransactionResourceAsyncオ
ブジェクト76のほかに、MS DTC56も同様にそのブランチに関連するエ
ンリストメントオブジェクト80を生成する(図4C)。エンリストメントオブ
ジェクト80はITransactionEnlisrmentAsyncインターフェイスおよびIprepareI
nfoインターフェイスを公開する。ITransactionEnlisrmentAsyncインターフェイ
スは、所与のトランザクションブランチに関する2相実行プロセスのうちある部
分を完了したことをMS DTC56に知らせるためにリソースマネージャ70
が使用する方法を提供する。具体的には、ITransactionEnlisrmentAsyncインタ
ーフェイスは、MS DTC56に、MS DTC56によって発行されたPrep
areRequestを完了したことを知らせるためにリソースマネージャ70が呼出すPr
epareRequestDoneメソッドと、MS DTC56によって発行されたCommitRequ
estを完了したことをMS DTC56に知らせるためにリソースマネージャ7
0が呼出すCommitRequestDoneメソッドと、MS DTC56によって発行され
たAbortRequestを完了したことをMS DTC56に知らせるためにリソースマ
ネージャ70が呼出すAbortRequestDoneメソッドとを提供する。IprepareInfoイ
ンターフェイスは、実行の準備段階でトランザクションブランチに関する情報を
得るためにリソースマネージャ70が使用するGetPrepareInfoSizeメソッドおよ
びGetPrepareInfoメソッドを提供する。後に説明するように、この回復情報は故
障時に両方の環境における回復を可能にするためにOSI TPプロトコルマシ
ンに関連する回復情報とともに安全な記憶装置に記憶される。
際にリソースマネージャ70によって生成されるCTransactionResourceAsyncオ
ブジェクト76のほかに、MS DTC56も同様にそのブランチに関連するエ
ンリストメントオブジェクト80を生成する(図4C)。エンリストメントオブ
ジェクト80はITransactionEnlisrmentAsyncインターフェイスおよびIprepareI
nfoインターフェイスを公開する。ITransactionEnlisrmentAsyncインターフェイ
スは、所与のトランザクションブランチに関する2相実行プロセスのうちある部
分を完了したことをMS DTC56に知らせるためにリソースマネージャ70
が使用する方法を提供する。具体的には、ITransactionEnlisrmentAsyncインタ
ーフェイスは、MS DTC56に、MS DTC56によって発行されたPrep
areRequestを完了したことを知らせるためにリソースマネージャ70が呼出すPr
epareRequestDoneメソッドと、MS DTC56によって発行されたCommitRequ
estを完了したことをMS DTC56に知らせるためにリソースマネージャ7
0が呼出すCommitRequestDoneメソッドと、MS DTC56によって発行され
たAbortRequestを完了したことをMS DTC56に知らせるためにリソースマ
ネージャ70が呼出すAbortRequestDoneメソッドとを提供する。IprepareInfoイ
ンターフェイスは、実行の準備段階でトランザクションブランチに関する情報を
得るためにリソースマネージャ70が使用するGetPrepareInfoSizeメソッドおよ
びGetPrepareInfoメソッドを提供する。後に説明するように、この回復情報は故
障時に両方の環境における回復を可能にするためにOSI TPプロトコルマシ
ンに関連する回復情報とともに安全な記憶装置に記憶される。
【0077】 上記オブジェクトに加えて、グローバルトランザクション(すなわちOSI
TPプロトコルマシン68がリモートサーバ60に別個の接続を確保するMTS
コンポーネント54から受信された各XATMIサービスリクエスト)ごとに、
本発明の相互接続64のリソースマネージャ70はここでCRM記録と称する記
録を生成し、ここにはそのブランチに関する情報が記憶されて、OSI TPプ
ロトコルマシン68によるOSI TPサービスリクエストの処理と、MTS環
境における対応のイベントの処理とを統御するにあたりリソースマネージャ70
が使用する。多数のブランチに関するCRM記録は、連結リスト84の形態でリ
ソースマネージャ70によって記憶される。CRM記録84は、各トランザクシ
ョンブランチに関するすべてのトランザクションおよび接続に基づく情報の中心
的なリポジトリとしての役割を果たす。CRM記録の構造および内容に関するさ
らなる詳細を以下に説明する。
TPプロトコルマシン68がリモートサーバ60に別個の接続を確保するMTS
コンポーネント54から受信された各XATMIサービスリクエスト)ごとに、
本発明の相互接続64のリソースマネージャ70はここでCRM記録と称する記
録を生成し、ここにはそのブランチに関する情報が記憶されて、OSI TPプ
ロトコルマシン68によるOSI TPサービスリクエストの処理と、MTS環
境における対応のイベントの処理とを統御するにあたりリソースマネージャ70
が使用する。多数のブランチに関するCRM記録は、連結リスト84の形態でリ
ソースマネージャ70によって記憶される。CRM記録84は、各トランザクシ
ョンブランチに関するすべてのトランザクションおよび接続に基づく情報の中心
的なリポジトリとしての役割を果たす。CRM記録の構造および内容に関するさ
らなる詳細を以下に説明する。
【0078】 CRM記録に加えて、リソースマネージャ70はブランチごとに回復情報を含
むログ記録86を生成する。具体的には、本発明の別の局面によると、トランザ
クションブランチごとに、リソースマネージャ70は、故障から回復するために
MS DTC56およびOSI TPプロトコルマシン68の両方が要求する情
報を安全な記憶装置に併せて記憶する。両方の環境に関する回復情報の記憶に関
するさらなる詳細を以下に記載する。
むログ記録86を生成する。具体的には、本発明の別の局面によると、トランザ
クションブランチごとに、リソースマネージャ70は、故障から回復するために
MS DTC56およびOSI TPプロトコルマシン68の両方が要求する情
報を安全な記憶装置に併せて記憶する。両方の環境に関する回復情報の記憶に関
するさらなる詳細を以下に記載する。
【0079】 D.状態マシン 本発明の相互接続64の好ましい実施例によると、リソースマネージャ70は
、MTSコンポーネント54と、MS DTC56と、OSI TPプロトコル
マシン68との間で、グローバルトランザクションのブランチの処理時にリソー
スマネージャ70が行なう全体的な動作および統御を制御する状態マシンに従っ
て動作する。図6Aから図6Dには状態マシンの動作が示される。
、MTSコンポーネント54と、MS DTC56と、OSI TPプロトコル
マシン68との間で、グローバルトランザクションのブランチの処理時にリソー
スマネージャ70が行なう全体的な動作および統御を制御する状態マシンに従っ
て動作する。図6Aから図6Dには状態マシンの動作が示される。
【0080】 トランザクションの各ブランチに以下の状態が規定される。 0−FINITO:この状態はトランザクションがブランチに存在しないこと
を示す。これはそのブランチの初期状態である。XATMIダイアログ状態が存
在し得る。
を示す。これはそのブランチの初期状態である。XATMIダイアログ状態が存
在し得る。
【0081】 1−XTR−DIAGACT:この状態は、起こり得るトランザクションのダ
イアログが初期化されたことを示す。XATMI表示を待機する。リモートサー
バ60への接続がうまくいっている場合、リソースマネージャ70はブランチを
MS DTC56に自動的にエンリストすることとなる。
イアログが初期化されたことを示す。XATMI表示を待機する。リモートサー
バ60への接続がうまくいっている場合、リソースマネージャ70はブランチを
MS DTC56に自動的にエンリストすることとなる。
【0082】 2−ELISTING:XATMI tpcall, tpacallまたはtpconnectサービ
スリクエスト(トランザクションブランチを表わす)が受入れられたときにこの
状態に入り、リソースマネージャ70にはブランチをMS DTC56にエンリ
ストすることが要求される。
スリクエスト(トランザクションブランチを表わす)が受入れられたときにこの
状態に入り、リソースマネージャ70にはブランチをMS DTC56にエンリ
ストすることが要求される。
【0083】 3−ENLISTED:この状態は、ブランチがMS DTC56にうまくエ
ンリストされたことを示す。リソースマネージャ70はMS DTC56によっ
て発行された準備、実行またはアボート命令のすべてを通知し得る。
ンリストされたことを示す。リソースマネージャ70はMS DTC56によっ
て発行された準備、実行またはアボート命令のすべてを通知し得る。
【0084】 4−PREPARING:PrepareRequest命令がMS DTC56から受信さ
れた後に(すなわちMS DTC56がCTransactionResourceAsyncオブジェク
ト76のPrepareRequestメソッドを呼出した後に)この状態に入る。OSI T
Pプロトコルマシン68からのready_indicationを待機する。
れた後に(すなわちMS DTC56がCTransactionResourceAsyncオブジェク
ト76のPrepareRequestメソッドを呼出した後に)この状態に入る。OSI T
Pプロトコルマシン68からのready_indicationを待機する。
【0085】 5−PREPARED:PrepareRequestの処理に応答してOSI TPプロト
コルマシン68からReady表示受信したときにこの状態に入る。このブランチの
ログ記録が生成され安全記憶装置に記憶される。リソースマネージャ70はMS
DTC56からの実行またはアボート命令の受信を待つ(すなわちMS DT
C56がCTransactionResourceAsyncオブジェクト76のCommitRequestまたはAb
ortRequestメソッドのいずれかを呼出すのを待つ)。
コルマシン68からReady表示受信したときにこの状態に入る。このブランチの
ログ記録が生成され安全記憶装置に記憶される。リソースマネージャ70はMS
DTC56からの実行またはアボート命令の受信を待つ(すなわちMS DT
C56がCTransactionResourceAsyncオブジェクト76のCommitRequestまたはAb
ortRequestメソッドのいずれかを呼出すのを待つ)。
【0086】 6−COMMITTING:CTransactionResourceAsyncオブジェクト76のC
ommitRequestメソッドをMS DTC56が呼出した後にこの状態に入る。リソ
ースマネージャ70はOSI TPプロトコルマシン68からのCommit Complet
e表示を待つ。
ommitRequestメソッドをMS DTC56が呼出した後にこの状態に入る。リソ
ースマネージャ70はOSI TPプロトコルマシン68からのCommit Complet
e表示を待つ。
【0087】 7−ABORTING:CTransactionResourceAsyncオブジェクト76のAbort
RequestメソッドをMS DTC56が呼出した後にこの状態に入る。リソース
マネージャ70はOSI TPプロトコルマシン68からのRollback Complete
表示を待つ。
RequestメソッドをMS DTC56が呼出した後にこの状態に入る。リソース
マネージャ70はOSI TPプロトコルマシン68からのRollback Complete
表示を待つ。
【0088】 8−RECOVERING:故障後にいずれかのブランチが不確かであると判
断された場合、そのブランチはこの状態に入る。MS DTC56から戻された
リエンリストメント状態はロールバックまたは実行のいずれかを行なう命令を与
え、次の状態を決定し得る。
断された場合、そのブランチはこの状態に入る。MS DTC56から戻された
リエンリストメント状態はロールバックまたは実行のいずれかを行なう命令を与
え、次の状態を決定し得る。
【0089】 図6Aから図6Dを参照して、示される表には、生じる所与のイベントおよび
それに関連する変数に依存して、いかにリソースマネージャ70が所与のブラン
チの状態を変化させるかが示される。たとえば、図6Aに示される表の部分の第
1行目には、起こり得るアクションと、現在のところ状態0(FINITO)で
あるブランチ上のMTSコンポーネント56からxatmi_call req (tpcall)が受
信されたときに入る次の状態とが明記される。示されるように、変数の状態に応
じて行なわれるアクションはmtranと呼ばれる。行なわれるべきアクションには
大括弧が付されて示される。この場合、tpcallイベントが起こるときにmtran変
数がセットされている、アクション[createCrm]、[getAAID]、[CallRq]お
よび[GatrplyRq]が行なわれ、リソースマネージャ70はそのブランチの状態
1(XTR_DIAGACT)に入る。これらの変数およびアクションの意味を
以下に説明する。イベントには、XATMIインターフェイス論理72、OSI
TPプロトコルマシン68およびMS DTC56によって初期化されたもの
が含まれる。図6Aおよび図6Bに示される状態の表は、現在の状態がトランザ
クションブランチである場合に、これらのイベントのうちのいずれかが起こった
ときにとられるアクションを示す。
それに関連する変数に依存して、いかにリソースマネージャ70が所与のブラン
チの状態を変化させるかが示される。たとえば、図6Aに示される表の部分の第
1行目には、起こり得るアクションと、現在のところ状態0(FINITO)で
あるブランチ上のMTSコンポーネント56からxatmi_call req (tpcall)が受
信されたときに入る次の状態とが明記される。示されるように、変数の状態に応
じて行なわれるアクションはmtranと呼ばれる。行なわれるべきアクションには
大括弧が付されて示される。この場合、tpcallイベントが起こるときにmtran変
数がセットされている、アクション[createCrm]、[getAAID]、[CallRq]お
よび[GatrplyRq]が行なわれ、リソースマネージャ70はそのブランチの状態
1(XTR_DIAGACT)に入る。これらの変数およびアクションの意味を
以下に説明する。イベントには、XATMIインターフェイス論理72、OSI
TPプロトコルマシン68およびMS DTC56によって初期化されたもの
が含まれる。図6Aおよび図6Bに示される状態の表は、現在の状態がトランザ
クションブランチである場合に、これらのイベントのうちのいずれかが起こった
ときにとられるアクションを示す。
【0090】 入来イベント(行)および状態(列)の交差部がセルをなす。サブセルはボッ
クスに入れられたセルのサブセットである。サブセルのエレメントは下記のとお
りである(サブセルに現われる順番で示される)。すなわち、(a)オプション
としての変数式、(b)ゼロまたはそれ以上のアクション、および(c)結果と
して生じる状態とである。イベントに存在しないセルであるブランクセル、また
は変数式の評価が真であるサブセルを持たないセルは、その状態の無効イベント
を表わす。変数式の評価が真であるサブセルを有するセルは、その状態に関する
有効イベントを表わす。入来イベントはそれらの名称で表わされ、1つまたは2
つ以上の属性を持つ。状態はセルの数で特定されるが、各列の一番上に示される
数および名称の両方によって明記される。「^」は「〜でない」を意味し変数に
付与される。「=」は「等しい」を意味し、これもまた変数に付与される。「H
TP」は本発明の好ましい実施例によって使用されるOSI TPプロトコルマ
シン実装のことであり、これは上述のとおり、同時係属中の出願連続番号第09
/020,213号に記載されている修正形OSI TPプロトコルマシンと、
その関連のHPTPXサービスインターフェイスとを含む。
クスに入れられたセルのサブセットである。サブセルのエレメントは下記のとお
りである(サブセルに現われる順番で示される)。すなわち、(a)オプション
としての変数式、(b)ゼロまたはそれ以上のアクション、および(c)結果と
して生じる状態とである。イベントに存在しないセルであるブランクセル、また
は変数式の評価が真であるサブセルを持たないセルは、その状態の無効イベント
を表わす。変数式の評価が真であるサブセルを有するセルは、その状態に関する
有効イベントを表わす。入来イベントはそれらの名称で表わされ、1つまたは2
つ以上の属性を持つ。状態はセルの数で特定されるが、各列の一番上に示される
数および名称の両方によって明記される。「^」は「〜でない」を意味し変数に
付与される。「=」は「等しい」を意味し、これもまた変数に付与される。「H
TP」は本発明の好ましい実施例によって使用されるOSI TPプロトコルマ
シン実装のことであり、これは上述のとおり、同時係属中の出願連続番号第09
/020,213号に記載されている修正形OSI TPプロトコルマシンと、
その関連のHPTPXサービスインターフェイスとを含む。
【0091】 状態マシンはある情報を追跡するために変数を用いる。用いられる変数は整数
型である。2つのカテゴリの変数があり、すなわち(1)MTSオブジェクトに
関する情報に特定のMTS関連変数(「m」の文字で始まる)と、(2)XAT
MIインターフェイスに関する情報に特有なXATMI関連変数(「x」の文字
で始まる)とがある。本実施例では下記の変数が規定される。
型である。2つのカテゴリの変数があり、すなわち(1)MTSオブジェクトに
関する情報に特定のMTS関連変数(「m」の文字で始まる)と、(2)XAT
MIインターフェイスに関する情報に特有なXATMI関連変数(「x」の文字
で始まる)とがある。本実施例では下記の変数が規定される。
【0092】
【表2】
【0093】 状態の表ではアクションは大括弧(「[]」)付きで示される。有効な入来イ
ベントごとに、適用可能なすべてのアクションがとられる。本実施例では、下記
のアクションが規定される。
ベントごとに、適用可能なすべてのアクションがとられる。本実施例では、下記
のアクションが規定される。
【0094】
【表3】
【0095】 III.接続管理/統御 本発明の相互接続64は、リソースのプールとしてリモートサーバ60への接
続を管理する、OSI TP関連マネージャ機能の利点を持つ。OSI TPの
関連マネージャ機能は回復に用いられるダイヤログおよびそれに関連するものを
追跡する。この機能では「pools by inference」メソッドを使用して接続を制御
する。接続は必要に応じて確保され、タイムアウトが起こるまで維持される。シ
ステム間に多数の接続を同時に維持することができる。OSI TPにより、同
時に動作する種々のMTSコンポーネントが要求する多数のシステムへの接続が
可能になる。
続を管理する、OSI TP関連マネージャ機能の利点を持つ。OSI TPの
関連マネージャ機能は回復に用いられるダイヤログおよびそれに関連するものを
追跡する。この機能では「pools by inference」メソッドを使用して接続を制御
する。接続は必要に応じて確保され、タイムアウトが起こるまで維持される。シ
ステム間に多数の接続を同時に維持することができる。OSI TPにより、同
時に動作する種々のMTSコンポーネントが要求する多数のシステムへの接続が
可能になる。
【0096】 A.GUIDおよびAAID/BRID間マッピング OSI TPプロトコル仕様およびOLEトランザクションプロトコルはいず
れも、トランザクションの不可分性を維持する方法を提供する。OSI TPの
場合、トランザクションに関する一意な識別子として不可分アクション識別子(
AAID)が使用される。同じAAIDが参照するトランザクションブランチは
グループとして実行またはロールバックされる。さらに、OSI TPプロトコ
ル仕様はトランザクションのそのブランチを識別するために使用される各ブラン
チのブランチサフィックス(BRID)を特定する。OLEの場合、グローバル
に一意な識別子(GUID)がMTS環境内でのトランザクションの特定に使用
される。GUIDはWin32 APIファンクションコールを介して得られる。
この値は、MTS環境内での一意の識別子が各トランザクションに確実に得られ
るようにする。
れも、トランザクションの不可分性を維持する方法を提供する。OSI TPの
場合、トランザクションに関する一意な識別子として不可分アクション識別子(
AAID)が使用される。同じAAIDが参照するトランザクションブランチは
グループとして実行またはロールバックされる。さらに、OSI TPプロトコ
ル仕様はトランザクションのそのブランチを識別するために使用される各ブラン
チのブランチサフィックス(BRID)を特定する。OLEの場合、グローバル
に一意な識別子(GUID)がMTS環境内でのトランザクションの特定に使用
される。GUIDはWin32 APIファンクションコールを介して得られる。
この値は、MTS環境内での一意の識別子が各トランザクションに確実に得られ
るようにする。
【0097】 本発明の重要な局面によると、リモートサーバ60への接続を要求するXAT
MIサービスリクエストがMTSコンポーネント54から受信されると、リソー
スマネージャ70は、MTSコンポーネント54に関連したトランザクションオ
ブジェクト78から(GetTransactionInfoメソッドを用いて)要求が関係するト
ランザクションを特定するGUIDを得る。次いで、リソースマネージャ70は
、このGUIDについて対応のAAIDが既に生成されているか否かを内部テー
ブルから判断する。生成されていない場合、リソースマネージャ70はAAID
を生成し、これが後にOSI TPプロトコルマシン68内のトランザクション
の特定に使用される。GUIDおよび生成されたAAIDはいずれも、所与のト
ランザクションブランチに関するCRM記録に記憶されて、GUIDからAAI
Dへの、またはその反対のマッピングを行ない、これによりリモートサーバ60
で参照されたサービスがMTS環境のものと同期化された状態となる。
MIサービスリクエストがMTSコンポーネント54から受信されると、リソー
スマネージャ70は、MTSコンポーネント54に関連したトランザクションオ
ブジェクト78から(GetTransactionInfoメソッドを用いて)要求が関係するト
ランザクションを特定するGUIDを得る。次いで、リソースマネージャ70は
、このGUIDについて対応のAAIDが既に生成されているか否かを内部テー
ブルから判断する。生成されていない場合、リソースマネージャ70はAAID
を生成し、これが後にOSI TPプロトコルマシン68内のトランザクション
の特定に使用される。GUIDおよび生成されたAAIDはいずれも、所与のト
ランザクションブランチに関するCRM記録に記憶されて、GUIDからAAI
Dへの、またはその反対のマッピングを行ない、これによりリモートサーバ60
で参照されたサービスがMTS環境のものと同期化された状態となる。
【0098】 OSI TPプロトコル仕様では、「masters-name」コンポーネントおよび局
所的に規定された一意なAE−サフィックスとしてASN.1エンコードローカ
ルAE−TITLEによりAAIDが構成されることが要求される。本発明の好
ましい実施例によると、GUIDから生成されたAAIDは「masters-name」コ
ンポーネントとしてローカルAE−TITLEを含み、「atomic-action-suffix
」コンポーネントのOCTET STRING形式として16バイトGUIDを
含む。
所的に規定された一意なAE−サフィックスとしてASN.1エンコードローカ
ルAE−TITLEによりAAIDが構成されることが要求される。本発明の好
ましい実施例によると、GUIDから生成されたAAIDは「masters-name」コ
ンポーネントとしてローカルAE−TITLEを含み、「atomic-action-suffix
」コンポーネントのOCTET STRING形式として16バイトGUIDを
含む。
【0099】 リソースマネージャ70はさらに、ブランチに関するブランチサフィックス(
BRID)を生成する。OSI TPプロトコル仕様に規定されるように、ブラ
ンチサフィックスはエンコードされたオクテット列またはエンコードされた整数
のいずれかである。本発明によると、ブランチサフィックスは、整数を、整数の
ASCII表現に変換し、次いで、変換された整数を、エンコードされたブラン
チサフィックスのオクテット列形式の内容オクテットとして使用することにより
生成される。整数は、AAIDがGUIDから生成されたときに1に初期化され
、同じGUIDに基づいてAAIDがサーチされるたびに1だけインクリメント
される、カウンタにより得られる。これは実際にトランザクションに関するブラ
ンチ数をカウントする。エンコードされた整数は、GUIDおよびAAIDによ
って表わされるトランザクションの現在のブランチカウントを反映する。この実
施例では、GUID、AAIDおよびブランチサフィックス(BRID)はそれ
ぞれ、第1、第2および第3の識別子を表わす。
BRID)を生成する。OSI TPプロトコル仕様に規定されるように、ブラ
ンチサフィックスはエンコードされたオクテット列またはエンコードされた整数
のいずれかである。本発明によると、ブランチサフィックスは、整数を、整数の
ASCII表現に変換し、次いで、変換された整数を、エンコードされたブラン
チサフィックスのオクテット列形式の内容オクテットとして使用することにより
生成される。整数は、AAIDがGUIDから生成されたときに1に初期化され
、同じGUIDに基づいてAAIDがサーチされるたびに1だけインクリメント
される、カウンタにより得られる。これは実際にトランザクションに関するブラ
ンチ数をカウントする。エンコードされた整数は、GUIDおよびAAIDによ
って表わされるトランザクションの現在のブランチカウントを反映する。この実
施例では、GUID、AAIDおよびブランチサフィックス(BRID)はそれ
ぞれ、第1、第2および第3の識別子を表わす。
【0100】 リソースマネージャ70はMTSコンポーネントから受信されたXATMIサ
ービスリクエストを対応のOSI TPサービスリクエスト(たとえばHTPX
_CALLCON_REQに変換し、OSI TPプロトコルマシン68への要
求を、生成されたAAIDおよびBRIDとともに送る。OSI TPプロトコ
ルマシン68はこの後、リモートサーバ60への接続を確保する。ネットワーク
接続の喪失またはノードクラッシュといった事態が生じると、AAIDおよびB
RIDがそのブランチに関するCRM記録から取出されて、リモートサーバ60
への接続を再度確保するために使用される。
ービスリクエストを対応のOSI TPサービスリクエスト(たとえばHTPX
_CALLCON_REQに変換し、OSI TPプロトコルマシン68への要
求を、生成されたAAIDおよびBRIDとともに送る。OSI TPプロトコ
ルマシン68はこの後、リモートサーバ60への接続を確保する。ネットワーク
接続の喪失またはノードクラッシュといった事態が生じると、AAIDおよびB
RIDがそのブランチに関するCRM記録から取出されて、リモートサーバ60
への接続を再度確保するために使用される。
【0101】 所与のトランザクションには複数のブランチがあり得、このため同じGUID
/AAIDマッピングが起こり得るため、上記方法に従ってAAIDがGUID
に関して最初に生成されるときに、GUID/AAIDの組合せが内部テーブル
(図示せず)に記憶される。トランザクションのブランチを表わすXATMIサ
ービスリクエストが受信されるたびに、リソースマネージャ70はまず、そのト
ランザクションに関連したGUIDのためにAAIDが既に生成されているか否
かを内部テーブルから判断する。そうである場合には、ブランチサフィックス(
BRID)だけをそのブランチのために生成するだけでよい。しかし、これがト
ランザクションの第1のブランチである場合には、AAIDおよびブランチサフ
ィックス(BRID)が生成される。
/AAIDマッピングが起こり得るため、上記方法に従ってAAIDがGUID
に関して最初に生成されるときに、GUID/AAIDの組合せが内部テーブル
(図示せず)に記憶される。トランザクションのブランチを表わすXATMIサ
ービスリクエストが受信されるたびに、リソースマネージャ70はまず、そのト
ランザクションに関連したGUIDのためにAAIDが既に生成されているか否
かを内部テーブルから判断する。そうである場合には、ブランチサフィックス(
BRID)だけをそのブランチのために生成するだけでよい。しかし、これがト
ランザクションの第1のブランチである場合には、AAIDおよびブランチサフ
ィックス(BRID)が生成される。
【0102】 B.TP_ID 本発明の別の局面によると、リモートサーバ60への接続を要求するMTSコ
ンポーネント54から受信されたXATMIサービスリクエストごとに(すなわ
ちトランザクションのブランチごとに)、リソースマネージャ70は、そのブラ
ンチのOSI TPプロトコルマシン68によって確保された接続と、そのブラ
ンチとを関連付ける第4の識別子(「tp_id」)を生成する。tp_idはその接続
を確保するXATMIサービスリクエストがうまく完了したときにMTSコンポ
ーネント54に戻る。tp_idはまた、ブランチに関するCRM記録に記憶される
。確保された接続に対して後に処理を行なうために、tp_idは、トランザクショ
ンの各ブランチへのエントリを有する、OSI TPプロトコルマシン68内の
データ構造(図示せず)へのインデックスとして使用される。所与のブランチに
対して、このデータ構造のエントリは、確保された接続に割当てられているOS
I TPプロトコルマシン内の特定のリソースを特定する。本実施例では、デー
タ構造の所与のエントリは(i)ブランチのCRM記録への戻りポインタとなり
、かつ、上述のとおり、CTransactionResourceAsyncオブジェクト76にも記憶
されているcrm_idと、(ii)確保された接続を表わすデータ構造のポインタと
なるSACFインデックス、およびそのブランチの、OSI TP−関連情報の
ポインタとなるブランチインデックスとを特定する。OSI TPプロトコルマ
シンの他の実装例の中には同じ目的を達成するために別のデータ構造を用いるも
のもあるが、ここにおいて考えられ得るすべての実施例では、tp_idは、所与の
トランザクションブランチに関するリモートサーバ60への接続を確保するため
にOSI TPプロトコルマシン68内に割当てられるリソースを特定するため
の手段として使用される。
ンポーネント54から受信されたXATMIサービスリクエストごとに(すなわ
ちトランザクションのブランチごとに)、リソースマネージャ70は、そのブラ
ンチのOSI TPプロトコルマシン68によって確保された接続と、そのブラ
ンチとを関連付ける第4の識別子(「tp_id」)を生成する。tp_idはその接続
を確保するXATMIサービスリクエストがうまく完了したときにMTSコンポ
ーネント54に戻る。tp_idはまた、ブランチに関するCRM記録に記憶される
。確保された接続に対して後に処理を行なうために、tp_idは、トランザクショ
ンの各ブランチへのエントリを有する、OSI TPプロトコルマシン68内の
データ構造(図示せず)へのインデックスとして使用される。所与のブランチに
対して、このデータ構造のエントリは、確保された接続に割当てられているOS
I TPプロトコルマシン内の特定のリソースを特定する。本実施例では、デー
タ構造の所与のエントリは(i)ブランチのCRM記録への戻りポインタとなり
、かつ、上述のとおり、CTransactionResourceAsyncオブジェクト76にも記憶
されているcrm_idと、(ii)確保された接続を表わすデータ構造のポインタと
なるSACFインデックス、およびそのブランチの、OSI TP−関連情報の
ポインタとなるブランチインデックスとを特定する。OSI TPプロトコルマ
シンの他の実装例の中には同じ目的を達成するために別のデータ構造を用いるも
のもあるが、ここにおいて考えられ得るすべての実施例では、tp_idは、所与の
トランザクションブランチに関するリモートサーバ60への接続を確保するため
にOSI TPプロトコルマシン68内に割当てられるリソースを特定するため
の手段として使用される。
【0103】 本実施例では、tp_idおよびcrm_idはともに使用されて、OSI TPプロ
トコルマシン68、XATMIインターフェイス論理72、およびMS DTC
56間で双方向の通信が行なわれる際に特定のブランチを特定するために使用さ
れる。具体的には、XATMIインターフェイス論理72が、確保された接続を
参照するときには、その特定の接続を特定するためにtp_idを使用する。OSI TPプロトコルマシン68が、特定のブランチに関する返答および表示を受信
すると、その内部データ構造にあるcrm_idを使用して、ブランチに関するCR
M記録のポインタを提供するため、ブランチに関するさらなる情報が得られる。
このように、所与のブランチに関するtp_id、crm_idおよびCRM記録は、X
ATMIインターフェイス論理72、OSI TPプロトコルマシン68および
MS DTC56間の(インターフェイス論理74を介する)ブランチのアイデ
ンティティーを維持するための手段としての役割を果たす。これは、本発明の相
互接続64と相互作用するエンティティに対してトランスペアレントな態様で種
々の環境を互いに結びつける。
トコルマシン68、XATMIインターフェイス論理72、およびMS DTC
56間で双方向の通信が行なわれる際に特定のブランチを特定するために使用さ
れる。具体的には、XATMIインターフェイス論理72が、確保された接続を
参照するときには、その特定の接続を特定するためにtp_idを使用する。OSI TPプロトコルマシン68が、特定のブランチに関する返答および表示を受信
すると、その内部データ構造にあるcrm_idを使用して、ブランチに関するCR
M記録のポインタを提供するため、ブランチに関するさらなる情報が得られる。
このように、所与のブランチに関するtp_id、crm_idおよびCRM記録は、X
ATMIインターフェイス論理72、OSI TPプロトコルマシン68および
MS DTC56間の(インターフェイス論理74を介する)ブランチのアイデ
ンティティーを維持するための手段としての役割を果たす。これは、本発明の相
互接続64と相互作用するエンティティに対してトランスペアレントな態様で種
々の環境を互いに結びつける。
【0104】 IV.CRM記録 上述のとおり、本発明の別の局面によると、グローバルトランザクションの別
個のブランチを表わすXATMIサービスリクエストごとに、リソースマネージ
ャ70は、ここでCRM記録と称するブランチの記録を生成し、この中にはブラ
ンチに関する情報が記憶され、OSI TPプロトコルマシン68によるOSI
TPサービスリクエストの処理とMTS環境における対応のイベントの処理と
を統御するにあたりリソースマネージャ70が使用する。CRM記録は、すべて
のトランザクション的な、および接続に基づく所与のトランザクションブランチ
に関する情報へのアクセスを可能にする。たとえば、上述のとおり、CRM記録
は所与のブランチに関するGUID、AAID、BRIDおよびtp_idを記憶す
るために使用される。このようなデータはこの記録の中に集中的に保管され、相
互接続64内での多数のプロセスによりアクセスできる。MTS環境およびOS
I TPプロトコルマシン68の両方での回復に要求されるすべての情報がこの
記録に維持される。所与のトランザクションの多数のブランチを表わすCRM記
録のグループが連結リストに維持される。所与のブランチに関するcrm_idは、
連結リスト内のそのブランチに関するCRM記録の特定に使用される。
個のブランチを表わすXATMIサービスリクエストごとに、リソースマネージ
ャ70は、ここでCRM記録と称するブランチの記録を生成し、この中にはブラ
ンチに関する情報が記憶され、OSI TPプロトコルマシン68によるOSI
TPサービスリクエストの処理とMTS環境における対応のイベントの処理と
を統御するにあたりリソースマネージャ70が使用する。CRM記録は、すべて
のトランザクション的な、および接続に基づく所与のトランザクションブランチ
に関する情報へのアクセスを可能にする。たとえば、上述のとおり、CRM記録
は所与のブランチに関するGUID、AAID、BRIDおよびtp_idを記憶す
るために使用される。このようなデータはこの記録の中に集中的に保管され、相
互接続64内での多数のプロセスによりアクセスできる。MTS環境およびOS
I TPプロトコルマシン68の両方での回復に要求されるすべての情報がこの
記録に維持される。所与のトランザクションの多数のブランチを表わすCRM記
録のグループが連結リストに維持される。所与のブランチに関するcrm_idは、
連結リスト内のそのブランチに関するCRM記録の特定に使用される。
【0105】 図5は、本発明の好ましい実施例に従う所与のブランチに関するCRM記録の
内容を示す図である。示されるように、ブランチのcrm_idはCRM記録をポイ
ントする。次のフィールドは、連結リストの次のCRM記録に対するポインタを
含み、前のフィールドには前の記録に対するポインタが含まれる。diagstateフ
ィールドは、リソースマネージャ70のXATMIインターフェイス論理70が
所与のダイヤログのXATMI状態の表示を記憶するために使用される。txstat
eフィールドは、ブランチの現在の状態(すなわち図6Aおよび図6Bの状態マ
シンの特定の状態)を記憶するために用いられる。msg_qフィールドは、MTS
コンポーネント54およびOSI TPプロトコルマシン68間に送信されるデ
ータを記憶するために使用されるメッセージキューバッファに対するポインタを
含む。具体的には、msg_qバッファは、MTSコンポーネントがデータを受ける
ようXATMIサービスリクエスト(たとえばtpgetrply)を発行するまで、O
SI TPプロトコルマシン68を介してネットワークから送られるメッセージ
を保持する。XATMIインターフェイス論理72はCRM記録内のmsg_qポイ
ンタを用いてバッファからのデータを取出し、MTSコンポーネント54にそれ
を送る。Svcnameフィールドは、MTSコンポーネントが呼出したリモートサー
バ60のXATMIサービスの名称を含む。enc_typeは、XATMIサービス
リクエストの符号化/復号化の際にXATMIインターフェイス論理72が従う
carray、string、およびchartranslateデータタイプに関するXATMI符号化
/復号化のルールを特定する。recip_aeフィールドはリモートサーバ60の識
別に使用される。*EnlistObjフィールドは、リソースマネージャ70がMS D
TC56にブランチをエンリストする際にMS DTC56によって生成される
エンリストメントオブジェクト80に対するポインタを含む。*ExportObjフィー
ルドは、リソースマネージャ70によって生成されるエクスポートオブジェクト
80に対するポインタを含む。*TransObjフィールドは、MTSコンポーネント
54に関連したトランザクションオブジェクト78に対するポインタを含む。*T
ranscookieフィールドは、エクスポートオブジェクトを介してプロセス間にトラ
ンザクションに関する情報を転送する際に使用されるトランザクションクッキー
に対するポインタを含む。TransCookieLenフィールドは、トランザクションクッ
キーのバイト長を特定する値を含む。tp_idフィールドはこのブランチに関する
tp_idを含む。mts_guidフィールドは、このブランチが一部分となるトランザ
クションを特定するためにMTS環境で使用されるGUIDを含む。aaid/brid
フィールドは、AAIDと、上記方法によってGUIDから生成されたブランチ
サフィックス(BRID)とを含む。*pPrepInfoフィールドは、実行の準備段階
においてMS DTC56からリソースマネージャ70が得た情報に対するポイ
ンタを含み、そのブランチに関するログ記録の一部分として安全記憶装置にそれ
を記憶する。この情報は回復のために使用される。*log_recフィールドはログ
記録に対するポインタを含む。
内容を示す図である。示されるように、ブランチのcrm_idはCRM記録をポイ
ントする。次のフィールドは、連結リストの次のCRM記録に対するポインタを
含み、前のフィールドには前の記録に対するポインタが含まれる。diagstateフ
ィールドは、リソースマネージャ70のXATMIインターフェイス論理70が
所与のダイヤログのXATMI状態の表示を記憶するために使用される。txstat
eフィールドは、ブランチの現在の状態(すなわち図6Aおよび図6Bの状態マ
シンの特定の状態)を記憶するために用いられる。msg_qフィールドは、MTS
コンポーネント54およびOSI TPプロトコルマシン68間に送信されるデ
ータを記憶するために使用されるメッセージキューバッファに対するポインタを
含む。具体的には、msg_qバッファは、MTSコンポーネントがデータを受ける
ようXATMIサービスリクエスト(たとえばtpgetrply)を発行するまで、O
SI TPプロトコルマシン68を介してネットワークから送られるメッセージ
を保持する。XATMIインターフェイス論理72はCRM記録内のmsg_qポイ
ンタを用いてバッファからのデータを取出し、MTSコンポーネント54にそれ
を送る。Svcnameフィールドは、MTSコンポーネントが呼出したリモートサー
バ60のXATMIサービスの名称を含む。enc_typeは、XATMIサービス
リクエストの符号化/復号化の際にXATMIインターフェイス論理72が従う
carray、string、およびchartranslateデータタイプに関するXATMI符号化
/復号化のルールを特定する。recip_aeフィールドはリモートサーバ60の識
別に使用される。*EnlistObjフィールドは、リソースマネージャ70がMS D
TC56にブランチをエンリストする際にMS DTC56によって生成される
エンリストメントオブジェクト80に対するポインタを含む。*ExportObjフィー
ルドは、リソースマネージャ70によって生成されるエクスポートオブジェクト
80に対するポインタを含む。*TransObjフィールドは、MTSコンポーネント
54に関連したトランザクションオブジェクト78に対するポインタを含む。*T
ranscookieフィールドは、エクスポートオブジェクトを介してプロセス間にトラ
ンザクションに関する情報を転送する際に使用されるトランザクションクッキー
に対するポインタを含む。TransCookieLenフィールドは、トランザクションクッ
キーのバイト長を特定する値を含む。tp_idフィールドはこのブランチに関する
tp_idを含む。mts_guidフィールドは、このブランチが一部分となるトランザ
クションを特定するためにMTS環境で使用されるGUIDを含む。aaid/brid
フィールドは、AAIDと、上記方法によってGUIDから生成されたブランチ
サフィックス(BRID)とを含む。*pPrepInfoフィールドは、実行の準備段階
においてMS DTC56からリソースマネージャ70が得た情報に対するポイ
ンタを含み、そのブランチに関するログ記録の一部分として安全記憶装置にそれ
を記憶する。この情報は回復のために使用される。*log_recフィールドはログ
記録に対するポインタを含む。
【0106】 V. 回復のためのログ収集 本発明の別の特徴に従えば、リソースマネージャ70はトランザクションの各
ブランチに対して、障害が起こった場合に回復させるために、MS DTC56
およびOSI TPプロトコルマシン68の両方に必要とされる情報を、安全な
記憶装置内に併せて記憶する。すなわち、リソースマネージャ70は、OSI
TPプロトコルマシン68およびMS DTC56の双方によって回復のために
必要とされるデータ構造を互いに結びつける。必要な回復情報(OSI TPお
よびMS DTC)はすべて、ブランチに対するログ記録の形で記憶される。具
体的には、ブランチのためのログ記録は、トランザクションの準備フェーズ中に
MS DTC56から受取られるPrepareInfoデータ構造、PrepareInfo構造のサ
イズ、(recip_ae識別子、AAIDおよびBRIDを含む)OSI TP回復
情報を保持する構造、および、(ブランチのCRM記録へのポインタである)ブ
ランチのcrm_idを含む。所与のブランチのログ記録へのポインタは、上述のよ
うに、そのCRM記録内に記憶される。
ブランチに対して、障害が起こった場合に回復させるために、MS DTC56
およびOSI TPプロトコルマシン68の両方に必要とされる情報を、安全な
記憶装置内に併せて記憶する。すなわち、リソースマネージャ70は、OSI
TPプロトコルマシン68およびMS DTC56の双方によって回復のために
必要とされるデータ構造を互いに結びつける。必要な回復情報(OSI TPお
よびMS DTC)はすべて、ブランチに対するログ記録の形で記憶される。具
体的には、ブランチのためのログ記録は、トランザクションの準備フェーズ中に
MS DTC56から受取られるPrepareInfoデータ構造、PrepareInfo構造のサ
イズ、(recip_ae識別子、AAIDおよびBRIDを含む)OSI TP回復
情報を保持する構造、および、(ブランチのCRM記録へのポインタである)ブ
ランチのcrm_idを含む。所与のブランチのログ記録へのポインタは、上述のよ
うに、そのCRM記録内に記憶される。
【0107】 ログ記録は、IStream COMインターフェイスを用いて、安全な記憶装置に
セーブされる。IStorage COMインターフェイスは、単一のファイル内にログ
記録を維持するのに使用される。どちらのインターフェイスも、Windows NTオペ
レーティングシステム内で実装される。故障後の相互接続64の起動時に、その
実行状態が不確かである所与のブランチのログ記録が、安全な記憶装置から取出
される。OSI TP回復に必要とされる情報は、OSI TPプロトコルマシ
ン68に伝送されるのに対し、PrepareInfo構造は、MS DTC56に伝送さ
れる。このようにして、トランザクションシステム全体が同期状態を維持する。
セーブされる。IStorage COMインターフェイスは、単一のファイル内にログ
記録を維持するのに使用される。どちらのインターフェイスも、Windows NTオペ
レーティングシステム内で実装される。故障後の相互接続64の起動時に、その
実行状態が不確かである所与のブランチのログ記録が、安全な記憶装置から取出
される。OSI TP回復に必要とされる情報は、OSI TPプロトコルマシ
ン68に伝送されるのに対し、PrepareInfo構造は、MS DTC56に伝送さ
れる。このようにして、トランザクションシステム全体が同期状態を維持する。
【0108】 より詳細には、リソースマネージャが準備リクエストを受取る時間と、トラン
ザクションマネージャが実行がうまく完了したという表示を受取る時間との間で
障害が起きるたびに、回復が必要である。この時間中に障害が起きると、トラン
ザクションのあるブランチは不確かなままとなってしまう。起こり得る障害には
4種類がある。すなわち、プロセス障害、ネットワーク障害、トランザクション
マネージャ障害およびノードクラッシュである。OSI TPプロトコルマシン
68およびMS DTC56の双方のために記憶された回復情報を使用して、本
発明の相互接続64は両方のエンティティがトランザクションの存続性を維持す
る目的でこれらの種類の障害を回復させることを可能にする。その方法を以下に
示す。
ザクションマネージャが実行がうまく完了したという表示を受取る時間との間で
障害が起きるたびに、回復が必要である。この時間中に障害が起きると、トラン
ザクションのあるブランチは不確かなままとなってしまう。起こり得る障害には
4種類がある。すなわち、プロセス障害、ネットワーク障害、トランザクション
マネージャ障害およびノードクラッシュである。OSI TPプロトコルマシン
68およびMS DTC56の双方のために記憶された回復情報を使用して、本
発明の相互接続64は両方のエンティティがトランザクションの存続性を維持す
る目的でこれらの種類の障害を回復させることを可能にする。その方法を以下に
示す。
【0109】 A.プロセス障害 プロセス障害にわたるトランザクションの存続性を保証するために、本発明の
相互接続64は、接続マネージャ66内で実行されるクリーンアップスレッド(
図示せず)を使用することによって、いつMTSコンポーネントのプロセスが終
了したかを検出する。このスレッドは、MTSコンポーネントプロセスが不完全
なまま終了していないかどうかを周期的にチェックする。もしそうであれば、こ
れは状態表(図6Bおよび図6D参照)に示される「XATMI_CLEANU
P」イベントを発生させる。このイベントは、現時点におけるトランザクション
をアボートする。もしMTSコンポーネントの不完全な終了がMTS環境におい
て時間切れが生じたためであり、かつ、リソースマネージャ70がトランザクシ
ョンブランチをMS DTC56にエンリストしていた場合には、MS DTC
56が障害を通知する。この通知は、やはり状態表(図6C参照)に示される、
AbortRequestメソッドによって行なわれる。このメソッドは、リソースマネージ
ャ70がXATMI_CLEANUPイベントと同様の方法で処理する。
相互接続64は、接続マネージャ66内で実行されるクリーンアップスレッド(
図示せず)を使用することによって、いつMTSコンポーネントのプロセスが終
了したかを検出する。このスレッドは、MTSコンポーネントプロセスが不完全
なまま終了していないかどうかを周期的にチェックする。もしそうであれば、こ
れは状態表(図6Bおよび図6D参照)に示される「XATMI_CLEANU
P」イベントを発生させる。このイベントは、現時点におけるトランザクション
をアボートする。もしMTSコンポーネントの不完全な終了がMTS環境におい
て時間切れが生じたためであり、かつ、リソースマネージャ70がトランザクシ
ョンブランチをMS DTC56にエンリストしていた場合には、MS DTC
56が障害を通知する。この通知は、やはり状態表(図6C参照)に示される、
AbortRequestメソッドによって行なわれる。このメソッドは、リソースマネージ
ャ70がXATMI_CLEANUPイベントと同様の方法で処理する。
【0110】 B.ネットワーク障害 ネットワーク障害にわたってトランザクションの存続性を保証するには、本発
明の相互接続64は、OSI−TPプロトコルマシン68の内蔵機構に依存する
。具体的には、OSI TPプロトコルマシン68によって実装されるOSI
TPプロトコルによって、システム間またはネットワーク上に障害が生じた場合
に、関連が自動的に回復される。この接続は、チャネルとして再構築され、トラ
ンザクションの結果を維持する。どのような結果も失われることはなく、接続マ
ネージャ66はしたがって、MTS環境内のACIDプロパティの存続性の属性
を強化する。OSI TPプロトコルマシン68は、OSI TPプロトコル仕
様の関連マネージャ機能によって、遠隔ホストとの通信を再構築する。その後、
OSI−TPプロトコルマシン68は、そのトランザクション状態をリセットし
、それにより、トランザクションの実行を完了することが可能となる。これは、
(ネットワーク障害が生じた場合に下層のネットワークプロトコルによって生成
される)Provider Abort Indicationが受信されるたびに、OSI TPによっ
て処理される。MS DTC56は通信障害のことは全く知らないので、トラン
ザクションが完了したことが知らされるのを我慢強く待つ。OSI TPプロト
コルマシン68が、リソースマネージャ70に、トランザクションの結果を通知
し、今度は、リソースマネージャ70がMS DTC56に対して、Enlistment
オブジェクト80のITransactionEnlistmentAsyncインターフェイスの適切なメ
ソッドを呼出すことによって、トランザクションの結果を通知する。
明の相互接続64は、OSI−TPプロトコルマシン68の内蔵機構に依存する
。具体的には、OSI TPプロトコルマシン68によって実装されるOSI
TPプロトコルによって、システム間またはネットワーク上に障害が生じた場合
に、関連が自動的に回復される。この接続は、チャネルとして再構築され、トラ
ンザクションの結果を維持する。どのような結果も失われることはなく、接続マ
ネージャ66はしたがって、MTS環境内のACIDプロパティの存続性の属性
を強化する。OSI TPプロトコルマシン68は、OSI TPプロトコル仕
様の関連マネージャ機能によって、遠隔ホストとの通信を再構築する。その後、
OSI−TPプロトコルマシン68は、そのトランザクション状態をリセットし
、それにより、トランザクションの実行を完了することが可能となる。これは、
(ネットワーク障害が生じた場合に下層のネットワークプロトコルによって生成
される)Provider Abort Indicationが受信されるたびに、OSI TPによっ
て処理される。MS DTC56は通信障害のことは全く知らないので、トラン
ザクションが完了したことが知らされるのを我慢強く待つ。OSI TPプロト
コルマシン68が、リソースマネージャ70に、トランザクションの結果を通知
し、今度は、リソースマネージャ70がMS DTC56に対して、Enlistment
オブジェクト80のITransactionEnlistmentAsyncインターフェイスの適切なメ
ソッドを呼出すことによって、トランザクションの結果を通知する。
【0111】 C.MS DTC障害 MS DTC障害にわたってトランザクションの存続性を保証するために、リ
ソースマネージャ70は、それがブランチのためのログ記録内にセーブする、Pr
epareInfo構造内の情報に依存する。以下により詳細に述べるように、リソース
マネージャ70は、2相実行プロセスの第1のフェーズ(すなわち準備フェーズ
)が完了した後に、MS DTCからPrepareInfo構造を得て、その後、それを
ログ記録内に、OSI TP回復情報およびそのブランチのためのcrm_idとと
もに記憶する。この情報は、障害の後に安全な記憶装置から取出すことができ、
それにより、トランザクションブランチは必要であれば後に回復することが可能
となる。
ソースマネージャ70は、それがブランチのためのログ記録内にセーブする、Pr
epareInfo構造内の情報に依存する。以下により詳細に述べるように、リソース
マネージャ70は、2相実行プロセスの第1のフェーズ(すなわち準備フェーズ
)が完了した後に、MS DTCからPrepareInfo構造を得て、その後、それを
ログ記録内に、OSI TP回復情報およびそのブランチのためのcrm_idとと
もに記憶する。この情報は、障害の後に安全な記憶装置から取出すことができ、
それにより、トランザクションブランチは必要であれば後に回復することが可能
となる。
【0112】 より詳細には、MS DTC56が障害を起こすと、それはまずすべてのエン
リストされているトランザクションブランチに対して、それらそれぞれのTMDown
コールバックメソッドを呼出すことによって通知し、その後、参加しているリソ
ースマネージャすべてに対して、それらのTMDownメソッドを呼出すことによって
通知する。本発明の好ましい実施例に従えば、リソースマネージャ70がMS
DTC56にエンリストしている各トランザクションブランチに対するTMDownコ
ールバックメソッドが、そのブランチのためのCTransactionResourceAsyncオブ
ジェクト76において実装される。リソースマネージャ70のTMDownコールバッ
クメソッドは、CResourceManagerSinkオブジェクト82内で実装される。
リストされているトランザクションブランチに対して、それらそれぞれのTMDown
コールバックメソッドを呼出すことによって通知し、その後、参加しているリソ
ースマネージャすべてに対して、それらのTMDownメソッドを呼出すことによって
通知する。本発明の好ましい実施例に従えば、リソースマネージャ70がMS
DTC56にエンリストしている各トランザクションブランチに対するTMDownコ
ールバックメソッドが、そのブランチのためのCTransactionResourceAsyncオブ
ジェクト76において実装される。リソースマネージャ70のTMDownコールバッ
クメソッドは、CResourceManagerSinkオブジェクト82内で実装される。
【0113】 リソースマネージャ70がTMDownを受取ると、リソースマネージャ70は再エ
ンリストメントに移る。タイマスレッド(図示せず)は、再エンリストメントに
いつ再挑戦すべきかを判定する。タイマスレッドは、イベント連結リストとして
実装され、それらイベントは、完了する準備が整っているかどうかが周期的にチ
ェックされる。再エンリストメントイベントの期限が満了すると、イベントはA
RP96の待ち行列に入れられ、ARP96が再エンリストメントに再挑戦する
。もしMS DTC56がまだ利用可能でない場合には、別のタイマイベントが
待ち行列に入れられて、成功するまでこのプロセスが繰返される。MS DTC
56が利用可能になると、不確かである各ブランチのためのPrepareInfo構造が
、Resource Managerオブジェクト108のReenlistメソッドを用いてMS DT
C56に伝送される。その後、MS DTC56は、ブランチの結果(実行また
はアボート)をリソースマネージャ70に戻す。受取った結果(実行またはアボ
ート)に応じて、リソースマネージャ70はOSI TPプロトコルマシン68
に対して対応のOSI TPサービスリクエストを発行し、それにより、実行プ
ロセスがOSI TPプロトコルマシン68によって完了される。OSI TP
環境およびMTS環境の両方における結果はしたがって、同期される。
ンリストメントに移る。タイマスレッド(図示せず)は、再エンリストメントに
いつ再挑戦すべきかを判定する。タイマスレッドは、イベント連結リストとして
実装され、それらイベントは、完了する準備が整っているかどうかが周期的にチ
ェックされる。再エンリストメントイベントの期限が満了すると、イベントはA
RP96の待ち行列に入れられ、ARP96が再エンリストメントに再挑戦する
。もしMS DTC56がまだ利用可能でない場合には、別のタイマイベントが
待ち行列に入れられて、成功するまでこのプロセスが繰返される。MS DTC
56が利用可能になると、不確かである各ブランチのためのPrepareInfo構造が
、Resource Managerオブジェクト108のReenlistメソッドを用いてMS DT
C56に伝送される。その後、MS DTC56は、ブランチの結果(実行また
はアボート)をリソースマネージャ70に戻す。受取った結果(実行またはアボ
ート)に応じて、リソースマネージャ70はOSI TPプロトコルマシン68
に対して対応のOSI TPサービスリクエストを発行し、それにより、実行プ
ロセスがOSI TPプロトコルマシン68によって完了される。OSI TP
環境およびMTS環境の両方における結果はしたがって、同期される。
【0114】 D.ノードクラッシュ ノードクラッシュからの回復を可能にするために、リソースマネージャ70は
各ブランチのためのログ記録内のOSI TP回復情報を用いる。この情報は、
OSI TPプロトコルマシン68が、OSI TPプロトコル仕様によって指
示されるように、その内部状態表を障害時に現存の状態にリセットすることがで
きるようにする。これにより、OSI TPプロトコルマシン68内のトランザ
クションの存続性が保証される。リソースマネージャ70はまた、Resource Man
agerオブジェクト108のReenlistメソッドを用いて、PrepareInfo構造をMS
DTC56に渡す。その後、MS DTC56は、リソースマネージャ70に
対してブランチの結果(実行またはアボート)を返す。受取った結果(実行また
はアボート)に応じて、リソースマネージャ70はOSI TPプロトコルマシ
ン68に対して対応のOSI TPサービスリクエストを発行し、それにより、
実行プロセスはOSI TPプロトコルマシン68によって完了される。OSI
TP環境およびMTS環境の両方における結果はしたがって、同期される。
各ブランチのためのログ記録内のOSI TP回復情報を用いる。この情報は、
OSI TPプロトコルマシン68が、OSI TPプロトコル仕様によって指
示されるように、その内部状態表を障害時に現存の状態にリセットすることがで
きるようにする。これにより、OSI TPプロトコルマシン68内のトランザ
クションの存続性が保証される。リソースマネージャ70はまた、Resource Man
agerオブジェクト108のReenlistメソッドを用いて、PrepareInfo構造をMS
DTC56に渡す。その後、MS DTC56は、リソースマネージャ70に
対してブランチの結果(実行またはアボート)を返す。受取った結果(実行また
はアボート)に応じて、リソースマネージャ70はOSI TPプロトコルマシ
ン68に対して対応のOSI TPサービスリクエストを発行し、それにより、
実行プロセスはOSI TPプロトコルマシン68によって完了される。OSI
TP環境およびMTS環境の両方における結果はしたがって、同期される。
【0115】 VI.動作 以下の説明に関連して、図7、図8A〜Cおよび図9A〜Iは、本発明の相互
接続64の動作のさらなる詳細を提供し、また、本発明の種々のメソッドを図示
する。これらの図に示されるステップのシーケンスは、その大部分が図6A〜6
Dの状態表によって支配され、該シーケンスは上述のように、相互接続64の動
作を制御する機構である。
接続64の動作のさらなる詳細を提供し、また、本発明の種々のメソッドを図示
する。これらの図に示されるステップのシーケンスは、その大部分が図6A〜6
Dの状態表によって支配され、該シーケンスは上述のように、相互接続64の動
作を制御する機構である。
【0116】 A.起動:初期エンリストメント 起動時に、リソースマネージャ70はMS DTC56にエンリストする。こ
のコンテキストにおいて使用される用語「エンリストする」とは、関連のトラン
ザクションマネージャ、この場合はMS DTC56、に対して、リソースマネ
ージャ70の存在を識別することを意味する。その結果として、MS DTC5
6は、相互接続64に気づくようになり、MTSコンポーネントによって開始さ
れるトランザクションブランチの自動エンリストメントを受けいれる。上述のよ
うに、相互接続64はMS DTC56およびMTSコンポーネント54に対し
ては、MTS環境内のローカルリソースとして現われる。すなわち、相互接続6
4が制御するリソースは、遠隔システム60上におけるサーバアプリケーション
40′(およびその中に保持されるビジネスロジック)である。
のコンテキストにおいて使用される用語「エンリストする」とは、関連のトラン
ザクションマネージャ、この場合はMS DTC56、に対して、リソースマネ
ージャ70の存在を識別することを意味する。その結果として、MS DTC5
6は、相互接続64に気づくようになり、MTSコンポーネントによって開始さ
れるトランザクションブランチの自動エンリストメントを受けいれる。上述のよ
うに、相互接続64はMS DTC56およびMTSコンポーネント54に対し
ては、MTS環境内のローカルリソースとして現われる。すなわち、相互接続6
4が制御するリソースは、遠隔システム60上におけるサーバアプリケーション
40′(およびその中に保持されるビジネスロジック)である。
【0117】 B.トランザクションブランチの処理 図7は、MTSコンポーネントによって開始されるトランザクションブランチ
の全体の処理を示す。ステップ110に示すように、ブランチは、MTSコンポ
ーネントが、遠隔サーバ60に対する接続を構築するよう要求する種類のXAT
MIサービスリクエストをリソースマネージャ70に対して発行したときに開始
される。これらのXATMIサービスリクエストは、tpcall()、tpacall()
、およびtpconnect()を含む。実行処理は、MTSコンポーネント54がその
コンテキストオブジェクトの、クライアントアプリケーション52によって実行
するように要求された作業が完了して実行準備ができていることを示すSetCompl
ete()メソッドを呼出したときに開始される。図8A〜Cは、MTSコンポー
ネントからXATMIサービスリクエスト(すなわち、tpcall、tpacall、tpcon
nect)を受信したときに、本発明の相互接続64が行なう処理を示す。この例に
おいては、MTSコンポーネントからtpcall()が受信されたものと想定する。
図9A〜Iは、MTSコンポーネント54がSetComplete()を発行した後に相
互接続64によって行なわれる実行処理を示す。アボート処理もまた簡単に以下
に説明する。
の全体の処理を示す。ステップ110に示すように、ブランチは、MTSコンポ
ーネントが、遠隔サーバ60に対する接続を構築するよう要求する種類のXAT
MIサービスリクエストをリソースマネージャ70に対して発行したときに開始
される。これらのXATMIサービスリクエストは、tpcall()、tpacall()
、およびtpconnect()を含む。実行処理は、MTSコンポーネント54がその
コンテキストオブジェクトの、クライアントアプリケーション52によって実行
するように要求された作業が完了して実行準備ができていることを示すSetCompl
ete()メソッドを呼出したときに開始される。図8A〜Cは、MTSコンポー
ネントからXATMIサービスリクエスト(すなわち、tpcall、tpacall、tpcon
nect)を受信したときに、本発明の相互接続64が行なう処理を示す。この例に
おいては、MTSコンポーネントからtpcall()が受信されたものと想定する。
図9A〜Iは、MTSコンポーネント54がSetComplete()を発行した後に相
互接続64によって行なわれる実行処理を示す。アボート処理もまた簡単に以下
に説明する。
【0118】 1.XATMIサービスリクエストに対するサービス 図8Aを参照して、XATMIサービスリクエストtpcallをリソースマネージ
ャ70のXATMIインターフェイスロジック72が受取ると、処理がステップ
114で開始される。ステップ114においては、インターフェイスロジック7
2がサービスリクエストとともに受信された入力パラメータの妥当性を検証する
。ステップ116において、リソースマネージャ70は、このリクエストが表わ
すブランチのためのCRM記録にメモリを割当てる。リソースマネージャ70の
動作を制御するステートマシンはこのブランチのための初期状態(FINITO
)を入力する。CRM記録のtxstateフィールドを使用して、現在の状態が記録
される。次に、ステップ118において、XATMIインターフェイスロジック
72がXATMI仕様に従って、リクエストに関連するXATMIデータをエン
コードする。ステップ120において、リソースマネージャ70はCheckTrans手
続きを呼出して、MTSコンポーネントがトランザクションとして構成されてい
るかどうかを判定する。もしその場合には、リソースマネージャ70はトランザ
クションのこのブランチをMS DTC56にエンリストする。これについては
以下に述べる。
ャ70のXATMIインターフェイスロジック72が受取ると、処理がステップ
114で開始される。ステップ114においては、インターフェイスロジック7
2がサービスリクエストとともに受信された入力パラメータの妥当性を検証する
。ステップ116において、リソースマネージャ70は、このリクエストが表わ
すブランチのためのCRM記録にメモリを割当てる。リソースマネージャ70の
動作を制御するステートマシンはこのブランチのための初期状態(FINITO
)を入力する。CRM記録のtxstateフィールドを使用して、現在の状態が記録
される。次に、ステップ118において、XATMIインターフェイスロジック
72がXATMI仕様に従って、リクエストに関連するXATMIデータをエン
コードする。ステップ120において、リソースマネージャ70はCheckTrans手
続きを呼出して、MTSコンポーネントがトランザクションとして構成されてい
るかどうかを判定する。もしその場合には、リソースマネージャ70はトランザ
クションのこのブランチをMS DTC56にエンリストする。これについては
以下に述べる。
【0119】 図8Bは、CheckTrans手続き(図8Aのステップ120)に関するさらなる詳
細を示す。図8Bに示すように、CheckTrans手続きは、相互接続64が実際にM
TS環境内において動作しているかどうかを判定することによって開始される。
もしそうでなければ、tpcallを発行したエンティティ(すなわち、MTSコンポ
ーネント)はトランザクションではないと考えられ、したがって、XATMI
ase_flagがTPNOTRANにセットされ、CRM記録の*TransObjフィール
ドがNULLにセットされる。制御はその後、図8Aのステップ122に戻る。
細を示す。図8Bに示すように、CheckTrans手続きは、相互接続64が実際にM
TS環境内において動作しているかどうかを判定することによって開始される。
もしそうでなければ、tpcallを発行したエンティティ(すなわち、MTSコンポ
ーネント)はトランザクションではないと考えられ、したがって、XATMI
ase_flagがTPNOTRANにセットされ、CRM記録の*TransObjフィール
ドがNULLにセットされる。制御はその後、図8Aのステップ122に戻る。
【0120】 ステップ140において、相互接続64がMTS環境内で動作していると判定
された場合には、制御はステップ146に渡される。ステップ146において、
リソースマネージャ70はグローバルGetObjectContextメソッドを呼出して、M
TSコンポーネント54のコンテキストオブジェクトへのポインタを得る。この
メソッド呼出の結果は、コンテキストオブジェクトがMTSコンポーネント54
に対して存在するかどうかを示す。ステップ148において、その結果が調べら
れる。もしコンテキストオブジェクトが存在しない場合には、制御はステップ1
50に渡され、ステップ150において、XATMI ase_flagがTPNOT
RANにセットされ、CRM記録の*TransObjフィールドがNULLにセットさ
れる。これはステップ142と同様である。ステップ152において、制御が図
8Aのステップ122に戻る。
された場合には、制御はステップ146に渡される。ステップ146において、
リソースマネージャ70はグローバルGetObjectContextメソッドを呼出して、M
TSコンポーネント54のコンテキストオブジェクトへのポインタを得る。この
メソッド呼出の結果は、コンテキストオブジェクトがMTSコンポーネント54
に対して存在するかどうかを示す。ステップ148において、その結果が調べら
れる。もしコンテキストオブジェクトが存在しない場合には、制御はステップ1
50に渡され、ステップ150において、XATMI ase_flagがTPNOT
RANにセットされ、CRM記録の*TransObjフィールドがNULLにセットさ
れる。これはステップ142と同様である。ステップ152において、制御が図
8Aのステップ122に戻る。
【0121】 ステップ148において、コンテキストオブジェクト79がMTSコンポーネ
ント54に対して存在すると判定されれば、制御はステップ154に渡される。
ステップ154においてリソースマネージャ79は、コンテキストオブジェクト
79へのポインタを使用して、標準のCOMメソッド、QueryInterface()(Q
Iと略される)を呼出し、コンテキストオブジェクト79がIObjectContextTran
sactionインターフェイスを有するかどうかを問合せ、もし有していれば、その
インターフェイスへのポイントを得る。付加的な背景として、インターフェイス
はCOMオブジェクト間の相互作用のための標準的な機構である。COMオブジ
ェクトは、インターフェイスナビゲーションとして知られる機構を使用して、別
のオブジェクトのどのメソッドをそれが呼出すことが可能であるかを判定する。
COMでは、このプロセスは、ターゲットオブジェクトのIUnknownインターフェ
イスへのポインタを得ることによって開始される。COM仕様は、すべてのCO
MオブジェクトがIUnknownインターフェイスを実装するように要求する。IUnkno
wnインターフェイスのメソッドのうちの1つにQueryInterface()がある。クラ
イアントオブジェクトまたはアプリケーションは、ターゲットオブジェクトのQu
eryInterface()メソッドを呼出して、そのターゲットオブジェクトがクライア
ントオブジェクトが使用方法を知っている特定のインターフェイスを実装するか
どうかを判定する。ターゲットオブジェクトは、要求されたインターフェイスを
実装していれば、そのインターフェイスへのポインタをクライアントオブジェク
トに戻す。
ント54に対して存在すると判定されれば、制御はステップ154に渡される。
ステップ154においてリソースマネージャ79は、コンテキストオブジェクト
79へのポインタを使用して、標準のCOMメソッド、QueryInterface()(Q
Iと略される)を呼出し、コンテキストオブジェクト79がIObjectContextTran
sactionインターフェイスを有するかどうかを問合せ、もし有していれば、その
インターフェイスへのポイントを得る。付加的な背景として、インターフェイス
はCOMオブジェクト間の相互作用のための標準的な機構である。COMオブジ
ェクトは、インターフェイスナビゲーションとして知られる機構を使用して、別
のオブジェクトのどのメソッドをそれが呼出すことが可能であるかを判定する。
COMでは、このプロセスは、ターゲットオブジェクトのIUnknownインターフェ
イスへのポインタを得ることによって開始される。COM仕様は、すべてのCO
MオブジェクトがIUnknownインターフェイスを実装するように要求する。IUnkno
wnインターフェイスのメソッドのうちの1つにQueryInterface()がある。クラ
イアントオブジェクトまたはアプリケーションは、ターゲットオブジェクトのQu
eryInterface()メソッドを呼出して、そのターゲットオブジェクトがクライア
ントオブジェクトが使用方法を知っている特定のインターフェイスを実装するか
どうかを判定する。ターゲットオブジェクトは、要求されたインターフェイスを
実装していれば、そのインターフェイスへのポインタをクライアントオブジェク
トに戻す。
【0122】 QueryInterface()メソッドがコンテキストオブジェクト79のIObjectConte
xtTransactionインターフェイスへの有効なポインタを提供すると仮定すると、
リソースマネージャ70はそのインターフェイスのGetTransactionメソッドを呼
出して、MTSコンポーネントがそれのために作業を行なうトランザクションを
表わすTransactionオブジェクト78へのポインタを得る。ステップ156にお
いて、このメソッドの結果が調べられ、Transactionオブジェクト78が突き止
められたかどうかが判定される。もしそうでない場合には、リソースマネージャ
70はMTSコンポーネント54をトランザクションではないものとして扱い、
ステップ158に示すように、XATMI ase_flagをTPNOTRANにセ
ットし、CRM記録の*TransObjフィールドをNULLにセットする。これはス
テップ142および150と同様である。ステップ160において、制御は図8
Aのステップ122に戻る。
xtTransactionインターフェイスへの有効なポインタを提供すると仮定すると、
リソースマネージャ70はそのインターフェイスのGetTransactionメソッドを呼
出して、MTSコンポーネントがそれのために作業を行なうトランザクションを
表わすTransactionオブジェクト78へのポインタを得る。ステップ156にお
いて、このメソッドの結果が調べられ、Transactionオブジェクト78が突き止
められたかどうかが判定される。もしそうでない場合には、リソースマネージャ
70はMTSコンポーネント54をトランザクションではないものとして扱い、
ステップ158に示すように、XATMI ase_flagをTPNOTRANにセ
ットし、CRM記録の*TransObjフィールドをNULLにセットする。これはス
テップ142および150と同様である。ステップ160において、制御は図8
Aのステップ122に戻る。
【0123】 しかし、ステップ156において有効なステータスが戻された場合には、制御
はステップ162に渡される。ステップ162において、リソースマネージャは
Transactionオブジェクト78のITransactionインターフェイスのGetTransactio
nInfoメソッドを呼出して、そのトランザクションに関する情報を得る。特定的
には、この情報は、MTSによってそのトランザクションに割当てられるGUI
Dを含む。加えて、リソースマネージャ70は、これがトランザクションリクエ
ストであることを示すように、XATMI ase_flagをTPTRANにセット
する。
はステップ162に渡される。ステップ162において、リソースマネージャは
Transactionオブジェクト78のITransactionインターフェイスのGetTransactio
nInfoメソッドを呼出して、そのトランザクションに関する情報を得る。特定的
には、この情報は、MTSによってそのトランザクションに割当てられるGUI
Dを含む。加えて、リソースマネージャ70は、これがトランザクションリクエ
ストであることを示すように、XATMI ase_flagをTPTRANにセット
する。
【0124】 次に、ステップ164において、現時点におけるXATMIサービスリクエス
トがトランザクションの第1のブランチを表わすものと想定すると、リソースマ
ネージャ70はステップ162において得られたGUIDから、そのブランチの
ためのAAID/BRIDの組合せを生成する。これは上述の方法によって行な
われる。AAID/BRIDはその後、OSI TPプロトコルマシン68内の
トランザクションおよびその現時点におけるブランチを識別するのに使用される
。もしこれがトランザクションの第1のブランチでない場合には、リソースマネ
ージャ70はその内部表をサーチすることによって、このトランザクションのた
めの先に生成されたAAIDを見つけるであろう。それでも、リソースマネージ
ャ70はやはり、そのブランチのための一意のブランチサフィックス(BRID
)を生成するであろう。
トがトランザクションの第1のブランチを表わすものと想定すると、リソースマ
ネージャ70はステップ162において得られたGUIDから、そのブランチの
ためのAAID/BRIDの組合せを生成する。これは上述の方法によって行な
われる。AAID/BRIDはその後、OSI TPプロトコルマシン68内の
トランザクションおよびその現時点におけるブランチを識別するのに使用される
。もしこれがトランザクションの第1のブランチでない場合には、リソースマネ
ージャ70はその内部表をサーチすることによって、このトランザクションのた
めの先に生成されたAAIDを見つけるであろう。それでも、リソースマネージ
ャ70はやはり、そのブランチのための一意のブランチサフィックス(BRID
)を生成するであろう。
【0125】 ステップ168において、Transactionオブジェクト78へのポインタが、C
RM記録の*TransObjフィールド内に記憶される。制御はその後、図8Aのステ
ップ122に戻る。
RM記録の*TransObjフィールド内に記憶される。制御はその後、図8Aのステ
ップ122に戻る。
【0126】 図8Aを再び参照して、ステップ122において、リソースマネージャ70は
CheckTrans手続きが適正に実行されたことを確認する。もしエラーが生じた場合
には、制御はステップ124に渡され、ステップ124においてTPESYST
EMエラーが報告される。もしエラーが生じなかった場合には、制御はステップ
126に渡される。
CheckTrans手続きが適正に実行されたことを確認する。もしエラーが生じた場合
には、制御はステップ124に渡され、ステップ124においてTPESYST
EMエラーが報告される。もしエラーが生じなかった場合には、制御はステップ
126に渡される。
【0127】 MTSコンポーネント54がトランザクションであるとCheckTrans手続きにお
いて判定された場合には、制御はステップ126からステップ128に渡される
。ステップ128において、現時点におけるブランチの状態がXTR_DIAG
ACTに変更される。これは、その対応の値をそのブランチのためのCRM記録
のtxstateフィールド内に記憶することによって行なわれる。MTSコンポーネ
ントがトランザクションであると判定されなかった場合には、制御は直接、ステ
ップ130に渡される。
いて判定された場合には、制御はステップ126からステップ128に渡される
。ステップ128において、現時点におけるブランチの状態がXTR_DIAG
ACTに変更される。これは、その対応の値をそのブランチのためのCRM記録
のtxstateフィールド内に記憶することによって行なわれる。MTSコンポーネ
ントがトランザクションであると判定されなかった場合には、制御は直接、ステ
ップ130に渡される。
【0128】 ステップ130において、リソースマネージャ70は、受取ったXATMIサ
ービスリクエスト(すなわち、この例ではtpcall)に対応するOSI TPサー
ビスリクエストをOSI TPプロトコルマシン68に処理させるようにするた
めに、OSI TPサービスインターフェイス論理に対する適切なコールを設定
する。本実施例においては、OSI TPサービスインターフェイス論理88が
同時係属中の出願連続番号第09/020,213号に説明されるHPTPXイ
ンターフェイスを実装するが、この実施例においては、HPTPXインターフェ
イスの対応のサービスリクエストはhptpx_callcon_reqサービスリクエストで
ある。したがって、ステップ130において、リソースマネージャ70は適切な
パラメータでこのサービスリクエストを構築する。やはり、図6A〜6Dの状態
表におけるように、用語「HTP」は、本発明の好ましい実施例において用いら
れるOSI TPプロトコルマシンの、すなわち、同時係属中の特許出願連続番
号第09/020,213号において説明されるような修正されたOSI TP
プロトコルマシンの、特定的な実装を意味し、また、そのためのOSI TPサ
ービスインターフェイス論理88を実装する対応のHPTPXインターフェイス
を意味する。
ービスリクエスト(すなわち、この例ではtpcall)に対応するOSI TPサー
ビスリクエストをOSI TPプロトコルマシン68に処理させるようにするた
めに、OSI TPサービスインターフェイス論理に対する適切なコールを設定
する。本実施例においては、OSI TPサービスインターフェイス論理88が
同時係属中の出願連続番号第09/020,213号に説明されるHPTPXイ
ンターフェイスを実装するが、この実施例においては、HPTPXインターフェ
イスの対応のサービスリクエストはhptpx_callcon_reqサービスリクエストで
ある。したがって、ステップ130において、リソースマネージャ70は適切な
パラメータでこのサービスリクエストを構築する。やはり、図6A〜6Dの状態
表におけるように、用語「HTP」は、本発明の好ましい実施例において用いら
れるOSI TPプロトコルマシンの、すなわち、同時係属中の特許出願連続番
号第09/020,213号において説明されるような修正されたOSI TP
プロトコルマシンの、特定的な実装を意味し、また、そのためのOSI TPサ
ービスインターフェイス論理88を実装する対応のHPTPXインターフェイス
を意味する。
【0129】 ステップ132において、hptpx_callcon_reqが、HPTPXインターフェ
イス88を介してOSI TPプロトコルマシン68に対して発行される。OS
I TPプロトコルマシン68はこのリクエストを処理して、そのブランチのた
めに構築された接続を介して遠隔サーバ60に対して伝送する。
イス88を介してOSI TPプロトコルマシン68に対して発行される。OS
I TPプロトコルマシン68はこのリクエストを処理して、そのブランチのた
めに構築された接続を介して遠隔サーバ60に対して伝送する。
【0130】 次に、ステップ134において、リソースマネージャ70は自動的に、MTS
コンポーネント54の代わりに、遠隔サーバ60から伝送された応答を受信する
ために、XATMIサービスリクエストtpgetrply()を発行する。その後、相
互接続64は、入力スレッド104上を遠隔サーバ60から応答が入来するのを
待つ。その応答はその後、OSI TPプロトコルマシン68を介して伝搬され
て、リソースマネージャ70に戻される。図8Cは、tpgetrplyが発行された後
に行なわれるステップをより詳細に示す。
コンポーネント54の代わりに、遠隔サーバ60から伝送された応答を受信する
ために、XATMIサービスリクエストtpgetrply()を発行する。その後、相
互接続64は、入力スレッド104上を遠隔サーバ60から応答が入来するのを
待つ。その応答はその後、OSI TPプロトコルマシン68を介して伝搬され
て、リソースマネージャ70に戻される。図8Cは、tpgetrplyが発行された後
に行なわれるステップをより詳細に示す。
【0131】 図8Cを参照して、ステップ172において、リソースマネージャ70のXA
TMIインターフェイスロジック72が、受信されることが予期されるデータの
長さ、タイプ/サブタイプおよび記述子に関する情報を得る。ステップ174に
おいて、XATMIインターフェイスロジック72は、それがXATMI仕様に
よって要求される、データを受信するのに適切な状態にあることを確認する。も
しXATMIインターフェイスロジック72が適切な状態にない場合には、ステ
ップ176においてエラーが報告される。XATMIインターフェイスロジック
72の状態が正しい場合には、制御はステップ178に渡される。
TMIインターフェイスロジック72が、受信されることが予期されるデータの
長さ、タイプ/サブタイプおよび記述子に関する情報を得る。ステップ174に
おいて、XATMIインターフェイスロジック72は、それがXATMI仕様に
よって要求される、データを受信するのに適切な状態にあることを確認する。も
しXATMIインターフェイスロジック72が適切な状態にない場合には、ステ
ップ176においてエラーが報告される。XATMIインターフェイスロジック
72の状態が正しい場合には、制御はステップ178に渡される。
【0132】 ステップ178において、XATMIインターフェイスロジックは、応答デー
タがこのブランチのためのCRM記録内に特定されるmsg_qバッファ内に受取ら
れるのを待つ。メッセージが受取られると、そのメッセージはmsg_qバッファの
待ち行列から外される。その後、XATMIインターフェイスロジック72はス
テップ180において受信されたXATMIデータをデコードし、エラーが生じ
ない場合には、その状態を、XATMI仕様内に特定されるように更新する。エ
ラーが生じた場合には、そのエラーがステップ182において報告される。エラ
ーが何ら生じなかったと想定し、かつ、XATMI状態がステップ184で更新
されたと仮定すると、制御はステップ186に渡され、ステップ186において
リソースマネージャ70がCRM記録内のsvcnameフィールドを更新する。その
後制御はステップ188に渡される。
タがこのブランチのためのCRM記録内に特定されるmsg_qバッファ内に受取ら
れるのを待つ。メッセージが受取られると、そのメッセージはmsg_qバッファの
待ち行列から外される。その後、XATMIインターフェイスロジック72はス
テップ180において受信されたXATMIデータをデコードし、エラーが生じ
ない場合には、その状態を、XATMI仕様内に特定されるように更新する。エ
ラーが生じた場合には、そのエラーがステップ182において報告される。エラ
ーが何ら生じなかったと想定し、かつ、XATMI状態がステップ184で更新
されたと仮定すると、制御はステップ186に渡され、ステップ186において
リソースマネージャ70がCRM記録内のsvcnameフィールドを更新する。その
後制御はステップ188に渡される。
【0133】 ステップ188において、リソースマネージャ70は、MS DTC56から
ブランチに対する実行命令を受取るために、そのブランチをMS DTC56に
エンリストする。特定的には、リソースマネージャ70は、MTSコンポーネン
ト54に関連するエクスポートオブジェクトを使用して、Transactionオブジェ
クト78からトランザクションに関する情報を得る。この情報は、トランザクシ
ョンクッキーの形で渡される。この情報が一旦受信されると、リソースマネージ
ャ70はそのブランチのためのCTransactionResourceAsyncオブジェクト76を
生成し、CTransactionResourceAsyncオブジェクト76のInitメソッドを呼出し
(これにより、ブランチのcrm_idがオブジェクト内に記憶されるようになる)
、IResourceManagerオブジェクト108のEnlistメソッドを呼出して、MS D
TC56に対して、CTransactionResourceAsyncオブジェクト76のITransactio
nResourceAsyncインターフェイスへのポインタおよびTransactionオブジェクト
78へのポインタの両方を渡す。MS DTC56は、そのエンリストントデュ
ーティの一部として、そのブランチのためのEnlistmentオブジェクト80を生成
して、そのオブジェクトのITransactionEnlistmentAsyncインターフェイスへの
ポインタを、リソースマネージャ70に返す。したがって、このコンテキストに
おいて使用される用語「エンリスト」は、リソースマネージャ70がそれによっ
て関連のトランザクションマネージャ、この場合にはMS DTC56に対して
、そのブランチがグローバルトランザクションの一部であること、および、リソ
ースマネージャ56がそのトランザクションに関連する後続のアクティビティ(
たとえば、準備、実行、放棄等)を知らされることを必要としていることを通知
する、手段を表わす。リソースマネージャ70は、CRM記録の*EnlistObj、
*ExportObjおよび*TransCookieフィールド内に、このプロセスに関わるオブジ
ェクトへのポインタを記憶する。エラーが生じた場合には、それがステップ19
1において報告される。そうでなければ、制御はステップ192に渡される。
ブランチに対する実行命令を受取るために、そのブランチをMS DTC56に
エンリストする。特定的には、リソースマネージャ70は、MTSコンポーネン
ト54に関連するエクスポートオブジェクトを使用して、Transactionオブジェ
クト78からトランザクションに関する情報を得る。この情報は、トランザクシ
ョンクッキーの形で渡される。この情報が一旦受信されると、リソースマネージ
ャ70はそのブランチのためのCTransactionResourceAsyncオブジェクト76を
生成し、CTransactionResourceAsyncオブジェクト76のInitメソッドを呼出し
(これにより、ブランチのcrm_idがオブジェクト内に記憶されるようになる)
、IResourceManagerオブジェクト108のEnlistメソッドを呼出して、MS D
TC56に対して、CTransactionResourceAsyncオブジェクト76のITransactio
nResourceAsyncインターフェイスへのポインタおよびTransactionオブジェクト
78へのポインタの両方を渡す。MS DTC56は、そのエンリストントデュ
ーティの一部として、そのブランチのためのEnlistmentオブジェクト80を生成
して、そのオブジェクトのITransactionEnlistmentAsyncインターフェイスへの
ポインタを、リソースマネージャ70に返す。したがって、このコンテキストに
おいて使用される用語「エンリスト」は、リソースマネージャ70がそれによっ
て関連のトランザクションマネージャ、この場合にはMS DTC56に対して
、そのブランチがグローバルトランザクションの一部であること、および、リソ
ースマネージャ56がそのトランザクションに関連する後続のアクティビティ(
たとえば、準備、実行、放棄等)を知らされることを必要としていることを通知
する、手段を表わす。リソースマネージャ70は、CRM記録の*EnlistObj、
*ExportObjおよび*TransCookieフィールド内に、このプロセスに関わるオブジ
ェクトへのポインタを記憶する。エラーが生じた場合には、それがステップ19
1において報告される。そうでなければ、制御はステップ192に渡される。
【0134】 ステップ192において、ステップ178においてmsg_qバッファの待ち行列
から外された応答データが、MTSコンポーネント54がそのtpcall()を発行
したときにMTSコンポーネント54によって特定されたバッファに渡される。
ステップ194において、制御は図8Aのステップ136に戻され、このステッ
プ136において、このブランチの処理のこの部分が完了する。その後、制御は
図7のステップ110に戻り、ステップ110において、相互接続64はMTS
コンポーネント54がSetComplete()を発行するのを待つ。
から外された応答データが、MTSコンポーネント54がそのtpcall()を発行
したときにMTSコンポーネント54によって特定されたバッファに渡される。
ステップ194において、制御は図8Aのステップ136に戻され、このステッ
プ136において、このブランチの処理のこの部分が完了する。その後、制御は
図7のステップ110に戻り、ステップ110において、相互接続64はMTS
コンポーネント54がSetComplete()を発行するのを待つ。
【0135】 2.実行処理 図7を簡単に参照して、実行処理は、ステップ112に示すように、MTSコ
ンポーネント54がSetComplete()リクエストを発行したときに開始される。
具体的には、MTSコンポーネント54は、そのコンテキストオブジェクトのIO
bjectContextインターフェイスのSetComplete()メソッドを呼出す。これは、
MS DTC56に対して、MTSコンポーネント54が、クライアントアプリ
ケーション54によって実行するよう要求された作業をすべて完了したことを知
らせる。
ンポーネント54がSetComplete()リクエストを発行したときに開始される。
具体的には、MTSコンポーネント54は、そのコンテキストオブジェクトのIO
bjectContextインターフェイスのSetComplete()メソッドを呼出す。これは、
MS DTC56に対して、MTSコンポーネント54が、クライアントアプリ
ケーション54によって実行するよう要求された作業をすべて完了したことを知
らせる。
【0136】 図9A〜9Iは、SetComplete()の発行後の、本発明の相互接続64の動作
に関するさらなる詳細、および、本発明のメソッドの好ましい実施例のさらなる
詳細を提供する。特定的には、図9A〜9Iは、上述の図8A〜8Cのステップ
において開始されたトランザクションブランチのために行なわれる処理を示す。
に関するさらなる詳細、および、本発明のメソッドの好ましい実施例のさらなる
詳細を提供する。特定的には、図9A〜9Iは、上述の図8A〜8Cのステップ
において開始されたトランザクションブランチのために行なわれる処理を示す。
【0137】 図9Aを参照して、ステップ200において、MS DTC56は、MTSコ
ンポーネント54によって発行されたSetCompelete()を横取りする。ステップ
202においてMS DTC56は、そのブランチのCTransactionResourceAsyn
cオブジェクト76のPrepareRequestメソッドを呼出すことによって、準備命令
を発行する。ステップ204において、リソースマネージャ70は、PrepareReq
uestメソッドのプログラムコードの一部として、そのブランチのためのCRM記
録のtxstateフィールドをチェックして、そのブランチがMS DTCにエンリ
ストされているかどうかを判定する。もしされていれば、制御はステップ210
に渡され、ステップ210において、状態がPREPARINGに変更される。
ステップ212において、ic_prepareイベントがARP96の待ち行列に入れ
られる。このic_prepareイベントは、リソースマネージャ70の動作を制御す
る状態表(図6Cを参照)において規定されるイベントのうちの1つである。ic
_prepareイベントに関連して生じる処理の詳細を以下に提供する。ステップ2
14において、実行の準備フェーズが終了する。
ンポーネント54によって発行されたSetCompelete()を横取りする。ステップ
202においてMS DTC56は、そのブランチのCTransactionResourceAsyn
cオブジェクト76のPrepareRequestメソッドを呼出すことによって、準備命令
を発行する。ステップ204において、リソースマネージャ70は、PrepareReq
uestメソッドのプログラムコードの一部として、そのブランチのためのCRM記
録のtxstateフィールドをチェックして、そのブランチがMS DTCにエンリ
ストされているかどうかを判定する。もしされていれば、制御はステップ210
に渡され、ステップ210において、状態がPREPARINGに変更される。
ステップ212において、ic_prepareイベントがARP96の待ち行列に入れ
られる。このic_prepareイベントは、リソースマネージャ70の動作を制御す
る状態表(図6Cを参照)において規定されるイベントのうちの1つである。ic
_prepareイベントに関連して生じる処理の詳細を以下に提供する。ステップ2
14において、実行の準備フェーズが終了する。
【0138】 ステップ204において、現時点におけるブランチがENLISTED状態に
ないと判定された場合には、そのブランチはABORTING状態である可能性
が非常に高く、このことは、OSI TPプロトコルマシン68がこのトランザ
クションをアボートする処理にあることを示す。このブランチがENLISTE
D状態でもABORTING状態でもない場合には、何らかのエラーが生じたと
考えられるために、そのブランチはステップ208において、強制的にABOR
TING状態にされる。制御はその後、ステップ212に渡される。ステップ2
12において、ic_prepareイベントは未だARP96の待ち行列に入れられて
いるが、ブランチの状態はこの場合、PREPARINGに変更されていないで
あろう。
ないと判定された場合には、そのブランチはABORTING状態である可能性
が非常に高く、このことは、OSI TPプロトコルマシン68がこのトランザ
クションをアボートする処理にあることを示す。このブランチがENLISTE
D状態でもABORTING状態でもない場合には、何らかのエラーが生じたと
考えられるために、そのブランチはステップ208において、強制的にABOR
TING状態にされる。制御はその後、ステップ212に渡される。ステップ2
12において、ic_prepareイベントは未だARP96の待ち行列に入れられて
いるが、ブランチの状態はこの場合、PREPARINGに変更されていないで
あろう。
【0139】 図9Bは、図6A〜6Dの状態表に規定される、ic_prepareイベントに関連
して行なわれるステップを図示する。これらのステップは、相互接続64の、リ
ソースマネージャ70とは別個のプロセスとして実行される接続マネージャ66
によって行なわれる。そのために、ARP96を用いることが必要となる。ステ
ップ218において、ARP96はic_prepareイベントを待ち行列から外し、
そのイベントに関連するステップの実行(すなわち、アクション)がステップ2
20において開始される。
して行なわれるステップを図示する。これらのステップは、相互接続64の、リ
ソースマネージャ70とは別個のプロセスとして実行される接続マネージャ66
によって行なわれる。そのために、ARP96を用いることが必要となる。ステ
ップ218において、ARP96はic_prepareイベントを待ち行列から外し、
そのイベントに関連するステップの実行(すなわち、アクション)がステップ2
20において開始される。
【0140】 ステップ220において、接続マネージャ66は、このブランチのためのCR
M記録のtxstateフィールドから、そのブランチがPREPARING状態にあ
るかどうかを判定する。もしそうでなければ、ステップ222において、Prepar
eDone手続きが実行され、その後、endccr手続きが実行される。その両方につい
て以下により詳細に説明する。
M記録のtxstateフィールドから、そのブランチがPREPARING状態にあ
るかどうかを判定する。もしそうでなければ、ステップ222において、Prepar
eDone手続きが実行され、その後、endccr手続きが実行される。その両方につい
て以下により詳細に説明する。
【0141】 ステップ220において、ブランチが実際にPREPARING状態であると
判定された場合には、制御はステップ226に渡される。ステップ226におい
て、OSI TPサービスインターフェイス88のhptpx_prepare_reqリクエ
ストがOSI TPプロトコルマシン68に対して発行される。このステップは
、MS DTC準備命令をOSI TPプロトコルマシン68の対応のサービス
リクエストに変換することを表わす。ここで、上述した内容から、好ましい実施
例においてはOSI TPサービスインターフェイス88およびOSI TPプ
ロトコルマシン68がそれぞれ、同時係属中の出願連続番号第09/020,2
13号に説明されたHPTPXインターフェイスおよび修正されたOSI TP
プロトコルマシンを用いて実装されていることを思い起こされたい。hptpx_pre
pare_reqリクエストは、そこに説明されているHPTPXインターフェイスの
サービスプリミティブのうちの1つである。
判定された場合には、制御はステップ226に渡される。ステップ226におい
て、OSI TPサービスインターフェイス88のhptpx_prepare_reqリクエ
ストがOSI TPプロトコルマシン68に対して発行される。このステップは
、MS DTC準備命令をOSI TPプロトコルマシン68の対応のサービス
リクエストに変換することを表わす。ここで、上述した内容から、好ましい実施
例においてはOSI TPサービスインターフェイス88およびOSI TPプ
ロトコルマシン68がそれぞれ、同時係属中の出願連続番号第09/020,2
13号に説明されたHPTPXインターフェイスおよび修正されたOSI TP
プロトコルマシンを用いて実装されていることを思い起こされたい。hptpx_pre
pare_reqリクエストは、そこに説明されているHPTPXインターフェイスの
サービスプリミティブのうちの1つである。
【0142】 エラーが生じなかった場合には、準備要求がOSI TPプロトコルマシン6
8によって遠隔サーバ60に対して適正に発行されたことを意味する。したがっ
て、ステップ234に示すとおりic_prepareイベントは完了する。そこで、O
SI TPプロトコルマシン68は、遠隔サーバ60からのレディ表示を待つ。
しかし、エラーがステップ228において検出された場合には、制御はステップ
230に渡される。ステップ230においては、PrepareDone手続きが実行され
、その後、endccr手続きが実行される(ステップ232)。その両方については
以下に説明する。
8によって遠隔サーバ60に対して適正に発行されたことを意味する。したがっ
て、ステップ234に示すとおりic_prepareイベントは完了する。そこで、O
SI TPプロトコルマシン68は、遠隔サーバ60からのレディ表示を待つ。
しかし、エラーがステップ228において検出された場合には、制御はステップ
230に渡される。ステップ230においては、PrepareDone手続きが実行され
、その後、endccr手続きが実行される(ステップ232)。その両方については
以下に説明する。
【0143】 図9Cは、OSI TPプロトコルマシン68が遠隔サーバ60から、その遠
隔サーバ60上のリソースがその作業を実行するよう準備されていることを示す
、hptpx_ready表示を受信した後に、接続マネージャ66が実行する処理を示す
。すべてが適正に作動している場合には、ブランチはPREPARING状態に
あるはずであり、制御はしたがって、ステップ238からステップ244に渡さ
れる。ステップ244において、そのブランチのためのCRM記録のtxstateフ
ィールドがPREPAREDに設定される。その後、ステップ248において、
PrepareDone手続きが、準備がそれまで正常に実行されていることを示す(すな
わち、ステータスが「良好」である)パラメータとともに呼出される。
隔サーバ60上のリソースがその作業を実行するよう準備されていることを示す
、hptpx_ready表示を受信した後に、接続マネージャ66が実行する処理を示す
。すべてが適正に作動している場合には、ブランチはPREPARING状態に
あるはずであり、制御はしたがって、ステップ238からステップ244に渡さ
れる。ステップ244において、そのブランチのためのCRM記録のtxstateフ
ィールドがPREPAREDに設定される。その後、ステップ248において、
PrepareDone手続きが、準備がそれまで正常に実行されていることを示す(すな
わち、ステータスが「良好」である)パラメータとともに呼出される。
【0144】 ブランチがPREPARING状態にない場合には、何らかのエラーが生じた
ことを意味する。ブランチがFINITO状態にある場合には、制御はステップ
236からステップ242に渡される。ステップ242において、endccr手続き
が呼出される。ブランチがABORTING状態にある場合には、PrepareDone
手続きが、エラーが生じたことを示すパラメータとともに呼出される。準備のプ
ロセスはステップ250において終了する。
ことを意味する。ブランチがFINITO状態にある場合には、制御はステップ
236からステップ242に渡される。ステップ242において、endccr手続き
が呼出される。ブランチがABORTING状態にある場合には、PrepareDone
手続きが、エラーが生じたことを示すパラメータとともに呼出される。準備のプ
ロセスはステップ250において終了する。
【0145】 図9Dは、PrepareDone手続きのステップを示す。ステップ252において、
このブランチに対してEnlistmentオブジェクト80が存在するかどうかが判定さ
れる。Enlistmentオブジェクト80が存在する場合には、そのオブジェクトへの
ポインタが、CRM記録の*EnlistObjフィールド内に記憶される。Enlistment
オブジェクトが存在しない場合には、実行処理を続ける必要がなく、したがって
、制御はステップ254において呼出側スレッドに戻される。
このブランチに対してEnlistmentオブジェクト80が存在するかどうかが判定さ
れる。Enlistmentオブジェクト80が存在する場合には、そのオブジェクトへの
ポインタが、CRM記録の*EnlistObjフィールド内に記憶される。Enlistment
オブジェクトが存在しない場合には、実行処理を続ける必要がなく、したがって
、制御はステップ254において呼出側スレッドに戻される。
【0146】 ステップ252において、Enlistmentオブジェクト80が存在すると判定され
た場合には、制御はステップ256に渡される。ステップ256においては、Pr
epareDone手続き内に手渡されたステータスパラメータが評価される。ステータ
スが「良好」である場合には、制御はステップ256に渡される。ステータスが
「良好」以外である場合には、制御はステップ266に渡され、そこで、Enlist
mentオブジェクト80のITransactionEnlistmentAsyncインターフェイスのPrepa
reRequestDoneメソッドが呼出される。このステータスは、準備命令がうまく完
了しなかったことをMS DTCに知らせる、そのメソッドへのパラメータとし
て提供される。その後、PrepareDone手続きがステップ268でリターンする。
た場合には、制御はステップ256に渡される。ステップ256においては、Pr
epareDone手続き内に手渡されたステータスパラメータが評価される。ステータ
スが「良好」である場合には、制御はステップ256に渡される。ステータスが
「良好」以外である場合には、制御はステップ266に渡され、そこで、Enlist
mentオブジェクト80のITransactionEnlistmentAsyncインターフェイスのPrepa
reRequestDoneメソッドが呼出される。このステータスは、準備命令がうまく完
了しなかったことをMS DTCに知らせる、そのメソッドへのパラメータとし
て提供される。その後、PrepareDone手続きがステップ268でリターンする。
【0147】 ステータスが「良好」である場合には、ステップ258において、QueryInter
face()メソッドが呼出されて、Enlistmentオブジェクト80のIPrepareInfoイ
ンターフェイスへの参照が得られる。次に、ステップ260において、IPrepare
InfoインターフェイスのGetPrepareInfoSizeメソッドが呼出されて、MS DT
C56がこのブランチのために生成した、PrepareInfo構造のサイズの表示が得
られる。ステップ262において、このブランチのためのログ記録のために安全
な記憶装置を割当てるための手続きが呼出される。次に、ステップ264におい
て、Enlistmentオブジェクト80のGetPrepareInfoメソッドが呼出されて、MS
DTC56からこのブランチのためのPrepareInfo構造が得られる。一旦得ら
れると、このPrepareInfo構造、そのサイズの表示および、OSI TPの回復
のために必要とされる回復関連情報がすべて、このブランチに割当てられたログ
記録内に併せて記憶される。このブランチのためのCRM記録へのポインタであ
るcrm_idもまた、このログ記録内に記憶される。このログ記録はしたがって、
1つの記録内に、MTS環境およびOSI TPプロトコルマシン68の両方に
おいて回復のために必要とされるすべての情報を含む。このログ記録へのポイン
タは、CRM記録の*log_recフィールド内に記憶される。ステップ266にお
いて、Enlistmentオブジェクト80のPrepareRequestDoneメソッドが呼出されて
、MS DTC56に対して、その準備命令がうまく完了したことが知らされる
。ステータス(「良好」)がこのメソッドとともに渡される。処理はその後ステ
ップ268でリターンする。
face()メソッドが呼出されて、Enlistmentオブジェクト80のIPrepareInfoイ
ンターフェイスへの参照が得られる。次に、ステップ260において、IPrepare
InfoインターフェイスのGetPrepareInfoSizeメソッドが呼出されて、MS DT
C56がこのブランチのために生成した、PrepareInfo構造のサイズの表示が得
られる。ステップ262において、このブランチのためのログ記録のために安全
な記憶装置を割当てるための手続きが呼出される。次に、ステップ264におい
て、Enlistmentオブジェクト80のGetPrepareInfoメソッドが呼出されて、MS
DTC56からこのブランチのためのPrepareInfo構造が得られる。一旦得ら
れると、このPrepareInfo構造、そのサイズの表示および、OSI TPの回復
のために必要とされる回復関連情報がすべて、このブランチに割当てられたログ
記録内に併せて記憶される。このブランチのためのCRM記録へのポインタであ
るcrm_idもまた、このログ記録内に記憶される。このログ記録はしたがって、
1つの記録内に、MTS環境およびOSI TPプロトコルマシン68の両方に
おいて回復のために必要とされるすべての情報を含む。このログ記録へのポイン
タは、CRM記録の*log_recフィールド内に記憶される。ステップ266にお
いて、Enlistmentオブジェクト80のPrepareRequestDoneメソッドが呼出されて
、MS DTC56に対して、その準備命令がうまく完了したことが知らされる
。ステータス(「良好」)がこのメソッドとともに渡される。処理はその後ステ
ップ268でリターンする。
【0148】 図9Eおよび9Fは、相互接続64がMS DTC56から実行命令を受取っ
たとき、すなわち、MS DTC56がCTransactionResorceAsyncオブジェクト
76のCommitRequestメソッドを呼出したときに行なわれる処理を図示する。図
9Eを参照して、ステップ270において、リソースマネージャ70はブランチ
の状態をCOMMITINGに変更する。CRM記録のtxstateフィールドは、
この変更を反映するよう更新される。ステップ272において、図6A〜6Dの
状態表において規定されるic_commitイベントが、ARP96の待ち行列に入れ
られる。図9Fを参照して、ステップ274において、このic_commitイベント
がARP96の待ち行列から外される。ステップ276は、このic_commitイベ
ントのために行なわれるべきアクションを含む。図示されるように、hptpx_com
mit_reqが、OSI TPサービスインターフェイス論理88に対して発行され
る(この実施例において論理88は、上述のHPTPXインターフェイスを含む
)。このステップは、MS DTC実行命令(CommitRequest)を、対応するO
SI TPサービスリクエストに変換することを表わす。特定的に、hptpx_com
mit_reqサービスリクエストは、HPTPXインターフェイス論理88によって
、OSI TPプロトコル仕様の対応のサービスプリミティブにマップされる。
その後、OSI TPプロトコルマシン68はこのサービスリクエストを、OS
I TPプロトコル仕様に従って、遠隔システム60に通信する。この時点にお
いて、OSI TPプロトコルマシン68は、遠隔サーバ60からの、OSI
TP実行要求がうまく完了したことを示す表示(hptpx_commit_complete)を
待つ。
たとき、すなわち、MS DTC56がCTransactionResorceAsyncオブジェクト
76のCommitRequestメソッドを呼出したときに行なわれる処理を図示する。図
9Eを参照して、ステップ270において、リソースマネージャ70はブランチ
の状態をCOMMITINGに変更する。CRM記録のtxstateフィールドは、
この変更を反映するよう更新される。ステップ272において、図6A〜6Dの
状態表において規定されるic_commitイベントが、ARP96の待ち行列に入れ
られる。図9Fを参照して、ステップ274において、このic_commitイベント
がARP96の待ち行列から外される。ステップ276は、このic_commitイベ
ントのために行なわれるべきアクションを含む。図示されるように、hptpx_com
mit_reqが、OSI TPサービスインターフェイス論理88に対して発行され
る(この実施例において論理88は、上述のHPTPXインターフェイスを含む
)。このステップは、MS DTC実行命令(CommitRequest)を、対応するO
SI TPサービスリクエストに変換することを表わす。特定的に、hptpx_com
mit_reqサービスリクエストは、HPTPXインターフェイス論理88によって
、OSI TPプロトコル仕様の対応のサービスプリミティブにマップされる。
その後、OSI TPプロトコルマシン68はこのサービスリクエストを、OS
I TPプロトコル仕様に従って、遠隔システム60に通信する。この時点にお
いて、OSI TPプロトコルマシン68は、遠隔サーバ60からの、OSI
TP実行要求がうまく完了したことを示す表示(hptpx_commit_complete)を
待つ。
【0149】 図9Gは、OSI TPプロトコルマシン68が遠隔サーバ60からhptpx_c
ommit_complete表示を受取ったときに実行されるステップを示す。ステップ2
78および280において、相互接続64は、ブランチがCOMMITING状
態にあるかRECOVERING状態にあるかを判定する。両方の状態が有効で
ある。というのも、正常な実行が行なわれている場合にも、実行要求が相互接続
64がその回復プロセス(以下に説明する)を開始した後に受取られた場合にも
、同じ後続のステップが実行されるためである。ブランチがこれらの状態のいず
れにもない場合には、制御はステップ282に渡され、そこで、エラーが記録さ
れて実行処理が終了する。
ommit_complete表示を受取ったときに実行されるステップを示す。ステップ2
78および280において、相互接続64は、ブランチがCOMMITING状
態にあるかRECOVERING状態にあるかを判定する。両方の状態が有効で
ある。というのも、正常な実行が行なわれている場合にも、実行要求が相互接続
64がその回復プロセス(以下に説明する)を開始した後に受取られた場合にも
、同じ後続のステップが実行されるためである。ブランチがこれらの状態のいず
れにもない場合には、制御はステップ282に渡され、そこで、エラーが記録さ
れて実行処理が終了する。
【0150】 ブランチがCOMMITING状態またはRECOVERING状態のいずれ
かにあると仮定すると、制御はステップ284に渡される。実行は、ブランチの
ための処理の完了を表わすので、そのブランチの状態はFINITOにセットさ
れる。次に、ステップ286において、CommitDone手続きが呼出される。
かにあると仮定すると、制御はステップ284に渡される。実行は、ブランチの
ための処理の完了を表わすので、そのブランチの状態はFINITOにセットさ
れる。次に、ステップ286において、CommitDone手続きが呼出される。
【0151】 図9Hは、CommitDone手続きによって行なわれるステップを示す。ステップ2
94において、ログ記録に対する安全な記憶装置の割当を解除する手続きが呼出
される。ログ記録はもはや必要ではない。なぜなら、遠隔サーバ60において実
行がうまく完了したためである。ステップ296において、ブランチの状態が調
べられる。ブランチがRECOVERING状態にない場合には、制御はステッ
プ298に渡される。ステップ298において、手続きは、このブランチに対し
てEnlistmentオブジェクト80が存在するかどうかを調べる。もし存在しない場
合には、手続きは終了する。Enlistmentオブジェクト80が存在する場合には、
制御はステップ304に渡される。
94において、ログ記録に対する安全な記憶装置の割当を解除する手続きが呼出
される。ログ記録はもはや必要ではない。なぜなら、遠隔サーバ60において実
行がうまく完了したためである。ステップ296において、ブランチの状態が調
べられる。ブランチがRECOVERING状態にない場合には、制御はステッ
プ298に渡される。ステップ298において、手続きは、このブランチに対し
てEnlistmentオブジェクト80が存在するかどうかを調べる。もし存在しない場
合には、手続きは終了する。Enlistmentオブジェクト80が存在する場合には、
制御はステップ304に渡される。
【0152】 ステップ304において、Enlistmentオブジェクト80のCommitRequestDone
メソッドが呼出されて、MS DTCに対して、トランザクションのこのブラン
チがうまく実行されたことを知らせる。メソッドが正しく実行された場合(ステ
ップ306)、Enlistmentオブジェクト80がステップ308において解放され
る。それがもはや必要とされないためである。エラーが生じた場合には、Enlist
mentオブジェクト80が解放されることはなく、手続きがリターンする。
メソッドが呼出されて、MS DTCに対して、トランザクションのこのブラン
チがうまく実行されたことを知らせる。メソッドが正しく実行された場合(ステ
ップ306)、Enlistmentオブジェクト80がステップ308において解放され
る。それがもはや必要とされないためである。エラーが生じた場合には、Enlist
mentオブジェクト80が解放されることはなく、手続きがリターンする。
【0153】 ステップ296において、ブランチがRECOVERING状態にあると判定
された場合には、制御はステップ300に渡される。この場合、相互接続64は
障害からの回復を行なっており、障害の前に完了されなかったいずれのブランチ
の実行も完了しなくてはならない。total_remainingカウントは、不確かなブラ
ンチの数を反映する。このブランチの回復は、手続きのこの部分において完了さ
れるので、total_remainingカウントは、これを反映するようにステップ300
においてデクリメントされる。ステップ302において、CheckforReenlistment
Complete手続きが呼出される。この手続きは、total_remainingカウントを調べ
て、それがゼロに達した場合(すべての不確かなトランザクションが今やその実
行が完了されたことを示す場合)には、Resource Managerオブジェクト108の
ReenlistmentCompleteメソッドが呼出されて、MS DTC56に対して、再エ
ンリストメントおよび回復が完了したことが知らされる。CommitDone手続きはそ
の後リターンする。
された場合には、制御はステップ300に渡される。この場合、相互接続64は
障害からの回復を行なっており、障害の前に完了されなかったいずれのブランチ
の実行も完了しなくてはならない。total_remainingカウントは、不確かなブラ
ンチの数を反映する。このブランチの回復は、手続きのこの部分において完了さ
れるので、total_remainingカウントは、これを反映するようにステップ300
においてデクリメントされる。ステップ302において、CheckforReenlistment
Complete手続きが呼出される。この手続きは、total_remainingカウントを調べ
て、それがゼロに達した場合(すべての不確かなトランザクションが今やその実
行が完了されたことを示す場合)には、Resource Managerオブジェクト108の
ReenlistmentCompleteメソッドが呼出されて、MS DTC56に対して、再エ
ンリストメントおよび回復が完了したことが知らされる。CommitDone手続きはそ
の後リターンする。
【0154】 再び図9Gを参照して、CommitDone手続きがリターンする場合、制御はステッ
プ288に渡される。ステップ288において、相互接続は、Heuristicが実行
処理に関連して受信されたかどうかを判定する。Heuristicは、OSI TPプ
ロトコル仕様において特定されるステータス表示である。これは、遠隔サーバ6
0が実行中に検索し得たすべての異常を報告する。Heuristicが受信されなかっ
た場合には、制御はステップ292に渡され、そこで、endccr手続きが呼出され
る。Heuristicが受信された場合には、それがステップ290においてファイル
に書込まれ、その後、endccr手続きが呼出される。
プ288に渡される。ステップ288において、相互接続は、Heuristicが実行
処理に関連して受信されたかどうかを判定する。Heuristicは、OSI TPプ
ロトコル仕様において特定されるステータス表示である。これは、遠隔サーバ6
0が実行中に検索し得たすべての異常を報告する。Heuristicが受信されなかっ
た場合には、制御はステップ292に渡され、そこで、endccr手続きが呼出され
る。Heuristicが受信された場合には、それがステップ290においてファイル
に書込まれ、その後、endccr手続きが呼出される。
【0155】 図9Iは、endccr手続きによって実行されるステップを示す。この手続きは、
ブランチが実行またはアボートされた後にもはや必要とされなくなるリソースを
解放するのに使用される。ステップ310において、手続きはブランチの状態を
チェックする。その状態がPREPARED、COMMITING、またはAB
ORTING状態のいずれかであった場合には、ブランチに関連するリソースは
遠隔サーバ60からの表示を待っている。したがって、ブランチが未だそれらの
状態のうちの1つにあるときにendccr手続きに達した場合には、その手続きはス
テップ312において終了する。
ブランチが実行またはアボートされた後にもはや必要とされなくなるリソースを
解放するのに使用される。ステップ310において、手続きはブランチの状態を
チェックする。その状態がPREPARED、COMMITING、またはAB
ORTING状態のいずれかであった場合には、ブランチに関連するリソースは
遠隔サーバ60からの表示を待っている。したがって、ブランチが未だそれらの
状態のうちの1つにあるときにendccr手続きに達した場合には、その手続きはス
テップ312において終了する。
【0156】 もしブランチがこれらの状態のうちのいずれでもない場合には、制御はステッ
プ314に渡され、そこで、OSI TPプロトコルマシン68が未だにこのブ
ランチのための遠隔サーバに対する接続を維持しているかどうかが判定される。
もしそうであれば、制御はステップ316に渡され、そこで、hptpx_abort_re
qが発行されてその接続が終了される。次に、ステップ318において、ブラン
チの状態がFINITOでない場合には、そのブランチはステップ320におい
て強制的にABORTING状態にされ、手続きはステップ322においてリタ
ーンする。そのブランチがFINITO状態にある場合には、制御はステップ3
24に渡される。ステップ314において、OSI TPプロトコルマシン68
がこのブランチのための遠隔サーバ60に対する接続を適正に終了したと判定さ
れた場合にも、制御はステップ324に渡される。
プ314に渡され、そこで、OSI TPプロトコルマシン68が未だにこのブ
ランチのための遠隔サーバに対する接続を維持しているかどうかが判定される。
もしそうであれば、制御はステップ316に渡され、そこで、hptpx_abort_re
qが発行されてその接続が終了される。次に、ステップ318において、ブラン
チの状態がFINITOでない場合には、そのブランチはステップ320におい
て強制的にABORTING状態にされ、手続きはステップ322においてリタ
ーンする。そのブランチがFINITO状態にある場合には、制御はステップ3
24に渡される。ステップ314において、OSI TPプロトコルマシン68
がこのブランチのための遠隔サーバ60に対する接続を適正に終了したと判定さ
れた場合にも、制御はステップ324に渡される。
【0157】 ステップ324において、このブランチがトランザクションの一部であると判
定された場合には、ステップ326において、このブランチのためのGUID/
AAID/BRIDマッピングが解放される。ステップ328において、このブ
ランチのための応答データを維持するのに使用されたmsg_qバッファの割当が解
除される。ステップ330において、CRM記録が解放される。この手続きはス
テップ332において終了する。この時点において、このブランチのためのすべ
ての処理が完了したことになる。
定された場合には、ステップ326において、このブランチのためのGUID/
AAID/BRIDマッピングが解放される。ステップ328において、このブ
ランチのための応答データを維持するのに使用されたmsg_qバッファの割当が解
除される。ステップ330において、CRM記録が解放される。この手続きはス
テップ332において終了する。この時点において、このブランチのためのすべ
ての処理が完了したことになる。
【0158】 3.アボート処理 MS DTC56によって発行されるアボート命令は、図6A〜6Dの状態表
の制御の下、上述の実行命令の処理および調整と同様の方法で、相互接続64に
よって処理および調整される。MS DTC56はCTransactionResourceAsync
オブジェクト76のAbortRequestメソッドを使用して、リソースマネージャ70
に対してアボート要求命令を発行する。これは、ステートマシン(図6参照)に
おけるアボート要求(MTS)イベントの引き金となる。このイベントの処理の
一部として、および、本発明に従って、このアボート要求はリソースマネージャ
70によって、OSI TPサービスインターフェイス88のhptpx_rollback
_reqサービスリクエストに変換され、これが今度は、トランザクションブラン
チをアボートするための対応のOSI TPサービスリクエスト(rollback_re
q)を表わす。OSI TPプロトコルマシン68が遠隔サーバ60から、rollb
ack_reqがうまく完了したことを示す表示を受取ると、リソースマネージャ70
はMS DTC56に対して、EnlistmentオブジェクトのAbortRequestDoneメソ
ッドを呼出すことによって知らせる。アボート処理に関連するさらなる詳細は状
態表内に提供される。
の制御の下、上述の実行命令の処理および調整と同様の方法で、相互接続64に
よって処理および調整される。MS DTC56はCTransactionResourceAsync
オブジェクト76のAbortRequestメソッドを使用して、リソースマネージャ70
に対してアボート要求命令を発行する。これは、ステートマシン(図6参照)に
おけるアボート要求(MTS)イベントの引き金となる。このイベントの処理の
一部として、および、本発明に従って、このアボート要求はリソースマネージャ
70によって、OSI TPサービスインターフェイス88のhptpx_rollback
_reqサービスリクエストに変換され、これが今度は、トランザクションブラン
チをアボートするための対応のOSI TPサービスリクエスト(rollback_re
q)を表わす。OSI TPプロトコルマシン68が遠隔サーバ60から、rollb
ack_reqがうまく完了したことを示す表示を受取ると、リソースマネージャ70
はMS DTC56に対して、EnlistmentオブジェクトのAbortRequestDoneメソ
ッドを呼出すことによって知らせる。アボート処理に関連するさらなる詳細は状
態表内に提供される。
【0159】 C.回復 上述のように、本発明の相互接続64は、それ自身の障害および/またはMS
DTC56の障害の両方を回復させる能力を有する。MS DTC56の障害
は、各ブランチのCResourceManagerSinkオブジェクト82およびCTransactionRe
sourceAsyncオブジェクト76のTMDownメソッドを介して、相互接続に報告され
る。
DTC56の障害の両方を回復させる能力を有する。MS DTC56の障害
は、各ブランチのCResourceManagerSinkオブジェクト82およびCTransactionRe
sourceAsyncオブジェクト76のTMDownメソッドを介して、相互接続に報告され
る。
【0160】 以下に、相互接続がMS DTC56からTMdown表示を受取った後にMS D
TC56に再エンリストするために行なわれるステップを示す。
TC56に再エンリストするために行なわれるステップを示す。
【0161】 1.MTS API、DTCGetTransactionManagerを呼出して、MS DTC
Proxy Coreオブジェクト106へのポインタを得る。
Proxy Coreオブジェクト106へのポインタを得る。
【0162】 2.CResourceManagerSinkオブジェクト82のインスタンスを生成して、MS
DTC56が相互接続64に後続のTMDownを通知することができるように、IR
esourceManagerSinkインターフェイスを提供する。もしこれが成功すれば、続行
し、さもなければ、タイマイベントをセットして再エンリストメントに後に再度
挑戦する。
DTC56が相互接続64に後続のTMDownを通知することができるように、IR
esourceManagerSinkインターフェイスを提供する。もしこれが成功すれば、続行
し、さもなければ、タイマイベントをセットして再エンリストメントに後に再度
挑戦する。
【0163】 2.MS DTC Proxy Coreオブジェクト106のIResourceManagerFacto
ryインターフェイスを用いて、Resource Managerオブジェクト108を生成する
。
ryインターフェイスを用いて、Resource Managerオブジェクト108を生成する
。
【0164】 3.rch_statusをin_recoveryにセットする。rch_statusは、遠隔サーバ6
0から送られた入来するチャネル関連付け要求が受入れられるかどうかを制御す
る、OSI TP変数である。in_recoveryにセットされた場合、遠隔サーバ6
0は、後にチャネル関連付け要求に再挑戦するよう知らされる。
0から送られた入来するチャネル関連付け要求が受入れられるかどうかを制御す
る、OSI TP変数である。in_recoveryにセットされた場合、遠隔サーバ6
0は、後にチャネル関連付け要求に再挑戦するよう知らされる。
【0165】 4.ログ記録のための内部記憶装置を初期化し、total_remainingログカウン
トを、安全な記憶装置内に存在する合計数にセットする。
トを、安全な記憶装置内に存在する合計数にセットする。
【0166】 5.ログファイル内のログ記録を読出して、どのトランザクションブランチが
不確かであるかを判定する。
不確かであるかを判定する。
【0167】 6.各ログ記録に対して: a) そのログに対応するCRM記録を探し、もしCRM記録が存在する場
合には、その状態をRECOVERINGに変更する。
合には、その状態をRECOVERINGに変更する。
【0168】 b) その不確かなトランザクションのためのResource Managerオブジェク
ト108のIResourceManager::Reenlistを呼出して、このブランチのステータ
スについてMS DTC56に問合せる。安全な記憶装置内にセーブされている
もとのPrepareInfo構造を、タイムアウト値とともに、MS DTC56に渡す
。
ト108のIResourceManager::Reenlistを呼出して、このブランチのステータ
スについてMS DTC56に問合せる。安全な記憶装置内にセーブされている
もとのPrepareInfo構造を、タイムアウト値とともに、MS DTC56に渡す
。
【0169】 c) MS DTC56がタイムアウトを戻す場合には: ・再エンリストのために必要とされる情報をセーブし、 ・このブランチのためのエンリストメントに再挑戦するようタイマイベン
ト(2分毎)を待ち行列に入れる。
ト(2分毎)を待ち行列に入れる。
【0170】 d) MS DTC56がXACTSTAT_COMMITEDを戻す場合
には、 ・このブランチのためのOSI TPプロトコルマシン68に対する実行
要求を発行し、 ・complete_expectedカウントをインクリメントする。
には、 ・このブランチのためのOSI TPプロトコルマシン68に対する実行
要求を発行し、 ・complete_expectedカウントをインクリメントする。
【0171】 e) MS DTC56がXACTSTAT_ABORTEDを戻す場合に
は、 ・ログ消去手続き(上述のとおり)を呼出し、 ・このブランチのためのOSI TPプロトコルマシン68に対してroll
back_requestを発行し、 ・complete_expectedカウントをインクリメントする。
は、 ・ログ消去手続き(上述のとおり)を呼出し、 ・このブランチのためのOSI TPプロトコルマシン68に対してroll
back_requestを発行し、 ・complete_expectedカウントをインクリメントする。
【0172】 7.すべてのログ記録が読込まれると、Rch_statusをアクティブにする。 8.OSI TPプロトコルマシン68からのCommit CompleteまたはRollbac
k Complete表示を待つ。
k Complete表示を待つ。
【0173】 9.表示が受信されてブランチの状態がRECOVERINGである場合には
、 ・ログ消去手続き(上述のとおり)を呼出し、 ・complete_expectedカウントおよびtotal_remainingカウントをデクリ
メントし、total_remaining=0であるかどうかをチェックし、もしそうであれ
ば、IResourceManager::ReenlistmentCompleteを呼出す。
、 ・ログ消去手続き(上述のとおり)を呼出し、 ・complete_expectedカウントおよびtotal_remainingカウントをデクリ
メントし、total_remaining=0であるかどうかをチェックし、もしそうであれ
ば、IResourceManager::ReenlistmentCompleteを呼出す。
【0174】 以下のステップは、相互接続64がたとえば、何らかの理由で作動しなくなっ
た後に、それ自身再開始するときに行なわれる。
た後に、それ自身再開始するときに行なわれる。
【0175】 1.rch_statusを非アクティブにセットする。その結果、遠隔サーバ60が
再接続を試みる場合には、チャネルは、すべてのログ記録が読出されてMS D
TC56との同期が完了するまでは受入れられない。
再接続を試みる場合には、チャネルは、すべてのログ記録が読出されてMS D
TC56との同期が完了するまでは受入れられない。
【0176】 2.MTS API、DTCGetTransactionManagerを呼出して、MS DTC
Proxy Coreオブジェクト106へのポインタを得る。
Proxy Coreオブジェクト106へのポインタを得る。
【0177】 3.CResourceManagerSinkオブジェクト82のインスタンスを生成してIResou
rceManagerSinkインターフェイスを提供し、それにより、MS DTC56が相
互接続64に対して後続のTMDownを通知することができるようにする。もしこれ
に成功すれば続行し、さもなければ、タイマイベントをセットして後に再エンリ
ストメントに挑戦する。
rceManagerSinkインターフェイスを提供し、それにより、MS DTC56が相
互接続64に対して後続のTMDownを通知することができるようにする。もしこれ
に成功すれば続行し、さもなければ、タイマイベントをセットして後に再エンリ
ストメントに挑戦する。
【0178】 4.MS DTC Proxy Coreオブジェクト106のIResourceManagerFacto
ryインターフェイスを使用して、Resource Managerオブジェクト108を生成す
る。
ryインターフェイスを使用して、Resource Managerオブジェクト108を生成す
る。
【0179】 5.ログ記録のための内部記憶装置を初期化して、total_remainingカウント
を、安全な記憶装置内に存在するログ記録の数にセットする。
を、安全な記憶装置内に存在するログ記録の数にセットする。
【0180】 5.compelete_expectedを0に初期化する。 6.OSI−TP rch_statusをin_recoveryにセットする。
【0181】 7.ログファイルを読出して、どのトランザクションが不確かであるかを判定
し、各ログ記録について: a) このログ記録にマッチするCRM記録を生成して、txstateをREC
OVERINGにセットする。
し、各ログ記録について: a) このログ記録にマッチするCRM記録を生成して、txstateをREC
OVERINGにセットする。
【0182】 b) ログ記録内に記憶されているcrm_idを更新する。これは、MS D
TC56が再エンリストメントが行なわれている間に作動しなくなった場合に必
要である。
TC56が再エンリストメントが行なわれている間に作動しなくなった場合に必
要である。
【0183】 c) 内部OSI TPデータ構造および変数を再構築し、OSI TPプ
ロトコル仕様で特定された回復手続きに従って、回復のためのフィールドを初期
化する。
ロトコル仕様で特定された回復手続きに従って、回復のためのフィールドを初期
化する。
【0184】 d) この不確かなトランザクションブランチに対するIResourceManager:
:Reenlistを呼出して、ログ記録内にセーブされているもとのPrepareInfo構造
を、タイムアウト値とともにMS DTC56に渡す。
:Reenlistを呼出して、ログ記録内にセーブされているもとのPrepareInfo構造
を、タイムアウト値とともにMS DTC56に渡す。
【0185】 e) MS DTC56がタイムアウトを返した場合には: ・再エンリストのために必要な情報をセーブし、 ・このブランチのためのエンリストメントに再挑戦するように、タイマイ
ベント(2分毎)を待ち行列に入れる。
ベント(2分毎)を待ち行列に入れる。
【0186】 f) MS DTC56がXACTSTAT_COMMITEDを戻した場
合には、 ・このブランチのためのOSI TPプロトコルマシン68に対して実行
要求を発行し、 ・complete_expectedカウントをインクリメントする。
合には、 ・このブランチのためのOSI TPプロトコルマシン68に対して実行
要求を発行し、 ・complete_expectedカウントをインクリメントする。
【0187】 g) MS DTC56がXACTSTAT_ABORTEDを戻した場合
には、 ・ログ消去手続き(上述のとおり)を呼出し、 ・total_remainingをデクリメントし、total_remaining=0になると、
IResourceManager::ReenlistmentCompleteを呼出し、 ・クリーンアップの一部として、このブランチに割当てられたOSI T
Pリソースを開放する。
には、 ・ログ消去手続き(上述のとおり)を呼出し、 ・total_remainingをデクリメントし、total_remaining=0になると、
IResourceManager::ReenlistmentCompleteを呼出し、 ・クリーンアップの一部として、このブランチに割当てられたOSI T
Pリソースを開放する。
【0188】 8.完了表示が戻され、かつ、ブランチの状態がRECOVERINGである
場合: ・ログ消去手続き(上述のとおり)を呼出し、 ・complete_expectedおよびtotal_remainingをデクリメントし、 ・もしtotal_remaining=0になれば、IResourceManager::Reenlistme
ntCompleteを呼出す。
場合: ・ログ消去手続き(上述のとおり)を呼出し、 ・complete_expectedおよびtotal_remainingをデクリメントし、 ・もしtotal_remaining=0になれば、IResourceManager::Reenlistme
ntCompleteを呼出す。
【0189】 上述の回復手続きが示すように、本発明の相互接続64はトランザクションの
各ブランチに対して、MS DTC回復情報(PrepareInfo)およびOSI T
P回復情報を両方とも併せて記憶するので、相互接続64は、必要な場合どちら
の環境においても回復を行なうことが可能である。
各ブランチに対して、MS DTC回復情報(PrepareInfo)およびOSI T
P回復情報を両方とも併せて記憶するので、相互接続64は、必要な場合どちら
の環境においても回復を行なうことが可能である。
【0190】 VII.結論 上述のように、本発明は、トランザクション処理環境におけるコンポーネント
が、その環境内で、XATMIに適合しない第1のトランザクションマネージャ
によって調整されるグローバルトランザクションの一部として、その環境外にあ
る、XATMIに適合したトランザクションマネージャの制御の下にある遠隔サ
ーバ上のリソースを要求することを可能にする、方法および装置に関する。ただ
し、上述の実施例については、本発明の広範な概念から離れることなく、種々の
変更がなされ得ることを理解されたい。たとえば、ここに説明した一実施例にお
いては、本発明はマイクロソフトトランザクションサーバ(MTS)環境におい
て用いられているが、本発明が、XATMIに適合したトランザクションマネー
ジャは用いないが、XATMIに適合したトランザクションマネージャの制御の
下に動作する遠隔サーバからのリソースを要求する必要のある、どのようなトラ
ンザクション処理環境においても使用が可能であることを理解されたい。したが
って、本発明は、開示した特定の実施例に限定されるものではなく、前掲の請求
の範囲において規定される本発明の範囲および精神の範囲内にあるすべての変形
を網羅することが意図される。
が、その環境内で、XATMIに適合しない第1のトランザクションマネージャ
によって調整されるグローバルトランザクションの一部として、その環境外にあ
る、XATMIに適合したトランザクションマネージャの制御の下にある遠隔サ
ーバ上のリソースを要求することを可能にする、方法および装置に関する。ただ
し、上述の実施例については、本発明の広範な概念から離れることなく、種々の
変更がなされ得ることを理解されたい。たとえば、ここに説明した一実施例にお
いては、本発明はマイクロソフトトランザクションサーバ(MTS)環境におい
て用いられているが、本発明が、XATMIに適合したトランザクションマネー
ジャは用いないが、XATMIに適合したトランザクションマネージャの制御の
下に動作する遠隔サーバからのリソースを要求する必要のある、どのようなトラ
ンザクション処理環境においても使用が可能であることを理解されたい。したが
って、本発明は、開示した特定の実施例に限定されるものではなく、前掲の請求
の範囲において規定される本発明の範囲および精神の範囲内にあるすべての変形
を網羅することが意図される。
【図1】 分散型トランザクション処理システムのX/Open分散型トランザ
クション処理(DTP)モデルアーキテクチャを示すブロック図である。
クション処理(DTP)モデルアーキテクチャを示すブロック図である。
【図2】 本発明の方法および装置を実装する相互接続の好ましい実施例と
、本発明が採用され得る一例としての環境(マイクロソフトトランザクションサ
ーバ環境)とを示すブロック図である。
、本発明が採用され得る一例としての環境(マイクロソフトトランザクションサ
ーバ環境)とを示すブロック図である。
【図3】 本発明の好ましい実施例に従う図2の相互接続をさらに詳細に示
すブロック図である。
すブロック図である。
【図4A】 図3の相互接続の動作時に生成および/またはアクセスされる
ソフトウェアオブジェクトを示す図である。
ソフトウェアオブジェクトを示す図である。
【図4B】 図3の相互接続の動作時に生成および/またはアクセスされる
ソフトウェアオブジェクトを示す図である。
ソフトウェアオブジェクトを示す図である。
【図4C】 図3の相互接続の動作時に生成および/またはアクセスされる
ソフトウェアオブジェクトを示す図である。
ソフトウェアオブジェクトを示す図である。
【図4D】 図3の相互接続の動作時に生成および/またはアクセスされる
ソフトウェアオブジェクトを示す図である。
ソフトウェアオブジェクトを示す図である。
【図4E】 図3の相互接続の動作時に生成および/またはアクセスされる
ソフトウェアオブジェクトを示す図である。
ソフトウェアオブジェクトを示す図である。
【図4F】 図3の相互接続の動作時に生成および/またはアクセスされる
ソフトウェアオブジェクトを示す図である。
ソフトウェアオブジェクトを示す図である。
【図4G】 図3の相互接続の動作時に生成および/またはアクセスされる
ソフトウェアオブジェクトを示す図である。
ソフトウェアオブジェクトを示す図である。
【図5】 本発明の好ましい実施例に従う、グローバルトランザクションの
所与のブランチに関する図3の相互接続によって生成されるCRM記録の内容を
示す図である。
所与のブランチに関する図3の相互接続によって生成されるCRM記録の内容を
示す図である。
【図6A】 好ましい実施例に従う本発明の相互接続の動作を制御する状態
テーブルを示す図である。
テーブルを示す図である。
【図6B】 好ましい実施例に従う本発明の相互接続の動作を制御する状態
テーブルを示す図である。
テーブルを示す図である。
【図6C】 好ましい実施例に従う本発明の相互接続の動作を制御する状態
テーブルを示す図である。
テーブルを示す図である。
【図6D】 好ましい実施例に従う本発明の相互接続の動作を制御する状態
テーブルを示す図である。
テーブルを示す図である。
【図7】 グローバルトランザクションの局面を示すフロー図である。
【図8A】 図3の相互接続の動作に関する詳細を示す、本発明の方法の好
ましい実施例の局面を示すフロー図である。
ましい実施例の局面を示すフロー図である。
【図8B】 図3の相互接続の動作に関する詳細を示す、本発明の方法の好
ましい実施例の局面を示すフロー図である。
ましい実施例の局面を示すフロー図である。
【図8C】 図3の相互接続の動作に関する詳細を示す、本発明の方法の好
ましい実施例の局面を示すフロー図である。
ましい実施例の局面を示すフロー図である。
【図9A】 図3の相互接続の動作に関するさらなる詳細を示す、好ましい
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
【図9B】 図3の相互接続の動作に関するさらなる詳細を示す、好ましい
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
【図9C】 図3の相互接続の動作に関するさらなる詳細を示す、好ましい
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
【図9D】 図3の相互接続の動作に関するさらなる詳細を示す、好ましい
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
【図9E】 図3の相互接続の動作に関するさらなる詳細を示す、好ましい
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
【図9F】 図3の相互接続の動作に関するさらなる詳細を示す、好ましい
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
【図9G】 図3の相互接続の動作に関するさらなる詳細を示す、好ましい
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
【図9H】 図3の相互接続の動作に関するさらなる詳細を示す、好ましい
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
【図9I】 図3の相互接続の動作に関するさらなる詳細を示す、好ましい
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
実施例に従う本発明の方法のさらなる局面を示すフロー図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年5月17日(2000.5.17)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項28
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】請求項38
【補正方法】変更
【補正内容】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】請求項58
【補正方法】変更
【補正内容】
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】請求項88
【補正方法】変更
【補正内容】
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正内容】
【0026】 AP−CRM26インターフェイスはCRM20によってAP14に与えられ
る。X/Open DTPモデルは次の3つのAP−CRMインターフェイス、すな
わちTxRPCインターフェイス、XATMIインターフェイス、およびCPI
−Cインターフェイスをサポートする。これらのインターフェイスの各々は、同
じインターフェイスを利用するAP間の交信を可能にするために使用され得る。
XATMIを以下に詳述するが、XATMIインターフェイスに関するさらなる
情報は、英国のApex Plaza, Forbury Road, Reading, Berkshire RG1 1AXにある
X/Open株式会社の分散型トランザクション処理:XATMI仕様(1993)
(以下、「XATMI仕様」と称する)に記載されている。
る。X/Open DTPモデルは次の3つのAP−CRMインターフェイス、すな
わちTxRPCインターフェイス、XATMIインターフェイス、およびCPI
−Cインターフェイスをサポートする。これらのインターフェイスの各々は、同
じインターフェイスを利用するAP間の交信を可能にするために使用され得る。
XATMIを以下に詳述するが、XATMIインターフェイスに関するさらなる
情報は、英国のApex Plaza, Forbury Road, Reading, Berkshire RG1 1AXにある
X/Open株式会社の分散型トランザクション処理:XATMI仕様(1993)
(以下、「XATMI仕様」と称する)に記載されている。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正内容】
【0028】 上記アプリケーションプログラミングインターフェイスの他に、X/Open D
TPモデルを実装するシステムは、オープンシステム相互接続(OSI)トラン
ザクション処理(TP)(ISO/IEC10026)(「OSI TP規格」
)として知られている産業規格通信プロトコルを用いて互いに交信し得る。OS
I TP規格は、トランザクション処理システムにおけるコンピュータ間の交信
をサポートするマシン依存型プロトコルを規定する。XAP−TPと呼ばれる産
業規格CRM−OSI TPプログラムインターフェイスは、CRM20と、O
SI TP規格に準拠するOSI TPプロトコルマシン34とのインターフェ
イスを提供する。ISO/IEC10026−3情報技術−開放型システム間相
互接続−分散型トランザクション処理−パート3:プロトコル仕様(「OSI
TPプロトコル仕様」)は、適合するOSI TPプロトコルマシンが、OSI
TP規格に準拠してOSI TPサービスリクエストを処理する際に発生する
必要がある、状態遷移およびプロトコルを規定する。XAP−TPプログラムイ
ンターフェイスは、X/Open ACSE/提示:トランザクション処理API(
XAP−TP)CAE仕様(「XAP−TP仕様」)に明記されている。XAP
−TP仕様は、適合するOSI TPプロトコルマシンの使用を制御する、機能
、パラメータおよびエラーを含むインターフェイスを規定する。下層通信プロト
コル36の実装により、ネットワーク38を介してシステム10および12間に
情報を送信するために必要な下位レベルの通信処理が取扱われる。これらの下層
プロトコルはたとえばOSIまたはTCP/IPであり得る。X/Open DTP
モデルはこれらの下層に対するインターフェイスを規定しない。
TPモデルを実装するシステムは、オープンシステム相互接続(OSI)トラン
ザクション処理(TP)(ISO/IEC10026)(「OSI TP規格」
)として知られている産業規格通信プロトコルを用いて互いに交信し得る。OS
I TP規格は、トランザクション処理システムにおけるコンピュータ間の交信
をサポートするマシン依存型プロトコルを規定する。XAP−TPと呼ばれる産
業規格CRM−OSI TPプログラムインターフェイスは、CRM20と、O
SI TP規格に準拠するOSI TPプロトコルマシン34とのインターフェ
イスを提供する。ISO/IEC10026−3情報技術−開放型システム間相
互接続−分散型トランザクション処理−パート3:プロトコル仕様(「OSI
TPプロトコル仕様」)は、適合するOSI TPプロトコルマシンが、OSI
TP規格に準拠してOSI TPサービスリクエストを処理する際に発生する
必要がある、状態遷移およびプロトコルを規定する。XAP−TPプログラムイ
ンターフェイスは、X/Open ACSE/提示:トランザクション処理API(
XAP−TP)CAE仕様(「XAP−TP仕様」)に明記されている。XAP
−TP仕様は、適合するOSI TPプロトコルマシンの使用を制御する、機能
、パラメータおよびエラーを含むインターフェイスを規定する。下層通信プロト
コル36の実装により、ネットワーク38を介してシステム10および12間に
情報を送信するために必要な下位レベルの通信処理が取扱われる。これらの下層
プロトコルはたとえばOSIまたはTCP/IPであり得る。X/Open DTP
モデルはこれらの下層に対するインターフェイスを規定しない。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0038
【補正方法】変更
【補正内容】
【0038】 MS DTCは、2つまたはそれ以上のウィンドウズ(登録商標)95または
ウィンドウズNT(登録商標)システムを介して分散されるトランザクションを
サポートする。各システムはローカルトランザクションマネージャ、すなわちM
S DTCを有する。すべてのコンポーネントおよびリソースマネージャはそれ
らのローカルトランザクションマネージャと交信する。トランザクションマネー
ジャは、OLEトランザクションプロトコルを用いて、複数システム上のトラン
ザクションプロトコルを協働的に管理する。マイクロソフトトランザクションサ
ーバ環境に関するさらなる情報は、データベースワークショップ:マイクロソフ
トトランザクションサーバ2.0 Roger Jennings ed., Sams Publishing, Ind
ianapolis, Indiana, USA, 1997およびマイクロソフト社のウェブサイトで得ら
れる。
ウィンドウズNT(登録商標)システムを介して分散されるトランザクションを
サポートする。各システムはローカルトランザクションマネージャ、すなわちM
S DTCを有する。すべてのコンポーネントおよびリソースマネージャはそれ
らのローカルトランザクションマネージャと交信する。トランザクションマネー
ジャは、OLEトランザクションプロトコルを用いて、複数システム上のトラン
ザクションプロトコルを協働的に管理する。マイクロソフトトランザクションサ
ーバ環境に関するさらなる情報は、データベースワークショップ:マイクロソフ
トトランザクションサーバ2.0 Roger Jennings ed., Sams Publishing, Ind
ianapolis, Indiana, USA, 1997およびマイクロソフト社のウェブサイトで得ら
れる。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0039
【補正方法】変更
【補正内容】
【0039】 現在、異種ホストのMTSの相互運用性は、IBMのIMSまたはCICSト
ランザクションのための、マイクロソフトCOMTI(COMトランザクション
インターフェイス)を通じて、リモートホストのデータベースに接続するための
第三者のODBC(オープンデータベースコネクティビティ)を通じて、XAマ
ッパを介して、またはGB‐A‐2 316 777に記載されているようにX
Aマッパの逆に相当するものを介して存在する。
ランザクションのための、マイクロソフトCOMTI(COMトランザクション
インターフェイス)を通じて、リモートホストのデータベースに接続するための
第三者のODBC(オープンデータベースコネクティビティ)を通じて、XAマ
ッパを介して、またはGB‐A‐2 316 777に記載されているようにX
Aマッパの逆に相当するものを介して存在する。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0040
【補正方法】変更
【補正内容】
【0040】 COMTIはIBMメインフレーム上で動作する既存のCobolプログラムにウ
ィンドウズベースの新たなクライアントがアクセスできるようにする。ODBC
はMTSコンポーネントによる種々のデータベース(Oracle, Informix, SQL Se
quelサーバ)へのアクセスを許す。XAマッパーは、X/Openに準拠するトラン
ザクションマネージャと交信するクライアントアプリケーションが、それらのX
AプロトコルをMTSのネイティブOLEトランザクションプロトコルにマッピ
ングして、MTS制御リソースに含むようにする。GB‐A‐2 316 77
7に記載されているシステムおよび方法は、MTS環境内のMS DTCが、グ
ローバルトランザクションにOracle、Sybase、またはInformixデータベースなど
のXA−適合リソースを含めることができるようにし、すなわちXAマッパの逆
に相当する機能を提供する。
ィンドウズベースの新たなクライアントがアクセスできるようにする。ODBC
はMTSコンポーネントによる種々のデータベース(Oracle, Informix, SQL Se
quelサーバ)へのアクセスを許す。XAマッパーは、X/Openに準拠するトラン
ザクションマネージャと交信するクライアントアプリケーションが、それらのX
AプロトコルをMTSのネイティブOLEトランザクションプロトコルにマッピ
ングして、MTS制御リソースに含むようにする。GB‐A‐2 316 77
7に記載されているシステムおよび方法は、MTS環境内のMS DTCが、グ
ローバルトランザクションにOracle、Sybase、またはInformixデータベースなど
のXA−適合リソースを含めることができるようにし、すなわちXAマッパの逆
に相当する機能を提供する。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0060
【補正方法】変更
【補正内容】
【0060】 OSI TPプロトコルマシン68に加えて、本発明の相互接続64の接続マ
ネージャ部分はさらに、OSI TPサービスインターフェイス論理88と、関
連のキュー(98および102)を有する出力スレッドと、1つまたは2つ以上
の入力スレッド104と、非同期要求プロセッサ96とを含む。OSI TPプ
ロトコルマシン68はOSI TPプロトコル仕様の全実装を含み得、この場合
、OSI TPサービスインターフェイス論理88が標準XAP−TPインター
フェイスを実装することが望ましい。これに代えて、本発明の好ましい実施例で
は、OSI TPプロトコルマシン68は、「高性能分散型トランザクション処
理方法および装置(“High Performance Distributed Transaction Processing
Methods and Apparatus”)」と題された同一人に譲渡された同時係属中の米国
特許出願連続番号第09/020,213号に記載されている修正形のOSI
TPプロトコルマシンを含む。この好ましい実現例によるとまた、OSI TP
サービスインターフェイス論理88は、標準XAP−TPインターフェイスでは
なく、そこに記載されているHPTPXインターフェイスを含む。
ネージャ部分はさらに、OSI TPサービスインターフェイス論理88と、関
連のキュー(98および102)を有する出力スレッドと、1つまたは2つ以上
の入力スレッド104と、非同期要求プロセッサ96とを含む。OSI TPプ
ロトコルマシン68はOSI TPプロトコル仕様の全実装を含み得、この場合
、OSI TPサービスインターフェイス論理88が標準XAP−TPインター
フェイスを実装することが望ましい。これに代えて、本発明の好ましい実施例で
は、OSI TPプロトコルマシン68は、「高性能分散型トランザクション処
理方法および装置(“High Performance Distributed Transaction Processing
Methods and Apparatus”)」と題された同一人に譲渡された同時係属中の米国
特許出願連続番号第09/020,213号に記載されている修正形のOSI
TPプロトコルマシンを含む。この好ましい実現例によるとまた、OSI TP
サービスインターフェイス論理88は、標準XAP−TPインターフェイスでは
なく、そこに記載されているHPTPXインターフェイスを含む。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カイザー,スティーブン・エル アメリカ合衆国、19301 ペンシルバニア 州、パオーリ、エス・バリー・ロード、 50、アパートメント・ディ−2 (72)発明者 ラジカン,スティーブン・エル アメリカ合衆国、19426 ペンシルバニア 州、カレッジビル、カルメン・ドライブ、 125 Fターム(参考) 5B098 GA05 GC16 GD01 GD11
Claims (100)
- 【請求項1】 XATMIに適合しない第1のトランザクションマネージャ
の制御の下、グローバルトランザクションの一部として、1または複数のリソー
スマネージャからコンポーネントがリソースを要求するトランザクション処理環
境において、該コンポーネントが、グローバルトランザクションの一部として、
その環境外の、XATMIに適合した第2のトランザクションマネージャの制御
の下にある遠隔サーバ上のリソースを要求することを可能にする相互接続であっ
て、前記相互接続は、 双方向2相実行通信プロトコルに従って、該遠隔サーバ上の該要求されたリソ
ースと通信するプロトコルマシンを含む接続マネージャと、 該コンポーネントからXATMIサービスリクエストを受取る第1のインター
フェイスと、該グローバルトランザクションのために該第1のトランザクション
マネージャによって発行された命令を受取る第2のインターフェイスとを有する
リソースマネージャとを含み、該リソースマネージャは、(i)該コンポーネン
トから受取った前記XATMIサービスリクエストおよび該第1のトランザクシ
ョンマネージャによって発行された前記命令を、該双方向2相実行通信プロトコ
ルの対応のサービスリクエストに変換し、(ii)該対応のサービスリクエストを
該接続マネージャの該プロトコルマシンに対して発行し、かつ、(iii)該プロ
トコルマシンによる前記対応のサービスリクエストの処理を、該第1のトランザ
クションマネージャの該トランザクション処理環境における対応のイベントの処
理と調整する、相互接続。 - 【請求項2】 該第1のトランザクションマネージャのトランザクション処
理環境はマイクロソフトトランザクションサーバ(Microsoft Transaction Serv
er)環境を含み、該第1のトランザクションマネージャはマイクロソフト分散型
トランザクションコーディネータ(Microsoft Distributed Transaction Coordi
nator;MS DTC)を含む、請求項1に記載の相互接続。 - 【請求項3】 該第1のトランザクションマネージャによって発行される前
記命令は、準備命令、実行命令、およびアボート命令のそれぞれを含む、請求項
1に記載の相互接続。 - 【請求項4】 グローバルトランザクションの一部として該コンポーネント
から受取られるXATMIサービスリクエストは各々、グローバルトランザクシ
ョンの別個のブランチを表わし、該リソースマネージャは、該グローバルトラン
ザクションの各ブランチに対して、該トランザクションのそのブランチを表わし
かつそのブランチのために前記命令を発行するよう該第1のトランザクションマ
ネージャが呼出すメソッドを含む、オブジェクトのインスタンスを生成し、前記
メソッドは、前記リソースマネージャの機能の少なくとも一部を実装する、請求
項1に記載の相互接続。 - 【請求項5】 グローバルトランザクションの一部として該コンポーネント
から受取られるXATMIサービスリクエストは各々、グローバルトランザクシ
ョンの別個のブランチを表わし、該リソースマネージャは、各ブランチに対して
記録を生成し、該記録内にはそのブランチに関連する情報が、該プロトコルマシ
ンによる双方向2相実行通信プロトコルの前記対応のサービスリクエストの処理
を、該第1のトランザクションマネージャのトランザクション処理環境における
対応のイベントの処理と調整するのに、該リソースマネージャによって使用され
るように記憶される、請求項1に記載の相互接続。 - 【請求項6】 所与のブランチのための記録内に記憶される該情報は、第1
のトランザクションマネージャのトランザクション処理環境内のグローバルトラ
ンザクションに割当てられた第1の識別子と、該プロトコルマシン内のそのトラ
ンザクションを識別するために該第1の識別子からリソースマネージャによって
生成された第2の識別子とを含む、請求項5に記載の相互接続。 - 【請求項7】 該第1のトランザクションマネージャのトランザクション処
理環境はマイクロソフトトランザクションサーバ環境を含み、該第1の識別子は
グローバルに一意な識別子(globally unique identifier;GUID)を含む、
請求項6に記載の相互接続。 - 【請求項8】 該双方向2相実行通信プロトコルはOSI TPプロトコル
仕様(Protocol Specification)を含み、該第2の識別子は、該OSI TPプ
ロトコル仕様の要件に従う不可分動作識別子(atomic action identifier;AA
ID)を含む、請求項6に記載の相互接続。 - 【請求項9】 所与のブランチのための記録内に記憶される該情報は、プロ
トコルマシン内のトランザクションのその特定のブランチを識別するためにリソ
ースマネージャによって生成される第3の識別子をさらに含む、請求項6に記載
の相互接続。 - 【請求項10】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該第2および第3の識別子はそれぞれ、OSI TPプロトコル
仕様の要件に従った、不可分動作識別子(AAID)およびブランチ識別子(B
RID)を含む、請求項9に記載の相互接続。 - 【請求項11】 所与のブランチのための記録内に記憶される該情報は、そ
のブランチを、そのブランチのためにプロトコルマシンによって確立される遠隔
サーバとの接続と関連付ける識別子を含む、請求項5に記載の相互接続。 - 【請求項12】 所与のブランチのための記録内に記憶される該情報は、そ
のブランチの状態の表示を含む、請求項5に記載の相互接続。 - 【請求項13】 該ブランチの状態は、準備中、準備済、エンリスト中、エ
ンリスト済、実行中、アボート中および回復中の状態のいずれかを含む、請求項
12に記載の相互接続。 - 【請求項14】 所与のブランチのための記録内に記憶される該情報は、M
TS環境内のグローバルトランザクションに関連付けられたトランザクションオ
ブジェクトへのポインタを含み、前記ポインタは、リソースマネージャの第2の
インターフェイスによって、リソースマネージャとMS DTCとの間でグロー
バルトランザクションに関連する情報を通信するのに使用される、請求項2に記
載の相互接続。 - 【請求項15】 所与のブランチのための記録内に記憶される該情報は、M
TS環境内のグローバルトランザクションに関連付けられたエンリストメントオ
ブジェクトへの第2のポインタをさらに含み、前記ポインタは、リソースマネー
ジャとMS DTCとの間でグローバルトランザクションに関連する情報を通信
するのに、リソースマネージャの第2のインターフェイスによって用いられる、
請求項14に記載の相互接続。 - 【請求項16】 該リソースマネージャは、第1のトランザクションマネー
ジャのトランザクション処理環境から、その環境内のグローバルトランザクショ
ンに割当てられた第1の識別子を得、かつ、それから、プロトコルマシン内のそ
のトランザクションを識別するのに使用される第2の識別子を生成するよう、さ
らに動作する、請求項1に記載の相互接続。 - 【請求項17】 該第1の識別子はグローバルに一意な識別子(GUID)
を含む、請求項16に記載の相互接続。 - 【請求項18】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該第2の識別子は、該OSI TPプロトコル仕様の要件に従う
不可分動作識別子(AAID)を含む、請求項16に記載の相互接続。 - 【請求項19】 グローバルトランザクションの一部として該コンポーネン
トから受取られたXATMIサービスリクエストは各々、グローバルトランザク
ションの別個のブランチを表わし、該コンポーネントからXATMIサービスリ
クエストが受取られると、リソースマネージャは、前記第2の識別子に加えて、
そのXATMIサービスリクエストによって表わされるグローバルトランザクシ
ョンのブランチを一意に識別する第3の識別子をさらに生成する、請求項16に
記載の相互接続。 - 【請求項20】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該第2および第3の識別子は、OSI TPプロトコル仕様の要
件に従う、不可分動作識別子(AAID)およびブランチ識別子(BRID)を
それぞれ含む、請求項19に記載の相互接続。 - 【請求項21】 グローバルトランザクションの各ブランチに対して、該第
1、第2および第3の識別子は、リソースマネージャによって記録内に記憶され
て、プロトコルマシンによる双方向2相実行通信プロトコルの前記対応のサービ
スリクエストの処理を、第1のトランザクションマネージャのトランザクション
処理環境における対応のイベントの処理と調整するのに、該リソースマネージャ
によって使用される、請求項19に記載の相互接続。 - 【請求項22】 グローバルトランザクションの一部として該コンポーネン
トから受取られたXATMIサービスリクエストは各々、グローバルトランザク
ションの別個のブランチを表わし、該プロトコルマシンは、グローバルトランザ
クションの各ブランチに対して、そのブランチのためのサービスリクエストを処
理するよう遠隔サーバとの接続を確立する、請求項1に記載の相互接続。 - 【請求項23】 該リソースマネージャは、各ブランチに対して、そのブラ
ンチのためにプロトコルマシンによって確立された遠隔サーバとの接続を識別す
る識別子を生成する、請求項22に記載の相互接続。 - 【請求項24】 該リソースマネージャは、各ブランチに対して、記録を生
成し、そのブランチのための接続の識別子がその接続を識別するのにプロトコル
マシンによって後に使用されるためにその記録内に記憶される、請求項23に記
載の相互接続。 - 【請求項25】 グローバルトランザクションの一部として該コンポーネン
トから受取られるXATMIサービスリクエストは各々、グローバルトランザク
ションの別個のブランチを表わし、該リソースマネージャは、グローバルトラン
ザクションの各ブランチに対して、障害を回復させるのに該第1のトランザクシ
ョンマネージャおよび該プロトコルマシンの両方によって必要とされる情報を安
全な記憶装置内にともに記憶するよう、さらに動作する、請求項1に記載の相互
接続。 - 【請求項26】 該リソースマネージャは、ステートマシンの制御の下に動
作し、該ステートマシンは、 初期状態と、 グローバルトランザクションのブランチを表わすXATMIサービスリクエス
トが該コンポーネントから受取られたこと、および、相互接続の第2のインター
フェイスがそのブランチを第1のトランザクションマネージャに対して、それか
ら後続の命令を受取るためにエンリストするよう試みることを示す状態と、 該ブランチが第1のトランザクションマネージャにうまくエンリストされたこ
とを示す状態と、 実行のために該ブランチを準備するよう要求するリクエストが第1のトランザ
クションマネージャから第2のインターフェイスによって受取られたことを示す
状態と、 プロトコルマシンが、遠隔サーバから、該遠隔サーバが該ブランチを実行する
準備ができていることを示す表示を受取ったことを示す状態と、 該ブランチを実行せよとのリクエストが第1のトランザクションマネージャか
ら第2のインターフェイスによって受取られたことを示す状態と、 該ブランチをアボートせよとのリクエストが第1のトランザクションマネージ
ャから第2のインターフェイスによって受取られたか、または、プロトコルマシ
ンにトランザクションをアボートするよう要求する条件が生じたことを示す状態
と、 該相互接続が障害の回復を試みていることを示す状態とを含む、請求項1に記
載の相互接続。 - 【請求項27】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該プロトコルマシンはOSI TPプロトコルマシンを含む、請
求項1に記載の相互接続。 - 【請求項28】 XATMIに適合しない第1のトランザクションマネージ
ャの制御の下、グローバルトランザクションの一部として、1または複数のリソ
ースマネージャからコンポーネントがリソースを要求するトランザクション処理
環境において、該コンポーネントが、グローバルトランザクションの一部として
、その環境外の、XATMIに適合した第2のトランザクションマネージャの制
御の下にある遠隔サーバ上のリソースを要求することを可能にする相互接続であ
って、該リクエストはグローバルトランザクションの1ブランチを表わし、前記
相互接続は、 双方向2相実行通信プロトコルに従って遠隔サーバとの通信を制御するプロト
コルマシンと、 第1のトランザクションマネージャのトランザクション処理環境内のグローバ
ルトランザクションを識別する第1の識別子を、プロトコルマシン内のグローバ
ルトランザクションを一意に識別する第2の識別子にマップする手段と、 ブランチのために記録を維持する手段とを含み、該記録には、第1のトランザ
クションマネージャのトランザクション処理環境におけるイベントを、プロトコ
ルマシン内の対応のイベントと調整するのに使用するために該ブランチに関連す
る情報が記憶され、さらに、 第1のトランザクションマネージャのトランザクション処理環境およびプロト
コルマシンの双方が障害の発生時にブランチを回復させることができるように、
その環境およびプロトコルマシンの両方において該ブランチの状態に関連する情
報を安全な記憶装置内にログ記録するための手段を含む、相互接続。 - 【請求項29】 該第1のトランザクションマネージャのトランザクション
処理環境はマイクロソフトトランザクションサーバ環境を含み、該第1のトラン
ザクションマネージャはマイクロソフト分散型トランザクションコーディネータ
(MS DTC)を含む、請求項28に記載の相互接続。 - 【請求項30】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該プロトコルマシンはOSI TPプロトコルマシンを含む、請
求項28に記載の相互接続。 - 【請求項31】 プロトコルマシン内のグローバルトランザクションのブラ
ンチを一意に識別する第3の識別子を生成するための手段をさらに含む、請求項
28に記載の相互接続。 - 【請求項32】 前記プロトコルマシンは、該ブランチのための遠隔サーバ
との接続を確立し、その接続を介してリクエストが遠隔サーバに伝送される、請
求項28に記載の相互接続。 - 【請求項33】 プロトコルマシン内で、ブランチのために該プロトコルマ
シンによって確立された接続を識別する別の識別子を生成するための手段と、 該ブランチのための記録内に、該接続の識別子を記憶するための手段とをさら
に含む、請求項32に記載の相互接続。 - 【請求項34】 該ブランチの記録内に、ブランチの状態の表示を記憶する
ための手段をさらに含む、請求項28に記載の相互接続。 - 【請求項35】 該ブランチの状態は、準備中、準備済、エンリスト中、エ
ンリスト済、実行中、アボート中および回復中の状態のうちのいずれかを含む、
請求項34に記載の相互接続。 - 【請求項36】 MTS環境内のグローバルトランザクションに関連付けら
れたトランザクションオブジェクトへのポインタを得て、該ブランチのための記
録内に記憶するための手段をさらに含む、請求項29に記載の相互接続。 - 【請求項37】 MTS環境内のグローバルトランザクションに関連付けら
れたエンリストメントオブジェクトへのポインタを得て、該ブランチの記録内に
記憶するための手段をさらに含む、請求項29に記載の相互接続。 - 【請求項38】 XATMIに適合しない第1のトランザクションマネージ
ャの制御の下、グローバルトランザクションの一部として、1または複数のリソ
ースマネージャからコンポーネントがリクエストを要求するトランザクション処
理環境において、該コンポーネントが、グローバルトランザクションの一部とし
て、その環境外の、XATMIに適合した第2のトランザクションマネージャの
制御の下にある遠隔サーバ上のリソースを要求することを可能にする相互接続で
あって、前記方法は、 該コンポーネントから、グローバルトランザクションの1ブランチを表わすX
ATMIサービスリクエストを受取るステップと、 第1のトランザクションマネージャのトランザクション処理環境内のグローバ
ルトランザクションを識別する第1の識別子を得るステップと、 該第1の識別子から第2の識別子を生成するステップと、 該XATMIサービスリクエストを双方向2相実行通信プロトコルの対応のサ
ービスリクエストに変換し、該通信プロトコルを実装するプロトコルマシンに対
して該対応のサービスリクエストを発行するステップと、 該第2の識別子を使用してプロトコルマシン内のトランザクションを一意に識
別するステップとを含み、該第1および第2の識別子は、第1のトランザクショ
ンマネージャのトランザクション処理環境におけるグローバルトランザクション
に関連付けられたイベントをプロトコルマシン内のイベントと調整することを可
能にするマッピングを提供する、相互接続。 - 【請求項39】 該第1のトランザクションマネージャのトランザクション
処理環境はマイクロソフトトランザクションサーバ(MTS)環境を含み、該第
1のトランザクションマネージャはマイクロソフト分散型トランザクションコー
ディネータ(MS DTC)を含む、請求項38に記載の方法。 - 【請求項40】 該第1の識別子はグローバルに一意な識別子(GUID)
を含む、請求項39に記載の方法。 - 【請求項41】 該GUIDは、MTS環境内のコンポーネントに関連付け
られたトランザクションオブジェクトから得られる、請求項40に記載の方法。 - 【請求項42】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該プロトコルマシンはOSI TPプロトコルマシンを含む、請
求項38に記載の方法。 - 【請求項43】 該第2の識別子は、OSI TPプロトコル仕様に従う、
不可分動作識別子(AAID)を含む、請求項42に記載の方法。 - 【請求項44】 プロトコルマシン内のグローバルトランザクションのブラ
ンチを一意に識別する第3の識別子を生成するステップをさらに含む、請求項3
8に記載の方法。 - 【請求項45】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該第2および第3の識別子は、OSI TPプロトコル仕様に従
う、不可分動作識別子(AAID)およびそれに対するブランチサフィックス(
BRID)をそれぞれ含む、請求項44に記載の方法。 - 【請求項46】 トランザクションのブランチに関連する情報が、そのブラ
ンチに関連する後続のアクションに関連して使用されるようにその中に記憶され
る、記録を生成するステップをさらに含む、請求項38に記載の方法。 - 【請求項47】 前記記録内に該第1および第2の識別子を記憶するステッ
プをさらに含む、請求項46に記載の方法。 - 【請求項48】 プロトコルマシンによって、遠隔サーバとの接続を確立す
るステップをさらに含む、請求項38に記載の方法。 - 【請求項49】 ブランチを、そのブランチのためにプロトコルマシンによ
って確立された遠隔サーバとの接続に関連付ける、別の識別子を生成するステッ
プをさらに含む、請求項48に記載の方法。 - 【請求項50】 トランザクションのブランチに関連する情報が、そのブラ
ンチに関連する後続のアクションに関連して使用されるようにその中に記憶され
る記録を生成するステップと、 該記録内に該接続の識別子を記憶するステップとをさらに含む、請求項49に
記載の方法。 - 【請求項51】 該記録内に、ブランチの状態の表示を記憶するステップを
さらに含む、請求項46に記載の方法。 - 【請求項52】 該ブランチの状態は、準備中、準備済、エンリスト中、エ
ンリスト済、実行中、アボート中および回復中の状態のうちのいずれかを含む、
請求項51に記載の方法。 - 【請求項53】 プロトコルマシンによって、XATMIサービスリクエス
トに応答して遠隔サーバから応答を受取るステップと、 第1のトランザクションマネージャがトランザクションに関連する後続のアク
ティビティの通知を確実に提供するように、トランザクションのブランチを第1
のトランザクションマネージャにエンリストするステップと、 該エンリストされたブランチに対して第1のトランザクションマネージャから
、準備要求、実行要求およびアボート要求のうち1つを受取るステップと、 第1のトランザクションマネージャからの前記1つの要求を、双方向2相実行
通信プロトコルの対応のサービスリクエストに変換し、かつ、プロトコルマシン
を介して遠隔サーバに対して前記対応のサービスリクエストを発行するステップ
と、 前記対応のサービスリクエストが完了したことを示す表示を遠隔サーバから受
取ると、第1のトランザクションマネージャによって提供される表示方法を使用
して、該リクエストが完了したことを知らせる表示を第1のトランザクションマ
ネージャに提供するステップとをさらに含む、請求項38に記載の方法。 - 【請求項54】 該第1のトランザクションマネージャのトランザクション
処理環境はマイクロソフトトランザクションサーバ(MTS)環境を含み、該第
1のトランザクションマネージャは、マイクロソフト分散型トランザクションコ
ーディネータ(MS DTC)を含む、請求項53に記載の方法。 - 【請求項55】 前記MS DTCにブランチをエンリストするステップは
、トランザクションの該ブランチを表わしかつそのブランチのためにMS DT
Cが命令を発行するために呼出すことのできるメソッドを含む、オブジェクトの
インスタンスを生成するステップを含み、前記メソッドは、準備要求、実行要求
、アボート要求およびTMDown要求のうち少なくとも1つを含む、請求項54に記
載の方法。 - 【請求項56】 第1のトランザクションマネージャから準備要求を受取る
ステップと、 障害の発生時にトランザクションの処理を回復させかつ継続するために、第1
のトランザクションマネージャおよびプロトコルマシンの両方によって必要とさ
れる情報を併せて、安全な記憶装置内にログ記録するステップとをさらに含む、
請求項53に記載の方法。 - 【請求項57】 障害の発生後、 第1のトランザクションマネージャによって必要とされる情報および、プロト
コルマシンによって必要とされる情報の両方を、安全な記憶装置から取出すステ
ップと、 該取出された情報を使用して、第1のトランザクションマネージャのトランザ
クション処理環境およびプロトコルマシンの両方におけるトランザクションの状
態を回復させるステップとが行なわれる、請求項56に記載の方法。 - 【請求項58】 XATMIに適合しない第1のトランザクションマネージ
ャの制御の下、グローバルトランザクションの一部として、1または複数のリソ
ースマネージャからコンポーネントがリソースを要求するトランザクション処理
環境において、該コンポーネントが、その環境外の、XATMIに適合した第2
のトランザクションマネージャの制御の下にある遠隔サーバ上のリソースを、グ
ローバルトランザクションの一部として、要求することを可能にするための方法
であって、該リクエストは、グローバルトランザクションの1ブランチを表わし
、前記方法は、 第1のトランザクションマネージャのトランザクション処理環境内のグローバ
ルトランザクションを識別する第1の識別子を、双方向2相実行通信プロトコル
を実装しかつ遠隔サーバと通信するのに使用されるプロトコルマシン内のグロー
バルトランザクションを一意に識別するのに使用される第2の識別子へとマップ
するステップと、 第1のトランザクションマネージャのトランザクション処理環境におけるイベ
ントを、プロトコルマシン内の対応のイベントと調整するのに使用するために該
ブランチに関連する情報がその中に記憶される、ブランチのための記録を維持す
るステップと、 第1のトランザクションマネージャのトランザクション処理環境およびプロト
コルマシンの両方が、障害の発生時にブランチを回復させることができるように
、その環境およびプロトコルマシンの両方においてブランチの状態に関連する情
報を、安全な記憶装置内にログ記録するステップとを含む、方法。 - 【請求項59】 該第1のトランザクションマネージャのトランザクション
処理環境はマイクロソフトトランザクションサーバ(MTS)環境を含み、該第
1のトランザクションマネージャはマイクロソフト分散型トランザクションコー
ディネータ(MS DTC)を含む、請求項58に記載の方法。 - 【請求項60】 該第1の識別子は、グローバルに一意な識別子(GUID
)を含む、請求項59に記載の方法。 - 【請求項61】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該プロトコルマシンはOSI TPプロトコルマシンを含む、請
求項58に記載の方法。 - 【請求項62】 該第2の識別子は、該OSI TPプロトコル仕様に従っ
た、不可分動作識別子(AAID)を含む、請求項61に記載の方法。 - 【請求項63】 プロトコルマシン内のグローバルトランザクションのブラ
ンチを一意に識別する第3の識別子を生成するステップをさらに含む、請求項5
8に記載の方法。 - 【請求項64】 ブランチのための記録内に、第1、第2および第3の識別
子を記憶するステップをさらに含む、請求項63に記載の方法。 - 【請求項65】 プロトコルマシンによって、該ブランチのために遠隔サー
バとの接続を確立するステップをさらに含み、該接続を介してリクエストが遠隔
サーバに伝送される、請求項58に記載の方法。 - 【請求項66】 プロトコルマシン内で、ブランチのために該プロトコルマ
シンによって確立された接続を識別する別の識別子を生成するステップと、 該ブランチのための記録内に、該接続の識別子を記憶するステップとをさらに
含む、請求項65に記載の方法。 - 【請求項67】 該ブランチのための記録内に、該ブランチの状態の表示を
記憶するステップをさらに含む、請求項58に記載の方法。 - 【請求項68】 該ブランチの状態は、準備中、準備済、エンリスト中、エ
ンリスト済、実行中、アボート中および回復中の状態のうちのいずれかを含む、
請求項67に記載の方法。 - 【請求項69】 MTS環境内のグローバルトランザクションに関連付けら
れたトランザクションオブジェクトへのポインタを獲得しブランチのための記録
内に記憶するステップをさらに含む、請求項59に記載の方法。 - 【請求項70】 MTS環境内のグローバルトランザクションに関連付けら
れたエンリストメントオブジェクトへのポインタを獲得しかつブランチのための
記録内に記憶するステップをさらに含む、請求項59に記載の方法。 - 【請求項71】 プログラムコードがその上に記憶されるコンピュータ可読
媒体であって、前記プログラムコードは、XATMIに適合しない第1のトラン
ザクションマネージャの制御の下、グローバルトランザクションの一部として、
1または複数のリソースマネージャからコンポーネントがリソースを要求するト
ランザクション処理環境内で使用するためのものであって、前記プログラムコー
ドは、コンピュータ上で実行されるときに、該コンポーネントが、その環境外の
、XATMIに適合したトランザクションマネージャの制御の下にある遠隔サー
バ上のリソースを要求することを可能にし、前記プログラムコードは、 コンピュータ上で実行されたときに、双方向2相実行通信プロトコルに従って
遠隔サーバ上の要求されたリソースと通信するプロトコルマシンを含む接続マネ
ージャを実現する、第1のプログラムコードと、 コンピュータ上で実行されたときに、該コンポーネントからのXATMIサー
ビスリクエストを受取る第1のインターフェイスおよび、グローバルトランザク
ションのために第1のトランザクションマネージャによって発行された命令を受
取る第2のインターフェイスを有するリソースマネージャを実現する、第2のプ
ログラムコードとを含み、該リソースマネージャは、(i)該コンポーネントか
ら受取られた前記XATMIサービスリクエストおよび第1のトランザクション
マネージャによって発行された前記命令を、双方向2相実行通信プロトコルの対
応のサービスリクエストに変換し、(ii)接続マネージャのプロトコルマシンに
対して該対応のサービスリクエストを発行し、かつ、(iii)プロトコルマシン
による前記対応のサービスリクエストの処理を、第1のトランザクションマネー
ジャのトランザクション処理環境における対応のイベントの処理と調整する、コ
ンピュータ可読媒体。 - 【請求項72】 第1のトランザクションマネージャによって発行される前
記命令は、準備命令、実行命令およびアボート命令のそれぞれを含む、請求項7
1に記載のコンピュータ可読媒体。 - 【請求項73】 該第1のトランザクションマネージャのトランザクション
処理環境はマイクロソフトトランザクションサーバ環境を含み、該第1のトラン
ザクションマネージャはマイクロソフト分散型トランザクションコーディネータ
(MS DTC)を含む、請求項71に記載のコンピュータ可読媒体。 - 【請求項74】 グローバルトランザクションの一部として該コンポーネン
トから受取られるXATMIサービスリクエストは各々、グローバルトランザク
ションの別個のブランチを表わし、グローバルトランザクションの各ブランチに
対して、該リソースマネージャは、トランザクションのブランチを表わしかつそ
のブランチのために前記命令を発行するために第1のトランザクションマネージ
ャが呼出すメソッドを含む、オブジェクトのインスタンスを生成し、前記メソッ
ドは、前記リソースマネージャの機能の少なくとも一部を実現する、請求項73
に記載のコンピュータ可読媒体。 - 【請求項75】 グローバルトランザクションの一部として該コンポーネン
トから受取られたXATMIサービスリクエストは各々、グローバルトランザク
ションの別個のブランチを表わし、該リソースマネージャは、各ブランチのため
の記録を生成し、該記録には、プロトコルマシンによる双方向2相実行通信プロ
トコルの前記対応のサービスリクエストの処理を、第1のトランザクションマネ
ージャのトランザクション処理環境における対応のイベントの処理と調整するの
に該リソースマネージャによって使用されるように、該ブランチに関連する情報
が記憶される、請求項71に記載のコンピュータ可読媒体。 - 【請求項76】 該リソースマネージャはさらに、第1のトランザクション
マネージャのトランザクション処理環境から、その環境内のグローバルトランザ
クションに割当てられた第1の識別子を獲得し、かつ、それから、プロトコルマ
シン内のそのトランザクションを識別するのに使用される第2の識別子を生成す
るようさらに動作する、請求項71に記載のコンピュータ可読媒体。 - 【請求項77】 該第1のトランザクションマネージャのトランザクション
処理環境はマイクロソフトトランザクションサーバ(MTS)環境を含み、該第
1の識別子はグローバルに一意な識別子(GUID)を含む、請求項71に記載
のコンピュータ可読媒体。 - 【請求項78】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該第2の識別子は、該OSI TPプロトコル仕様の要件に従う
、不可分動作識別子(AAID)を含む、請求項76に記載のコンピュータ可読
媒体。 - 【請求項79】 グローバルトランザクションの一部として該コンポーネン
トから受取られるXATMIサービスリクエストは各々、グローバルトランザク
ションの別個のブランチを表わし、該コンポーネントからXATMIサービスリ
クエストを受取ると、該リソースマネージャは、前記第2の識別子に加えて、そ
のXATMIサービスリクエストによって表わされるグローバルトランザクショ
ンのブランチを一意に識別する第3の識別子をさらに生成する、請求項76に記
載のコンピュータ可読媒体。 - 【請求項80】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該第2および第3の識別子は、OSI TPプロトコル仕様の要
件に従う、不可分動作識別子(AAID)およびブランチ識別子(BRID)を
それぞれ含む、請求項79に記載のコンピュータ可読媒体。 - 【請求項81】 グローバルトランザクションの各ブランチに対して、該第
1、第2および第3の識別子がリソースマネージャによって記録内に記憶され、
該リソースマネージャは該識別子を使用して、プロトコルマシンによる双方向2
相実行通信プロトコルの前記対応のサービスリクエストの処理を、第1のトラン
ザクションマネージャのトランザクション処理環境内の対応のイベントの処理と
調整する、請求項79に記載のコンピュータ可読媒体。 - 【請求項82】 グローバルトランザクションの一部として該コンポーネン
トから受取られるXATMIサービスリクエストは各々、グローバルトランザク
ションの別個のブランチを表わし、グローバルトランザクションの各ブランチに
対して、該プロトコルマシンは、そのブランチのためのサービスリクエストを処
理するために遠隔サーバとの接続を確立する、請求項71に記載のコンピュータ
可読媒体。 - 【請求項83】 該リソースマネージャは、各ブランチに対して、そのブラ
ンチのためにプロトコルマシンによって確立される遠隔サーバとの接続を識別す
る識別子を生成する、請求項82に記載のコンピュータ可読媒体。 - 【請求項84】 該リソースマネージャは、各ブランチに対して記録を生成
し、そのブランチのための接続の識別子が、その接続を識別するのにプロトコル
マシンによって後に使用されるようにその中に記憶される、請求項83に記載の
コンピュータ可読媒体。 - 【請求項85】 グローバルトランザクションの一部として該コンポーネン
トから受取られたXATMIサービスリクエストは各々、グローバルトランザク
ションの別個のブランチを表わし、グローバルトランザクションの各ブランチに
対して、該リソースマネージャはさらに、障害から回復させるのに、第1のトラ
ンザクションマネージャおよびプロトコルマシンの両方によって必要とされる情
報を、安全な記憶装置内に併せて記憶するよう動作する、請求項71に記載のコ
ンピュータ可読媒体。 - 【請求項86】 該リソースマネージャを実装する第2のプログラムコード
はステートマシンを含み、該ステートマシンは、 初期状態と、 グローバルトランザクションのブランチを表わすXATMIサービスリクエス
トが該コンポーネントから受取られたこと、および、相互接続の第2のインター
フェイスがそのブランチを第1のトランザクションマネージャに対して、それか
ら後続の命令を受取るためにエンリストするよう試みることを示す状態と、 該ブランチが第1のトランザクションマネージャにうまくエンリストされたこ
とを示す状態と、 実行のために該ブランチを準備するよう要求するリクエストが第1のトランザ
クションマネージャから第2のインターフェイスによって受取られたことを示す
状態と、 プロトコルマシンが、遠隔サーバから、該遠隔サーバが該ブランチを実行する
準備ができていることを示す表示を受取ったことを示す状態と、 該ブランチを実行せよとのリクエストが第1のトランザクションマネージャか
ら第2のインターフェイスによって受取られたことを示す状態と、 該ブランチをアボートせよとのリクエストが第1のトランザクションマネージ
ャから第2のインターフェイスによって受取られたか、または、プロトコルマシ
ンにトランザクションをアボートするよう要求する条件が生じたことを示す状態
と、 該相互接続が障害の回復を試みていることを示す状態とを有する、請求項71
に記載のコンピュータ可読媒体。 - 【請求項87】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該プロトコルマシンはOSI TPプロトコルマシンを含む、請
求項71に記載のコンピュータ可読媒体。 - 【請求項88】 プログラムコードがその上に記憶されるコンピュータ可読
媒体であって、前記プログラムコードは、XATMIに適合しない第1のトラン
ザクションマネージャの制御の下、グローバルトランザクションの一部として、
1または複数のリソースマネージャからコンポーネントがリソースを要求するト
ランザクション処理環境内で使用するためのものであって、前記プログラムコー
ドは、コンピュータ上で実行されたときに、該コンポーネントが、その環境外の
、XATMIに適合したトランザクションマネージャの制御の下にある遠隔サー
バ上のリソースを要求することを可能にし、該リクエストはグローバルトランザ
クションの1ブランチを表わし、前記プログラムコードはさらに、前記コンピュ
ータに対して、 第1のトランザクションマネージャのトランザクション処理環境内のグローバ
ルトランザクションを識別する第1の識別子を、双方向2相実行通信プロトコル
を実装しかつ遠隔サーバと通信するのに使用されるプロトコルマシン内のグロー
バルトランザクションを一意に識別するのに使用される第2の識別子にマップし
、 第1のトランザクションマネージャのトランザクション処理環境におけるイベ
ントをプロトコルマシン内の対応のイベントと調整するのに使用するのに該ブラ
ンチに関連する情報をその中に記憶する、ブランチのための記録を維持し、さら
に、 第1のトランザクションマネージャのトランザクション処理環境およびプロト
コルマシンの両方が障害の発生時にブランチを回復させることができるようにす
るために、その環境およびプロトコルマシンの両方においてブランチの状態に関
連する情報を安全な記憶装置内にログ記録するように仕向ける、コンピュータ可
読媒体。 - 【請求項89】 該第1のトランザクションマネージャのトランザクション
処理環境はマイクロソフトトランザクションサーバ(MTS)環境を含み、該第
1のトランザクションマネージャはマイクロソフト分散型トランザクションコー
ディネータ(MS DTC)を含む、請求項88に記載のコンピュータ可読媒体
。 - 【請求項90】 該第1の識別子は、グローバルに一意な識別子(GUID
)を含む、請求項89に記載のコンピュータ可読媒体。 - 【請求項91】 該双方向2相実行通信プロトコルはOSI TPプロトコ
ル仕様を含み、該プロトコルマシンはOSI TPプロトコルマシンを含む、請
求項88に記載のコンピュータ可読媒体。 - 【請求項92】 プログラムコードによって生成された第2の識別子は、該
OSI TPプロトコル仕様に従う、不可分動作識別子(AAID)を含む、請
求項91に記載のコンピュータ可読媒体。 - 【請求項93】 該プログラムコードはさらに、該コンピュータに対して、
プロトコルマシン内のグローバルトランザクションのブランチを一意に識別する
第3の識別子を生成するようにさせる、請求項88に記載のコンピュータ可読媒
体。 - 【請求項94】 該プログラムコードはさらに、該コンピュータに対して、
ブランチのための記録内に第1、第2および第3の識別子を記憶させるようにす
る、請求項93に記載のコンピュータ可読媒体。 - 【請求項95】 該プログラムコードはさらに、該コンピュータに対して、
ブランチのために遠隔サーバとの接続をプロトコルマシンを介して確立させるよ
うにし、その接続を介してリクエストが遠隔サーバに伝送される、請求項88に
記載のコンピュータ可読媒体。 - 【請求項96】 該プログラムコードはさらに、該コンピュータに対して、 ブランチのためにプロトコルマシンによって確立された該接続をプロトコルマ
シン内で識別する、別の識別子を生成し、かつ、 該接続の識別子を該ブランチのための記録内に記憶するようにさせる、請求項
95に記載のコンピュータ可読媒体。 - 【請求項97】 該プログラムコードはさらに、該コンピュータに対して、
ブランチのための記録内に、ブランチの状態の表示を記憶させるようにする、請
求項88に記載のコンピュータ可読媒体。 - 【請求項98】 ブランチの該状態は、準備中、準備済、エンリスト中、エ
ンリスト済、実行中、アボート中および回復中の状態のうちいずれかを含む、請
求項97に記載のコンピュータ可読媒体。 - 【請求項99】 該プログラムコードはさらに、該コンピュータに対して、
MTS環境内のグローバルトランザクションに関連付けられたトランザクション
オブジェクトへのポインタを獲得しかつブランチのための記録内に記憶させるよ
うにする、請求項89に記載のコンピュータ可読媒体。 - 【請求項100】 該プログラムコードはさらに、該コンピュータに対して
、MTS環境内のグローバルトランザクションに関連付けられたエンリストメン
トオブジェクトへのポインタを獲得しかつブランチのための記録内に記憶させる
ようにする、請求項89に記載のコンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/064,160 US6157927A (en) | 1998-04-22 | 1998-04-22 | 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 |
US09/064,160 | 1998-04-22 | ||
PCT/US1999/008583 WO1999054817A2 (en) | 1998-04-22 | 1999-04-19 | Method and apparatus for enabling a component in a first transaction processing environment to access a resource in another environment |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002512400A true JP2002512400A (ja) | 2002-04-23 |
Family
ID=22053971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000545097A Pending JP2002512400A (ja) | 1998-04-22 | 1999-04-19 | 第1のトランザクション処理環境におけるコンポーネントを能動化して別の環境におけるリソースにアクセスするための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6157927A (ja) |
EP (1) | EP1078316B1 (ja) |
JP (1) | JP2002512400A (ja) |
AU (1) | AU3751599A (ja) |
DE (1) | DE69910008D1 (ja) |
WO (1) | WO1999054817A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006051599A1 (ja) * | 2004-11-12 | 2006-05-18 | Fujitsu Limited | リソース管理プログラム、リソース管理方法、およびリソース管理装置 |
KR20140070611A (ko) * | 2011-09-29 | 2014-06-10 | 오라클 인터내셔날 코포레이션 | 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법 |
Families Citing this family (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US6813769B1 (en) * | 1997-10-28 | 2004-11-02 | Microsoft Corporation | Server application components with control over state duration |
US6529932B1 (en) * | 1998-04-01 | 2003-03-04 | Microsoft Corporation | Method and system for distributed transaction processing with asynchronous message delivery |
US6553421B1 (en) * | 1998-09-15 | 2003-04-22 | International Business Machines Corporation | Method and system for broadcast management in a data communication network that permits namesharing |
US6272675B1 (en) * | 1998-10-01 | 2001-08-07 | Unisys Corporation | Development system for automatically enabling a server application to execute with an XATMI-compliant transaction manager managing transactions within multiple environments |
GB2343020A (en) * | 1998-10-19 | 2000-04-26 | Ibm | Handling transaction failures in a transaction processing system |
US6430578B1 (en) * | 1998-12-04 | 2002-08-06 | Sun Microsystems, Inc. | Name service for network management architecture |
US6557056B1 (en) * | 1998-12-30 | 2003-04-29 | Nortel Networks Limited | Method and apparatus for exchanging data between transactional and non-transactional input/output systems in a multi-processing, shared memory environment |
US6275863B1 (en) * | 1999-01-25 | 2001-08-14 | International Business Machines Corp. | System and method for programming and executing long running transactions |
AU2878800A (en) | 1999-02-12 | 2000-08-29 | Allen Freudenstein | System and method for providing certification-related and other services |
US6779027B1 (en) * | 1999-04-30 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | Intelligent management module application programming interface with utility objects |
US6643679B1 (en) * | 1999-05-12 | 2003-11-04 | Unisys Corporation | WebTx gateway preprocessing hook |
US6879989B2 (en) * | 1999-08-16 | 2005-04-12 | International Business Machines Corporation | Modification system for supporting localized data changes in a mobile device |
US20020029200A1 (en) * | 1999-09-10 | 2002-03-07 | Charles Dulin | System and method for providing certificate validation and other services |
AU778750B2 (en) | 1999-09-24 | 2004-12-16 | Identrust, Inc. | System and method for providing payment services in electronic commerce |
US6938256B2 (en) | 2000-01-18 | 2005-08-30 | Galactic Computing Corporation | System for balance distribution of requests across multiple servers using dynamic metrics |
US6912578B1 (en) * | 2000-02-25 | 2005-06-28 | Sun Microsystems, Inc. | Method and apparatus for improving utilization of a resource on a shared client |
GB0006230D0 (en) * | 2000-03-16 | 2000-05-03 | Univ Strathclyde | Mobile communications newworks |
AU2001255306A1 (en) * | 2000-04-14 | 2001-10-30 | Gensym Corporation | Intelligent transaction mining system |
US6832238B1 (en) * | 2000-05-24 | 2004-12-14 | Sun Microsystems, Inc. | Local transaction management |
US6721777B1 (en) * | 2000-05-24 | 2004-04-13 | Sun Microsystems, Inc. | Modular and portable deployment of a resource adapter in an application server |
US6873987B1 (en) * | 2000-05-31 | 2005-03-29 | International Business Machines Corporation | Method, system and program products for recovering from failures within a shared nothing distributed computing environment |
WO2002003219A1 (en) | 2000-06-30 | 2002-01-10 | Plurimus Corporation | Method and system for monitoring online computer network behavior and creating online behavior profiles |
US8281022B1 (en) * | 2000-06-30 | 2012-10-02 | Emc Corporation | Method and apparatus for implementing high-performance, scaleable data processing and storage systems |
US6816905B1 (en) | 2000-11-10 | 2004-11-09 | Galactic Computing Corporation Bvi/Bc | Method and system for providing dynamic hosted service management across disparate accounts/sites |
US8538843B2 (en) | 2000-07-17 | 2013-09-17 | Galactic Computing Corporation Bvi/Bc | Method and system for operating an E-commerce service provider |
WO2002013068A1 (en) * | 2000-08-04 | 2002-02-14 | Carr Scott Software Incorporated | Automatic transaction management |
US20020124083A1 (en) | 2000-09-06 | 2002-09-05 | Sun Microsystems, Inc. | Method and apparatus for increasing the efficiency of transactions and connection sharing in an enterprise environment |
US7233920B1 (en) * | 2000-09-07 | 2007-06-19 | Paymentech, L.P. | System and apparatus for credit transaction data transmission |
AU2001290727A1 (en) | 2000-09-08 | 2002-03-22 | Larry R. Miller | System and method for transparently providing certificate validation and other services within an electronic transaction |
US7072870B2 (en) | 2000-09-08 | 2006-07-04 | Identrus, Llc | System and method for providing authorization and other services |
US6993528B1 (en) * | 2000-10-04 | 2006-01-31 | Microsoft Corporation | Methods and systems for allowing third party client applications to influence implementation of high-level document commands |
US7051330B1 (en) * | 2000-11-21 | 2006-05-23 | Microsoft Corporation | Generic application server and method of operation therefor |
US20030018499A1 (en) * | 2001-02-09 | 2003-01-23 | Miller Rodney D. | System and methods for continuous fare shopping and virtual grouping of itinerary requests |
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 |
US7103578B2 (en) * | 2001-05-25 | 2006-09-05 | Roche Diagnostics Operations, Inc. | Remote medical device access |
US20020194244A1 (en) * | 2001-06-01 | 2002-12-19 | Joan Raventos | System and method for enabling transaction-based service utilizing non-transactional resources |
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 |
US6799188B2 (en) * | 2001-08-31 | 2004-09-28 | Borland Software Corporation | Transaction processing system providing improved methodology for two-phase commit decision |
ATE434786T1 (de) | 2001-09-20 | 2009-07-15 | Hitwise Pty Ltd | Verfahren und system zur charakterisierung des online-verhaltens |
KR20040058261A (ko) * | 2001-10-30 | 2004-07-03 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 분산 소프트웨어 컴포넌트들을 구성하는 방법 |
GB0130399D0 (en) * | 2001-12-19 | 2002-02-06 | Ibm | Message ordering in a messaging system |
JP4130076B2 (ja) * | 2001-12-21 | 2008-08-06 | 富士通株式会社 | データベース管理プログラムおよび記録媒体 |
US7376958B1 (en) * | 2002-06-06 | 2008-05-20 | Unisys Corporation | Method and apparatus for honoring CORBA transaction requests by a legacy data base management system |
US7743065B2 (en) * | 2002-06-27 | 2010-06-22 | Siebel Systems, Inc. | System and method for cross-referencing information in an enterprise system |
WO2004012412A2 (en) * | 2002-07-25 | 2004-02-05 | Yee James D | System and method for providing computer services |
US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US8145759B2 (en) | 2002-11-04 | 2012-03-27 | Oracle America, Inc. | Dynamically configurable resource pool |
US20040215594A1 (en) * | 2003-01-24 | 2004-10-28 | Bea Systems, Inc. | System for transaction processing with parallel execution |
US7849464B2 (en) * | 2003-02-28 | 2010-12-07 | Oracle International Corporation | Protection against interleaving transactions using a transaction manager |
US7353495B2 (en) * | 2003-02-28 | 2008-04-01 | Bea Systems, Inc. | Method for protection against interleaving transactions using a transaction manager |
US7451113B1 (en) | 2003-03-21 | 2008-11-11 | Mighty Net, Inc. | Card management system and method |
US7610305B2 (en) | 2003-04-24 | 2009-10-27 | Sun Microsystems, Inc. | Simultaneous global transaction and local transaction management in an application server |
US7743083B2 (en) * | 2003-04-24 | 2010-06-22 | Oracle America, Inc. | Common transaction manager interface for local and global transactions |
US7647344B2 (en) * | 2003-05-29 | 2010-01-12 | Experian Marketing Solutions, Inc. | System, method and software for providing persistent entity identification and linking entity information in an integrated data repository |
US7739252B2 (en) * | 2003-07-14 | 2010-06-15 | Oracle America, Inc. | Read/write lock transaction manager freezing |
US7640545B2 (en) * | 2003-07-14 | 2009-12-29 | Sun Microsytems, Inc. | Transaction manager freezing |
US8521875B2 (en) * | 2003-09-04 | 2013-08-27 | Oracle America, Inc. | Identity for data sources |
US7591015B2 (en) * | 2003-10-23 | 2009-09-15 | Microsoft Corporation | Secure kernel transactions |
US7539999B2 (en) * | 2003-10-23 | 2009-05-26 | Microsoft Corporation | Kernel-level transactions |
US7606814B2 (en) * | 2004-03-11 | 2009-10-20 | Microsoft Corporation | Tracing a web request through a web server |
US8074220B2 (en) * | 2004-05-21 | 2011-12-06 | Computer Associates Think, Inc. | System and method for interfacing an application to a distributed transaction coordinator |
EP1610234B1 (en) * | 2004-06-22 | 2007-08-01 | Sap Ag | Online transactional data processing system |
US8095826B1 (en) * | 2004-06-29 | 2012-01-10 | Symantec Operating Corporation | Method and apparatus for providing in-memory checkpoint services within a distributed transaction |
US7860840B2 (en) * | 2004-10-05 | 2010-12-28 | Microsoft Corporation | Maintaining correct transaction results when transaction management configurations change |
US7739244B2 (en) * | 2004-10-14 | 2010-06-15 | Oracle International Corporation | Operating logging for online recovery in shared memory information systems |
US20060149791A1 (en) * | 2005-01-06 | 2006-07-06 | Oracle International Corporation | Database-driven distributed recovery |
JP4177339B2 (ja) * | 2005-02-16 | 2008-11-05 | 株式会社東芝 | 分散システム、コンピュータおよび分散システムの状態遷移制御方法 |
US8660852B2 (en) * | 2005-02-28 | 2014-02-25 | Microsoft Corporation | CRM office document integration |
US8175889B1 (en) | 2005-04-06 | 2012-05-08 | Experian Information Solutions, Inc. | Systems and methods for tracking changes of address based on service disconnect/connect data |
US7730487B2 (en) * | 2005-08-15 | 2010-06-01 | Microsoft Corporation | Synchronizing transaction ambient state among multiple transaction managers |
US8005759B2 (en) | 2006-08-17 | 2011-08-23 | Experian Information Solutions, Inc. | System and method for providing a score for a used vehicle |
US7912865B2 (en) * | 2006-09-26 | 2011-03-22 | Experian Marketing Solutions, Inc. | System and method for linking multiple entities in a business database |
US7840525B2 (en) * | 2006-10-11 | 2010-11-23 | Ruby Jonathan P | Extended transactions |
US8606666B1 (en) | 2007-01-31 | 2013-12-10 | Experian Information Solutions, Inc. | System and method for providing an aggregation tool |
US8285656B1 (en) | 2007-03-30 | 2012-10-09 | Consumerinfo.Com, Inc. | Systems and methods for data verification |
US8127986B1 (en) | 2007-12-14 | 2012-03-06 | Consumerinfo.Com, Inc. | Card registry systems and methods |
US9990674B1 (en) | 2007-12-14 | 2018-06-05 | Consumerinfo.Com, Inc. | Card registry systems and methods |
JP5513410B2 (ja) | 2008-01-18 | 2014-06-04 | アイデントラスト, インコーポレイテッド | 複数の信頼ドメインへのデジタル証明書のバインディング |
US7853493B2 (en) * | 2008-06-18 | 2010-12-14 | Consumerinfo.Com, Inc. | Personal finance integration system and method |
US8312033B1 (en) | 2008-06-26 | 2012-11-13 | Experian Marketing Solutions, Inc. | Systems and methods for providing an integrated identifier |
US8639920B2 (en) | 2009-05-11 | 2014-01-28 | Experian Marketing Solutions, Inc. | Systems and methods for providing anonymized user profile data |
US9448850B2 (en) * | 2010-03-11 | 2016-09-20 | International Business Machines Corporation | Discovering a resource in a distributed computing system |
US20110225297A1 (en) * | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue |
US9348661B2 (en) * | 2010-03-11 | 2016-05-24 | International Business Machines Corporation | Assigning a unique identifier to a communicator |
US9417906B2 (en) * | 2010-04-01 | 2016-08-16 | Red Hat, Inc. | Transaction participant registration with caveats |
US8621446B2 (en) | 2010-04-29 | 2013-12-31 | International Business Machines Corporation | Compiling software for a hierarchical distributed processing system |
US8914544B2 (en) | 2010-06-23 | 2014-12-16 | Smartek21, Llc | Computer-implemented system and method for transparently interfacing with legacy line of business applications |
US9152727B1 (en) | 2010-08-23 | 2015-10-06 | Experian Marketing Solutions, Inc. | Systems and methods for processing consumer information for targeted marketing applications |
US8639616B1 (en) | 2010-10-01 | 2014-01-28 | Experian Information Solutions, Inc. | Business to contact linkage system |
US8484186B1 (en) | 2010-11-12 | 2013-07-09 | Consumerinfo.Com, Inc. | Personalized people finder |
US9147042B1 (en) | 2010-11-22 | 2015-09-29 | Experian Information Solutions, Inc. | Systems and methods for data verification |
US9690638B2 (en) | 2011-09-29 | 2017-06-27 | Oracle International Corporation | System and method for supporting a complex message header in a transactional middleware machine environment |
US8738516B1 (en) | 2011-10-13 | 2014-05-27 | Consumerinfo.Com, Inc. | Debt services candidate locator |
US9665858B1 (en) * | 2012-10-11 | 2017-05-30 | Square, Inc. | Cardless payment transactions with multiple users |
US9654541B1 (en) | 2012-11-12 | 2017-05-16 | Consumerinfo.Com, Inc. | Aggregating user web browsing data |
US10432703B2 (en) * | 2012-11-26 | 2019-10-01 | Facebook, Inc. | On-demand session upgrade in a coordination service |
US9697263B1 (en) | 2013-03-04 | 2017-07-04 | Experian Information Solutions, Inc. | Consumer data request fulfillment system |
US8972400B1 (en) | 2013-03-11 | 2015-03-03 | Consumerinfo.Com, Inc. | Profile data management |
US9201919B2 (en) | 2013-05-07 | 2015-12-01 | Red Hat, Inc. | Bandwidth optimized two-phase commit protocol for distributed transactions |
US9721314B2 (en) | 2013-10-28 | 2017-08-01 | Square, Inc. | Apportioning shared financial expenses |
US10102536B1 (en) | 2013-11-15 | 2018-10-16 | Experian Information Solutions, Inc. | Micro-geographic aggregation system |
US9529851B1 (en) | 2013-12-02 | 2016-12-27 | Experian Information Solutions, Inc. | Server architecture for electronic data quality processing |
US10262362B1 (en) | 2014-02-14 | 2019-04-16 | Experian Information Solutions, Inc. | Automatic generation of code for attributes |
EP3555837A4 (en) | 2017-01-31 | 2020-09-16 | Experian Information Solutions, Inc. | LARGE-SCALE HETEROGENIC DATA INGESTION AND USER RESOLUTION |
US10572297B2 (en) * | 2017-03-31 | 2020-02-25 | International Business Machines Corporation | Attach an interpreter-based TPM into a cluster of inter-connected multi-process based compiler-based TPMs to achieve global transaction |
US11210129B2 (en) * | 2018-06-14 | 2021-12-28 | International Business Machines Corporation | Extended architecture as a service to integrate resource and transaction managers |
US10963434B1 (en) | 2018-09-07 | 2021-03-30 | Experian Information Solutions, Inc. | Data architecture for supporting multiple search models |
US11941065B1 (en) | 2019-09-13 | 2024-03-26 | Experian Information Solutions, Inc. | Single identifier platform for storing entity data |
CN113992750B (zh) * | 2020-07-10 | 2024-09-10 | 华为云计算技术有限公司 | 一种全局事务协同方法、装置、设备及介质 |
US11880377B1 (en) | 2021-03-26 | 2024-01-23 | Experian Information Solutions, Inc. | Systems and methods for entity resolution |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0797782B2 (ja) * | 1991-09-18 | 1995-10-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 異種トランザクションの調整方法 |
JP2557192B2 (ja) * | 1993-03-15 | 1996-11-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法 |
US5586312A (en) * | 1994-10-11 | 1996-12-17 | Unisys Corporation | Method and apparatus for using an independent transaction processing application as a service routine |
US5680610A (en) * | 1995-01-19 | 1997-10-21 | Unisys Corporation | Method and apparatus for testing recovery scenarios in global transaction processing systems |
GB2311391A (en) * | 1996-03-19 | 1997-09-24 | Ibm | Restart and recovery of OMG compliant transaction systems |
US5754772A (en) * | 1996-03-26 | 1998-05-19 | Unisys Corporation | Transaction service independent HTTP server-to-transaction gateway |
GB2316777B (en) * | 1996-08-31 | 2000-10-04 | Ibm | Operating a transaction manager with a non-compliant resource manager |
-
1998
- 1998-04-22 US US09/064,160 patent/US6157927A/en not_active Expired - Lifetime
-
1999
- 1999-04-19 WO PCT/US1999/008583 patent/WO1999054817A2/en active IP Right Grant
- 1999-04-19 AU AU37515/99A patent/AU3751599A/en not_active Abandoned
- 1999-04-19 JP JP2000545097A patent/JP2002512400A/ja active Pending
- 1999-04-19 DE DE69910008T patent/DE69910008D1/de not_active Expired - Lifetime
- 1999-04-19 EP EP99919899A patent/EP1078316B1/en not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006051599A1 (ja) * | 2004-11-12 | 2006-05-18 | Fujitsu Limited | リソース管理プログラム、リソース管理方法、およびリソース管理装置 |
JPWO2006051599A1 (ja) * | 2004-11-12 | 2008-05-29 | 富士通株式会社 | リソース管理プログラム、リソース管理方法、およびリソース管理装置 |
JP4522413B2 (ja) * | 2004-11-12 | 2010-08-11 | 富士通株式会社 | リソース管理プログラム、リソース管理方法、およびリソース管理装置 |
US8589381B2 (en) | 2004-11-12 | 2013-11-19 | Fujitsu Limited | Resource management program, resource management process, and resource management apparatus |
KR20140070611A (ko) * | 2011-09-29 | 2014-06-10 | 오라클 인터내셔날 코포레이션 | 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법 |
JP2014528611A (ja) * | 2011-09-29 | 2014-10-27 | オラクル・インターナショナル・コーポレイション | トランザクションミドルウェアマシン環境においてシングルポイントボトルネックを防止するためのシステムおよび方法 |
KR101956320B1 (ko) * | 2011-09-29 | 2019-03-08 | 오라클 인터내셔날 코포레이션 | 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
DE69910008D1 (de) | 2003-09-04 |
WO1999054817A2 (en) | 1999-10-28 |
EP1078316B1 (en) | 2003-07-30 |
US6157927A (en) | 2000-12-05 |
WO1999054817A3 (en) | 2000-01-06 |
EP1078316A2 (en) | 2001-02-28 |
AU3751599A (en) | 1999-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002512400A (ja) | 第1のトランザクション処理環境におけるコンポーネントを能動化して別の環境におけるリソースにアクセスするための方法および装置 | |
US5586312A (en) | Method and apparatus for using an independent transaction processing application as a service routine | |
US6275843B1 (en) | Method and apparatus for processing multiple service requests within a global transaction by a single server application program instance | |
US5768587A (en) | Operating a transaction manager with a non-compliant resource manager | |
US5680610A (en) | Method and apparatus for testing recovery scenarios in global transaction processing systems | |
EP1099164B1 (en) | Method and program for processing administrative requests of a distributed network application executing in a clustered computing environment | |
US6225995B1 (en) | Method and apparatus for incorporating state information into a URL | |
Adler | Distributed coordination models for client/server computing | |
US7831655B2 (en) | System and method for implementing a service adapter | |
US5920863A (en) | System and method for supporting transactions for a thin client lacking a persistent store in a distributed object-oriented environment | |
US9588800B2 (en) | Method and a system for performing a two-phase commit protocol | |
US7082553B1 (en) | Method and system for providing reliability and availability in a distributed component object model (DCOM) object oriented system | |
US20020035590A1 (en) | Guaranteed end-to-end transaction execution in a client/server environment | |
US6381617B1 (en) | Multiple database client transparency system and method therefor | |
US20020156932A1 (en) | Method and apparatus for providing parallel execution of computing tasks in heterogeneous computing environments using autonomous mobile agents | |
US6141679A (en) | High performance distributed transaction processing methods and apparatus | |
JPH06332870A (ja) | オブジェクト指向コンピュータ環境における協調処理のためのオブジェクト・マネージャをリンクする方法及び装置 | |
US6389431B1 (en) | Message-efficient client transparency system and method therefor | |
JP2001522086A (ja) | 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置 | |
JP2005523486A (ja) | 委任コミット特徴によるトランザクション処理システム及び方法 | |
JPH04233044A (ja) | トランザクション処理環境における通信インターフェース | |
US7165097B1 (en) | System for distributed error reporting and user interaction | |
US6233587B1 (en) | Extensible framework of key resource manager and transaction manager events for providing native support for foreign-initiated transactions | |
CN100561920C (zh) | Web服务事务处理系统及处理方法 | |
US6571270B1 (en) | Timeout detection facility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080930 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090310 |