(57)【特許請求の範囲】
【請求項１】
データ処理システムによって処理を行う方法であって、第１取引がアプリケーション・プログラム（１９０）によって開始され、かつ、この第１取引は資源管理プログラムと関連する必要性を有し、上記第１取引は第１取引管理プログラム（１４５）によって管理され、上記第１取引管理プログラムのプロトコルは上記資源管理プログラム（１２０）のプロトコルと共用することができず、上記システムはそのプロトコルが上記資源管理プログラムのプロトコルと共用することのできる第２取引管理プログラム（１１５）と上記第１取引管理プログラムに対する呼び出しを上記第２取引管理プログラムに対する呼び出しに変換するマッパー（２４８）を有し、上記方法は、
上記アプリケーション・プログラムが上記第１取引管理プログラムから取引に関する参照を得るステップと、
上記アプリケーション・プログラムが上記資源管理プログラムに対して接続に関する参照を設定するステップと、
上記マッパーが上記資源管理プログラムと共に第２取引管理プログラムによって管理される第２取引を開始するステップであって、上記第２取引管理プログラムのプロトコルは上記資源管理プログラムのプロトコルと共用することのできる上記ステップを具備し、
上記方法は、さらに、
上記アプリケーション・プログラムが取引を開始した後、上記マッパーは上記接続に関する参照と上記取引に関する参照を記録し、上記接続に関する参照と上記取引に関する参照を上記資源管理プログラムの認識することのできる取引識別子と関連させるステップ、
を有することを特徴とする方法。
【請求項２】
上記アプリケーション・プログラム（１９０）と上記資源管理プログラム（１２０）の間で相互作用を行っている期間中、取引に対する上記取引管理プログラムの識別子は各相互作用と関連するデータ内に含まれていることを特徴とする請求項１記載の方法。
【請求項３】
上記取引の処理の期間中上記資源管理プログラム（１２０）は関連するログ・ファイル（３２０）内に回復情報を格納することを特徴とする請求項１記載の方法。
【請求項４】
データ処理システム内で実行されるアプリケーション・プログラム（１９０）の開始した第１取引を処理する取引処理システムであって、
取引に関する参照をアプリケーション・プログラムに提供する上記第１取引を管理する第１取引管理プログラム（１４５）と、
上記第１取引が使用し上記取引管理プログラム（１４５）のプロトコルと共用することができず、かつ、アプリケーション・プログラムの設定した接続に関する参照を有する資源管理プログラム（１２０）と、
上記資源管理プログラムと共用することのできるプロトコルを有する第２取引管理プログラム（１１５）と、
上記資源管理プログラムと共に第２取引管理プログラムによって管理される第２取引を開始するマッパー（２４８）であって、上記第２取引管理プログラムのプロトコルは上記資源管理プログラムのプロトコルと共用することのできる上記マッパー（２４８）を具備し、
上記マッパーは上記接続に関する参照と上記取引に関する参照を記録し、上記接続に関する参照と上記取引に関する参照を上記資源管理プログラムの認識することのできる取引識別子と関連させることを特徴とするシステム。
【請求項５】
上記アプリケーション・プログラム（１９０）と上記資源管理プログラム（１２０）の間で相互作用を行っている期間中、取引に対する上記取引管理プログラムの識別子は各相互作用と関連するデータ内に含まれていることを特徴とする請求項５記載のシステム。
【請求項６】
上記資源管理プログラム（１２０）は、回復情報を格納するための関連するログ・ファイル（３２０）を更に具備することを特徴とする請求項５記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理の分野に関し、更に詳しくは、取引処理システムに関し、特に資源管理プログラムのプロトコルと共用することのできない取引管理プログラムと共に上記資源管理プログラムを動作させることに関する。
【０００２】
【従来の技術】
取引（トランザクション）
多くの産業に於いて重要なビジネスのタスクにコンピュータによって実施される取引処理システムを使用している。取引は、完全に完了しなければならないかまたはアクションを起こすことなく完全に除去しなければならない１単位のワークとして定義する。例えば顧客が金銭を引き出す銀行の自動金銭引出機（ＡＴＭ）の場合、金銭を供給する動作、機械の中で手元にある金銭の帳尻を減額する動作及び顧客の銀行の帳尻を減額する動作は、全て行わなければならないかまたはこれらは何れも行ってはいけない。これらの付随する動作の１つに誤りが発生すると、記録と現実に発生している事柄の間に不一致が生じる。
【０００３】
分散取引
分散した取引の処理には、２つ以上の物理的または論理的位置に於ける資源に影響を及ぼす取引が含まれている。上記例では、ＡＴＭによる取引は地域のＡＴＭ装置の管理する資源に影響を及ぼすと共に銀行のメイン・コンピュータの管理する銀行の帳尻にも影響を及ぼす。分散した取引は物理的に分散しているか、または物理的に分散していなくても、取引の完了を成功させるためには、同期して完了しなければならない協働して行われているタスクが含まれている。
【０００４】
Ｘ／Ｏｐｅｎ
Ｘ／Ｏｐｅｎ株式会社（Ｘ／ＯｐｅｎはＸ／Ｏｐｅｎ株式会社の商標である）は、分散取引処理を実施するための１つのモデルを説明したガイドを公表している。「Ｘ／Ｏｐｅｎのガイド、分散取引処理の参考モデル」、１９９６年２月、ＩＳＢＮ１−８５９１２−１７０−５は、分散取引システムの構成要素とこれらの構成要素の間の相互関係を論じている。Ｘ／Ｏｐｅｎ分散取引処理モデル（ＤＴＰモデル）は、３つの主要な構成要素、即ちアプリケーション・プログラム（ＡＰ）、取引管理プログラム（ＴＭ）と１つ以上の資源管理プログラム（ＲＭ）に付いて説明している。アプリケーション・プログラムは、１つ以上の資源管理プログラムによって制御された資源を使用しまたこれらの資源を変更している。取引管理プログラムは、地球規模の取引を担当しまた資源管理プログラムの取り上げたアクションをコミットするかロールバックするかの判定を調整している。（コミットするとは資源を更新することであり、一方ロールバックするとは全ての作業を放棄して資源を取引の最初の状態に戻すことである。）資源管理プログラムは、特定の資源を管理している。資源管理プログラムは、データベース管理システム（ＤＢＭＳ）、ファイル・システムまたは同様の資源を有することができる。Ｘ／Ｏｐｅｎ取引管理プログラムは、ＸＡインターフェースと呼ぶプログラミング・インターフェースによって資源管理プログラムと通信を行う。
【０００５】
２フェーズ・コミット
Ｘ／ＯｐｅｎＤＴＰモデルは、取引によって行われた変化をコミットするか否かを判定するための「２フェーズ・コミット」プロセスと呼ばれるプロセスの説明を行い、多くの商業上の取引処理システムがこのプロセスを使用している。第１フェーズには、取引管理プログラムを信じる資源管理プログラムが取引によって行われた変化のコミットに成功することができるかどうかをこの取引管理プログラムが判定するステップが含まれる。もしいずれかの資源管理プログラムがコミットすることができないと指示したりまたは応答に失敗すると取引管理プログラムは各資源管理プログラムに於いてこれらの変化をロールバックさせる。もし全ての応答が肯定を示すものであれば、取引管理プログラムは全ての資源管理プログラムにその取引をコミットするように命ずる。
【０００６】
米国特許５，４２８，７７１は、異なった環境で実行されている第２取引管理プログラムを分散取引処理環境の取引管理プログラムに接続する変換ブリッジを有する従来技術による取引処理システムを開示している。この変換ブリッジは２つの異なった環境の間でマッピングを実行することを要求され、異なった取引識別用の仕様の相関関係を有している。取引及びその他のゲートウエイの状態情報を長期間保持可能なアーカイバルを必要とする適切な状態情報を記録することと異なったコミットのプロトコルの解釈と取引のコミットメント領域の橋絡を含む失敗と再スタートのシナリオを実行する手順を提供することがまた要求されている。この取引処理システムは、第２分散取引処理環境内で実行されるアプリケーション・プログラムをまた有する。取引処理ブリッジは、各システムのそれぞれの取引処理プロトコルを他のシステムが使用することのできるプロトコルに変換するという別の機能を有している。例えば、分散取引処理環境はＡＩＸ動作システムの２つのヘーズによるコミット／プレジュームド・アボート・プロトコルを使用し、第２分散取引処理環境はＳＮＡの２つのフェーズによるコミット／プレジューム・ナッシング・プロトコルを使用することができる（ＡＩＸはＩＢＭ社の商標である）。これらのプロトコルは下記の点で異なっている。即ち、２つのフェーズによるコミット／プレジュームド・アボート・プロトコルは取引の結果に関する情報が存在しない場合、取引を中止するものと仮定し、一方ＳＮＡプロトコルは取引の結果に関して何らの仮定を行わず、取引管理プログラムが取引の結果を判定すべきサイトの間で情報の交換を要求される取引の参加者のリストを保持する。
【０００７】
オブジェクト指向プログラミング
オブジェクト指向プログラミング・システムは、オブジェクトの再使用を可能し機能を明確に分離することによってシステムのメンテナンスを単純化することによってプログラム開発の効率を高めるように設計されている。オブジェクト指向システム内の各オブジェクトは、そのオブジェクト用のデータとそのデータ上で動作する手順又は方法を隠蔽している。隠蔽とは、あるオブジェクトに対するデータは定義された方法を使用しているそのオブジェクトのみによって処理することができることを意味している。オブジェクト指向システムは、オブジェクトとその外部インターフェースを定義する方法を指定している。１つのこのようなオブジェクト指向システムは、ＩＢＭ社から供給されているシステム・オブジェクト・モデル（ＳＯＭ）である。ＳＯＭは、「ＳＯＭｏｂｊｅｃｔｓ：プラクティカル・イントロダクション・ツーＳＯＭアンドＤＯＳＭ」、ＩＢＭ社刊、著作権１９９４、オーダ番号ＧＧ２４−４３５７−００（ＳＯＭとＳＯＭｏｂｊｅｃｔｓはＩＢＭ社の商標である）に説明されている。
【０００８】
ＯＭＧ
オブジェクト指向技術を取引処理システムに適用すると多くの新しい問題が発生するが、これによってオブジェクト指向の原理の使用によるシステム効率の増加の機会が提供される。オブジェクト・マネージメント・グループ社（ＯＭＧ）は、相互に動作可能なオブジェクト指向システムに対する標準を設定している。ＯＭＧによって定義されている全体的なアーキテクチャは、オブジェクト・マネージメント・アーキテクチャ（ＯＭＡ）である。ＯＭＡの中心となる構成要素はオブジェクトが他のオブジェクトに対してメッセージを送付することを可能にするオブジェクト・リクエスト・ブローカである。コモン・オブジェクト・リクエスト・ブローカ・アーキテクチャ（ＣＯＲＢＡ）は、オブジェクト間の相互作用、特に異なったコンピュータ・システムに於ける分散したオブジェクト間の相互作用を定義している。オブジェクト・リクエスト・ブローカ（ＯＲＢ）はロケーションを明かにし、オブジェクト間の通信の詳細を隠蔽している。ＣＯＲＢＡは「コモン・オブジェクト・リクエスト・ブローカ：アーキテクチャ・アンド・スペシフィケーション」、１９９２年３月という名称のＯＭＧの出版物で説明されている。
【０００９】
ＯＴＳ
ＯＭＧは、オブジェクト指向システムに於ける取引の処理を標準化するための仕様を受け入れている。オブジェクト・トランザクション・サービス（ＯＴＳ）仕様書、ＯＭＧ文書９４．８．４．という名称の本仕様書は、取引処理システムを実施するのに必要なオブジェクトのサービスのために４つの要件を設定している。ＯＴＳは、オブジェクト指向アプリケーションが回復可能な挙動を達成するために使用することのできる１組の標準インターフェースによって構成されている。これは、ＯＲＢプロセスの間で取引のコンテキストの伝達を可能にしサーバの開始時点でＯＴＳの状態の回復を可能にするためのＯＲＢを有する１組の標準インターフェースによってまた構成される。ＯＴＳの仕様は、目的指向システムのユニークな能力の内の多くを使用している。しかし、ＯＴＳモデルは、Ｘ／ＯｐｅｎＤＴＰモデル及び既存の処理用の取引処理システムとは相互に動作可能に設計されている。
【００１０】
ＤＴＣ
マイクロソフト社から供給されている分散取引コーディネータ（ＤＴＣ）のソフトウェア製品は、取引のＡＣＩＤ（構成状態、一致性、隔離性及び耐久性）特性を使用した取引の調整を行うための装置を提供する取引コーディネータである。ＤＴＣ内の取引は、取引上のオブジェクトによって表す。これらの取引上のオブジェクトはＤＴＣによって生成及び管理され、ＤＴＣのサービスを使用してアプリケーション・プログラムと資源管理プログラムによってこれらの上で動作する。
【００１１】
ＤＴＣがサポートしている資源管理プログラムのみが、マイクロソフト社のオブジェクト・リンキング・アンド・エンベッディング（ＯＬＥ）の取引用インターフェースの定義に適合している。このことは、既存の標準−コンプリアント資源は、マイクロソフト社のＯＬＥ取引用インターフェースの定義に適合するようにその取引管理プログラムを資源管理プログラムのインターフェースに合わせてコードを書き直す必要がある。ここで、コンプリアントまたはコンパチプルは他と共用することが可能であることを意味する。このような既存の標準−コンプリアント資源の例には、ＩＢＭ社の供給しているＤＢ２データベース、オラクル社のデータベース、サイベース社のデータベース、インフォーミックス社のデータベース及びグレシャム・プロダクト社のＩＳＡＭファイルのようなファイル（ＤＢ２とＩＢＭはＩＢＭ社の商標である）がある。ＤＴＣのサービスと資源からＸ／ＯｐｅｎのＸＡインターフェースに変換するマッパーを提供することによって、これらのＤＴＣのサービスと資源を既存の取引モニタ環境で使用することを可能にするサポートが、ＤＴＣに含まれている。上記の逆を可能にする、即ち、Ｘ／ＯｐｅｎのＸＡインターフェースのようなＯＬＥインターフェース以外のインターフェースを有する資源管理プログラムをマイクロソフト社のＤＴＣ取引コーディネータに使用することを可能にするサポートは、ＤＴＣに含まれていない。
【００１２】
【発明が解決しようとする課題】
従って、ＤＢ２、オラクル社、サイベース社及びインフォーミックス社のデータベースとグレシャム・プロダクト社のＩＳＡＭファイルは、資源管理プログラムに適合するように変更を加えることなしにはＤＴＣに使用できるようにサポートされていない。もしこのような資源をＤＴＣ取引環境に於いて変更なしに使用することができれば、これは好ましい。
【００１３】
【課題を解決するための手段】
従って、本発明は、データ処理システムによって処理を行う方法に於いて、第１取引をアプリケーション・プログラムによって開始すると共にこの第１取引が資源管理プログラムと関連する必要性を有し、上記第１取引は第１取引管理プログラムによって管理し、上記第１取引管理プログラムのプロトコルは上記資源管理プログラムのプロトコルと共用することができず、上記システムはそのプロトコルが上記資源管理プログラムのプロトコルと共用することができる第２取引管理プログラムと上記第１取引管理プログラムに対する呼び出しを上記第２取引管理プログラムに対する呼び出しに変換するマッパーを有する上記方法を提供し、上記方法は、上記アプリケーション・プログラムが上記資源管理プログラムに対して接続に関する参照を設定するステップと、上記アプリケーション・プログラムが上記取引管理プログラムから取引に関する参照を得るステップと、上記マッパーが上記資源管理プログラムと共に第２取引管理プログラムによって管理された第２取引を開始するステップであって、上記第２取引管理プログラムのプロトコルは上記資源管理プログラムのプロトコルと共用することができる上記ステップを具備する。
【００１４】
上記方法は、上記アプリケーション・プロトコルが取引を開始した後、上記マッパーは上記接続に関する参照と上記取引に関する参照を記録し、上記接続に関する参照と上記取引に関する参照を上記資源管理プログラムの認識することのできる取引識別子と関連させるステップを更に有することを特徴とする。
【００１５】
これによって、その資源をＤＴＣ取引管理プログラムと共用することのできないＤＢ２、オラクル社、サイベース社及びインフォミックス社のデータベースとグレシャム・プロダクト社のＩＳＡＭファイルのような標準の共用可能資源管理プログラムをアプリケーション・プログラムのコードを書き直すことなくＤＴＣ取引管理プログラムと共に使用することがができるという利点が得られる。
【００１６】
本発明発明は、またデータ処理システム内で実行されるアプリケーション・プログラム（１９０）の開始した第１取引を処理する取引処理システムを提供し、このシステムは、取引に関する参照を有するアプリケーション・プログラムを提供する上記第１取引を管理する第１取引管理プログラムと、上記第１取引が使用し上記取引管理プログラムのプロトコルと共用することができずアプリケーション・プログラムの設定した接続に関する参照を有する資源管理プログラムと、上記資源管理プログラムと共用することのできるプロトコルを有する第２取引管理プログラムと、上記資源管理プログラムと共に第２取引管理プログラムによって管理される第２取引を開始するマッパーであって、上記第２取引管理プログラムのプロトコルは上記資源管理プログラムのプロトコルと共用することのできる上記マッパーを具備する。
【００１７】
本システムは、上記マッパーが上記接続に関する参照と上記取引に関する参照を記録し、上記接続に関する参照と上記取引に関する参照を上記資源管理プログラムの認識することのできる取引識別子と関連させることを特徴とする。
【００１８】
【発明の実施の形態】
図１は、ＯＬＥインタフェースを有する資源がＸ／Ｏｐｅｎの管理する取引に参加している従来技術によるシステムのブロック図である。この取引システムはＸ／Ｏｐｅｎ−コンプリアントＴＰモニタ１１０を有し、このＴＰモニタ１１０はＸ／Ｏｐｅｎ取引管理プログラム１１５、Ｘ／Ｏｐｅｎ−コンプリアント資源管理プログラム１２０、オブジェクト・リンキング・アンド・エンベッデング（ＯＬＥ）資源管理プログラム１３０とＤＴＣ  ＴＰモニタ１４０を有している。ＤＴＣ  ＴＰモニタ１４０は、マッパー１４８とＤＴＣ取引管理プログラム１４５を有している。図１には、アプリケーション・プログラム１９０をまた示している。Ｘ／Ｏｐｅｎ取引管理プログラム１１５は、アプリケーション・プログラム１９０の開始した取引を調整し、Ｘ／Ｏｐｅｎ資源管理プログラム１２０とＯＬＥ資源管理プログラム１３０を有している。ＯＬＥ資源管理プログラム１３０は、ＤＴＣ  ＴＰモニタ１４０を介してＸ／Ｏｐｅｎ取引管理プログラム１１５によって管理する。Ｘ／Ｏｐｅｎ取引管理プログラム１１５は、ＯＬＥ資源管理プログラム１３０を管理することができるが、これはＯＬＥ資源管理プログラム１３０がＸ／Ｏｐｅｎ取引管理プログラム１１５と互換性を有するように設計されているからである。
【００１９】
図２は、資源管理プログラム１２０とＴＰモニタ２４０用のＸ／Ｏｐｅｎ−コンプリアント構成要素を使用した第１実施例を示し、ＴＰモニタ２４０内に取引管理プログラム１１５とマッパー２４８を有し、本実施例ではこのマッパー２４８はＤＴＣのプロトコルからＸ／Ｏｐｅｎのプロトコルに対するマッピングとこの逆のマッピングを行う。前に述べたように、ＯＴＳモデルはＸ／ＯｐｅｎのＤＴＰモデルと相互に動作可能に設計され、従って第２実施例では、資源管理プログラムはＯＴＳ−コンプリアント資源管理プログラムであり、取引管理プログラムはＯＴＳ−コンプリアントＴＰ管理プログラムである。本実施例のマッパーはＤＴＣプロトコルからＯＴＳプロトコルに対するマッピングとこの逆のマッピングを行う。更に他の実施例では、他の標準−コンプリアント取引環境を使用することができる。以下の説明ではＸ／Ｏｐｅｎの取引処理環境で実行される実施例を説明するが、Ｘ／ＯｐｅｎまたはＸ／Ｏｐｅｎ−コンプリアントに対して参照を行う場合、これはまたＯＭＧ  ＯＴＳまたはＯＭＧ  ＯＴＳ−コンプリアントに対する参照または何れかの標準−コンプリアント取引処理環境に対する参照としてまた受け止めることができる。
【００２０】
ＤＢ２、オラクル社、サイベース社及びインフォミックス社のデータベースとグレシャム・プロダクト社のＩＳＡＭファイルのような資源管理プログラムは、従って、資源管理プログラムに対する変更無しにはＤＴＣと共に使用できるようにサポートされていない。図２は、本発明を実施することのできる取引システム２００の１実施例のブロック図を例示している。この取引システムはマイクロソフト社のＤＴＣ  ＴＰモニタ２１０を有し、このモニタ２１０はＤＴＣ取引管理プログラム１４５、Ｘ／Ｏｐｅｎ−コンプリアント資源管理プログラム１２０、オブジェクト・リンキング・アンド・エンベッディング（ＯＬＥ）資源管理プログラム１３０とＸ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０を有している。Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０はマッパー２４８とＸ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５を有している。図２は、またアプリケーション・プログラム１９０を示している。
【００２１】
ＤＴＣ取引管理プログラム１４５と互換性のある唯一の資源管理プログラムは、マイクロソフト社のオブジェクト・リンキング・アンド・エンベッディング（ＯＬＥ）取引インターフェースの定義に適合する資源管理プログラムである。これは、既存の標準−コンプリアント資源は、マイクロソフト社のＯＬＥ取引用インターフェースの定義に適合するようにその取引管理プログラムを資源管理プログラムのインターフェースに合わせて再コード化する必要があることを意味する。
【００２２】
図２のシステムで実行される取引を概観する。アプリケーション・プログラム１９０は、ＤＴＣ取引管理プログラム１４５の管理する取引を開始する。この取引は、資源管理プログラム１２０、１３０の管理する資源を使用する。アプリケーション・プログラム１９０は、ＤＴＣ取引管理プログラム１４５に取引を完了するように求める。ＤＴＣ取引管理プログラム１４５はこの取引に含まれている資源が矛盾のない状態にあることを保証し、取引を終了してこの取引がコミットされたかロールバックされたかをアプリケーション・プログラム１９０に指示する。
【００２３】
種々の取引の参加者が相互に通信を行うために使用する機構を説明する。アプリケーション・プログラム１９０は、取引を開始するため、ＤＴＣインタフェース２９２を使用してＤＴＣ取引管理プログラム１４５と通信を行う。ＤＴＣインタフェース２９２は、アプリケーション・プログラム１９０がＤＴＣ取引管理プログラム１４５を呼び出して地球規模の取引の境界を画定し、それらの完了を指示するインタフェースである。ＤＴＣインタフェース２９２は、マイクロソフト・ウィンドウズ・オペレーティング・システム用の「マイクロソフト・ディストリビューテッド・トランザクション・コーディネータ・アドミニストレータズ・ガイド・アンド・プログラマーズ・リファレンス−マイクロソフトＳＱＬサーバ、バージョン６．５」に更に詳細に説明されている。
【００２４】
Ｘ／Ｏｐｅｎ取引管理プログラム１１５とＸ／Ｏｐｅｎ資源管理プログラム１２０は、ＸＡインタフェース１５０を使用して相互に通信を行っている。ＸＡインタフェースは、これによってＸ／Ｏｐｅｎ取引管理プログラム１１５が資源管理プログラム１２０と通信を行うプログラミング・インターフェースである。ＸＡインターフェースは、Ｘ／Ｏｐｅｎの仕様書、配布されたＴＰ：ＸＡ仕様書、１９９２年２月、ＩＳＢＮ１−８７２６３０−２４−３に更に詳細に説明されている。
【００２５】
ＤＴＣ取引管理プログラム１４５とＯＬＥ資源管理プログラム１３０は、ＤＴＣインタフェース１７０を使用して相互に通信を行っている。ＤＴＣインタフェース１７０は、これによってＤＴＣ取引管理プログラム１４５がＯＬＥ資源管理プログラム１３０と通信を行うプログラミング・インターフェースである。ＤＴＣ取引管理プログラム１４５は、ＤＴＣインターフェース２６０を使用してＸ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０とまた通信を行い、Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０は次にマッパー２４８を使用してこの通信をＸ／Ｏｐｅｎ取引管理プログラム１１５に伝える。
【００２６】
アプリケーション・プログラム１９０は資源管理プログラムＡＰＩ１９４、１９６を使用してこれが使用することを希望している各資源管理プログラム１２０、１３０を初期化する。これらの資源管理プログラム１２０、１３０は、次に入力を待機する。アプリケーション・プログラム１９０に対する資源管理プログラムＡＰＩ１９４、１９６（ＲＭ  ＡＰＩ）は、ＩＢＭ社から供給されているＩＳＡＭ  ＡＰＩのような資源管理プログラム１２０、１３０のプロバイダによって各資源管理プログラム１２０、１３０に対して定義され、または資源管理プログラムＡＰＩは、ＳＱＬ  ＡＰＩのような産業界の標準の資源管理プログラムＡＰＩを使用する。
【００２７】
アプリケーション・プログラム１９０によって行われる取引を説明する。最も単純な形態では、この取引は下記のステップによって構成する。
１．取引開始−ＤＴＣ
２．資源管理プログラムの動作の実行
３．取引終了−ＤＴＣ
【００２８】
１．取引開始−ＤＴＣ
アプリケーション・プログラム１９０からの取引の開始に対する要求に応答して、ＤＴＣ取引管理プログラム１４５はこの取引を実行スレッドと関連させる。これを行うことによって、取引管理プログラム１４５はアプリケーション・プログラム１９０が特定の取引識別子それ自身を追跡する必要性から解放する。取引管理プログラム１４５は、適当な構造によって取引オブジェクトをまた開始し、取引参加者の情報と何れかの結果として得られるデータを追跡する。この取引オブゼクトはアプリケーション・プログラム１９０に対する参照として戻される。アプリケーション・プログラム１９０はこの取引オブジェクトを参照するが、ＤＴＣ自身はこの取引オブジェクトを取引ｉｄ（ＧＵＩＤ）に対してマッピングする。
【００２９】
２．資源管理プログラムの動作の実行
取引の実行中、アプリケーション・プログラム１９０は、資源管理プログラム１２０、１３０の所有する資源上で動作を実行する必要がある。これは、上述したＲＭ  ＡＰＩを使用してこれらの要求と通信を行う。Ｘ／Ｏｐｅｎ資源管理プログラム１２０と通信を行う場合には、アプリケーション・プログラム１９０はこの通信の中にＸ／Ｏｐｅｎ取引ＩＤ（Ｘｉｄ）を含まなければならない。ＯＬＥ資源管理プログラム１３０と通信を行う場合には、ＯＬＥインターフェースはこの通信の一部として取引オブジェクトに対するトークン即ち参照を含まなければならないが、取引ｉｄ（ＧＵＩＤ）は含んでいない。本実施例では、この取引ｉｄ（ＧＵＩＤ）はＤＴＣのみに知られている。非標準コンプリアント取引コディネータの他の実行例では、ＯＬＥ資源管理プログラム１３０に対して引き渡される情報の一部として取引ｉｄ（ＧＵＩＤ）を含むことができる。これはユーザの定義した取引のコンテキストとして含まれるものである。取引オブジェクト及び従って要求が関連している取引ｉｄ（ＧＵＩＤ）を決定することができるが、これは１つのＤＴＣ取引のみを１つのコネクション上で実行することができるからである。Ｘ／Ｏｐｅｎ取引ｉｄ（Ｘｉｄ）は、次にマッピングによって決定することができる。
【００３０】
サービスに対する要求をＯＬＥ資源管理プログラム１３０が受け取ると、ＯＬＥ資源管理プログラム１３０は、ＩＲｅｓｏｕｒｃｅＭａｎａｇｅｒ：：Ｅｎｌｉｓｔ（＆ＴｒａｎｓａｃｔｉｏｎＯｂｅｊｃｔ．ＩＴｒａｎｓａｃｔｉｏｎＲｅｓｏｕｒｃｅＡｓｙｎｃ）のようなＤＴＣインタフェース１７０からのＥｎｌｉｓｔ呼び出しを使用してＤＴＣ取引管理プログラム１４５に登録を行う。この呼び出しは、活発な取引即ち取引オブジェクトを表すトークンを有している。その取引ｉｄ（ＧＵＩＤ）を有するＤＴＣ取引管理プログラム１４５内に保持されている取引の結果を判定する場合、ＯＬＤ資源管理プログラム１３０がその２つのフェーズを有するコミット・プロセスに含まれていることが、これによって保証される。
【００３１】
サービスに対する要求をＸ／Ｏｐｅｎ−コンプリアント資源管理プログラム１２０が受け取る場合、このＸ／Ｏｐｅｎ−コンプリアント資源管理プログラム１２０は、取引管理プログラム１１５との取引を発生し、ＸＡインターフェース１５０からのａｘ＿ｒｅｇ（）を使用して資源管理プログラム１１５に登録を行う。この呼び出しによって、取引が行われた場合に発生した取引ｉｄを戻す。その取引ｉｄを有する取引の結果が判定された場合、Ｘ／Ｏｐｅｎ−コンプリアント資源管理プログラム１２０が２つのフェーズを有するコミット・プロセスに含まれていることが、これによって保証される。Ｘ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５は次にａｘ＿ｒｅｇ（）登録呼び出しをマッパー２４８に引き渡し、このマッパー２４８はこの呼び出しをＤＴＣインターフェースからのＩＲｅｓｏｕｒｃｅＭａｎａｇｅｒ：：Ｅｎｌｉｓｔに変換する。マッパー２４８は、次にこの呼び出しをＤＴＣインタフェース２６０によってＤＴＣ取引管理プログラム１４５に引き渡す。マッパー２４８は、ＤＴＣ取引管理プログラム１４５とＸ／Ｏｐｅｎ−コンプリアント取引の間の相関関係を維持する。この関係はＤＴＣ取引トークン即ちコネクション・ハンドルによって表され、Ｘ／Ｏｐｅｎ−コンプリアント取引はＸ／Ｏｐｅｎ取引ｉｄによって表される。
【００３２】
３．取引終了−ＤＴＣ
アプリケーション・プログラム１９０は、取引を終了するためＤＴＣインタフェース２９２を使用してＤＴＣ取引管理プログラム１４５と通信を行う。この通信は、アプリケーションと関連する取引に対するＤＴＣ取引管理プログラム１４５の参照を含む。
【００３３】
取引を終了するというアプリケーション・プログラム１９０からの要求に応答して、ＤＴＣ取引管理プログラム１４５は、ＤＴＣインターフェースからＯＬＥ資源管理プログラム１３０に対してＩＴｒａｎｓａｃｔｉｏｎＲｅｓｏｕｒｃｅＡｓｙｎｃ：：ＰｒｅｐａｒｅＲｅｑｕｅｓｔ呼び出しを発生する。この呼び出しは、コネクションと関連する取引上で実行する。ＯＬＥ資源管理プログラム１３０はその資源を準備し、準備した指示をＤＴＣ取引管理プログラム１４５に戻す。
【００３４】
取引を終了するというアプリケーション・プログラム１９０からの要求に応答して、ＤＴＣ取引管理プログラム１４５は、ＤＴＣインターフェースからＸ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０に対してＩＴｒａｎｓａｃｔｉｏｎＲｅｓｏｕｒｃｅＡｓｙｎｃ：：ＰｒｅｐａｒｅＲｅｑｕｅｓｔ呼び出しをまた発生する。この呼び出しは、接続ハンドルと関連する取引上で実行する。Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０内のマッパー２４８は、相関情報を使用してＸＡインターフェースからのｘａ＿ｐｒｅｐａｒｅ（）呼び出しに対してＰｒｅｐａｒｅＲｅｑｕｅｓｔ呼び出しをマッピングし、これをＸ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５に引き渡す。Ｘ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５は、次にＸ／Ｏｐｅｎ資源管理プログラム１２０に対してその資源を準備するように要求する。Ｘ／Ｏｐｅｎ資源管理プログラムは、その資源を準備し、準備した指示をＸ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５に戻す。Ｘ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５は取引状態を記録し、準備した指示をマッパー２４８に引き渡すが、このマッパー２４８はＤＴＣ取引管理プログラム１４５の要求する別のログ機能を実行する。マッパー２４８はまたこの指示をＤＴＣインターフェースからのＩＴｒａｎｓａｃｔｉｏｎＥｎｌｉｓｔｍｅｎｔＡｓｙｎｃ：ＰｒｅｐａｒｅＲｅｑｕｅｓｔＤｏｎｅ応答に対してまたマッピングしこの指示をＤＴＣ取引管理プログラム１４５に引き渡す。
【００３５】
ＤＴＣ取引管理プログラム１４５が取引に於ける全ての参加者からの「準備された」指示の受信を終了すると、これはＯＬＥ資源管理プログラム１３０に対してＩＴｒａｎｓａｃｔｉｏｎＲｅｓｏｕｒｃｅＡｓｙｎｃ：：ＣｏｍｍｉｔＲｅｑｕｅｓｔ呼び出しを発生し、これに対してその資源をコミットすることを要求する。この呼び出しには上記要求と共に受信した取引ｉｄが含まれている。資源管理プログラム１３０はその資源をコミットし、コミットした指示をＤＴＣ取引管理プログラム１４５に戻す。もし資源の内の何れかがコミットするように準備されていなければ、関連する指示をＤＴＣ取引管理プログラム１４５に戻し、コミット呼び出し（ＣｏｍｍｉｔＲｅｑｕｅｓｔ）の代わりにロールバック呼び出し（ＡｂｏｒｔＲｅｑｕｅｓｔ）を発生する。アプリケーション・プログラム１９０は直接取引のロールバックを決定してもよいし、または２つのフェーズのコミット・プロセスに於ける参加者の一人が自分は資源をコミットする準備をしていないと応答してもよい。何れの場合に於いても、ＤＴＣ取引管理プログラム１４５はロールバック呼び出しを発生する。
【００３６】
ＤＴＣ取引管理プログラム１４５が取引に於ける全ての参加者からの「準備された」指示の受信を終了すると、これはまたＸ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０に対してＩＴｒａｎｓａｃｔｉｏｎＲｅｓｏｕｒｃｅＡｓｙｎｃ：：ＣｏｍｍｉｔＲｅｑｕｅｓｔ呼び出しを発生し、これに対してその資源をコミットすることを要求する。この呼び出しは、上記コネクションと関連する取引上で実行する。Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０内のマッパー２４８はＸＡインターフェースからのｘａ＿ｃｏｍｍｉｔ（）呼び出しに対してＣｏｍｍｉｔＲｅｑｕｅｓｔ呼び出しをマッピングし、これをＸ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５に引き渡す。Ｘ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５は、Ｘ／Ｏｐｅｎ資源管理プログラム１２０に対してその資源をコミットすることを要求する。Ｘ／Ｏｐｅｎ資源管理プログラム１２０はその資源をコミットし、コミットした指示をＸ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５に戻す。Ｘ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５はこの指示をマッパー２４８に引き渡し、マッパー２４８はＤＴＣインターフェースからのＩＴｒａｎｓａｃｔｉｏｎＥｎｌｉｓｔｍｅｎｔＡｓｙｎｃ：ＣｏｍｍｉｔＲｅｑｕｅｓｔＤｏｎｅに対してこの指示をマッピングし、この指示をＤＴＣ取引管理プログラム１４５に引き渡す。
【００３７】
もし資源（ＯＬＥまたはＸ／Ｏｐｅｎ）の内の何れかがコミットするように準備されていなければ、関連する指示をＤＴＣ取引管理プログラム１４５に戻し、コミット呼び出しＣｏｍｍｉｔＲｅｑｕｅｓｔの代わりにロールバック呼び出し（ＡｂｏｒｔＲｅｑｕｅｓｔ）を発生する。マッパー２４８は、ロールバック呼び出し（ＡｂｏｒｔＲｅｑｕｅｓｔ）をＸＡインターフェースからのｘａ＿ｒｏｌｌｂａｃｋに変換する。アプリケーション・プログラム１９０は直接ロールバックを行うように決断してもよいし、または２つのフェーズによるコミット・プロセスに於ける参加者の一人が自分は資源をコミットする準備をしていないと応答してもよい。何れの場合に於いても、ＤＴＣ取引管理プログラム１４５はロールバック呼び出しを発生する。
【００３８】
図３は、ＤＴＣの管理する取引に参加している構成要素の特定の実施例とオブジェクト環境に於けるこれらの構成要素の間の相互作用のブロック図である。ＤＴＣ取引管理プログラム１４５を有しているマイクロソフト社のＤＴＣ  ＴＰモニタ２１０は図２に示すものと同一の構成要素であるが、これは、後者の場合、Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０がマッパー２４８とＯＭＧ−コンプリアント取引管理プログラムを有し、この取引管理プログラムはまたＸ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５とアプリケーション・プログラム１９０を有しているからである。
【００３９】
Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０は、この特定の実施例ではＳＯＭオブジェクト指向システム内で実行する。サン社からのＮＥＯまたはＤＯＲ及びＤＥＣ社からのＯｂｊｅｃｔＢｒｏｋｅｒのような他のオブジェクト指向システムも使用することができ、この明細書に於けるＳＯＭに対する参照は他の目的指向システムに対する参照と代替することができる。Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０の周囲にはＯＬＥ／ＳＯＭラッパーが存在し、これによってその内部のＳＯＭオブジェクトが外部から表れてＯＬＥオブジェクトになる。ＳＯＭオブジェクトはこれらの遠隔地のオブジェクトとの接触がラッパーを介して行われていることに気付いていない。ＯＬＥインタフェース２６０は、Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０をＯＣＸコンテナ・オブジェクトとしてみなす。ＯＣＸコンテナ・オブジェクトは、単にその中に他のオブジェクトを含む１つのオブジェクトである。資源管理プログラム１２０は、オブジェクト・サーバの実行例である。インターフェース２９２（ＤＴＣ）、１９４（資源管理プログラムＡＰＩ）、１５０（Ｘ／ＯｐｅｎＸＡ）及び２６０（ＤＴＣ）は、資源管理プログラムＡＰＩ１９４が資源管理プログラム１２０に対して直接接続されているのではなくＯＣＸコンテナ３３０を介して接続されていることを除いて図２に於けるこれらの対応する番号のインターフェースと同一である。上で述べたように、以下の説明ではＸ／Ｏｐｅｎ取引処理環境内で実行されている。実施例を説明するが、Ｘ／ＯｐｅｎまたはＸ／Ｏｐｅｎ−コンプリアントに対して何らかの参照を行う場合、これはまたＯＭＧ  ＯＴＳまたはＯＭＧ  ＯＴＳ−コンプリアントまたは何れかの標準−コンプリアント取引処理環境に対する参照をまた行うものである。Ｘ／Ｏｐｅｎコンプリアント資源管理プログラムは、本実施例ではＯＭＧ取引管理プログラムまたはＸ／Ｏｐｅｎ取引管理プログラムと共に使用することができる。同様に、ＯＭＧ−コンプリアント資源管理プログラムを本実施例ではＯＭＧ取引管理プログラムまたはＸ／Ｏｐｅｎ取引管理プログラムと共に使用することができる。
【００４０】
マッパー２４８との通信３２５に於いて、ログ・ファイル３２０を使用してＸ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０が保証する必要のある種々のデータを記録するが、このログ・ファイル３２０は失敗から回復するために使用することができる。この情報には、資源管理プログラムが取引の終了を準備するように求められた場合に記録される取引状態情報が含まれる。Ｘ／Ｏｐｅｎ取引システムでは、これは取引管理プログラムの担当であり、資源管理プログラムはログ・ファイルに対する要求を行わない。しかし、ＤＴＣでは、資源管理プログラムはこのようなログ・ファイルを設けなければならない。ログをまた使用し、資源管理プログラムによってアプリケーション・プログラムに戻されたコネクション・ハンドル、ＤＴＣ取引ｉｄとＸ／Ｏｐｅｎ取引ｉｄ（Ｘｉｄ）の間のマッピングを格納することができる。Ｘ／Ｏｐｅｎ−コンプリアント資源管理プログラム１２０と通信を行うＸ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０内の実行制御スレッド３３５によって多重同時要求を資源管理プログラム１２０に対して引き渡すことが可能になり、また複数の方法に渡ってコンテキストが重要になる動作をサポートすることができる。これらはまた非同期挙動をチェックし、コミットに対する要求をＤＴＣ取引管理プログラム１４５から受信した場合、取引を強制的に終了させる。オブジェクト３５０は、これが取引ｉｄを含むアプリケーション・プログラム１９０から要求を受信した場合、取引を資源管理プログラム１２０によって自動的に開始するかどうかのようなコンフィギュレーション・パラメータを有している。これらは、動作中にＤＴＣ取引管理プログラム１４５によって使用する。通信経路３８５を使用してコンフィギュレーション・パラメータをＤＴＣ取引管理プログラム１４５に伝え、通信経路３８０を使用してこれらのコンフィギュレーション・パラメータをＸ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５に伝える。
【００４１】
図４は、ＤＴＣの管理する取引に含まれているステップを示すフロー図である。取引は図２または図３のブロック図に示すシステム内で実行されている。
【００４２】
ステップ４００に於いて、システム管理装置を使用してシステムのサービスを記録する。ＤＴＣ取引管理プログラム１４５とＸ／Ｏｐｅｎ資源管理プログラム１２０のＯＣＸコンテナを、ＤＴＣシステムのレジストリに入力する。更に、Ｘ／ＯｐｅｎまたはＯＭＧサービスのような標準−コンプリアント・サービスをＯＣＸコンテナに対するマッピングと共にディレクトリに記録する。このディレクトリはＯＭＧディレクトリまたはＸ／Ｏｐｅｎディレクトリである。
【００４３】
ステップ４１０に於いて、アプリケーション・プログラム１９０は、ＤＴＣ取引管理プログラム１４５からＤＴＣ取引管理プログラムの参照を得る。これは、ＤＴＣＧｅｔＴｒａｎｓａｃｔｉｏｎＭａｎａｇｅｒ（＆ＴＭ  Ｉｎｓｔａｎｃｅ，ＴＭＩｎｔｅｒｆａｃｅ＝ＩＴｒａｎｓａｃｔｉｏｎ  Ｄｉｓｐｅｎｓｅｒ）
のＤＴＣインターフェースに対する呼び出しによって取得する。ＤＴＣ取引管理プログラム１４５は取引管理プログラムのインターフェースに対する参照を戻すが、これは取引を開始するために使用する取引ディスペンサ・インターフェースである。
【００４４】
ステップ４２０に於いて、アプリケーション・プログラムは、図３に於いてインターフェース１５０によってＸ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０に対して接続されたＯＣＸコンテナ（３３０）を開く。これは、例えば、ＯＣＸコンテナに対してＬｏｇｏｎＴｏＤＢ（＆Ｓｅｒｖｅｒ）呼び出しを発生することによって行う。アプリケーション・プログラム１９０はＸ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０を表すＯＣＸコンテナ（３３０）に対する接続を行い、ＯＣＸコンテナ（３３０）はコネクション・ハンドルをアプリケーション・プログラム１９０に戻す。図３を参照して、Ｘ／Ｏｐｅｎ資源管理プログラムである資源管理プログラム１２０を開くには、コンテナ・オブジェクト３３０を開く。このＯＣＸコンテナ３３０は、マッパー２４８を有している。このようなマッパー２４８は、サービスに対する何れかのＣＯＭ／ＯＬＥアクセスにとってジェネリックであるＯＬＥ／ＣＯＲＢＡマッパーと取引の特性を要求するサービスにとって特定の取引マッパーを有している。
【００４５】
ステップ４３０に於いて、取引オブジェクトを生成する。アプリケーション・プログラム１９０はＩＴｒａｎｓａｃｔｉｏｎ：：ＢｅｇｉｎＴｒａｎｓａｃｔｉｏｎインターフェースを呼び出す。ステップ４４０に於いて、ＤＴＣ取引管理プログラム１４５は、取引オブジェクトを生成し、取引識別子ＧＵＩＤを発生し、取引オブジェクト内にＴｉｄＧＵＩＤを格納し、ポインタをアプリケーション・プログラム１９０に対する取引オブジェクトに戻す。取引オブジェクト即ちトークンに対するポインタは取引ｉｄと等しくない。
【００４６】
ステップ４５０に於いて、アプリケーション・プログラム１９０は暗黙の内に各資源に対して取引を伝える。アプリケーション・プログラム１９０は、資源管理プログラムの取引エンリストメント・インターフェースを、例えば、ＳＱＬＳｅｔＣｏｎｎｅｃｔ（ＳＱＬ＿Ｅｎｌｉｓｔ、Ｃｏｎｎｅｃｔｉｏｎ  Ｈａｎｄｌｅ，＆Ｔｒａｎｓａｃｔｉｏｎ  Ｏｂｊｅｃｔ）または、ｄｂｅｎｌｉｓｔｔｒａｎｓ  ＡＰＩによって呼び出すことによってこれを行うが、ｄｂｅｎｌｉｓｔｔｒａｎｓ  ＡＰＩは資源管理プログラム１２０のコネクションを取引トークン（取引オブジェクトに対するポインタ）と関連させるものである。取引をＯＭＧ−コンプリアント取引管理プログラム１１５に伝えると、ＯＭＧ−コンプリアント取引管理プログラム１１５はＸ／Ｏｐｅｎ取引を発生する。コネクション・ハンドル、取引オブジェクトとＸ／Ｏｐｅｎ取引識別子を有するＤＴＣ情報は、一方を他方にマッピングすることができるように、ログファイル３２０に記録する。Ｘ／Ｏｐｅｎ取引管理プログラム１１５は、アプリケーション・プログラム１９０に対してこれのリスト化が完了したことを指示する。通信用の資源管理プログラムである資源管理プログラムの場合、これによって、ＤＴＣ取引をエクスポートすることなく取引を伝えることができる。
【００４７】
ステップ４６０に於いて、アプリケーション・プログラム１９０は、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０によって管理されている資源の保持しているデータの読み出し、書き込みまたは更新のようなサービスの実行を要求するため、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラムＡＰＩ１９４を表すＯＣＸコンテナ（３３０）を呼び出す。このステップは図５に詳細に説明されている。このステップは４６１で始まる。
【００４８】
ステップ４６３に於いて、Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ２４０は、次にＩＲｅｓｏｕｒｃｅＭａｎａｇｅｒ：：Ｅｎｌｉｓｔ（＆ＴｒａｎｓａｃｔｉｏｎＯｂｊｅｃｔ，ＴｒａｎｓａｃｔｉｏｎＲｅｓｏｒｃｅＡｓｙｎｃ）呼び出しを使用して自己を取引の参加者としてＤＴＣ取引管理プログラム１４５に登録する。これによって、ＤＴＣ取引管理プログラム１４５にコミット・プロセスの間に使用すべきＸ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０に対するインターフェースが与えられる。ステップ４６４に於いてＤＴＣ取引管理プログラム１４５はエンリストメント・オブジェクトをＸ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０に戻す。このエンリストメント・オブジェクトは２つのフェーズを有するコミット・フェーズの完了に成功した後、資源管理プログラム１２０が供給される方法を有している。ステップ４６５に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は、ログ・ファイル３２０にＤＴＣ取引情報とパラメータを格納する。ステップ４６６に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は、ステップ４５０の一部としてスタートしたＸ／Ｏｐｅｎ取引の参加者としてＸ／Ｏｐｅｎ−コンプリアント取引管理プログラム１１５に登録する。ステップ４６７に於いてＸ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は、アプリケーション・プログラム１９０の要求したサービスを実行する。ステップ４６８に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は応答をアプリケーション・プログラム１９０に戻す。ステップ４６９で処理を終了する。
【００４９】
再び図４に戻って、ステップ４７０ではアプリケーション・プログラム１９０は、ＤＴＣ取引管理プログラム１４５にＤＴＣインターフェースからのＩＴｒａｎｓａｃｔｉｏｎ：：Ｃｏｍｍｉｔ呼び出しを使用して取引をコミットすることを要求する。
【００５０】
ステップ４８０に於いて、ＤＴＣ取引管理プログラム１４５は、取引をコミットする。このステップは、図６に詳細に説明されている。このステップはステップ６００で開始される。
【００５１】
ステップ６０２に於いて、ＤＴＣ取引管理プログラム１４５は、ＤＴＣインターフェースからのＩＴｒａｎｓａｃｔｉｏｎＲｅｓｏｕｒｃｅＡｓｙｎｃ：：ＰｒｅｐａｒｅＲｅｑｕｅｓｔを使用することによってコミットメントまたはロールバックに対してその資源を準備することをＸ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０に要求する。ステップ６０４に於いて、Ｘ／Ｏｐｅｎーコンパチブル資源管理プログラム１２０は、これが準備に対する要求を受信したことを確認する。Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は、参加者のリスト、取引の結果及び何れかの再スタートの情報のようないずれのＤＴＣ取引管理プログラム１４５に関する情報をログするようにＤＴＣ取引管理プログラム１４５から要求されているかを判断する。Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は、ＩＰｒｅｐａｒｅＩｎｆｏ：ＧｅｔＰｒｅｐａｒｅＩｎｆｏＳｉｚｅとＩＰｒｅｐａｒｅＩｎｆｏ：ＧｅｔＰｒｅｐａｒｅＩｎｆｏ？呼び出し使用してこれを行う。ステップ６０６に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０はログ・ファイル３２０上に「準備」記録をログしＸ／Ｏｐｅｎ取引を準備する。「準備」記録をログする機能は、Ｘ／Ｏｐｅｎ取引システムに於いては、資源管理プログラムによって行われるのではなく取引管理プログラムによって行われるか、または取引管理プログラムによって使用可能になったログを使用して資源管理プログラムによって行われる。ステップ６０８に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は、これがＤＴＣインターフェースからのＩＴｒａｎｓａｃｔｉｏｎＥｎｌｉｓｔｍｅｎｔＡｓｙｎｃ：ＰｒｅｐａｒｅＲｅｑｕｅｓｔＤｏｎｅ呼び出しを使用して「準備された」ことをＤＴＣ取引管理プログラム１４５に知らせる。
【００５２】
ステップ６１０に於いて、ＤＴＣ取引管理プログラム１４５は、取引の結果を判定する。もしＸ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０またはＯＬＥ資源管理プログラム１３０または取引に於ける他の何れかの参加者がこれらがコミットすることが不可能であることを指示するか、またはもし参加者の何れかが応答に失敗すれば、Ｘ／Ｏｐｅｎ−コンパチブル取引管理プログラム１４５は資源管理プログラムの各々に於いて変化を発生させてロールバックを行う。もし応答の全てが肯定を意味するものであれば、Ｘ／Ｏｐｅｎ−コンパチブル取引管理プログラム１４５は、全ての資源管理プログラムに取引をコミットするように命令する。
【００５３】
もし取引の結果がこれをコミットすべきものであれば、ステップ６１２に於いて、アプリケーション・プログラム１９０はそのログ・ファイルにコミット記録をログする。ステップ６１４に於いて、ＤＴＣ取引管理プログラム１４５は、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０にＤＴＣインターフェースからのＩＴｒａｎｓａｃｔｉｏｎＲｅｓｏｕｒｃｅＡｓｙｎｃ：ＣｏｍｍｉｔＲｅｑｕｅｓｔ呼び出しを使用してＸ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０に対してこれが担当する資源をコミットするように要求する。ステップ６１６に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０はこれがコミットに対する要求を受信したことを認める。ステップ６１８に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０はログ・ファイル３２０上に「コミットした」記録をログし、Ｘ／Ｏｐｅｎ取引をコミットする。ステップ６２０に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は、これがＤＴＣインターフェースからのＩＴｒａｎｓａｃｔｉｏｎＥｎｌｉｓｔｍｅｎｔＡｓｙｎｃ：ＣｏｍｍｉｔＲｅｑｕｅｓｔＤｏｎｅ呼び出しを使用して取引を「コミットした」ことをＤＴＣ取引管理プログラム１４５に知らせる。ステップ６２２に於いて、アプリケーション・プログラム１９０は、そのログ・ファイルにフォアゲット記録をログする。
【００５４】
もし取引の結果がこの取引をロールバックすることであれば、ステップ６３０に於いて、アプリケーション・プログラム１９０はそのログ・ファイルにロールバック記録をログする。ステップ６３２に於い、ＤＴＣ取引管理プログラム１４５は、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０に対してＤＴＣインターフェースからのＩＴｒａｎｓａｃｔｉｏｎＲｅｓｏｕｒｃｅＡｓｙｎｃ：ＡｂｏｒｔＲｅｑｕｅｓｔ呼び出しを使用することによってこれが担当している資源に対して行われた更新をロールバックするように要求する。ステップ６３４に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は、これがロールバックに対する要求を受信したことを認める。ステップ６３６に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０はログ・ファイル３２０に「ロールバック」記録をログし、Ｘ／Ｏｐｅｎ取引によって資源に行われた更新をロールバックする。ステップ６３８に於いて、Ｘ／Ｏｐｅｎ−コンパチブル資源管理プログラム１２０は、これがＤＴＣインターフェースからのＩＴｒａｎｓａｃｔｉｏｎＥｎｌｉｓｔｍｅｎｔＡｓｙｎｃ：ＡｂｏｒｔＤｏｎｅ呼び出しを使用して取引によって行われた資源に対する更新を「バックアウトした」ことをＤＴＣ取引管理プログラム１４５に伝える。ステップ６４０に於いて、アプリケーション・プログラム１９０は、そのログ・ファイルにフォアゲット記録をログする。このコミットメント・プロセスはステップ６５０で終了する。
再び図４を参照して、ステップ４９０に於いてこの取引を終了する。
【図面の簡単な説明】
【図１】図１は、ＤＴＣ資源がＸ／Ｏｐｅｎの管理する取引に参加している従来技術のブロック図である。
【図２】Ｘ／Ｏｐｅｎの資源がＤＴＣの管理する取引に参加し、本発明を使用しているシステムのブロック図である。
【図３】図３は、ＤＴＣの管理する取引に参加している図２のシステムの構成要素とこれらの構成要素間の相互作用の特定の実施例を示すブロックである。
【図４】図４は、図２のシステムに於いてＤＴＣの管理する取引に含まれているステップを示すフロー図である。
【図５】図５は、図４のフロー図からサービスを実行するステップの詳細を示すフロー図である。
【図６】図６は、図４のフロー図から取引をコミットするステップを詳細に示すフロー図である。
【符号の説明】
１１５  Ｘ／Ｏｐｅｎ取引管理プログラム
１２０  オブジェクト・サーバ
１４５  ＤＴＣ取引管理プログラム
１２０  Ｘ／Ｏｐｅｎ資源管理プログラム
１３０  ＯＬＥ資源管理プログラム
１９０  ウインドウズアプリケーション・プログラム
２１０  マイクロソフトＤＴＣ  ＴＰモニタ
２４０  Ｘ／Ｏｐｅｎ−コンプリアントＴＰモニタ
２９２  ＤＴＣインタフェース
３２０  ログ・ファイル
３３０  ＯＣＸコンテナ
３５０  コンフィグレーション・パラメータ
【図１】
0003582963.tif 000002
【図２】
0003582963.tif 000003
【図３】
0003582963.tif 000004
【図４】
0003582963.tif 000005
【図５】
0003582963.tif 000006
【図６】
0003582963.tif 000007