JP2005538460A - データ処理システム及び方法(非同種プロセスを統合するように適合されたデータ処理システム) - Google Patents
データ処理システム及び方法(非同種プロセスを統合するように適合されたデータ処理システム) Download PDFInfo
- Publication number
- JP2005538460A JP2005538460A JP2004535486A JP2004535486A JP2005538460A JP 2005538460 A JP2005538460 A JP 2005538460A JP 2004535486 A JP2004535486 A JP 2004535486A JP 2004535486 A JP2004535486 A JP 2004535486A JP 2005538460 A JP2005538460 A JP 2005538460A
- Authority
- JP
- Japan
- Prior art keywords
- data processing
- processing system
- service
- backout
- compensation
- 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
Images
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
-
- 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
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/108—Remote banking, e.g. home banking
- G06Q20/1085—Remote banking, e.g. home banking involving automatic teller machines [ATMs]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】コミット/バックアウト・プロトコルに従ってそれぞれのシステム・リソースに対する変更を管理する少なくとも1つのリソース管理手段(RM)と、少なくとも1つのリソース・マネージャのコミット/バックアウト・アクティビティを調整する調整手段(RMC)を含むデータ処理システムを提供すること。
【解決手段】コミット/バックアウト・プロトコルに従って調整手段によって調整される、コミット/バックアウト・プロトコルに従わない非準拠プロセスの実行を管理するプロセス・リソース管理手段が設けられる。プロセス・リソース管理手段は、バックアウト要求を受け取ったことに応答して、副非準拠プロセスの実行中に実行されたアクションをバック・アウトするために実行すべき補償アクションのシーケンスを自動的に決定し、前記補償アクションの実行を管理する。
【解決手段】コミット/バックアウト・プロトコルに従って調整手段によって調整される、コミット/バックアウト・プロトコルに従わない非準拠プロセスの実行を管理するプロセス・リソース管理手段が設けられる。プロセス・リソース管理手段は、バックアウト要求を受け取ったことに応答して、副非準拠プロセスの実行中に実行されたアクションをバック・アウトするために実行すべき補償アクションのシーケンスを自動的に決定し、前記補償アクションの実行を管理する。
Description
本発明は、全般的にはデータ処理システムに関し、具体的には、トランザクション処理システムなど、システムで動作するプロセスをコミット/バックアウト・プロトコルに従って調整する必要があるデータ処理システムに関する。具体的に言うと、本発明は、非同種プロセスすなわち、コミット/バックアウト・プロトコルに準拠するプロセスとそのようなプロトコルに準拠しないプロセスとを統合するように適合されたデータ処理システムに関する。
既存のデータ処理環境での新しいアプリケーション(プログラム、トランザクション、クラス、オブジェクト、またはメソッド)の導入は、複数の問題を提出する。すばやい技術の進歩に起因して、新しいアプリケーションは、通常、既存のアプリケーションと比較して異なるアーキテクチャに基づき、新しいアプリケーションが既存のアプリケーションとて相互作用できるようにすることが、実際に難題になる可能性がある。
たとえばe−business機能を実装するために、一種の新しいインターネットベース・サービスが導入されるので、この問題は、現在、特に感じられている。これらの新しいサービスは、レガシ・アプリケーションなど、会社のデータ処理システム内の既存のビジネス機能と相互作用する必要がある。
既に存在するコンポーネントが新しいサービスを実装するために協力する必要がある時に、類似する問題に出会う可能性がある。
既存の異種アプリケーションのフレームワーク内で新しいアプリケーションを統合するために、または新しい機能を達成するために既存の異種アプリケーションを相互作用させるために、技術的なおよび応用の両方の複数のクリティカルな要因を考慮する必要がある。情報技術の分野の複数の異なるスキルがかかわり、その結果、コストおよび時間が増える。
4つの可能な方法論を識別することができる。
第1の手法では、既存プロセスを最大限に活用することを試み、新しいプロセスが既存プロセスと相互作用できるようにするために、ビジネス・プロセスからの要求を解釈でき、これをサービスおよび関連するコヒーレンス・コントロールに正しく変換できるインターフェース層が作成される。既に存在するアプリケーションを開発するために行われた投資が、この形で保存される。
第2の手法によれば、冗長な機能が開発される。新しいビジネス・プロセスを実行するのに必要な機能は、既存環境に既に存在しても、新しい環境で複製される。その結果は、機能およびデータの重複であり、開発および管理の時間およびコストが増加する。さらに、重複したデータの調停という問題が生じる場合がある。
第3の手法に従うと、既に存在する機能が、実施される新しいビジネス・プロセスの要件に適合するように変更される。これには、既存の機能および環境の非常に正確な知識と、簡単には入手できない可能性があるプロフェッショナル・スキルの可用性がかかわってくる。その結果、コストが非常に高くなる可能性がある。
最後に、第4の手法では、新しいビジネス・プロセスおよび既に生産中のビジネス・プロセスの両方を含む新しいアプリケーションの開発が提供される。コストは別にして、新しいプロセスを生産に移すためにどちらかといえば長い時間が必要であり、会社のコア・ビジネスに対する悪影響がある。
前述で概要を示された技術的現状に鑑みて、本発明の目的は、異種アプリケーションをサポートできるデータ処理システムを提供することである。
本発明によれば、上記および他の目的は、請求項1に記載のデータ処理システムによって達成された。
短く言えば、データ処理システムに、コミット/バックアウト・プロトコルに従ってそれぞれのシステム・リソースに対する変更を管理する少なくとも1つのリソース管理手段と、少なくとも1つのリソース管理手段のコミット/バックアウト・アクティビティを調整する調整手段が含まれる。
プロセス・リソース管理手段が、コミット/バックアウト・プロトコルに従って調整手段によって調整されて、コミット/バックアウト・プロトコルに準拠しない非準拠プロセスの実行を管理するために設けられる。バックアウト要求の受取に応答して、プロセス・リソース管理手段は、非準拠プロセスの実行中に実行されたアクションをバックアウトするために実行すべき補償アクションのシーケンスを決定する。
本発明の特徴および長所は、非制限的な例としてのみ提供される、添付図面を参照して説明される、本発明の実施形態の下の詳細な説明によって明白になる。
図面を参照すると、図1に、本発明の実施形態によるトランザクション管理システムの主要な構成要素が、機能ブロックに関して概略的に示されている。
トランザクション処理システムに、下で短くトランザクション・マネージャと称するトランザクション・マネージャ・システムTMをホスティングする、データ処理システムSYSが含まれる。
トランザクション・マネージャTMは、図示の例ではアプリケーションAPPなどの、トランザクション・マネージャTMをホスティングするデータ処理システムSYSにローカルに、または、たとえばインターネットを介して企業のデータ処理システムに接続されたクライアント・コンピュータ上などのリモート・データ処理システム内のいずれかで動作するアプリケーションによって発行されるビジネス・サービス要求BR(以下ではビジネス要求と称する)を管理する。たとえば、データ処理システムSYSは、銀行ATMによって要求されたビジネス・サービスを受け取る銀行代理店のフロントエンド・サーバである。
データ処理システムSYSは、以下では対応システムと称する、図に示された2つのデータ処理システムC_SYS1およびC_SYS2などの1つまたは複数の別個のデータ処理システムに接続される。データ処理システムSYSは、ビジネス要求をサービスするために対応システムC_SYS1およびC_SYS2と相互作用することができる。システムSYSならびに対応システムC_SYS1およびC_SYS2は、LAN、シスプレックス、クラスタ、WAN、およびインターネットを介して接続することができる。システムSYSならびに対応システムC_SYS1およびC_SYS2は、シスプレックスまたはクラスタなどのデータ処理システムのローカル・セットを形成することができ、システムのローカル・セットは、1つまたは複数の地理的に離れたデータ処理システムまたはシステムの組に接続することができる。前に示した例に戻ると、システムSYS(フロントエンド銀行代理店サーバ)は、銀行代理店の主サーバに接続され、この主サーバは、異なる銀行代理店の他の主サーバのネットワークに接続される。
データ処理システムSYSは、複数のリソース管理手段(以下、リソース・マネージャ)RMのアクティビティを制御し、調整手段(以下、リソース・マネージャ・コーディネータ)RMCをホスティングする。各リソース・マネージャは、データベース、アーカイブ、データ・テーブル、ファイル、データ・レコード、および類似物などのそれぞれのシステム・リソース(図には示さず)を管理する責任を負う。各リソース・マネージャRMは、トランザクション・マネージャTMの制御の下で動作する一般タスクによって要求される、それぞれのリソースに対する変更を管理する。
原始性と称する、トランザクション処理システムの特徴は、システム・リソースに対するアクセスおよび更新が、通常は、作業単位(以下ではUOW)とも称する、別個のトランザクションの実行によって実行されることである。UOWは、変更のすべてが行われるか全く行われないかのいずれかになる、システム・リソースに対する一連の調整された動作である。これらの動作は、通常は、トランザクション処理システム内のストレージに保持されたデータに対して行われる変更である。この形で、システム・リソースが、互いに一貫しない状態にされなくなる。更新動作のセットの1つが失敗した場合、他の動作も有効になってはならない。その場合に、UOWは、すべての中間ステップでの一貫性を必ずしも保持せずに、システム・リソースの一貫性のある状態を別の一貫性のある状態に変換する。
トランザクションの原子的性質は、一般にコミット手順と称するトランザクション同期化手順によって維持される。リソース変更がトランザクション実行内で同期化される、一貫性の論理的な点を、コミット点と称する。UOWは、コミット点に達した時またはタスクが終了した時にコミットを宣言するタスクによってクローズされる。
トランザクションの原始性は、トランザクションの完了時にコミットが宣言されるまで未解決である(コミットされていない)、トランザクション内で行われたリソース更新によって達成される。トランザクションが成功する場合に、トランザクションの結果が、永久的にされる(コミットされる)。トランザクションが失敗する場合には、不成功のトランザクションのすべての影響が拒否される(バック・アウトまたはロール・バックされる)。すなわち、リソース更新は、成功裡の完了の時に限って、リソース更新が実行されたタスク以外のタスクに可視かつ永久的にされ、各作業単位の持続中は、すべての更新されたリソースが、さらなる更新アクセスを防ぐためにロックされなければならない。逆に、トランザクションがバック・アウトするときには、リソースは、そのトランザクションが開始される前に存在した一貫した状態に復元される。
一般リソース・マネージャRMによって管理されるシステム・リソースに対してタスクによって要求された変更は、そのリソース・マネージャによって、タスクの結果に応じて、単一相コミット・プロトコルまたは2相コミット・プロトコルの下で、リソース・マネージャ・コーディネータRMCによるコミット要求の受取時の延期されたコミットを可能にする形で管理される。システム・リソースに対する変更の統合または拒否は、コミット・コマンドまたはバックアウト・コマンドによって明示的に、あるいはタスクの成功裡または不成功の終了によって暗黙のうちに、トリガすることができる。リソース・マネージャ・コーディネータRMCは、明示的なコミット・コマンドまたはバックアウト・コマンド、あるいはタスクの成功裡または不成功の終了の表示を受け取り、その変更にかかわるシステム・リソースを管理する責任を負うリソース・マネージャRMにコミット要求またはバックアウト要求を伝搬させる。
トランザクション・マネージャTMに、ビジネス要求マネージャ・サブシステムBRM、拡張リソース・マネージャ・サブシステムERM、ならびにビジネス要求マネージャ・サブシステムBRMおよび拡張リソース・マネージャ・サブシステムERMの両方にサービスを提供するサービス・プロバイダ・サブシステムSERが含まれる。
ビジネス要求マネージャBRMは、ビジネス要求BRが受け取られると、必ず、トランザクション・マネージャTMによってアクティブ化される。トランザクション・マネージャTMは、入ってくるビジネス要求を検出し、ビジネス要求マネージャBRMをアクティブ化する。入ってくるビジネス要求BRは、一般トランザクションまたはアプリケーション宛のサービス要求としてビジネス要求マネージャBRMによって管理され、サービス要求は、タスクT1によって、1つまたは複数のUOWを用いて処理される。
下で詳細に説明するように、タスクT1の起動時にトランザクション・マネージャTMによってアクティブ化され、ビジネス要求BRの処理のために開始されるビジネス要求マネージャBRMは、タスク実行を制御するためにサービス・プロバイダ・サブシステムSERによって提供されるサービスを活用する。
具体的に言うと、ビジネス要求マネージャBRMは、ビジネス要求分類方式を実施し、入ってくるビジネス要求BRが属するビジネス要求クラスに応じて、サービス・プロバイダSERによって提供される異なるサービスを活用する。
一般に、ビジネス処理フローに応じて、入ってくるビジネス要求BRの処理のために起動されるタスクT1の実行中に、図1に示されたサービス要求OBR1およびOBR2など(以下ではアウトバウンド・ビジネス要求または短くOBRと称する)、トランザクション・マネージャTMをホスティングするのと同一のシステムSYS内あるいは1つまたは複数の対応システムC_SYS1およびC_SYS2内のいずれかで動作する異なるプログラムまたはトランザクション宛の1つまたは複数のサービス要求を、生成することができる。これらのサービス要求は、入ってくるビジネス要求BRと同様に扱われるが、OBRが向けられるそれぞれの対応システムC_SYS1およびC_SYS2内で、拡張リソース・マネージャERMによって管理されるタスクT21およびT22を起動させる。
この説明の文脈で、OBRが、システムSYSの対応システムに関して発行されるビジネス要求だけではなく、システムSYSの、たとえばアプリケーションであるが、弱いリンクを特徴とするコンポーネントすなわち、コミット/バックアウト・プロトコルの対象にすることができないコンポーネントに関して発行されるビジネス要求でもあることが観察される。
コミット・プロトコルに準拠しないインターフェースするプロセス、すなわち、そのUOWがリソース・マネージャ・コーディネータによってバックアウト相中に同種に調整されないプロセスは、動的に判定されるコヒーレントな状態に向かってシステムを収束させることに向けられた補償アクティビティ(暗黙のまたは明示的な)を管理することを必要にする。これは、誤動作または明示的なバックアウト要求によってトリガされ、補償コンポーネント(後で詳細に説明するXBRまたはXOBRあるいはその両方)の明示的アクティブ化によって、またはサービス・プロバイダ・サブシステムSERによって提供されるログ・サービスによって以前に記録されたものを取り出すことによって、拡張リソース・マネージャERMによって管理される。補償アクティビティに必要な情報は、前の詳述(elaboration)相(おそらくは前の補償の試みを含む)中にログ・サービスによって記録された情報に基づいて動的に判定される。
具体的に言うと、拡張リソース・マネージャERMは、トランザクション・マネージャTMによって、リソース・マネージャRMの1つとして見られる。トランザクション・マネージャTMは、OBR、たとえばOBR OBR1、OBR2が発行されるたびに、拡張リソース・マネージャERMをアクティブ化する。後で説明するように、OBRは、拡張リソース・マネージャERMを明示的に呼び出すことができ、あるいは、後者を暗黙のうちに呼び出すことができる。短く言うと、拡張リソース・マネージャERMは、OBRの実行を監督し、OBRの処理に含まれるUOWの実行中におそらくは生じる未確定状況の場合など、異常の場合であってもOBRが正しく実行されることを保証する。リソース・マネージャ・コーディネータRMCの観点からは、拡張リソース・マネージャERMは、OBRおよびOBRにサービスする対応システムで動作するプロセスを、それぞれのシステム・リソースを管理するリソース・マネージャRMに似た形で管理し、対応システムで動作するプロセスの単一相または2相のコミット/バックアウト・プロトコルの実施を可能にする。
具体的に言うと、拡張リソース・マネージャERMは、識別子を管理し、主プロセス(T1)によって呼び出されビジネス要求マネージャBRMによってアクティブ化される副プロセス(この例では、タスクT21およびT22)をアクティブ化し、監視する。リソース・マネージャRMによって管理されるシステム・リソースに対して行われる変更を、バック・アウトすることができ、このシステム・リソースを、そのような変更が適用される前の状態に戻すことができるが、これは、一般に、副プロセスによって引き起こされる変更については可能でない。システムSYSと対応システムの間の通信プロトコルの問題、後者および類似物の挙動(この文脈では、全体的に、不安定なリンクの問題と称する)は、対応システムを副プロセスが起動される前の状態に戻すことを不可能にする場合がある。一般に、真のバックアウトではなく、拡張リソース・マネージャERMは、副プロセスによって行われる変更の補償アクティビティを管理する。
一般タスクのライフ・サイクル中に、複数のUOWを、順次インスタンス化し、コミットまたはバック・アウトすることができる。各UOWは、UOWの管理に使用される一義識別コード(univocal identification code、UOWID)によって識別される。UOWのコミットまたはバックアウトは、実行中のUOWの自動的終了を引き起こし、ビジネス・ロジックによって要求される場合の新しいUOWのインスタンス化を可能にする。
タスクT1の実行中に、異なるリソース・マネージャRMによって管理されるシステム・リソースに対する変更が要求される場合がある。この場合に、複数の相関するUOWが、同時にインスタンス化され、これらの相関するUOWのすべてが、リソース・マネージャ・コーディネータRMCによって管理される主UOW(以下ではコーディネーションUOW(COO−UOW)と称する)に従属する。この状況を、概略的に図2に示すが、図2では、UOW UOW1、UOW2、およびUOW3が、相関され、コーディネーションUOW COO−UOWとしてリソース・マネージャ・コーディネータRMCによって管理される。
同様に、タスクT1(主タスク)の実行中に、相関されたタスクT21およびT22(副タスク)を、異なる対応システムC_SYS1およびC_SYS2で起動することができ、したがって、潜在的に互いに相関する複数のUOWが、論理的に主タスクT1に関連し、この事例では、これらのUOWのすべてが、リソース・マネージャ・コーディネータRMCによって管理されるCOO−UOWに従属する。この状況を、概略的に図3に示す。
この第2の事例では、システムSYSと対応システムの間のリンクが強い(すなわち、不安定ではなく、コミット/バックアウト・プロトコルの実装を可能にする)場合に、図3に示された対応システムC_SYS1内のリソース・マネージャC−RMC1などの対応システム内のリソース・マネージャを、システムSYSのリソース・マネージャ・コーディネータRMCによって調整することができ、あるいは、ローカル・リソース・マネージャ・コーディネータによって調整し、このローカル・リソース・マネージャ・コーディネータをシステムSYSのリソース・マネージャ・コーディネータRMCによって調整することができる。どの場合でも、インスタンス化されたUOWのすべてが、一意のCOO−UOWに従属する。
その代わりに、システムSYSと対応システムの間のリンクが不安定である場合に、複数のCOO−UOWがセット・アップされ、そのそれぞれが、互いに調整されないそれぞれのリソース・マネージャ・コーディネータによって管理される。そのようなCOO−UOW、たとえば図3のCOO−UOW COO−UOW1およびCOO−UOW2は、下でEXT−UOWと称する拡張UOW EXT−UOWとして拡張リソース・マネージャERMによって処理される。
通常、UOWとしてグループ化される各タスクによって要求されるデータに対する変更は、リソース・マネージャ・コーディネータRMCによって調整されるリソース・マネージャRMによって管理されて、より多くのタスクが同時に共用されるアーカイブに作用できるようになる。一般タスクによって要求された変更は、関連するUOWのコミットの後に限って、公にされ、他のタスクから使用可能にされ、UOWがバック・アウトされる場合には、変更は統合されず、アーカイブのデータは、未変更の形で他のタスクに公にされる。この形で、異なるタスクが、他のタスクによる部分的な変更を受けない、コヒーレントなデータにアクセスすることが保証される。プログラムまたはトランザクションによって活用されるデータの論理的にコヒーレントなグループを管理するトランザクション処理システムの能力を、参照保全性(referential integrity)と称する。
しかし、COO−UOWによって調整されるUOWに、コミット/バックアウト・プロトコルに従うUOW(準拠UOW)および、使用されるプロセスまたはリソースの性質に起因してコミット/バックアウト・プロトコルをサポートしないUOW(いわゆる非準拠UOW)の両方を含めることができる。この場合に、COO−UOWを、拡張UOW(EXT−UOW)と称する。
準拠UOWによって構成されるCOO−UOWの場合と異なって、EXT−UOWの場合に、非準拠UOWの存在によって、少なくとも変更のうちで非準拠UOW内で発生する部分に関して、通常のデータ保全性方式を保証できなくなる。準拠UOWの実行中に行われるシステム・リソースに対する変更の統合は、延期され、主タスクの結果に従属する。非準拠UOWの実行中に行われるシステム・リソースに対する残りの変更は、その実行にコンテキスト的にまたは関連する副タスクの終りにのいずれかで、統合することができる。EXT−UOWに関連する主タスクの成功裡の完了は、問題を提出しない。というのは、すべての変更が確認されるからである。すなわち、準拠UOW内で行われる変更は、確認され、非準拠UOW内で行われる変更は、既に統合されており、バック・アウトされる必要がない。言い換えると、可能なバックアウト要求(適用可能またはインフラストラクチャ的のいずれか)は、用いられるリソースのミスアライメントを作り、まだコミットされていない変更は、バック・アウトでき、バック・アウトされるが、コミット・プロトコルの対象でないので既に統合されている変更は、バック・アウトできず、バック・アウトされない。この場合に、システム全体(システムSYSならびに対応システムC_SYS1およびC_SYS2)の状態を、変更が行われる前の状態に戻すことはできない。システムを最初の状態に戻すことができないので、動的に判定されるコヒーレントな状態に向かってシステム全体を収束させることを対象とする特定の補償アクティビティを実行する必要がある。
これには、システムの2レベルの露出が用いられる。第1レベルの露出は、準拠UOW内で行われた変更のコミットの場合に、変更されたデータが異なるタスクに公にされる異なるタイミングに起因して生成される。第2レベルの露出は、タスクによって行われた変更のバックアウトの結果で生成され、システムがバックアウト要求をサービスする際の差に起因する。すなわち、準拠UOW内で行われる変更は、即座にバック・アウトされるが、非準拠UOW内で行われる変更は、補償され、この補償は、延期される可能性がある。一時的なミスアライメントは、異なる時に決定的でない形で公にされる、論理的に相関するデータについて発生する可能性がある。
図4を参照すると、本発明の実施形態で、サービス・プロバイダ・サブシステムSERによって実施されるサービスが概略的に示されている。サービス・プロバイダ・サブシステムSERによって提供されるサービスの一部は、ビジネス要求マネージャBRMによって活用され、他のサービスは、拡張リソース・マネージャERMによって活用され、一部のサービスは、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMの両方によって活用される。具体的に言うと、サービスのサブセットは、分類されたビジネス要求に関連するタスクであれ、分類されないビジネス要求に関連するタスクであれ、ビジネス要求マネージャBRMによって起動されるすべてのタスクに共通して提供される。サービス・プロバイダ・サブシステムSERによって提供されるサービスのリストに、ビジネス要求カタログ作成サービスCATS、ディレクトリ・サービスDIRS、タスク回復サービスTSR、システム回復サービスSYSR、接続性サービスCNCT、ログ・サービスLOG、監視サービスMON、UOW保護サービスUOW−P、エラー回復サービスERR、ビジネス要求保護サービスBRPR、およびビジネス要求検証サービスBRVRが含まれる。
分類されたビジネス要求および分類されないビジネス要求の両方に共通して提供されるサービスに、ログ・サービスLOG、監視サービスMON、UOW保護サービスUOW−P、およびエラー回復サービスERRが含まれる。
分類されたビジネス要求に固有のサービスに、共通のサービスに加えて、カタログ作成サービスCATS、ビジネス要求保護サービスBRPR、およびビジネス要求検証サービスBRVRが含まれる。
ビジネス要求マネージャBRMによって活用されるサービスに、ビジネス要求保護サービスBRPR、エラー回復サービスERR、UOW保護サービスUOW−P、ビジネス要求検証サービスBRVR、監視サービスMON、ログ・サービスLOG、およびカタログ作成サービスCATSが含まれる。
拡張リソース・マネージャERMによって活用されるサービスに、カタログ作成サービスCATS、ログ・サービスLOG、UOW保護サービスUOW−P、監視サービスMON、エラー回復サービスERR、接続性サービスCNCT、ディレクトリ・サービスDIRS、タスク回復サービスTSR、およびシステム回復サービスSYSRが含まれる。
ビジネス要求マネージャBRMによって実施されるビジネス要求分類方式は、カタログ作成サービスCATSによって保持されるビジネス要求カタログにリストされた分類されたビジネス要求CBRまたはカタログに存在しない分類されないビジネス要求NCBRとして入ってくるビジネス要求を分類するために、ビジネス要求カタログ作成サービスCATSに頼る。
サービス・プロバイダ・サブシステムSERによって実施されるサービスを、後で詳細に説明する。
動作中に、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMは、サービス要求が向けられるコンポーネント(アプリケーション・プログラム、トランザクション、インフラストラクチャ・サービス、たとえばコネクタ)の性質およびそれに関連するプロセスの論理的状態(実行中、バック・アウト中、保留中、未確定など)を考慮に入れて、トランザクション処理システムへの入ってくるビジネス要求であれ、前に受け取られたビジネス要求の処理中に生成されるサービス要求であれ、サービス要求を分類する。
ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMの挙動は、サービス要求を発行したエンティティの状況、発行されたサービス要求の種類、およびサービス要求が向けられたコンポーネントの状況に依存する。
システムSYSの外部から来るものと既に受け取られたビジネス要求のサービス中に生成されるものの両方のサービス要求のそれぞれが、ビジネス要求マネージャBRMによって分析される。サービス要求に、そのサービス要求がビジネス要求マネージャBRMまたは拡張リソース・マネージャERMのどちらに向けられるかの明示的表示が含まれる場合があり(明示的サービス要求)、この場合に、ビジネス要求マネージャBRMは、そのサービス要求の直接処理または拡張リソース・マネージャERMの呼び出しのいずれかを行う。サービス要求にそのような明示的表示が含まれない場合(暗黙のサービス要求)、サービス要求は、監視サービスMONによってインターセプトされ、ビジネス要求マネージャBRMに渡される。カタログ作成サービスCATSを活用して、ビジネス要求マネージャBRMは、サービス要求の種類を判定する。サービス要求が分類されたサービス要求である場合に、そのサービス要求は、ビジネス要求マネージャBRMによってまたは拡張リソース・マネージャERMによって処理される。逆に、サービス要求が分類されないサービス要求である場合には、そのサービス要求は、トランザクション・マネージャTMにルーティングされ、トランザクション・マネージャTMによって処理される。
本発明の1実施形態で、可能なサービス要求の次の分類方式が採用される。
「分類されないビジネス要求」(以下ではNCBRと称する)は、トランザクション・マネージャTMによって管理されるトランザクションまたはプログラムに関して発行され、ビジネス要求マネージャBRMがカタログ作成サービスCATSによって保持されるビジネス要求カタログにリストされたサービス要求のどれにも関連付けることができない包括的なサービス要求であり、ビジネス要求マネージャBRMによってNCBRに供給されるサービスは、共通サービスのサブセットに属するサービスだけである。NCBRは、明示的および暗黙の、分類されたおよび分類されないのいずれであれ、すべての種類のビジネス要求を発行することができると同時に、回復可能または回復不能のいずれであれ、システム・リソースにアクセスすることができる。
「分類されたビジネス要求」(以下ではCBRと称する)は、ビジネス要求マネージャBRMが、カタログ作成サービスCATSによって保持されるカタログにリストされたサービス要求の1つに関連付けることができるサービス要求である。
CBRのクラス内で、ビジネス要求の次のカテゴリが、追加して定義される。
「保護されない分類されたビジネス要求」(以下ではNPCBRと称する)は、ビジネス要求マネージャBRMが、共通サービスのすべてとカタログ作成サービスCATSおよび検証サービスVERを提供するCBRである。NPCBRの処理が、エラーまたは異常に起因して完了しない場合に、ビジネス要求マネージャBRMは、ビジネス要求の自動再アクティブ化を対象とするアクションを一切行わず、この重荷をサービスのオリジナルの要求元に委ねる。NPCBRは、明示的および暗黙、分類されたおよび分類されないのいずれであれ、すべての種類のビジネス要求を発行することができ、回復可能または回復不能のいずれであれ、システム・リソースにアクセスすることができる。
「保護された分類されたビジネス要求」(以下ではPCBRと称する)は、保護サービスBRPRを含む、ビジネス要求マネージャBRMによって実装されるすべてのサービスの利益を得るCBRである。NPCBRと異なって、PCBRの処理が、エラーまたは異常に起因して完了しない場合に、ビジネス要求マネージャBRMは、ビジネス要求保護サービスを活用することによって、ビジネス要求の再アクティブ化を自動的に管理して、その処理と、おそらくは延期された完了を保証する。PCBRは、明示的または暗黙、分類されたまたは分類されないのいずれであれ、すべての種類のビジネス要求を発行することができ、回復可能または回復不能のいずれであれ、システム・リソースにアクセスすることができる。PCBR(主PCBR)が別のPCBR(副PCBR)を発行する場合に、保護サービスは、副PCBRの多重アクティブ化を防ぐために、副PCBRではなく主PCBRだけに提供される。NPCBRまたはNCBRによって発行された副PCBRが、保護サービスを提供されず、自動的に再アクティブ化されない、言い換えると、主PCBRだけが再アクティブ化されることが観察される。
「補償ビジネス要求」(以下ではXBRと称する)は、バックアウトのアクティビティ、より一般的には補償を実行するためにアクティブ化される、特定の種類のPCBRである。XBRは、トランザクション・マネージャTMをホスティングするシステムSYS内で動作するプログラムまたはトランザクションを対象とする。具体的に言うと、XBRは、拡張リソース・マネージャERMがエラーまたはバックアウト要求についてリソース・マネージャ・コーディネータRMCによって通知されると、拡張リソース・マネージャERMによって自動的にアクティブ化される。XBRは、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMの制御の下で働くが、補償アウトバウンドビジネス要求(後で説明するXOBR)、NCBR、およびCBRを発行し、回復可能または回復不能のいずれであれ、システム・リソースにアクセスすることができる。特定の種類のPCBRであるXBRは、保護サービスの利益を得、自動的に再アクティブ化される。
OBRに関して、次のカテゴリが定義される。
「回復不能アウトバウンド・ビジネス要求」(以下ではNROBRと称する)は、NCBRまたはCBR(NPCBR、PCBR、またはXBRのいずれか)によって明示的にまたは暗黙のうちに発行され、システムSYSにローカルまたはリモートのいずれかの対応システムC_SYS1またはC_SYS2で動作するプログラムまたはトランザクションを対象とするか、システムSYSに弱くリンクされたシステムSYSのコンポーネントを対象とするサービス要求である。NROBRの処理のために、ERMは、カタログ作成サービスCATS、ディレクトリ・サービスDIR、タスク回復サービスTSR、システム回復サービスSYSR、および接続性サービスCNCTを活用する。異常またはバックアウト要求が起こったとき、拡張リソース・マネージャERMは、アウトバウンド・ビジネス要求の回復の試みを行わない。NROBRは、回復可能であれ回復不能であれ、システム・リソースにアクセスし、ビジネス・ロジックおよびそれが対象とする対応システムの特徴に依存して、すべての種類のサービスを発行することができる。
「明示的補償回復可能アウトバウンド・ビジネス要求」(以下では、EROBRと称する)は、NCBRまたはCBRによって発行され、対応システムC_SYS1およびC_SYS2で動作するプログラムまたはトランザクションを対象とするか、システムSYSに弱くリンクされたシステムSYSのコンポーネントを対象とするサービス要求である。異常またはバックアウト要求が起こると、拡張リソース・マネージャERMは、EROBRの明示的補償のためのアクティビティを直接に開始し、このために、サービス・プロバイダ・サブシステムSERによって提供されるサービス、特にログ・サービスLOG、UOW保護サービスUOW−P、接続性サービスCNCT、監視サービスMON、およびエラー回復サービスERRが活用される。EROBRは、回復可能であれ回復不能であれ、システム・リソースにアクセスし、ビジネス・ロジックおよびそれが対象とする対応システムの特徴に依存して、すべての種類のサービスを発行することができる。
「暗黙補償回復可能アウトバウンド・ビジネス要求」(以下ではIROBRと称する)は、NCBRまたはCBRによって発行され、対応システムで動作するプログラムまたはトランザクションを対象とするか、システムSYSに弱くリンクされたシステムSYSのコンポーネントを対象とするサービス要求である。異常またはバックアウト要求が起こると、拡張リソース・マネージャERMは、IROBRの補償のためのアクティビティを直接的には開始せず、逆に、補償は、暗黙のうちに実行される。これは、IROBRの再実行の時まで延期されることを意味し、その再実行は、IROBRがPCBRによって呼び出された場合にはビジネス要求マネージャBRMによって自動的に管理され、IROBRがNPCBRによって発行された場合にはサービス・リクエスタによってアクティブ化される。拡張リソース・マネージャERMは、サービス・プロバイダ・サブシステムSERによって提供されるサービス、特にログ・サービスLOG、作業単位保護サービスUOW−P、接続性サービスCNCT、監視サービスMON、およびエラー回復サービスERRを活用する。IROBRは、回復可能であれ回復不能であれ、システム・リソースにアクセスすることができる。
「補償アウトバウンド・ビジネス要求」(以下ではXOBRと称する)は、特定の種類のIROBRであり、エラーまたはバックアウト要求に起因して補償される必要があるかまだ補償されていない前に発行されたEROBRをサポートして拡張リソース・マネージャERMによって制御される特定のタスク内で動作するXBRによって発行されたサービス要求である。XOBRは、タスク回復相(後で説明する)でインフラストラクチャ・サービスによってアクティブ化される場合もある。XOBRは、対応システムで動作するプログラムまたはトランザクションを対象とするか、システムSYSに弱くリンクされたシステムSYSのコンポーネントを対象とする。異常が発生すると、XOBRは、自動的にはアクティブ化されず、拡張リソース・マネージャERMによって発行されたXBRだけが、XOBRをアクティブ化することができる。XOBRは、回復可能であれ回復不能であれ、システム・リソースにアクセスすることができる。XBRおよびXOBRのアクティブ化は、ERMによって処理され、リクエスタ・アプリケーションに重荷は与えられず、リクエスタ・アプリケーションは、タスク回復相の完了コードを待つことができ、あるいは、タイムアウトをこうむる場合に、回復動作の拡張リソース・マネージャERMによって、責任を引き受けることについて既に通知されている。
したがって、分類されない(NCBR)または分類される(CBR)のいずれであれ、分類される要求の場合に保護される(PCBR)または保護されない(NPCBR)のいずれであれ、すべてのビジネス要求は、1つまたは複数のOBR(NROBR、EROBR、またはIROBRのいずれか)を発行(明示的にまたは暗黙のうちに)することができる。
所望のビジネス・プロセスを実装するのに必要なコンポーネントを正しく識別するために新しいアプリケーションの開発で採用される、上で説明したサービス要求の分類は、エラー、異常なイベント、またはバックアウト要求の場合に、リソース・マネージャ・コーディネータRMCを介してトランザクション・マネージャTMによって調整されて、正しいアプリケーションまたはインフラストラクチャ・コンポーネントが、EXT−UOWで用いられるデータに対してその時点までに行われたすべてのことの補償を管理するためにアクティブ化されることを保証する。したがって、エラー、異常、またはアプリケーション・バックアウト要求の場合に、EXT−UOWに用いられたリソースの状態が、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMによって制御される、自動的明示的補償または延期された暗黙の補償によって、コヒーレントな最終状態に収束することが保証される。
具体的に言うと、EXT−UOWを用いるタスクの不成功の完了の場合に、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMは、可能な時に初期状態に向かって、あるいはビジネス要求マネージャBRM、拡張リソース・マネージャERM、およびおそらくXBR/XOBRで実施されるアプリケーション・ビジネス・ロジックによって動的に判定されるコヒーレントな状態に向かってシステム全体(すなわち、用いられるリソース)を収束させるためのプロセスを識別し、自動的にアクティブ化することができる。すべての種類のXBRを開発することができるが、デフォルトXBRでは、接続性サービスCNCTへの呼び出しの結果および各呼び出されたXOBRの結果に基づいて働く各EROBRに関連するXOBRMを逆のシーケンスで発行する補償相を実施する。
ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMによって実施されるサービスを、これから詳細に説明する。
カタログ作成サービスCATS
カタログ作成サービスCATSを用いると、前述で説明した分類方式に従うビジネス要求の分類が可能になる。
カタログ作成サービスCATSを用いると、前述で説明した分類方式に従うビジネス要求の分類が可能になる。
カタログ作成サービスCATSは、カタログCATに基づいて動作し、このカタログCATの例を、図5に概略的に示す。カタログCATは、複数のレコードを有するテーブルである。各カタログ・レコードに、複数のフィールド、BRID/CLID、BRCLS、ASSCMP、STUPSTAT、IN−FLGT STAT、C−SYS、SUB C−SYS、HEADER、TRAILER、ASSBR、XBR/XOBR、USAUT/ACC、MSGFRMT、およびOTHER INFOが含まれる。
フィールドBRID/CLIDには、分類されたビジネス要求を識別するビジネス要求識別子(A、B、C、…)またはビジネス要求クラスを識別するビジネス要求クラス識別子(たとえば、NPCBR、NCBRなど)が含まれる。フィールドBRID/CLIDは、カタログCATへのエントリ・キーである。
フィールドBRCLSには、関連するフィールドBRID/CLIDで識別されたビジネス要求のクラスを指定するビジネス要求クラス識別子(たとえばNPCBR、PCBR、OBR、XBR、XOBR)が含まれる。
フィールドASSCMPには、関連するフィールドBRID/CLIDで識別されたビジネス要求に関連するコンポーネント(プログラムまたはトランザクションあるいはその両方)の表示が含まれる。たとえば、Aとして識別されるビジネス要求について、関連するプログラムまたはトランザクションが、カタログで指定されておらず、ビジネス要求Aが受け取られると、アクティブ化されるコンポーネントはA自体である。あるいは、Pとして識別されるビジネス要求について、プログラムPGhおよびトランザクションTrkが指定されており、これは、ビジネス要求Pが受け取られると、トランザクションTrk内のプログラムPghがアクティブ化されることを意味する。
フィールドSTUPSTATは、システム開始時にビジネス要求に帰せられる状況(ONまたはOFF)を定義する(後で詳細に説明する)。フィールドIN−FLGT STATには、処理中(in flight)である時のビジネス要求の現在の状況の表示が含まれる。
フィールドC−SYSは、OBRについて、それが向けられる対応システムを定義する。対応システムが1つまたは複数のサブシステムを関連付けられている場合には、フィールドSUB C−SYSが、OBRが向けられる、フィールドC−SYSで定義された対応システムのサブシステムを指定する。フィールドC−SYSおよびSUB−C SYSに保管される情報は、ディレクトリ・サービスへのアクセス・キーを形成する。
フィールドHEADERおよびTRAILERは、関連するフィールドBRID/CLIDで識別されるビジネス要求をサービスすることに対してそれぞれ予備的におよび後に発行されるビジネス要求を定義する。図示の例では、Aとして識別されるビジネス要求が受け取られると、それをサービスする前にビジネス要求Eが、そのサービスの後にビジネス要求Fが、それぞれサービスされる。
フィールドASSBRは、関連するフィールドBRID/CLIDで識別されるビジネス要求をサービスする間に発行できるビジネス要求を定義する。図示の例をもう一度参照すると、Aとして識別されるビジネス要求が受け取られると(ヘッダ・ビジネス要求Eがサービスされた後に)、ビジネス要求GおよびHがサービスされる(トレーラ・ビジネス要求Fがこれに続く)。
フィールドXBR/XOBR(EROBRに必須)は、関連するフィールドBRID/CLIDで識別されるビジネス要求によって実行されるアクションを補償するために実行すべき補償ビジネス要求(XBRまたはXOBR)を定義する。図示の例では、ビジネス要求Aのサービス中に実行されるアクションを補償するために、XBR Jが発行される(これは、XOBRシーケンスLおよびMに対応する)。特定のXBRが所与のビジネス要求について指定されない場合には、ビジネス要求内で発行されたOBRによって実行されたアクションを補償するために、デフォルトXBRが呼び出され、補償するアクションは、サービスLOGによって提供される情報に基づいて、拡張リソース・マネージャERMによって決定される。XBRおよびXOBRは、暗黙の補償ビジネス要求なので、XBRおよびXOBRに補償ビジネス要求を関連付けることはできず、補償は、サービスLOGによって提供される情報(既に実行されたアクティビティおよびこれから実行されるアクティビティを示す)に基づいて実行されることが観察される。
要約すると、ビジネス要求Aに関して、カタログCATに保管された情報は、ビジネス要求Aが受け取られた時に、ビジネス要求のシーケンスE→G→H→Fが実際に発行され、サービスされることと、何かがおかしくなった場合に、実行されたアクションの補償が、XBR Jによって実行され、XBR Jは、XOBRのシーケンスL→Mに対応することを示す。ビジネス要求Bに関して、これは、ビジネス要求Pの別名である。OBR GおよびHの発行の後に発生する障害の場合に、デフォルトXBRが拡張リソース・マネージャERMによって呼び出され、XOBR LおよびMを伴う逆のシーケンスが、自動的に実施される。
フィールドUSAUT/ACCは、関連するフィールドBRID/CLIDで識別されるビジネス要求の実行許可のユーザ・オーソリティ・レベルおよびアカウントを定義する。
MSGFRMTは、関連するフィールドBRID/CLIDで識別されるビジネス要求の呼び出しメッセージのフォーマットを定義する(解釈の規則のセットを指定する)。
フィールドOTHER INFOは、追加情報をカタログCATに保管できることを示すのに使用される。
特定のビジネス要件に関するレコード(図5でA、B、Cなどとして識別されるレコード)のほかに、カタログCATに、NPCBRとして識別されるレコード(クラスNPCBRのすべてのビジネス要求に関する)などのビジネス要求のクラスに関するデフォルト情報を提供するレコードも含めることができる。リストA、B、Cなどに見つからないが、NPCBRとして識別されるビジネス要求が受け取られると、カタログのレコードNPCBRに保管された情報が適用される。図示の例では、クラスNPCBRに関して指定されるデフォルト情報に、システム開始時にすべてのNPCBRに帰せられるON状況と、エラーまたはNPCBR内で発行される1つまたは複数のOBRによって実行されたアクションを補償するバックアウト要求の場合に呼び出されるXBR Zが含まれる。
さらに、カタログCATに、分類されないビジネス要求に帰せられる、図示の例のレコードNCBRなど、NCBRに関するデフォルト情報を指定するレコードも含めることができる。
最後に、カタログCATに、特定のクラスのビジネス要求のオーバーライド情報を定義するレコード(図示の例のレコードNPCBRなど)を含めることができる。
カタログCATから取り出される情報は、ビジネス要求の実行コンテキストの定義に寄与する。具体的に言うと、カタログ作成プロセスまたはビジネス要求の実行コンテキストを定義するプロセスは、次の通りである。
ビジネス要求が発行されると、そのビジネス要求の実行コンテキストを定義する情報を提供することができる。この情報は、ビジネス要求が明示的に呼び出される場合に明示的に供給することができ、暗黙の呼び出しの場合にビジネス要求の呼び出しのコンテキストから導出することができる。通常、ビジネス要求の明示的呼び出しは、次の形になる。
a)APPcallBRM(BR、inpData、[XBR]、[CTXT/ANNL data]、[tran]、[user]);
b)BRcallERM(OBR、inpData、[C−SYS]、[SUBC−SYS]、[XOBR]、[CTXT/ANNL data]、[tran]、[user]);
c)XBRcallERM(XOBR、OBRinp/out/CTXT/ANNLdata、[C−SYS]、[SUBC−SYS]、[tran]、[user]、[previous XOBR in/reply/outcome])
ここで、a)は、アプリケーションAPPがビジネス要求(カタログ作成されたものまたはそうでないもの)を呼び出す場合を表し、b)は、ビジネス要求(カタログ作成されたものまたはそうでないもの)がOBRを発行する場合を表し、c)は、XBRが補償相中にXOBRを呼び出す場合を表す。大括弧内の情報は、オプションである。具体的に言うと、BRは、呼び出されるビジネス要求識別子であり、inpDataは、呼び出しで供給される入力メッセージであり、C−SYSおよびSUBC−SYSは、対応システムおよびサブシステムの識別子であり、XBRは、補償を実行する必要がある場合にシステムによってアクティブ化される補償ビジネス要求の識別子であり、XOBRは、アウトバウンド補償ビジネス要求の識別子であり、CTXT/ANNL dataは、呼出し時に供給される、補償相中にシステムによって使用できる情報を表し、tranおよびuserは、呼び出されたビジネス要求が実行されるコンテキスト(許可のレベル、トランザクションなど)を定義する。XOBR(事例c))の呼出し時に供給される情報に、OBRの結果/応答メッセージを含む、補償されるOBRに関連する情報を含めることができる。
a)APPcallBRM(BR、inpData、[XBR]、[CTXT/ANNL data]、[tran]、[user]);
b)BRcallERM(OBR、inpData、[C−SYS]、[SUBC−SYS]、[XOBR]、[CTXT/ANNL data]、[tran]、[user]);
c)XBRcallERM(XOBR、OBRinp/out/CTXT/ANNLdata、[C−SYS]、[SUBC−SYS]、[tran]、[user]、[previous XOBR in/reply/outcome])
ここで、a)は、アプリケーションAPPがビジネス要求(カタログ作成されたものまたはそうでないもの)を呼び出す場合を表し、b)は、ビジネス要求(カタログ作成されたものまたはそうでないもの)がOBRを発行する場合を表し、c)は、XBRが補償相中にXOBRを呼び出す場合を表す。大括弧内の情報は、オプションである。具体的に言うと、BRは、呼び出されるビジネス要求識別子であり、inpDataは、呼び出しで供給される入力メッセージであり、C−SYSおよびSUBC−SYSは、対応システムおよびサブシステムの識別子であり、XBRは、補償を実行する必要がある場合にシステムによってアクティブ化される補償ビジネス要求の識別子であり、XOBRは、アウトバウンド補償ビジネス要求の識別子であり、CTXT/ANNL dataは、呼出し時に供給される、補償相中にシステムによって使用できる情報を表し、tranおよびuserは、呼び出されたビジネス要求が実行されるコンテキスト(許可のレベル、トランザクションなど)を定義する。XOBR(事例c))の呼出し時に供給される情報に、OBRの結果/応答メッセージを含む、補償されるOBRに関連する情報を含めることができる。
この情報は、カタログに保管された情報と一体化される。異なる優先順位レベルが、情報の異なるソースに割り当てられ、具体的には、ビジネス要求の呼び出しと一緒に供給される情報は、そのビジネス要求のカタログで指定される情報より高い優先順位を持ち、後者は、ビジネス要求のクラスについてカタログで指定されるデフォルト情報より高い優先順位を持つ。存在する場合に、ビジネス要求のクラスに関してカタログで指定されるオーバーライド情報は、最高の優先順位を持つ。
単一のカタログではなく、ビジネス要求マネージャBRMに1つ、拡張リソース・マネージャERMにもう1つの、2つの別個のカタログを設けることができることを観察されたい。1つまたは複数のカタログを、複数のテーブルで構成することができる。
システムSYSの専用コンポーネント(構成コンポーネント)が、システムの構成、特にカタログCATの構成を可能にする。
ディレクトリ・サービスDIRS
ディレクトリ・サービスDIRSは、OBRの実行コンテキストを定義する情報を提供する。
ディレクトリ・サービスDIRSは、OBRの実行コンテキストを定義する情報を提供する。
ディレクトリ・サービスDIRSは、ディレクトリDIRに基づいて動作し、その例を、図6に概略的に示す。ディレクトリDIRは、複数のレコードを有するテーブルである。各ディレクトリ・レコードに、複数のフィールド、C−SYS、SUB C−SYS、ASSCMP、C−SYS ST−UP STAT、C−SYS IN−FLGT STAT、CNCT ID、CNCT ATTR、SIGN−ON、IN−DOUBT、BACKOUT、VER、SYS REC MODE、TO、USAUT/ACC、およびMSGFRMTが含まれる。
フィールドC−SYSおよびSUB C−SYSは、ディレクトリDIRのエントリ・キーである。OBRが呼び出される時に、この情報が、上で説明したカタログ作成プロセスから導出される。
フィールドASSCMPには、カタログCATのフィールドASSCMPに似て、OBRに関連するコンポーネント(プログラムまたはトランザクションあるいはその両方)の表示が含まれる。ディレクトリのこのフィールドで指定される情報は、上で説明したカタログ作成プロセスから導出された情報をオーバーライドし、このディレクトリ・フィールドで関連するコンポーネントが指定されない場合に、カタログ作成プロセスから導出された情報が、有効になる。図示の例を参照すると、対応システムC−SYS2に向けられたOBRが呼び出されるたびに、リモート・トランザクションRMTRq内のリモート・プログラムRMPGpが実行される。
フィールドC−SYS ST−UP STATは、システムSYSの開始時の対応システムの状況を定義する。このフィールドにONがセットされている場合に、対応システムのシステム回復手順をシステムSYSの開始時に実行する必要はない。フィールドC−SYS IN−FLGT STATは、対応システムの現在の状況を定義し、ONがセットされている場合に、このフィールドは、対応システムが使用可能であることを示す。
フィールドCNCT IDは、対応システムとの接続を確立するために拡張リソース・マネージャERMが呼び出すコネクタの識別子を提供する。コネクタは、システムSYSと、OBRが向けられる対応システムとをインターフェースする責任を負うコンポーネントである。インターフェースは、論理レベルおよび物理レベルの両方での通信プロトコルの処理を含むことが意図されている。対応システムごとに、1つまたは複数のコネクタを定義することができ、所与のコネクタの選択は、通信問題の考慮事項、採用される通信パラダイム、およびOBRの性質に依存する。各コネクタが、1つまたは複数の対応システムとの複数のセッション(1つまたは複数の対応システムに向けられる複数のOBR)を一時にサポートできるように設計されることが好ましい。コネクタは、OBR提案、OBR補償(XOBR)、システム・サインオン相およびシステム検証相、未確定状況の解決のアクティビティのいずれかを実行する際に拡張リソース・マネージャERMを助ける。
新しいOBRが開発される時に、それに関連するコネクタを識別する必要があり、使用可能なコネクタに適切なものがない場合には、新しいOBRのアプリケーション・プロトコルおよび拡張リソース・マネージャERMのアクティブ化プロトコルに従って、新しいコネクタを開発する必要がある。
フィールドCNCT ATTRは、確立されるコネクタの属性、接続の種類の定義、接続を確立するのに活用されるリソースなど、コネクタに関する情報を指定する。この情報は、コネクタのデフォルト情報をオーバーライドする。
フィールドSIGN−ON、IN−DOUBT、BACKOUT、およびVERは、それぞれ、システム回復相(後で説明する)でアクティブ化される、サインオン手順、未確定手順、バックアウト手順、および検証手順を指定する。特定の手順がこのフィールドで識別されない場合には、拡張リソース・マネージャERMによって実施されるデフォルト手順が活用され、その代わりに特定の手順が指定される場合には、その手順が、デフォルト手順の代わりにアクティブ化される。
フィールドSYS REC MODEは、対応システムの誤動作または使用不能に反応してビジネス要求マネージャBRMおよび拡張リソース・マネージャERMによって採用されるシステム回復/タスク回復エスカレーション・パラダイム(後で説明する)を指定する。この場合にも、デフォルト・パラダイムを定義することができ、このデフォルト・パラダイムは、特定の情報がディレクトリで指定されない場合に採用される。
フィールドTOは、タイムアウトすなわち、コネクタ(および拡張リソース・マネージャERM)が対応システムからの応答を待つことを許可される最大の時間を指定する。応答を受け取らずにタイムアウトが経過した場合に、その動作は未確定として分類される。
フィールドUSAUT/ACCおよびMSGFRMTには、カタログCATの対応するフィールドに含まれるものに類似する情報が含まれる。具体的に言うと、フィールドUSAUT/ACCは、ビジネス要求のサービスに用いられる、ユーザおよび関連する特権を指定する。フィールドMSGFRMTは、OBRの呼び出しと共に提供されるデータのフォーマットを識別する。
OBRが発行される時に、ディレクトリDIR(カタログCATのフィールドC−SYSおよびSUB C−SYSで指定されるアクセス・キーを介してアクセスされる)から取り出された情報によって、カタログ作成プロセスから導出された実行コンテキスト情報が完成する。ある情報(具体的には、OBRに関連するリモート・プログラム/トランザクション、接続属性、タイムアウト、ユーザ、およびメッセージ・フォーマット)は、拡張リソース・マネージャERMによって呼び出される時にコネクタに供給され、拡張リソース・マネージャERMは、対応システム状況、サインオン手順、未確定手順、バックアウト手順、検証手順、およびエスカレーション・パラダイムに関する情報を活用する。
ディレクトリDIRは、システム構成コンポーネントによって構成することができる。
ログ・サービスLOG
ログ・サービスLOGは、専用アーカイブ(ログ・アーカイブ)での、リソース・マネージャ・コーディネータRMCおよびリソース・マネージャRMによって実行される動作を含むシステムSYSのアクティビティ、ビジネス要求マネージャBRMのアクティビティ、および拡張リソース・マネージャERMのアクティビティに関する合成情報および詳細情報の保管を対象とする。保管された情報は、発生したイベントの論理的にコヒーレントなビューを提供し、後者は、補償アクティビティが必要な時に使用することができる。
ログ・サービスLOGは、専用アーカイブ(ログ・アーカイブ)での、リソース・マネージャ・コーディネータRMCおよびリソース・マネージャRMによって実行される動作を含むシステムSYSのアクティビティ、ビジネス要求マネージャBRMのアクティビティ、および拡張リソース・マネージャERMのアクティビティに関する合成情報および詳細情報の保管を対象とする。保管された情報は、発生したイベントの論理的にコヒーレントなビューを提供し、後者は、補償アクティビティが必要な時に使用することができる。
ログ・アーカイブに保管された情報は、用いられる異なるインフラストラクチャ的コンポーネントによるビジネス要求の処理中または補償中あるいはその両方にビジネス要求マネージャBRMまたは拡張リソース・マネージャERMによって明示的に提供される。
ログ・サービスLOGは、リソース・マネージャ・コーディネータRMCの調整の下でリソース・マネージャとして動作する。データは、ビジネス要求マネージャまたは拡張リソース・マネージャによってログ・サービスに供給され、リソース・マネージャ・コーディネータは、他のリソース・マネージャに似て、ログ・サービスを調整する。ログ・サービスは、UOWに関してビジネス要求マネージャまたは拡張リソース・マネージャによって受け取られた情報の扱い方を決定し、所与のUOWがコミットされる場合には、そのUOWに関するログ・アーカイブに保管された情報が統合され、そのUOWがバック・アウトされる場合には、そのUOWに関するログ・アーカイブに保管された情報が、可能な補償アクティビティのために使用可能である。ビジネス要求マネージャまたは拡張リソース・マネージャによって供給される情報は、そのUOWが実行されるコンテキストに関する情報(たとえば、作業単位識別子、状況情報、作業単位完了コード)によって完成する。
ログ・アーカイブに保管された情報への高速アクセスを可能にするために、ログ・サービスは、ログ・アーカイブに保管される情報を論理的に編成する。具体的に言うと、情報は、EXT−UOW、EXT−UOWのUOW、UOWを実施するタスク、ビジネス要求、ビジネス要求内で呼び出されるOBR、およびOBRが向けられる対象システムによって編成される。EXT−UOW、UOW、タスク、ビジネス要求、OBR、および対応システムの識別子コードが活用される。
ビジネス要求が受け取られると、トランザクション・マネージャTMが、タスクをアクティブ化し、そのタスクの中で、プログラムによって実施されるトランザクションが動作する。トランザクション・マネージャは、UOWをタスクに関連付け、そのタスクに一義識別子コードを割り当てる。ビジネス要求が、ビジネス要求マネージャによってインターセプトされる場合に、一義識別子コードが、そのビジネス要求に割り当てられる。OBRが、ビジネス要求内で発行される場合に、一義識別子コードが、そのOBRに割り当てられる。これらの一義識別子コードのすべてが、ログ・サービスに供給される。
ログ・サービスによって、各サービス要求(完了したか、処理中または遅延中なのでまだ完了していない)の詳細ヒストリを、明示的補償アクティビティまたは暗黙補償アクティビティを含めて判定することができる。
サービス要求のサービス中のエラーまたは未確定情況の場合に、コンテキスト情報(拡張リソース・マネージャによって供給され、またはログ・サービスによって直接に収集され、あるいはその両方)が、次の詳述または評価タスク/システム回復サービスあるいはその両方のための使用のために、ログ・アーカイブに保管される。
上でリストした呼び出しのフォーマットに戻ると、OBRが呼び出される時に、単一のOBR要求を、やはりLOGサービスによって保管される特定のユーザ・データANNLによって達成することができる。これらのユーザ・データは、OBR呼び出しコンテキストの一部になるが、XBRプロセスから使用可能であるか接続性サービスCNCTに直接に供給される、タスク回復サービスおよびシステム回復サービスによる次の詳述または評価あるいはその両方にも使用することができる。
ログ・サービスは、まだ完了していないEXT−UOW、UOW、およびタスクを識別するアンカ・ポイントを処理する。EXT−UOWが完了する時に、EXT−UOWの実行中にリソースにもたらされる変更のコミットの際にまたは補償アクションの結果で達する状態すなわちそのEXT−UOWに関連するアンカ・ポイントが削除され、この形で、どのアクティビティが実行中であり、延期され、または完了を待っているかを簡単に判定することがいつでも可能になる。
補償相中に、受け取られるか取り込まれ、ログ・アーカイブに保管される情報によって、動的に判定されるコヒーレント状態に達するのに必要なアクティビティのシーケンスを正確に判定することが可能になる。この情報は、XBRコンポーネントによってまたは接続性サービスCNCTによってこの時に混合され、または再配置され、あるいはその両方を行われて、XOBR入力メッセージを構成することができる。デフォルトで、呼び出されるXBRまたはコネクタに追加されるビジネス・ロジックがない場合に、デフォルトXBRによって作られるXOBR入力メッセージを、次の1つとすることができる(カタログまたはディレクトリあるいはその両方に保管された情報によって導出される)
・元々のOBR入力メッセージ
・OBR応答メッセージ
・OBR呼出し時に供給されたデータCTXT/ANNL
・データIN/OUT/CTXT/ANNLを含むマルチセグメント・メッセージ
・元々のOBR入力メッセージ
・OBR応答メッセージ
・OBR呼出し時に供給されたデータCTXT/ANNL
・データIN/OUT/CTXT/ANNLを含むマルチセグメント・メッセージ
具体的に言うと、ログ・アーカイブに保管されるデータは、次の表で報告されるように、用いられるコンポーネントおよびビジネス要求の性質に依存する。
エラー回復サービスERR
エラー回復サービスERRは、アプリケーションまたはインフラストラクチャでの誤動作に起因するエラー状態の制御を対象とする。このサービスは、システム開始時およびトランザクションまたはプログラムを対象とするサービス要求の実行中にエラーが発生する時に必ず、トランザクション・マネージャTMによってアクティブ化される。
エラー回復サービスERRは、アプリケーションまたはインフラストラクチャでの誤動作に起因するエラー状態の制御を対象とする。このサービスは、システム開始時およびトランザクションまたはプログラムを対象とするサービス要求の実行中にエラーが発生する時に必ず、トランザクション・マネージャTMによってアクティブ化される。
エラー回復サービスERRをアクティブ化する前に、用いられる異なるアプリケーションまたはインフラストラクチャ・コンポーネントのすべてが、エラーを解決するか適切な信号を発行するために、エラー状態の自律的な処理を試みる。一般に、すべてのエラーを、トランザクション・マネージャTMにエラーとして宣言する必要はない。エラー状態は、アプリケーション・エラーに階級を下げることができ、それぞれのアプリケーションによって処理することができる。
エラー状態が永続する(アプリケーションがそのエラー状態を処理できないので、またはエラー状態の階級を下げることができないのでのいずれかで)場合に、トランザクション・マネージャTMは、エラー回復サービスERRをアクティブ化する。エラー回復サービスERRは、エラー状態を引き起こしたタスクのUOW内で、エラー状態を分類し、処理する。コンテキスト情報は、ログ・サービスLOGによってログ・アーカイブにアーカイブされ、この情報は、タスク回復サービスTRおよびビジネス要求保護サービスPRに有用である可能性がある。
具体的に言うと、獲得された情報は、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMの論理状態(エラー状態の処理を決定する)、実行中のアクティビティの種類(通常処理、バックアウト、補償、未確定解決、システム回復、タスク回復)、用いられるコンポーネントのタイプ、エラーの種類、およびエラーがどのように生成されたかに関係する。
エラー回復サービスERRは、次のアクションの1つを採用して、実行すべき動作を決定する。
a)エラー状態を確認し、トランザクション・マネージャTMに制御を返す。トランザクション・マネージャは、リソース・マネージャ・コーディネータRMCによって管理されるバックアウト手順を自動的にアクティブ化する
b)拡張リソース・マネージャERMによって使用される情報の収集および編成のために、タスク回復サービスTRSによってタスク回復手順をアクティブ化する。制御は、その後にトランザクション・マネージャTMに返され、トランザクション・マネージャTMは、リソース・マネージャ・コーディネータRMCによって管理されるバックアウト手順を自動的にアクティブ化する。リソース・マネージャ・コーディネータは、拡張リソース・マネージャERMを呼び出し、拡張リソース・マネージャERMは、可能な補償アクティビティをサポートする動作を実行する。
c)タスク回復サービスTRSがタスク回復手順をアクティブ化し、エラー処理手順を抑止する。制御は、トランザクション・マネージャTMに返されて、リソース・マネージャ・コーディネータRMCによって管理されるコミット手順が自動的にアクティブ化される。したがって、エラー状態は、トランザクション・マネージャによって処理されない。
a)エラー状態を確認し、トランザクション・マネージャTMに制御を返す。トランザクション・マネージャは、リソース・マネージャ・コーディネータRMCによって管理されるバックアウト手順を自動的にアクティブ化する
b)拡張リソース・マネージャERMによって使用される情報の収集および編成のために、タスク回復サービスTRSによってタスク回復手順をアクティブ化する。制御は、その後にトランザクション・マネージャTMに返され、トランザクション・マネージャTMは、リソース・マネージャ・コーディネータRMCによって管理されるバックアウト手順を自動的にアクティブ化する。リソース・マネージャ・コーディネータは、拡張リソース・マネージャERMを呼び出し、拡張リソース・マネージャERMは、可能な補償アクティビティをサポートする動作を実行する。
c)タスク回復サービスTRSがタスク回復手順をアクティブ化し、エラー処理手順を抑止する。制御は、トランザクション・マネージャTMに返されて、リソース・マネージャ・コーディネータRMCによって管理されるコミット手順が自動的にアクティブ化される。したがって、エラー状態は、トランザクション・マネージャによって処理されない。
エラー回復サービスERRは、暗黙の補償または明示的補償の相に直接には参加しない。このアクティビティは、他のリソース・マネージャRMに似て、サービス要求の実行中に発生する変更のバックアウトの相でリソース・マネージャ・コーディネータRMCによってアクティブ化される拡張リソース・マネージャERMによって管理される。
a)およびb)の事例で、バックアウトが実行され、このバックアウトに、補償手順を含めることができ、この補償手順の前に、タスク回復相を置くことができる。
事例b)およびc)に関して、アプリケーション誤動作またはインフラストラクチャ誤動作の場合であっても、延期された補償アクティビティを管理する責任を負うビジネス要求マネージャBRMおよび拡張リソース・マネージャERMが正しくアクティブ化されることを保証するために、エラー回復サービスERRは、必ず、PCBR、XBR、およびXOBRが存在する場合にタスク回復サービスTRSをアクティブ化する。
UOW保護サービスUOW−P
このサービスは、1つまたは複数のアプリケーション・プログラムがサービス要求の処理でその下で動作するUOWの保全性を保証する。ログ・サービスLOGを活用して、UOW保護サービスUOW−Pは、ビジネス要求の処理で呼び出されたアプリケーションによって発行される明示的コミット要求およびバックアウト要求をインターセプトし、コミット・コマンドの実行を抑制する。バックアウト・コマンドは、実行され、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMに通知されると同時に、こうむる可能なミスアライメントの延期された処理を可能にするために、他のアプリケーションまたはコンポーネントから使用可能にされる。
このサービスは、1つまたは複数のアプリケーション・プログラムがサービス要求の処理でその下で動作するUOWの保全性を保証する。ログ・サービスLOGを活用して、UOW保護サービスUOW−Pは、ビジネス要求の処理で呼び出されたアプリケーションによって発行される明示的コミット要求およびバックアウト要求をインターセプトし、コミット・コマンドの実行を抑制する。バックアウト・コマンドは、実行され、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMに通知されると同時に、こうむる可能なミスアライメントの延期された処理を可能にするために、他のアプリケーションまたはコンポーネントから使用可能にされる。
具体的に言うと、UOW保護サービスは、COO−UOWまたはEXT−UOWの場合に明示的コミット・コマンドが実行されないようにし、したがって、そのフラグメンテーションを避ける。バックアウト・コマンドの場合に、コマンドが、実行され、UOW保護サービスが、ビジネス要求マネージャおよび拡張リソース・マネージャに通知する。したがって、UOW保護サービスは、COO−UOWおよびEXT−UOWの保全性を保護し、サービス要求に関して実行されるすべてのアクティビティが、コヒーレントでフラグメント化してないUOWだけによって管理されるようにする。したがって、各アクティビティは、入力メッセージ獲得、メッセージ処理、応答出力メッセージ生成の相の完了の後に、処理の終りに限って完了したと暗黙のうちに見なされる。
UOW保護サービスのおかげで、ビジネス要求マネージャBRMは、各サービス要求が一義に処理され、一義の応答を作ることを保証し、入出力メッセージの消失または複数の応答メッセージの生成あるいはその両方を回避する。
このシナリオで、コンポーネント(ビジネス要求マネージャおよび拡張リソース・マネージャと異なる)が、明示的コミット要求を発行すると、処理が、割り込まれ、エラー状態が、トランザクション・マネージャに通知される。エラー状態は、エラー回復サービスによってインターセプトされ、エラー回復サービスは、前に説明したようにエラー状態を処理する。コンポーネントが、明示的バックアウト要求を発行する時に、そのコマンドは、実行されるが、UOW保護サービスは、そのバックアウト・イベントをビジネス要求マネージャおよび拡張リソース・マネージャに通知し、その結果、このイベントが、タスク終了相中に成功裡に処理されるようにする。
タスク回復サービスTSR
このサービスは、タスク回復手順を処理する責任を負う。
このサービスは、タスク回復手順を処理する責任を負う。
ビジネス要求を処理する一般タスク(処理中タスク)の実行中に、エラー回復サービスERRによって処理されるエラー、またはリソース・マネージャ・コーディネータRMCによって調整されるバックアウト要求が発生する場合がある。この事例の両方で、タスク回復手順がアクティブ化されるが、第1の事例では、前に説明したようにエラー回復サービスERRによって、第2の事例ではリソース・マネージャ・コーディネータRMCによってアクティブ化される拡張リソース・マネージャERMによって、タスク回復手順がアクティブ化される。
タスク回復手順は、システム回復手順(後で説明する)内でシステムSYSの開始時に、システム障害またはシャットダウンの後にも、アクティブ化されて、ビジネス要求を識別するビジネス要求マネージャおよび拡張リソース・マネージャをアクティブ化または再アクティブ化することが可能になる。具体的に言うと、ビジネス要求マネージャは、前に処理中のまたは待機中のPCBRを識別し、開始/再始動し、拡張リソース・マネージャは、前に処理中のまたは待機中の補償ビジネス要求(XBR)を識別し、開始/再始動する。このために、タスク回復サービスは、ログ・サービスLOGから得られる情報と、リソース・マネージャ・コーディネータRMCによって供給される情報(処理中タスクおよび保留中の補償タスクに関する)をマージして、拡張リソース・マネージャが呼び出される回復相に必要な情報を収集する(単一のタスクごとに)。
タスク回復手順中に、ログ・アーカイブに保管されたデータを分析して、単一のタスクごとに、現在のUOWを識別し、識別されたUOWごとに、関連する状態および用いられるリソースを識別する。
この動作の後に、完全なリストが、ビジネス要求マネージャによって再アクティブ化されなければならない前に処理中のまたは保留中のPCBRについて得られ、拡張リソース・マネージャについて、前に処理中のビジネス要求を補償するXBR/XOBRの完全なリストと、補償保留中ビジネス要求のリストが得られる。
PCBRは、ビジネス要求マネージャによって即座に再アクティブ化され、EROBRのアクティブ化は、その代わりに、補償相(ある場合に)の完了の後まで延期される。
拡張リソース・マネージャは、カタログ作成サービスCATSおよびディレクトリ・サービスDIRSによって提供される情報に応じて、単一UOWのレベルで、または互いに直列に単一対応システムのレベルでのいずれかで補償タスクをアクティブ化する。
システム回復サービスSYSR
このサービスは、ディレクトリ・サービスDIRSによって保持されるテーブルDIRで定義される各対応システムのシステムSYSの開始時に実行されるシステム回復手順(概略的に図7に図示)を処理する。システム回復手順では、拡張リソース・マネージャが主に用いられるが、ビジネス要求マネージャも、PCBRに関して部分的に用いられる。
このサービスは、ディレクトリ・サービスDIRSによって保持されるテーブルDIRで定義される各対応システムのシステムSYSの開始時に実行されるシステム回復手順(概略的に図7に図示)を処理する。システム回復手順では、拡張リソース・マネージャが主に用いられるが、ビジネス要求マネージャも、PCBRに関して部分的に用いられる。
システム回復手順は、次のサービス要求の実行をそこから進行させる対応システム、たとえばC−SYS1およびC−SYS2とシステムSYSの間の一義の同期ポイントの確立を可能にする。
さらに、システム回復サービスは、1つまたは複数の対応システムに関して異常なイベントが発生する時にも、システム回復手順をアクティブ化する。そのような異常なイベントは、アプリケーション・コンポーネントまたはインフラストラクチャ・サービス(拡張リソース・マネージャ)のいずれかによってインターセプトされるが、一貫性のある点を確立するために、システムSYSおよび対応システムを再割り当てすることが必要になる場合がある。この場合に、システム回復手順は、異常なイベントが発生した対応システムに関してのみ、選択的に実行される。
システム回復手順の目的は、指示されたステップのシーケンスの後に、対応システムの論理状態(ディレクトリDIRのフィールドC−SYS ST−UP STATおよびSYS IN−FLGT STATからシステムSYSに既知になる)をONにし、対応システムが動作することを示すことである。これを行うために、拡張リソース・マネージャが必要とする場合に、システム機能およびアプリケーション機能の両方をアクティブ化することができる。
具体的に言うと、システム回復手順には、対応システム静止(以下では、単にC−SYS QUIESCEと称する)、対応システム停止(C−SYS STOP)、対応システム・サインオン(C−SYS SIGN−ON)、対応システム未確定(C−SYS IN−DOUBT)、対応システム・バックアウト(C−SYS BACKOUT)、対応システム検証(C−SYS VERIFY)、および対応システム・レディ(C−SYS READY)が含まれる。これらのステップを、次に詳細に説明する。
C−SYS QUIESCEステップでは、拡張リソース・マネージャERMが、対応システムを論理的にディスエーブルし、ディレクトリDIRのそれぞれの状態にQUIESCEをセットする。この形で、対応システムが拡張リソース・マネージャによってREADY(ON)状況に戻されるまで、対応システムに向けられるすべての可能な新しいビジネス要求が、拒否される(保護されない場合)か、延期される(保護される場合)。ビジネス要求マネージャまたは拡張リソース・マネージャによって管理される、対応システムに関係するすべての処理中アクティビティの完了が、待たれる。
このステップを成功裡に完了できない(たとえば、対応システムを用いる処理中のトランザクションがあり、それを完了できなので)場合に、システム回復手順全体が、ディレクトリDIRで定義される(タイムアウト・フィールドTO内)時間間隔だけ延期される。その時間間隔が経過した後に、システム回復手順がもう一度アクティブ化される。
C−SYS QUIESCEステップの成功の結果の場合に入るC−SYS STOPステップでは、拡張リソース・マネージャが、ディレクトリDIRで指定される対応システムの状態を強制的にSTOPにする。対応システムの状態がSTOPである時には、対応システムに関連するアクティビティがシステムSYS内で動作していないことが保証され、STOP状態は、対応システムがサービス要求の処理に使用可能でないことも宣言する。UOWの補償は、割り込まれ、次のC−SYS BACKOUTステップまで延期される。対応システムの状態は、自動的に強制的にSIGN−ONにされる。
対応システムは、システムSYSのシステム・マネージャ・コンポーネントによっても強制的にSTOP状態にされる場合がある。この場合に、対応システムは、システム回復手順が次に再アクティブ化されるまで、STOP状態に留まる。
C−SYS SIGN−ONステップでは、システムSYSは、対応システムへの論理リンクまたは対応システムとの一貫性ポイントあるいはその両方を確立する。ディレクトリDIR内の情報(フィールドSIGN−ON)に基づいて、その対応システムに関するこのアクティビティを管理することを意図された指定されたサインオン手順が、識別され、アクティブ化される。特定のサインオン手順がその対応システムのディレクトリで宣言されていない場合に、拡張リソース・マネージャは、接続性サービス(すなわちコネクタ・コンポーネント)によって実施されるデフォルトアクションを実行する。識別されたサインオン手順は、拡張リソース・マネージャERMにサービスを要求することができ、このサービスは、NROBRの形をとって、システムSYSが対応システムによって識別されるようにする相(ディレクトリ・フィールドUSAUT/ACCに含まれる情報を活用する)、対応システムがシステムSYSから来るサービス要求をサポートするために割り振らなければならない対応システム・リソースを折衝する相、将来のOBRの識別コードを獲得/折衝する相を実行する。OBR識別コードは、アプリケーション・ドメインに留まる(すなわち、コネクタ・レベルでのみ知られる)か、拡張リソース・マネージャに宣言して、対応システムに向けられる将来のOBRに自動的に相関される(ログ・アーカイブのレベルで)ようにすることができる。したがって、OBRごとに、サービスを呼び出すアプリケーションは、アクティブ化メッセージ、応答メッセージ、および対応システムで実行されるタスクの間の自動相関を可能にするために、呼び出されるサービス要求に関連する識別子コードおよび受け取られた応答に対する識別子コードを拡張リソース・マネージャに宣言することができる。
C−SYS SIGN−ONステップの成功裡の結果は、ディレクトリDIRで指定される対応システムの状態の自動的推移(SIGN−ONからIN−DOUBTへの)を伴う。不成功の結果の場合には、システム回復手順全体が、ディレクトリDIRのタイムアウト・フィールドTOで定義される時間間隔だけ延期される。
C−SYS IN−DOUBTステップでは、対応システムから生じる可能な未確定情況が、検出され、解決される。未確定情況は、拡張リソース・マネージャが、対応システムに関して発行された一般OBR/XOBRの結果を獲得するか一義に解決することができなかった情況である。未確定情況の解決は、次のC−SYS BACKOUTステップに必須であり、このC−SYS BACKOUTステップでは、エラーを生成した回復可能OBRに関連する未解決のUOWまたは延期されたUOWが、分析され、詳述される。たとえば、対応システムがシャット・ダウンするか、それへの通信リンクがOBRの実行中にダウンする場合に、拡張リソース・マネージャは、対応システムの状態が確認される(C−SYS SIGN−ONステップで)まで、そのOBRを未確定とみなす。
未確定情況の解決は、異常な状況にかかわる各OBR/XOBRの結果の判定と、コンテキスト的に生成された応答メッセージ(存在する場合に)の獲得をもたらす。異常な情況とは、拡張リソース・マネージャが応答メッセージを獲得できなくするイベントを意味し、異常な情況は、OBR/XOBRの処理の失敗または対応システムによって引き起こされる全般的なエラーに起因する可能性がある。
ディレクトリDIRに存在する情報に基づいて、未確定情況の解決を管理する特定の手順が、識別され、アクティブ化され、特定の手順が識別されない場合には、拡張リソース・マネージャが、接続性サービスによって提供されるデフォルト・アクションを実行する。未確定情況の解決について、C−SYS SIGN−ONステップで折衝されたOBR/XOBR識別コードを活用することができる。
拡張リソース・マネージャが、ログ・アーカイブに存在する情報に基づいて、動作が対応システムで実行されたかどうか、その結果、およびどの応答メッセージが生成されたかを確認できる場合に、未確定情況は解決されたとみなされる。対応システムとの接続を管理する責任を負うコネクタ(たとえばディレクトリ・フィールドCNCT IDで指定される)に応じて、未確定情況を解決する異なるモードが、拡張リソース・マネージャに提供され、たとえば、OBR/XOBR識別子コードを使用して、コネクタが、対応システムによって実行された最後の動作を知るために対応システムに質問することができ、あるいは、対応システムが、OBR/XOBRが実行されたかどうかを明示的に要求される時に、「終了」または「元に戻された」を応答できるものとすることができる。
IN−DOUBTステップの成功裡の結果は、対応システムの状態を、自動的にIN−DOUBTからBACKOUTに変更させる。不成功の結果の場合に、システム回復手順全体が、ディレクトリで定義される時間間隔だけ延期される。システム回復手順が、すべての対応システムで実行される、未確定情況が、一部の対応システムだけについて解決可能である時には、解決可能なシステムが、次のステップに進む。
C−SYS BACKOUTステップでは、拡張リソース・マネージャが、対応システムに関して発行されたOBRに関係する保留中のまたは未解決のUOWを識別する。これらのUOWが識別されたならば、その補償が試みられるか否かは、カタログ作成サービスCATSおよびディレクトリ・サービスDIRSによって提供される情報に依存する。具体的に言うと、補償は、EROBRについて試みられるが、IROBRについては試みられない。さらに、カタログ・フィールドST−UP STATおよびIN−FLGT STATで定義されるXOBRの状態が検証され、状況がOFFである場合には、そのXOBRは発行されない。
補償タスクのアクティブ化は、タスク回復サービスTSRによって管理されるタスク回復手順で行われる。
各UOWが補償される形は、次の変数に基づいて決定される。
・システム回復手順のアクティブ化の原因(システムSYSの開始あるいは異常な情況または未確定情況の発生)。これは、システムSYSおよびシステム回復手順を呼び出したコンポーネントの状態から判定される
・システムSYSの再始動モード(コールドまたはウォーム)
・UOWに含まれる各OBRの補償モーダリティ(暗黙または明示)
・単一のUOWに含まれる対応システム、ならびに回復アクティビティの処理および問題エスカレーション・パラダイムのそれぞれのモーダリティ(ASYS、SSYSなど)
・システム・マネージャ・コンポーネントを介して発行される、UOW/OBRのパージの可能な一方的なコマンド
・OBRの各補償ステップの結果:前の補償ステップの結果に依存して、補償アクティビティは、進行できるか、延期され、後に再開されるか、割り込まれるか、早期完了される。
・システム回復手順のアクティブ化の原因(システムSYSの開始あるいは異常な情況または未確定情況の発生)。これは、システムSYSおよびシステム回復手順を呼び出したコンポーネントの状態から判定される
・システムSYSの再始動モード(コールドまたはウォーム)
・UOWに含まれる各OBRの補償モーダリティ(暗黙または明示)
・単一のUOWに含まれる対応システム、ならびに回復アクティビティの処理および問題エスカレーション・パラダイムのそれぞれのモーダリティ(ASYS、SSYSなど)
・システム・マネージャ・コンポーネントを介して発行される、UOW/OBRのパージの可能な一方的なコマンド
・OBRの各補償ステップの結果:前の補償ステップの結果に依存して、補償アクティビティは、進行できるか、延期され、後に再開されるか、割り込まれるか、早期完了される。
これらの変数は、階層的に獲得される。各OBRの属性(カタログCATで指定される)は、対応システムの属性(ディレクトリDIRで指定される)に従属し、最高の優先順位は、システム・マネージャ・コンポーネントを介して強制されるすべてのものに割り当てられる。この形で、補償手順を処理する形を区別できて、異常なイベントの制御または克服あるいはその両方を対象とする広範囲の挙動が可能になる。
UOWに、NROBR、EROBR、およびIROBRを含めることができる。通常、NROBRは、照会サービス要求であり、明示的補償の対象ではない。
EROBRだけを有するUOWに関して、これらは、すべてのEROBRが補償された(XOBRによって)時に補償されたとみなされる。次の補償モーダリティが設けられる。
・ASYSモーダリティ UOWの保留中OBRのすべてが、元の実行シーケンスと逆のシーケンスで補償される。各補償ステップは、先行する補償ステップの適用結果の対象である。UOWは、拡張リソース・マネージャによって動的に判定されるシーケンスが成功裡に完了した時に、解決されたと見なされる。対応システムは、すべての関連するUOWが解決された時に、BACKOUT状態からVERIFY状態に移る。この相で検出される不成功の結果またはエラー状態は、補償手順の延期または割込みを引き起こす。この場合に、UOWにかかわる対応システムは、システム・マネージャ・コンポーネントを介する介入が行われるか、ディレクトリDIRで問題エスカレーション・シーケンスが定義され(後で説明する「SSYS」モーダリティ、「BSYS」モーダリティ、または「BERR」モーダリティへの移動を引き起こす)ない限り、エラーと宣言され、C−SYS BACKOUTステップを通過できない。
・「SSYS」モーダリティ(システム再始動時に適用されるデフォルト・モーダリティ) UOWの保留中OBRが、そのOBRが向けられる対応システムに従ってグループ化される。OBRの各グループは、元の実行シーケンスと比較して逆のシーケンスでの、すべての動作の結果に従属する補償の対象になる。OBRの各グループは、拡張リソース・マネージャによって動的に判定される、シーケンスの成功裡の完了時に解決されたとみなされる。UOWは、OBRのすべてのグループが成功裡に完了した時に解決されたとみなされる。その後、対応システムは、C−SYS VERIFYステップに移る。この相で検出される不成功の結果またはエラー状態は、補償シーケンスの延期または割込みを引き起こす。この場合に、対応システムは、システム・マネージャ・コンポーネントを介する介入が行われるか、ディレクトリで問題エスカレーション・シーケンスが定義され、「BERR」モーダリティへの移動が引き起こされない限り、エラーと宣言され、C−SYS BACKOUTステップを通過できない。
・「BSYS」モーダリティ UOWの保留中のOBRのすべてが、元の実行シーケンスと逆のシーケンスで補償され、各補償ステップは、前の補償ステップの適用結果に従属する。UOWは、拡張リソース・マネージャによって動的に判定されるシーケンスが成功裡に完了した時に、解決されたと宣言される。不成功の結果または異常なイベントが発生する場合には、シーケンスが修正されて、不成功の結果を引き起こしたOBRと同一の対応システムに向けられたOBRのすべての補償が延期される。そのような対応システムは、エラーと宣言され、システム・マネージャ・コンポーネントを介する介入が行われない限り、C−SYS BACKOUT相を通過できない。エラーと宣言されない対応システムは、次のC−SYS VERIFYに移ることができる。
・「BERR」モーダリティ このモーダリティでは、単一の対応システムによる進行の代わりに、補償が単一の動作によって進行する。UOWの保留中のOBRのすべてが、元の実行シーケンスと比較して逆のシーケンスで補償され、各補償ステップは、前の補償ステップの結果と独立に実行される。UOWは、拡張リソース・マネージャによって動的に判定される補償ステップのシーケンスが成功裡に完了した時に、解決されたと宣言される。補償ステップが、不成功の結果をもたらすか、異常なイベントが発生する場合には、かかわるOBRの補償が延期され、シーケンス内のそれに続くOBRが、補償にサブミットされる。エラーになったOBRに関連する対応システムは、エラーと宣言され、システム・マネージャ・コンポーネントを介する介入が行われない限り、C−SYS BACKOUTステップを通過できず、そうでない場合には、対応システムは、次のC−SYS VERIFYステップに移る。
・ASYSモーダリティ UOWの保留中OBRのすべてが、元の実行シーケンスと逆のシーケンスで補償される。各補償ステップは、先行する補償ステップの適用結果の対象である。UOWは、拡張リソース・マネージャによって動的に判定されるシーケンスが成功裡に完了した時に、解決されたと見なされる。対応システムは、すべての関連するUOWが解決された時に、BACKOUT状態からVERIFY状態に移る。この相で検出される不成功の結果またはエラー状態は、補償手順の延期または割込みを引き起こす。この場合に、UOWにかかわる対応システムは、システム・マネージャ・コンポーネントを介する介入が行われるか、ディレクトリDIRで問題エスカレーション・シーケンスが定義され(後で説明する「SSYS」モーダリティ、「BSYS」モーダリティ、または「BERR」モーダリティへの移動を引き起こす)ない限り、エラーと宣言され、C−SYS BACKOUTステップを通過できない。
・「SSYS」モーダリティ(システム再始動時に適用されるデフォルト・モーダリティ) UOWの保留中OBRが、そのOBRが向けられる対応システムに従ってグループ化される。OBRの各グループは、元の実行シーケンスと比較して逆のシーケンスでの、すべての動作の結果に従属する補償の対象になる。OBRの各グループは、拡張リソース・マネージャによって動的に判定される、シーケンスの成功裡の完了時に解決されたとみなされる。UOWは、OBRのすべてのグループが成功裡に完了した時に解決されたとみなされる。その後、対応システムは、C−SYS VERIFYステップに移る。この相で検出される不成功の結果またはエラー状態は、補償シーケンスの延期または割込みを引き起こす。この場合に、対応システムは、システム・マネージャ・コンポーネントを介する介入が行われるか、ディレクトリで問題エスカレーション・シーケンスが定義され、「BERR」モーダリティへの移動が引き起こされない限り、エラーと宣言され、C−SYS BACKOUTステップを通過できない。
・「BSYS」モーダリティ UOWの保留中のOBRのすべてが、元の実行シーケンスと逆のシーケンスで補償され、各補償ステップは、前の補償ステップの適用結果に従属する。UOWは、拡張リソース・マネージャによって動的に判定されるシーケンスが成功裡に完了した時に、解決されたと宣言される。不成功の結果または異常なイベントが発生する場合には、シーケンスが修正されて、不成功の結果を引き起こしたOBRと同一の対応システムに向けられたOBRのすべての補償が延期される。そのような対応システムは、エラーと宣言され、システム・マネージャ・コンポーネントを介する介入が行われない限り、C−SYS BACKOUT相を通過できない。エラーと宣言されない対応システムは、次のC−SYS VERIFYに移ることができる。
・「BERR」モーダリティ このモーダリティでは、単一の対応システムによる進行の代わりに、補償が単一の動作によって進行する。UOWの保留中のOBRのすべてが、元の実行シーケンスと比較して逆のシーケンスで補償され、各補償ステップは、前の補償ステップの結果と独立に実行される。UOWは、拡張リソース・マネージャによって動的に判定される補償ステップのシーケンスが成功裡に完了した時に、解決されたと宣言される。補償ステップが、不成功の結果をもたらすか、異常なイベントが発生する場合には、かかわるOBRの補償が延期され、シーケンス内のそれに続くOBRが、補償にサブミットされる。エラーになったOBRに関連する対応システムは、エラーと宣言され、システム・マネージャ・コンポーネントを介する介入が行われない限り、C−SYS BACKOUTステップを通過できず、そうでない場合には、対応システムは、次のC−SYS VERIFYステップに移る。
IROBRだけを含むUOWについて、直接の補償アクションは行われない。補償は、NROBRまたはIROBRを発行したビジネス要求の次の再アクティブ化まで延期される。関連するUOWのすべてが、延期される。かかわる対応システムは、次のC−SYS VERIFYステップに移ることができる。
EROBRおよびIROBRの両方を含むUOWは、EROBRに関して前に説明した補償の対象になるが、IROBRについて、直接の補償アクションは行われない。すべてのEROBRが成功裡に解決される場合に、UOWは、保証されたまたは延期されたと宣言され、深刻な異常が発生する場合には、UOWがエラーと宣言される。エラーが発生しない場合に、IROBRの補償は、上で述べたように、それを発行したビジネス要求の次の再アクティブ化まで延期され、かかわる対応システムは、C−SYSTEM VERIFYステップに移ることができる。エラーのEROBRの存在は、補償アクティビティの延期を引き起こし、関連する対応システムは、システム・マネージャ・コンポーネントを介する介入が行われない限り、C−SYS VERIFYステップに進むことができない。
すべてのバックアウト・アクティビティが完了した時、すなわち、すべての保留中UOWが解決されるか、システム・マネージャの介入によって強制された時、またはその明示的補償が対応システムによって実行される保留中OBRを有する保留中UOWがない場合に、対応システムは、C−SYS VERIFYステップに進むことができる。C−SYS VERIFYステップに進めない対応システムは、C−SYS BACKOUTステップの延期された再アクティブ化の対象になる。不成功の結果がもう一度発生する場合に、システム回復手順全体が、ディレクトリ・フィールドTOで指定される時間間隔だけ延期される。
C−SYS VERIFYステップでは、システムSYSは、対応システムまたはOBRが向けられたシステムに関して実行された動作の論理的コヒーレンスを検証する。ディレクトリ・フィールドVERに保管された情報に基づいて、C−SYS VERIFYステップを管理する特定の手順(検証手順)が、識別され、アクティブ化される。検証手順は、検証アクティビティを実行するために、拡張リソース・マネージャにサービス(NROBRの形)を要求することができる。これらのアクティビティに、対応システムに向けられるOBRの識別子コードの獲得/折衝と、システムSYSと対応システムがまだアラインされていることを検証するための、C−SYS SIGN−ONステップで獲得/折衝された識別子コードとの獲得/折衝されたコードの比較を含めることができる。その代わりに、OBR識別子の獲得/折衝を、C−SYS SIGN−ONステップで実行せず、このステップでのみ実行することができる。各OBRは、要求または受け取られた応答あるいはその両方に関連する識別子コードを拡張リソース・マネージャに宣言して、識別子コードとBRIDの自動関連付けを可能にするか、拡張リソース・マネージャによって実行された自動関連付けを受け入れることができる。特定の手順がディレクトリDIRで宣言されていない場合には、拡張リソース・マネージャは、接続性サービスによって実施されるデフォルト・アクションを実行する。
C−SYS VERIFYステップの成功裡の結果によって、VERIFY状態からREADY(ON)状態への対応システムの状態の自動推移が決定される。不成功の結果の場合に、システム回復手順全体が、ディレクトリ・フィールドTOで指定される指定された時間間隔だけ延期される。
C−SYS READY相には、一般OBRおよびXOBRの両方によって形成されるアプリケーション・トラフィックを管理する対応システムの可用性を確認した後に進入する。READY状態に達した時に、対応システムのディレクトリ・フィールドC−SYS IN−FLGT STATにONがセットされ、対応システムは、新たに発行されたOBRおよび実行を待っているすべてのもの(前に延期され、拡張リソース・マネージャによってもう一度要求されているので)の両方を処理する。ビジネス要求マネージャは、まだ待っているか、対応システムが使用可能でないことに起因して前に遅延されたPCBRSを再起動する。具体的に言うと、OBRは、拡張リソース・マネージャERMによって対応システムに関連するコネクタ(ディレクトリ・フィールドCNCT IDで指定される)に向けられ、監視サービスおよびログ・サービスによって監視される。エラーの場合に、リソース・マネージャ・コーディネータRMCによって調整される拡張リソース・マネージャが、可能な補償アクティビティを処理する。対応システムは、深刻な誤動作、未確定事例、対応システムの使用不能(たとえば、対応システム/接続リンク障害に起因する)によってトリガされるシステム回復手順の再アクティブ化まで、またはシステム・マネージャ・コンポーネントを介して対応システムが強制的にSTOP状態にされるまで、READY状態に留まる。
ビジネス要求保護サービスBRPR
このサービスは、ビジネス要求マネージャBRMによって、PCBRを自動的に再アクティブ化するのに活用される。具体的に言うと、このサービスは、ビジネス要求キューイングを管理する。
このサービスは、ビジネス要求マネージャBRMによって、PCBRを自動的に再アクティブ化するのに活用される。具体的に言うと、このサービスは、ビジネス要求キューイングを管理する。
ビジネス要求検証サービスBRVR
このサービスは、PCBRと異なる、まだ完了していない同一のビジネス要求が、不注意で1回または複数回再提案されていないことを検証するために、ビジネス要求マネージャBRMによって活用される。このサービスは、カタログ作成サービスCATSによって提供される情報に基づいて、すべての場合のビジネス要求の処理をイネーブルし(デフォルト条件)、ビジネス要求の処理に割り込み、前の試みがエラーの包括的条件に起因して割り込まれた場合にビジネス要求の処理をイネーブルし、ビジネス要求に応答して前の結果/応答メッセージを返すことができる。ビジネス要求の識別は、コンテキスト依存(入力メッセージ・データ)とするか、発行された時にビジネス要求に関連した一意のユーザ識別子に基づくものとすることができる。
このサービスは、PCBRと異なる、まだ完了していない同一のビジネス要求が、不注意で1回または複数回再提案されていないことを検証するために、ビジネス要求マネージャBRMによって活用される。このサービスは、カタログ作成サービスCATSによって提供される情報に基づいて、すべての場合のビジネス要求の処理をイネーブルし(デフォルト条件)、ビジネス要求の処理に割り込み、前の試みがエラーの包括的条件に起因して割り込まれた場合にビジネス要求の処理をイネーブルし、ビジネス要求に応答して前の結果/応答メッセージを返すことができる。ビジネス要求の識別は、コンテキスト依存(入力メッセージ・データ)とするか、発行された時にビジネス要求に関連した一意のユーザ識別子に基づくものとすることができる。
ビジネス要求検証サービスは、再アクティブ化される時にIROBRを管理するために、拡張リソース・マネージャERMによっても活用される。
接続性サービスCNCT
このサービスには、複数のコネクタ・コンポーネントが含まれ、拡張リソース・マネージャERMは、これらのコネクタ・コンポーネントを活用して、所望の対応システムとの接続リンクを確立する。適当なコネクタは、時々、カタログCATSおよびディレクトリDIRに保管された情報に基づいて判定される。コネクタは、複数の機能を実行し、特に、システムSYSと対応システムの間の通信を管理し、コネクタは、通信プロトコルおよびメッセージ・フォーマットの変換も実行することができる。
このサービスには、複数のコネクタ・コンポーネントが含まれ、拡張リソース・マネージャERMは、これらのコネクタ・コンポーネントを活用して、所望の対応システムとの接続リンクを確立する。適当なコネクタは、時々、カタログCATSおよびディレクトリDIRに保管された情報に基づいて判定される。コネクタは、複数の機能を実行し、特に、システムSYSと対応システムの間の通信を管理し、コネクタは、通信プロトコルおよびメッセージ・フォーマットの変換も実行することができる。
具体的に言うと、コネクタの入出力情報は、次の通りである:
a)OBR呼び出しの場合(コネクタ・アクティブ化につながるアクションのシーケンスが、BRcall→ERM→CNCT→OBRAPPLexecである):
コネクタ入力:ディレクトリ・データ、OBR ID、[OBR識別子/カウンタ]、[CTXTデータ]
コネクタ出力:OBR応答メッセージ、物理/論理結果、[OBR識別子/カウンタ]
b)XOBR呼び出しの場合(コネクタ・アクティブ化につながるアクションのシーケンスが、ERMcall→XBRcall→ERM→CNCT→XOBRAPPLexecである):
コネクタ入力:ディレクトリ・データ、XOBR ID、XOBR入力データ、OBR入力/応答/結果データ、[OBR CTXT/ANNLデータ]、[XOBR/OBR識別子/カウンタ]、[前のXOBR入力/応答/結果]
コネクタ出力:XOBR応答メッセージ、XOBR物理/論理結果、[XOBR識別子/カウンタ]
c)システム回復手順のC−SYS SIGN−ONステップ、C−SYS IN−DOUBTステップ、およびC−SYS VERIFYステップでの呼び出しの場合(コネクタ・アクティブ化につながるアクションのシーケンスが、ERMcall→[ディレクトリ内のUserProg→]CNCT→[OBRAPPLexec]である):
C−SYS SIGN−ONステップおよびC−SYS VERIFYステップでの呼び出しの場合:
コネクタ入力:ディレクトリ・データ、[ローカルOBR/XOBR識別子/カウンタ]
コネクタ出力:物理/論理結果、[折衝されたOBR/XOBR識別子/カウンタ]
C−SYS IN−DOUBTステップでの呼び出しの場合:
コネクタ入力:ディレクトリ・データ、OBR/OBR:入力データ、[識別子/カウンタ]、[CTXT/ANNLデータ]
コネクタ出力:OBR/XOBR:物理/論理結果、[応答メッセージ]、[識別子/カウンタ]
ただし、大括弧内のデータはオプションである。
a)OBR呼び出しの場合(コネクタ・アクティブ化につながるアクションのシーケンスが、BRcall→ERM→CNCT→OBRAPPLexecである):
コネクタ入力:ディレクトリ・データ、OBR ID、[OBR識別子/カウンタ]、[CTXTデータ]
コネクタ出力:OBR応答メッセージ、物理/論理結果、[OBR識別子/カウンタ]
b)XOBR呼び出しの場合(コネクタ・アクティブ化につながるアクションのシーケンスが、ERMcall→XBRcall→ERM→CNCT→XOBRAPPLexecである):
コネクタ入力:ディレクトリ・データ、XOBR ID、XOBR入力データ、OBR入力/応答/結果データ、[OBR CTXT/ANNLデータ]、[XOBR/OBR識別子/カウンタ]、[前のXOBR入力/応答/結果]
コネクタ出力:XOBR応答メッセージ、XOBR物理/論理結果、[XOBR識別子/カウンタ]
c)システム回復手順のC−SYS SIGN−ONステップ、C−SYS IN−DOUBTステップ、およびC−SYS VERIFYステップでの呼び出しの場合(コネクタ・アクティブ化につながるアクションのシーケンスが、ERMcall→[ディレクトリ内のUserProg→]CNCT→[OBRAPPLexec]である):
C−SYS SIGN−ONステップおよびC−SYS VERIFYステップでの呼び出しの場合:
コネクタ入力:ディレクトリ・データ、[ローカルOBR/XOBR識別子/カウンタ]
コネクタ出力:物理/論理結果、[折衝されたOBR/XOBR識別子/カウンタ]
C−SYS IN−DOUBTステップでの呼び出しの場合:
コネクタ入力:ディレクトリ・データ、OBR/OBR:入力データ、[識別子/カウンタ]、[CTXT/ANNLデータ]
コネクタ出力:OBR/XOBR:物理/論理結果、[応答メッセージ]、[識別子/カウンタ]
ただし、大括弧内のデータはオプションである。
監視サービスMON
このサービスは、トランザクション・マネージャに発行されたコマンドをインターセプトし、そのコマンドをビジネス要求マネージャにルーティングする。ビジネス要求マネージャは、カタログ作成サービスCATSを活用し、どのインフラストラクチャ・コンポーネント(ビジネス要求マネージャ自体、OBRの拡張リソース・マネージャ、またはNCBRのトランザクション・マネージャ)がそのコマンドを処理するかを決定する。
このサービスは、トランザクション・マネージャに発行されたコマンドをインターセプトし、そのコマンドをビジネス要求マネージャにルーティングする。ビジネス要求マネージャは、カタログ作成サービスCATSを活用し、どのインフラストラクチャ・コンポーネント(ビジネス要求マネージャ自体、OBRの拡張リソース・マネージャ、またはNCBRのトランザクション・マネージャ)がそのコマンドを処理するかを決定する。
トランザクション・マネージャTMを、これから説明する。
システムSYSが開始される時に、システム開始手順が起動される。システム開始手順は、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMをアクティブ化し、このインフラストラクチャ・コンポーネントの可用性についてトランザクション・マネージャTMおよびリソース・マネージャ・コーディネータRMCに通知し、サービス・プロバイダ・サブシステムSERもアクティブ化される。
開始手順は、リソース・マネージャ・コーディネータRMCから情報、特に保留中UOWのリストも獲得する。このリストに基づいて、拡張テーブル・マネージャERMは、ログ・アーカイブをスキャンし、マトリックスを生成し、このマトリックスでは、保留中UOWごとに、かかわるXOBRおよび対応システムが示される。システム回復サービスSYSRが呼び出され、マトリックス内の対応システムごとに、システム回復手順がアクティブ化され、このシステム回復手順は、ディレクトリDIRで指定される情報に基づいて実行される。システム回復手順は、前に説明したステップの指定されたシーケンスが対応システムごとに実行されたならば、完了する。
タスク回復サービスTSRが、呼び出される。マトリックスのUOWごとに、タスク回復手順がアクティブ化される。しかし、このタスク回復手順は、UOWに用いられる対応システムが状態BACKUOT(UOWがEROBRも含む場合)または状態READY(UOWがIROBRを含む場合)になる時まで延期される。
タスク回復サービスTSRは、まだ保留中のタスクを再アクティブ化するのに活用される。タスク回復サービスによって実行されるタスク回復手順は、ビジネス要求マネージャBRMが、ログ・サービスLOGのアーカイブに保管された情報に基づいて、まだ完了していないPCBRを識別できるようにし、このPCBRは、再アクティブ化される必要がある。
トランザクション・マネージャTMは、通常はウォームまたはコールドと称する2つのモードのいずれかで開始することができる。コールド・モードでは、ウォーム・モードと異なって、タスクは、前のシステム・シャット・ダウンが処理されず、したがって補償されない後でも保留中であり、システム回復手順のC−SYS BACKOUTステップは、EROBRに関して実行されない。
ウォーム開始の場合に、ビジネス要求マネージャBRMは、前のシステム・シャットダウン時にまだ完了していないかキューに入れられていた(遅延されていた)PCBRを再アクティブ化する。拡張リソース・マネージャERMは、システム・シャットダウン時にまだ完了していなかったか未解決の(すなわち未確定の)OBRを管理する。
システム回復手順が完了したならば、システムSYSならびに対応システムC−SYS1およびC−SYS2が、同期化され、保留中のビジネス要求を再発行できると同時に、新しいビジネス要求を受け入れることができる。
システムSYSのシャットダウン時に、トランザクション・マネージャTMは、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMにシャット・ダウンを通知する。ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMは、新しいサービス要求を拒否するか、新しいサービス要求をビジネス要求保護サービスBRPRによって管理されるキューに入れることができる。新しいビジネス要求がPCBRである場合に、その要求は、受け入れられ、ビジネス要求キューに入れられ、できる限り速くサービスされる。ビジネス要求がNPCBRの場合には、拒否される。
ビジネス要求マネージャBRMは、処理中のトランザクションが完了するのを待つ。拡張リソース・マネージャERMは、前にエラーであったかバック・アウトされたUOWに関連する可能な補償アクティビティの完了を待つ。
対応システムについてディレクトリDIRのタイムアウトが経過した場合またはシステムSYSの強制シャットダウンの場合で、処理中のトランザクションあるいは前にエラーであったかバック・アウトされたUOWの補償アクティビティを完了できない場合に、システムSYSの次の開始時に、システム回復手順およびタスク回復手順が再実行され、その結果、ビジネス要求マネージャBRMおよび拡張リソース・マネージャERMが、PCBRおよび保留中のUOWを再始動できるようになる(トランザクション・マネージャTMがウォーム・モードで再始動されるならば)。
システムSYSの動作中に、拡張リソース・マネージャERMが、一般OBRによって生成される応答/結果メッセージを入手せず、ログ・アーカイブに保管しない場合に、未確定情況が確立される。他のアクティビティに先立って、未確定情況を解決しなければならない。未確定をもたらしたすべてのOBRのアクティブ化および完了に関する情報を取り出すために、拡張リソース・マネージャERMは、OBRに関連するコネクタ(ディレクトリDIRで指定される)をアクティブ化する。
具体的には、拡張リソース・マネージャERMは、OBRの識別子コードを活用して、次の検査を実行する。
まず、拡張リソース・マネージャは、OBRがアクティブ化されていることを確認する。そうでない場合に(たとえば、上で述べたキューイング機構の結果として)、OBRは、実行されていないとみなされ、アクティブ化メッセージ(存在する場合に)が削除される。したがって、未確定情況が解決され、システムが、必要な場合に補償アクティビティを実行できるようになる。未確定OBRがEXT−UOW内で唯一のOBRである場合には、補償アクティビティも必要でない。
その代わりに、OBRがアクティブ化されていると確認される場合に、拡張リソース・マネージャは、OBRがまだ実行中であるかどうかを確認する。これは、OBRを発行した主タスクがタイムアウトを尊重しなければならない時に発生する可能性がある。この場合に、OBRの完了および応答メッセージ/結果の獲得を待つことが可能であり、あるいは、OBRを打ち切り、エラーと宣言して、バックアウト相のOBRの結果を取り消すことができる。したがって、未確定情況が解決され、システムが、補償アクティビティを実行できるようになり、この補償アクティビティは、強制的に打ち切られたOBRが回復不能リソースを使用した場合に必要になる。
拡張リソース・マネージャが、OBRの完了を待つ場合には、それからの論理結果が検証される。OBR応答メッセージ/結果は、OBRのアクティブ化に採用されるプロトコルの性質に応じて、使用可能な場合とそうでない場合がある。応答メッセージ/結果の獲得は、補償アクティビティの決定を単純にするのに有用である。
応答メッセージ/結果がない場合に、OBRは形式的に正しく実行される結果になるが、論理結果の処理に関する情報がなく、処理が対応システムによってどのように分類されたかに関する情報がない。この情報は、通常は応答メッセージに含まれる。応答メッセージ/結果の獲得によって、アプリケーションまたはインフラストラクチャ内部コーディングに基づく、用いられるコネクタまたはXBRによって直接に解釈される、サービス要求の論理結果を判定できるようになる。結果に基づいて、OBRが期待される結果を作ったかどうかを確立でき、したがって、補償相が必要であり、あるいは、失敗またはバックアウト要求の場合には補償アクティビティが不要である。
応答メッセージ/結果を獲得できない場合には、OBRが、自動的に補償にサブミットされ、あるいは、システム回復手順が開始される。
OBRが打ち切られ、回復可能リソースだけが用いられた場合に、補償相は必要でない。そうではなく、OBRが回復不能リソースを使用した場合には、そのOBRによって操作された変更(部分的であっても)が存在する可能性があるので、未確定情況は部分的にのみ解決される。この場合に必要な補償相の前に、打ち切られる前にそのOBRによってどれが部分的に行われたかの予備的検証を行うことができる。この情況は、XOBRに関連するコネクタのアクティブ化の際に、拡張リソース・マネージャによって通知される。
未確定情況の解決の間接的サポートを、システム回復手順のアクティブ化によって得ることができ、これには、予備的なC−SYS SIGN−ONステップおよび最終的なC−SYS VERIFYステップが含まれ、その間に、対応システムごとに、対応システムとシステムSYSの間の再割り当てを処理することが可能である。この形で、対応システムに向けられるOBRの識別子コードが、獲得/折衝され、獲得/折衝された識別コードを活用して、それに向けられた/完了した最後の動作に関する情報を対応システムから獲得することが可能であり、したがって、対応システムから取り出された情報に基づく未確定事例の自動的解決が可能である。
未確定情況を自動的に解決できない場合に、一般ユーザ/システム・マネージャを直接的に含むことができ、このマネージャは、必要な検査を実行した後に、各未確定情況をシステムによってどのように処理するかの指示を提供する。すなわち、未確定情況は、OBRが実行をもたらさず、補償が不要なので解決されたとみなされ、あるいは、未確定情況は、OBRが部分的にのみ実行をもたらし、解決を必要とするので解決されたとみなされる。
未確定情況を解決する形は、異なるタイプのOBRに共通するが、各OBRの異なる性質が、次の補償相(その相が必要な場合に)のシステム挙動に影響する。OBRの実行およびその結果を確認した後に、補償アクションは、次のようになる。
・NROBR これらのOBRは、一般に照会サービス要求に関連するが、どの補償アクションにもサブミットされない。可能な未確定情況の解決は、オプションである。システム全体の正しい動作を検証することが有用である可能性はあるが、OBR実行および可能な場合の応答メッセージ/結果の獲得は、次の詳述をトリガしない。
・IROBR これらのOBRは、照会サービス要求と修正サービス要求の両方に関連する。後者の場合に、可能な未確定情況の解決が必須である。直接の補償アクションは行われない。OBRを発行したビジネス要求の可能な再詳述によってトリガされる再詳述に、応答メッセージ/結果の獲得の相中に拡張リソース・マネージャによってログ記録されるすべてのものの獲得または対応システムによる再詳述に向けられたOBRの直接アクティブ化と、そのような再詳述の応答メッセージ/結果の管理が含まれる。
・EROBR これらのOBRは、通常は、リソースに対する変更を伴う。可能な未確定情況の解決は、必須である。補償アクティビティは、関連するXOBRの直接アクティブ化または関連するXBRのアクティブ化からなる。
・XOBR これらのOBRは、用いられるXBRによって発行され、システムによってIROBRのように扱われる。可能な未確定情況の解決は、必須である。XOBRの実行中に生じたエラーは、拡張リソース・マネージャERMによって暗黙のうちに補償され、あるいは、XOBRまたはXBRの詳述フローへの割込みが、拡張リソース・マネージャERMによって自動的に処理され、再アクティブ化される。前に成功裡に終了したXOBRは、実行されたとみなされ、それぞれの応答メッセージ/結果が、次の補償アクションを決定するのに使用される。実行されなかったXOBRは、再アクティブ化され、その結果、対応システムが、それらを詳述でき、期待される応答メッセージ/結果を作れるようになる。XBRのアクティブ化には、補償されるOBRおよび前に要求/実行されたものの通知が、関連する応答メッセージ/結果と共に付随する。XBRは、アーカイブまたはプロセスに直接に向けられた特定のアクティビティの直接実行または延期された実行を介して補償相に進行することができる。
・NROBR これらのOBRは、一般に照会サービス要求に関連するが、どの補償アクションにもサブミットされない。可能な未確定情況の解決は、オプションである。システム全体の正しい動作を検証することが有用である可能性はあるが、OBR実行および可能な場合の応答メッセージ/結果の獲得は、次の詳述をトリガしない。
・IROBR これらのOBRは、照会サービス要求と修正サービス要求の両方に関連する。後者の場合に、可能な未確定情況の解決が必須である。直接の補償アクションは行われない。OBRを発行したビジネス要求の可能な再詳述によってトリガされる再詳述に、応答メッセージ/結果の獲得の相中に拡張リソース・マネージャによってログ記録されるすべてのものの獲得または対応システムによる再詳述に向けられたOBRの直接アクティブ化と、そのような再詳述の応答メッセージ/結果の管理が含まれる。
・EROBR これらのOBRは、通常は、リソースに対する変更を伴う。可能な未確定情況の解決は、必須である。補償アクティビティは、関連するXOBRの直接アクティブ化または関連するXBRのアクティブ化からなる。
・XOBR これらのOBRは、用いられるXBRによって発行され、システムによってIROBRのように扱われる。可能な未確定情況の解決は、必須である。XOBRの実行中に生じたエラーは、拡張リソース・マネージャERMによって暗黙のうちに補償され、あるいは、XOBRまたはXBRの詳述フローへの割込みが、拡張リソース・マネージャERMによって自動的に処理され、再アクティブ化される。前に成功裡に終了したXOBRは、実行されたとみなされ、それぞれの応答メッセージ/結果が、次の補償アクションを決定するのに使用される。実行されなかったXOBRは、再アクティブ化され、その結果、対応システムが、それらを詳述でき、期待される応答メッセージ/結果を作れるようになる。XBRのアクティブ化には、補償されるOBRおよび前に要求/実行されたものの通知が、関連する応答メッセージ/結果と共に付随する。XBRは、アーカイブまたはプロセスに直接に向けられた特定のアクティビティの直接実行または延期された実行を介して補償相に進行することができる。
EXT−UOWの正しい管理は、普通のトランザクション管理システムで採用されるものと異なるシステム・リソース割り当て判断基準を必要とする。
EXT−UOWの場合の保全性の問題を減らすために、接続性サービスCNCTは、時々各タスクのレベルで定義される論理リソースのシリアライズを対象とする、アクティビティのキューイングを実施する。キューイングのタイプおよびその持続時間に応じて、タスクは、それに論理的に関連するリソースの制御を獲得し、タスクが完了するまで、または適当な場合に補償相が完了するまで、その制御を保つことができる。
具体的に言うと、ビジネス要求マネージャおよび拡張リソース・マネージャは、論理エンティティの定義を可能にし、それへのアクセスを管理する。各論理エンティティは、定義されたならば、各タスクによって要求されるアクセスのタイプに基づいて、1つまたは複数のタスクによって獲得することができる。論理エンティティのタイプおよび要求されたアクセスのタイプに応じて、使用の次の排他的/非排他的権利(LOCK)を、タスクに割り当てることができる。
・タスクに割り当てられる排他的アクセス権および他のタスクのキューイング。キューイングは、たとえば「先入れ先出し」(FIFO)タイプである
・タスクに割り当てられる修正での排他的アクセス権(読取アクセス権が他のタスクに割り当てられる)および変更を要求する他のすべてのタスクのキューイング(たとえばFIFO)
・タスクに割り当てられる排他的アクセス権および他のタスクのキューイング。キューイングは、たとえば「先入れ先出し」(FIFO)タイプである
・タスクに割り当てられる修正での排他的アクセス権(読取アクセス権が他のタスクに割り当てられる)および変更を要求する他のすべてのタスクのキューイング(たとえばFIFO)
各LOCKの有効性の時間は、論理エンティティのタイプおよびサービスを要求するタスクの性質に依存して変化する可能性がある。具体的には、次の時間ウィンドウが設けられる。
・TASK時間ウィンドウ タスクによる論理エンティティの使用の権利は、要求が発行された時からそのタスクの終了までアクティブのままになる
・UOW時間ウィンドウ 要求が発行された時から特定のUOWの完了までアクティブ
・EXT−UOW時間ウィンドウ 要求が発行された時から、可能な補償相を含めて関係するUOWのすべての完了までアクティブ。各UOWが、単一相または2相のコミット・プロトコルに準拠するUOWとしてトランザクション・マネージャTMおよびリソース・マネージャ・コーディネータRMCに既知であるが、異なるUOWが直接に相関しない場合であっても、拡張リソース・マネージャERMが、ビジネス要求の処理中にシステムによって実施されるEXT−UOWを構成するUOWを相関できることに留意する価値がある
・SYSTEM時間ウィンドウ 要求が発行された時から、そのシステムに向けられるすべての可能な補償アクティビティの完了を含めて、特定のリモート・システムの検出可用性までアクティブ
・GENERIC時間ウィンドウ 要求が発行された時から、デキューの明示的コマンドが発行されるまでアクティブ
・TASK時間ウィンドウ タスクによる論理エンティティの使用の権利は、要求が発行された時からそのタスクの終了までアクティブのままになる
・UOW時間ウィンドウ 要求が発行された時から特定のUOWの完了までアクティブ
・EXT−UOW時間ウィンドウ 要求が発行された時から、可能な補償相を含めて関係するUOWのすべての完了までアクティブ。各UOWが、単一相または2相のコミット・プロトコルに準拠するUOWとしてトランザクション・マネージャTMおよびリソース・マネージャ・コーディネータRMCに既知であるが、異なるUOWが直接に相関しない場合であっても、拡張リソース・マネージャERMが、ビジネス要求の処理中にシステムによって実施されるEXT−UOWを構成するUOWを相関できることに留意する価値がある
・SYSTEM時間ウィンドウ 要求が発行された時から、そのシステムに向けられるすべての可能な補償アクティビティの完了を含めて、特定のリモート・システムの検出可用性までアクティブ
・GENERIC時間ウィンドウ 要求が発行された時から、デキューの明示的コマンドが発行されるまでアクティブ
トランザクション処理システムの動作の例を、図8に概略的に示す。トランザクション・マネージャTMが、分類されたビジネス要求CBRとしてカタログにリストされたビジネス要求BRを受け取ると仮定する。そのビジネス要求をサービスするタスクT1が、UOW UOW1を伴ってアクティブ化される。タスクT1の処理中に、OBR OBR1がまず発行され、対応システムC−SYS1およびC−SYS2の1つに向けられ、OBR OBR1をサービスするタスクT2が、作業単位UOW2を伴って対応システムでアクティブ化される。タスクT2が成功裡に終了する時に、UOW UOW2がコミットされる。タスクT1は、第2のOBR OBR2を発行し、同一のまたは別の対応システムに向ける。タスクT3が、その対応システムで開始され、UOW UOW3内のサービス要求を処理する。タスクT3が成功裡に完了する時に、UOW UOW3がコミットされる。
この時に、まだ処理中のUOW UOW1のバックアウト要求が、リソース・マネージャ・コーディネータRMCによって受け取られると仮定する。リソース・マネージャ・コーディネータRMCは、拡張リソース・マネージャERMを呼び出し、拡張リソース・マネージャERMは、可能な場合にシステムを初期状態に戻し、さもなければシステムを別のコヒーレントな状態にするために、バックアウト・アクティビティまたは補償アクティビティを管理する。また、トランザクション・マネージャTMによって受け取られたビジネス要求が、カタログ内に、関連するXBR XBRを有すると仮定する。XBR XBRが呼び出され、UOW UOW4に関連するタスクT4がアクティブ化される。UOW UOW2およびUOW3の補償を実行するために、前に実行されたアクションが、逆のシーケンスで実行される。XOBR OBR−2およびOBR−1が、順番に発行され、対応システムでそれぞれのタスクT5およびT6のアクティブ化を引き起こし、タスクT5およびT6の処理に、UOW XUOW5およびXUOW6の補償が含まれる。タスクT5およびT6の両方が成功裡に完了し、したがってUOW XUOW5およびXUOW6がコミットされる時に、UOW UOW2およびUOW3は、補償済みである(この相で送出されるすべてのエラー状態は、補償相の割込みを強制し、待機中のタスクT1は、積極的に延期されるか、イベントについて通知されるか、異常終了することができる。補償アクティビティだけが延期され、新しいXBRがインスタンス化され、失敗したXOBRが開始され、システムによってIROBRのように扱われる)。UOW UOW1は、この時までまだ処理中であるが、したがって、バック・アウトされ、終了する。
タスクT1は、ビジネス要求BRの処理に進む、新しいUOW UOW7に入る。UOW UOW7中に、新しいOBR OBR3が、タスクT1によって発行され、対応システムの1つに向けられる。タスクT7が、その対応システムで、UOW UOW8内のOBR OBR7をサービスするために起動される。タスクT7が成功裡に終了する時に、UOW UOW8およびUOW7がコミットされる。したがって、ビジネス要求BRがサービスされており、応答メッセージが、ビジネス要求BRを発行したアプリケーションに返される。
要約すると、本発明は、コミット/バックアウト・プロトコルに準拠する新しいビジネス・プロセスを開発し、管理し、個別にコミット/バックアウト・プロトコルに準拠するまたは準拠しない既存のプロセスを活用できるようにする方法およびシステムを提供する。具体的には、新しいビジネス・プロセスの開発で、新しいビジネス・プロセスのコンポーネント(ビジネス要求、OBR、XBR、XOBR、およびコネクタ)を識別しなければならない。ビジネス・ロジックは、ビジネス要求のレベルに置かれなければならない。補償ビジネス・ロジック(指定される場合に)は、XBRまたはコネクタのレベルに置かれなければならない。統合ロジックは、コネクタのレベルに置かれなければならない。代替案で、統合ロジックを、XBRおよびビジネス要求のレベルで分散する。データ解析は、ビジネス要求のレベル、または、不可能な場合に、コネクタのレベルに置かれなければならない。ネットワーク・インフラストラクチャ・レベルでの通信結果は、コネクタによって処理されなければならない。ビジネス要求の論理結果は、ビジネス要求によって、XBRによって、またはコネクタによって生成されなければならない。
本発明を、いくつかの実施形態によって開示したが、請求項で定義される本発明の範囲から逸脱せずに、本発明の説明した実施形態ならびに他の実施形態に対する複数の修正が可能であることを、当業者は諒解するであろう。
Claims (24)
- コミット/バックアウト・プロトコルに従ってそれぞれのシステム・リソースへの変更を管理する少なくとも1つのリソース管理手段(RM)と、
前記少なくとも1つのリソース管理手段のコミット/バックアウト・アクティビティを調整する調整手段(RMC)と
を含むデータ処理システムであって、
前記コミット/バックアウト・プロトコルに準拠しない非準拠プロセスの実行を管理するプロセス・リソース管理手段(ERM)
を含み、前記プロセス・リソース管理手段が、前記コミット/バックアウト・プロトコルに従って前記調整手段によって調整され、バックアウト要求を受け取ったことに応答して、前記非準拠プロセスの実行中に実行されたアクションをバックアウトするために実行すべき補償アクションのシーケンスを自動的に決定し、前記補償アクションの実行を管理する
ことを特徴とするデータ処理システム。 - 補償アクションの前記シーケンスは、逆アクションのシーケンスであり、各逆アクションが、前記非準拠プロセスの前記実行中に実行されたそれぞれのアクションの逆である、請求項1に記載のデータ処理システム。
- バックアウト要求を受け取ったことに応答して、前記補償アクションが、前記調整手段によって調整されて、前記リソース管理手段の前記バックアウト・アクティビティと並列に実行される、請求項1に記載のデータ処理システム。
- バックアウト要求を受け取ったことに応答して、前記補償アクションが、前記リソース管理手段の前記バックアウト・アクティビティに関して延期される、請求項1に記載のデータ処理システム。
- 前記プロセス・リソース管理手段が、1つの作業単位または複数の相関する作業単位のいずれかに関連する少なくとも1つのタスクによる前記非準拠プロセスおよび前記補償アクションの実行を管理する、請求項1に記載のデータ処理システム。
- 少なくとも1つの前記非準拠プロセスの実行中に実行されるアクションに関する情報を記録する情報記録サービス(LOG)を含み、前記プロセス・リソース管理手段が、前記情報記録サービスによって記録された前記情報に基づいて補償アクションの前記シーケンスを自動的に決定する、請求項1に記載のデータ処理システム。
- 補償アクションの前記シーケンスは、前記データ処理システムを、前記非準拠プロセスによって前記アクションが実行される前の前記システムの初期状態に対応する第1システム状態と、前記システムの初期状態と異なる第2システム状態との間の1つにし、前記第2システム状態は、前記情報記録サービスによって記録された前記情報に基づいて、前記プロセス・リソース管理手段によって判定される、請求項6に記載のデータ処理システム。
- 実行されるプロセスを分類し、プロセスが非準拠プロセスであるかどうかを判定するプロセス分類サービス(CATS、CAT、BRM)を含む、請求項7に記載のデータ処理システム。
- 前記分類サービスが、プロセス・タイプのカタログを提供するプロセス・カタログ(CAT)であって、前記カタログ内の前記プロセス・タイプごとに、前記プロセス・リソース管理手段による前記記録された情報に基づく補償アクションの前記シーケンスの自動的判定を可能にする情報を提供するプロセス・カタログ(CAT)を含む、請求項8に記載のデータ処理システム。
- 前記プロセス・タイプは、バックアウト要求の受取に応答して、前記プロセス・リソース管理手段が補償アクションの前記シーケンスを直接にアクティブ化するのではなく、前記プロセスの次の再起動を待つ第1プロセス・タイプを含む、請求項9に記載のデータ処理システム。
- プロセスの前記実行中に発行されたバックアウト要求を管理するプロセス回復手順を実施するプロセス回復サービス(TSR)を含む、請求項6に記載のデータ処理システム。
- プロセスの前記実行中に発生するエラー状態を管理するエラー回復手順を実施するエラー回復サービス(ERR)を含む、請求項6に記載のデータ処理システム。
- 前記エラー回復手順が、前記情報記録サービスによって提供される前記情報に依存する、請求項12に記載のデータ処理システム。
- 前記エラー回復手順が、プロセス回復手順を実行することを含む、請求項13に記載のデータ処理システム。
- 前記非準拠プロセスが、少なくとも1つの別個のデータ処理システム(C−SYS1、C−SYS2)で稼動するプロセスおよび前記データ処理システムで稼動するが前記コミット/バックアウト・プロトコルに準拠しないプロセスの中の少なくとも1つを含む、請求項1に記載のデータ処理システム。
- 前記データ処理システムと前記少なくとも1つの別個のデータ処理システムとの間の同期ポイントを確立するシステム回復手順を実施するシステム回復サービス(SYSR)を含む、請求項15に記載のデータ処理システム。
- 前記システム回復手順が、前記プロセス・リソース管理手段によって呼び出される、請求項16に記載のデータ処理システム。
- 前記システム回復手順が、前記データ処理システムの開始に応答して呼び出される、請求項17に記載のデータ処理システム。
- 前記システム回復手順が、前記データ処理システムと前記少なくとも1つの別個のデータ処理システムとの間の折衝相を含み、前記折衝相が、前記別個のデータ処理システムに向けられる前記プロセスの識別情報を折衝することを含む、請求項16に記載のデータ処理システム。
- 前記データ処理システムと前記少なくとも1つの別個のデータ処理システムとの間の通信を管理する、前記プロセス・リソース管理手段によって活用される接続性サービス(CNCT)を含む、請求項15に記載のデータ処理システム。
- プロセスの自動的再実行を管理するサービスを含む、請求項1に記載のデータ処理システム。
- トランザクションを管理するトランザクション・マネージャ・システム(TM)を含む、請求項1乃至21のいずれか一項に記載のデータ処理システム。
- 第1トランザクション管理システム
を含む、トランザクションを管理するデータ処理システムであって、前記第1トランザクション管理システムが、
それぞれがコミット/バックアウト・プロトコルに従ってそれぞれのシステム・リソースを管理する責任を負う複数のリソース管理手段と、
前記リソース管理手段のコミット/バックアウト・アクティビティを調整する調整手段と
を含み、
リソース管理手段として働き、前記第1のシステムと別個の少なくとも1つの第2トランザクション管理システムによって実行されるトランザクションに関して前記調整手段によって調整され、前記少なくとも1つの第2のシステムによって実行されるトランザクションのバックアウト・アクティビティを管理する、プロセス・リソース管理手段
を含むことを特徴とするデータ処理システム。 - コミット/バックアウト・プロトコルに従ってそれぞれのシステム・リソースに対する変更を管理する少なくとも1つのリソース管理手段(RM)を設けることおよび、
前記少なくとも1つのリソース管理手段のコミット/バックアウト・アクティビティを調整する調整手段(RMC)を設けること
を含む、前記コミット/バックアウト・プロトコルに準拠する準拠プロセスを前記コミット/バックアウト・プロトコルに準拠しない非準拠プロセスと統合する方法であって、
前記コミット/バックアウト・プロトコルに従って前記調整手段によって調整され、前記非準拠プロセスの実行を管理し、前記非準拠プロセスの前記実行中に実行されたアクションをバックアウトするためにバックアウト要求の受取に応答して実行すべき補償アクションのシーケンスを自動的に決定し、前記補償アクションの実行を管理する、プロセス・リソース管理手段(ERM)を設けること
を含むことを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02368099 | 2002-09-12 | ||
PCT/EP2003/010082 WO2004025461A2 (en) | 2002-09-12 | 2003-08-13 | A data processing system adapted to integrating non-homogeneous processes |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005538460A true JP2005538460A (ja) | 2005-12-15 |
Family
ID=31985158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004535486A Pending JP2005538460A (ja) | 2002-09-12 | 2003-08-13 | データ処理システム及び方法(非同種プロセスを統合するように適合されたデータ処理システム) |
Country Status (9)
Country | Link |
---|---|
US (2) | US7477953B2 (ja) |
EP (1) | EP1540477A2 (ja) |
JP (1) | JP2005538460A (ja) |
KR (1) | KR20050035301A (ja) |
CN (1) | CN1682191A (ja) |
AU (1) | AU2003264291A1 (ja) |
CA (1) | CA2498064C (ja) |
TW (1) | TWI264670B (ja) |
WO (1) | WO2004025461A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306197A (zh) * | 2011-09-22 | 2012-01-04 | 用友软件股份有限公司 | 保证跨数据源操作结果一致性的装置和方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050096999A1 (en) * | 2003-11-05 | 2005-05-05 | Chicago Mercantile Exchange | Trade engine processing of mass quote messages and resulting production of market data |
JP4710267B2 (ja) * | 2004-07-12 | 2011-06-29 | 株式会社日立製作所 | ネットワークシステム、データ中継装置、セッションモニタシステム、およびパケットモニタ中継装置 |
US20080270770A1 (en) * | 2005-01-24 | 2008-10-30 | Marc Vertes | Method for Optimising the Logging and Replay of Mulit-Task Applications in a Mono-Processor or Multi-Processor Computer System |
US7949551B2 (en) | 2005-04-06 | 2011-05-24 | International Business Machines Corporation | Processing of compensation scopes in workflow management systems |
EP1748384B1 (en) * | 2005-04-06 | 2009-07-22 | International Business Machines Corporation | Processing of compensation scopes in workflow management systems |
US7653664B2 (en) * | 2006-11-03 | 2010-01-26 | Microsoft Corporation | Anchor for database synchronization excluding uncommitted transaction modifications |
US20080172381A1 (en) * | 2007-01-17 | 2008-07-17 | Paul Suh | Method and system for connecting service providers with service requestors |
US20080192643A1 (en) * | 2007-02-13 | 2008-08-14 | International Business Machines Corporation | Method for managing shared resources |
KR100968774B1 (ko) * | 2008-09-18 | 2010-07-09 | 고려대학교 산학협력단 | 다수의 이종 프로세서를 구비하는 멀티 프로세싱 시스템 및그 구동 방법 |
US8001548B2 (en) * | 2008-10-20 | 2011-08-16 | Microsoft Corporation | Transaction processing for side-effecting actions in transactional memory |
JP2012018449A (ja) * | 2010-07-06 | 2012-01-26 | Fujitsu Ltd | スナップショット取得処理プログラム、スナップショット取得処理方法、スナップショット・パティシパント・コンピュータ、スナップショット・コーディネータ・コンピュータ |
US9152630B1 (en) * | 2011-10-26 | 2015-10-06 | Intuit Inc. | Modified database transaction scopes during software testing |
CN109241034A (zh) * | 2018-08-23 | 2019-01-18 | 深圳市科陆电子科技股份有限公司 | 一种配置储能电站管理系统的方法、装置及储能电站 |
CN109783205A (zh) * | 2019-01-03 | 2019-05-21 | 山东浪潮通软信息科技有限公司 | 一种基于事件补偿机制的数据最终一致性办法 |
US11556431B2 (en) * | 2021-04-21 | 2023-01-17 | Sap Se | Rollback recovery with data lineage capture for data pipelines |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095421A (en) * | 1989-08-17 | 1992-03-10 | International Business Machines Corporation | Transaction processing facility within an operating system environment |
US5363121A (en) * | 1990-06-29 | 1994-11-08 | International Business Machines Corporation | Multiple protocol communication interface for distributed transaction processing |
JPH0797782B2 (ja) * | 1991-09-18 | 1995-10-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 異種トランザクションの調整方法 |
EP0613083B1 (en) | 1993-02-25 | 2002-01-23 | Sun Microsystems, Inc. | Transaction management in object oriented systems |
JP2557192B2 (ja) * | 1993-03-15 | 1996-11-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法 |
GB2316777B (en) * | 1996-08-31 | 2000-10-04 | Ibm | Operating a transaction manager with a non-compliant resource manager |
US6094688A (en) | 1997-01-08 | 2000-07-25 | Crossworlds Software, Inc. | Modular application collaboration including filtering at the source and proxy execution of compensating transactions to conserve server resources |
US6526416B1 (en) * | 1998-06-30 | 2003-02-25 | Microsoft Corporation | Compensating resource managers |
-
2003
- 2003-08-13 CN CN03821621.3A patent/CN1682191A/zh active Pending
- 2003-08-13 WO PCT/EP2003/010082 patent/WO2004025461A2/en not_active Application Discontinuation
- 2003-08-13 KR KR1020057004072A patent/KR20050035301A/ko not_active Application Discontinuation
- 2003-08-13 JP JP2004535486A patent/JP2005538460A/ja active Pending
- 2003-08-13 CA CA2498064A patent/CA2498064C/en not_active Expired - Fee Related
- 2003-08-13 EP EP03795009A patent/EP1540477A2/en not_active Withdrawn
- 2003-08-13 US US10/527,035 patent/US7477953B2/en not_active Expired - Fee Related
- 2003-08-13 AU AU2003264291A patent/AU2003264291A1/en not_active Abandoned
- 2003-09-09 TW TW092124895A patent/TWI264670B/zh not_active IP Right Cessation
-
2009
- 2009-01-09 US US12/351,067 patent/US8676635B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306197A (zh) * | 2011-09-22 | 2012-01-04 | 用友软件股份有限公司 | 保证跨数据源操作结果一致性的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1540477A2 (en) | 2005-06-15 |
TW200411543A (en) | 2004-07-01 |
AU2003264291A1 (en) | 2004-04-30 |
WO2004025461A2 (en) | 2004-03-25 |
CN1682191A (zh) | 2005-10-12 |
AU2003264291A8 (en) | 2004-04-30 |
TWI264670B (en) | 2006-10-21 |
US20090119146A1 (en) | 2009-05-07 |
WO2004025461A3 (en) | 2004-10-14 |
CA2498064C (en) | 2010-04-13 |
CA2498064A1 (en) | 2004-03-25 |
US7477953B2 (en) | 2009-01-13 |
KR20050035301A (ko) | 2005-04-15 |
US20060074495A1 (en) | 2006-04-06 |
US8676635B2 (en) | 2014-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8676635B2 (en) | Method and system for managing transactions | |
US5659682A (en) | Scheme to determine completion of directory operations for server recovery | |
US7178050B2 (en) | System for highly available transaction recovery for transaction processing systems | |
US10884879B2 (en) | Method and system for computing a quorum for two node non-shared storage converged architecture | |
JP3268534B2 (ja) | 保護された資源の同期点管理を行うコンピュータ・システム | |
JP3759410B2 (ja) | クラスタ化された計算処理環境において実行する分散ネットワークアプリケーションの管理用リクエストを処理するための方法および装置 | |
US5095421A (en) | Transaction processing facility within an operating system environment | |
CN107070919B (zh) | 用于数据库事务的幂等性 | |
US6163855A (en) | Method and system for replicated and consistent modifications in a server cluster | |
US7620842B2 (en) | Method for highly available transaction recovery for transaction processing systems | |
US20020035590A1 (en) | Guaranteed end-to-end transaction execution in a client/server environment | |
CN100435101C (zh) | 在软件环境中用于保持资源完整性的装置和方法 | |
US6266698B1 (en) | Logging of transaction branch information for implementing presumed nothing and other protocols | |
US7480816B1 (en) | Failure chain detection and recovery in a group of cooperating systems | |
JP3293839B2 (ja) | 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム | |
US8504873B1 (en) | Method and apparatus for providing in-memory checkpoint services within a distributed transaction | |
GB2311391A (en) | Restart and recovery of OMG compliant transaction systems | |
US8006248B2 (en) | Method, apparatus and computer program for facilitating communication between a client application and a server application | |
US7552072B2 (en) | Compensation of data item processing | |
US6330686B1 (en) | Handling protected conversation messages across IMS restart in shared queues environment | |
US7284018B1 (en) | Logless transaction coordination | |
US8135686B2 (en) | Computer program, computer, and messaging system for returning a data item to a requestor | |
US8127175B2 (en) | High availability of JCA inflowed transactions | |
EP1197856A2 (en) | Guaranteed end-to-end transaction execution in a client/server environment | |
WO2003073281A1 (en) | Highly available transaction recovery for transaction processing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060807 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090203 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090206 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090728 |