JPH06301581A - 過ち許容トランザクション指向データ処理 - Google Patents
過ち許容トランザクション指向データ処理Info
- Publication number
- JPH06301581A JPH06301581A JP6032358A JP3235894A JPH06301581A JP H06301581 A JPH06301581 A JP H06301581A JP 6032358 A JP6032358 A JP 6032358A JP 3235894 A JP3235894 A JP 3235894A JP H06301581 A JPH06301581 A JP H06301581A
- Authority
- JP
- Japan
- Prior art keywords
- application
- message
- transaction
- backout
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/87—Monitoring of transactions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【構成】 トランザクション処理システムにおいて、ト
ランザクションの処理中のエラー状態の検出後に適用業
務の要求で、資源更新処理をバックアウトすることは周
知である。エラー状態が再現する可能性が高い場合に
は、操作要求を前とまったく同じ状態で適用業務に提示
することは望ましくない。操作要求またはデータ・パケ
ットにマークをつけて、適用業務の要求したバックアウ
トの結果から除外するトランザクション指向データ処理
システム及びトランザクション指向データ処理方法を提
供する。
ランザクションの処理中のエラー状態の検出後に適用業
務の要求で、資源更新処理をバックアウトすることは周
知である。エラー状態が再現する可能性が高い場合に
は、操作要求を前とまったく同じ状態で適用業務に提示
することは望ましくない。操作要求またはデータ・パケ
ットにマークをつけて、適用業務の要求したバックアウ
トの結果から除外するトランザクション指向データ処理
システム及びトランザクション指向データ処理方法を提
供する。
Description
【0001】
【産業上の利用分野】本発明は過ち許容トランザクショ
ン指向データ処理に関し、詳細にいえば、処理方法及び
トランザクション指向メッセージ・システム、ファイル
・システムまたはデータベース・システムなどの適用業
務の検出したエラー状態を適切に処理するトランザクシ
ョン指向データ処理システムに関する。
ン指向データ処理に関し、詳細にいえば、処理方法及び
トランザクション指向メッセージ・システム、ファイル
・システムまたはデータベース・システムなどの適用業
務の検出したエラー状態を適切に処理するトランザクシ
ョン指向データ処理システムに関する。
【0002】
【従来の技術】多くのビジネス機能をトランザクション
処理によって、適用業務指向コンピュータ・プログラム
として実施することができる。商用適用業務は一般に、
航空会社の予約システムにおける座席予約や、自動預金
支払機(ATM)における預金引き出しなどの多くの類
似した事項を処理する。これらの事項の1つの処理(す
なわち、適用業務内の論理物を構成する、処理の離散し
た単位の実行)がトランザクションである。
処理によって、適用業務指向コンピュータ・プログラム
として実施することができる。商用適用業務は一般に、
航空会社の予約システムにおける座席予約や、自動預金
支払機(ATM)における預金引き出しなどの多くの類
似した事項を処理する。これらの事項の1つの処理(す
なわち、適用業務内の論理物を構成する、処理の離散し
た単位の実行)がトランザクションである。
【0003】ほとんどの適用業務指向プログラムは何ら
かの形態のコンピュータ・システム機構(プロセッサ、
データベース、ファイル、待ち行列、入出力装置、他の
適用業務などの機構)にアクセスする必要がある。これ
らの機構は一般に資源といわれている。これらの資源を
制御するシステム・ソフトウェアは一般に資源マネージ
ャといわれている。共通した処理要件は調和した一連の
変更を2つ以上の資源に行い、変更のすべてが実施さ
れ、資源が異なる一貫した状態に移動するか、あるいは
これらのいずれもが生じないかのいずれかとなるように
できることである。ユーザはこれら2つの考えられる結
果のうちいずれが実際の結果であるかを知っている必要
がある。同一のシステムに保持されているある口座から
他の口座への送金を遂行する財務適用業務の例において
は、単一のプロセッサによって遂行される2つの基本操
作、すなわち、一方の口座の借方勘定と他の口座の貸方
勘定がある。通常、操作は両方とも正常に行われるが、
一方が障害を起こすと、他方も実施できなくなるはずで
ある。すなわち、データの保全性が失われる。障害は作
動上の理由、たとえば、システムの一部が一次的に利用
できなくなったことによるものである場合がある。ある
いは、送金側の口座の資金が不十分なためであることが
あり、この場合、適切な応答がトランザクションの要求
者に返されなければならない。
かの形態のコンピュータ・システム機構(プロセッサ、
データベース、ファイル、待ち行列、入出力装置、他の
適用業務などの機構)にアクセスする必要がある。これ
らの機構は一般に資源といわれている。これらの資源を
制御するシステム・ソフトウェアは一般に資源マネージ
ャといわれている。共通した処理要件は調和した一連の
変更を2つ以上の資源に行い、変更のすべてが実施さ
れ、資源が異なる一貫した状態に移動するか、あるいは
これらのいずれもが生じないかのいずれかとなるように
できることである。ユーザはこれら2つの考えられる結
果のうちいずれが実際の結果であるかを知っている必要
がある。同一のシステムに保持されているある口座から
他の口座への送金を遂行する財務適用業務の例において
は、単一のプロセッサによって遂行される2つの基本操
作、すなわち、一方の口座の借方勘定と他の口座の貸方
勘定がある。通常、操作は両方とも正常に行われるが、
一方が障害を起こすと、他方も実施できなくなるはずで
ある。すなわち、データの保全性が失われる。障害は作
動上の理由、たとえば、システムの一部が一次的に利用
できなくなったことによるものである場合がある。ある
いは、送金側の口座の資金が不十分なためであることが
あり、この場合、適切な応答がトランザクションの要求
者に返されなければならない。
【0004】回復可能な資源の一貫した状態を他の一貫
した状態へ変換する(必ずしも、すべての中間点におけ
る一貫性を保存する必要なしに)関連操作のシーケンス
は「作業単位」といわれる。トランザクション処理は共
用データにアクセスし、更新する離散した作業単位を管
理することである。全体として達成されるか、あるいは
まったく達成されないトランザクションの特徴を、「ア
トム性」と呼ぶ。データの保全性を維持するために重要
なトランザクション処理のもう1つの特徴は一貫性であ
る。すなわち、トランザクションの結果は所与のセット
の条件に対して再現可能で、かつ予測可能でなければな
らず、またその目標に正常に到達するトランザクション
は、定義上、適法な結果だけを含んでいなければならな
い。
した状態へ変換する(必ずしも、すべての中間点におけ
る一貫性を保存する必要なしに)関連操作のシーケンス
は「作業単位」といわれる。トランザクション処理は共
用データにアクセスし、更新する離散した作業単位を管
理することである。全体として達成されるか、あるいは
まったく達成されないトランザクションの特徴を、「ア
トム性」と呼ぶ。データの保全性を維持するために重要
なトランザクション処理のもう1つの特徴は一貫性であ
る。すなわち、トランザクションの結果は所与のセット
の条件に対して再現可能で、かつ予測可能でなければな
らず、またその目標に正常に到達するトランザクション
は、定義上、適法な結果だけを含んでいなければならな
い。
【0005】トランザクションのアトム性を確保する周
知の方法は、更新を正常に完了できることを確認してか
らだけ、トランザクション内のファイル更新の実行を開
始することである。ATMの預金引出しの例では、トラ
ンザクションでアクセスされるレコードの各々で充分な
資金が得られることが確認されるまで、ATMの現金残
高あるいは顧客の口座残高のいずれのレコードに対する
更新も行われない。この解決策の見かけの単純さにはか
かわりなく、資源の更新を行う前に検査が常に遂行でき
るとは限らない。トランザクションが正常に完了するか
否かに関する事前テストが処理に受け入れることのでき
ない遅延を必然的に引き起こす多くの状況がある。たと
えば、特に、テストの開始とそれに引き続いた更新の間
に資源をロックしなければならない(すなわち、他の適
用業務による更新アクセスを阻止しなければならない)
ため、一時未決にしておけるトランザクション開始要求
が1つだけであるファイル・システムの場合である。
知の方法は、更新を正常に完了できることを確認してか
らだけ、トランザクション内のファイル更新の実行を開
始することである。ATMの預金引出しの例では、トラ
ンザクションでアクセスされるレコードの各々で充分な
資金が得られることが確認されるまで、ATMの現金残
高あるいは顧客の口座残高のいずれのレコードに対する
更新も行われない。この解決策の見かけの単純さにはか
かわりなく、資源の更新を行う前に検査が常に遂行でき
るとは限らない。トランザクションが正常に完了するか
否かに関する事前テストが処理に受け入れることのでき
ない遅延を必然的に引き起こす多くの状況がある。たと
えば、特に、テストの開始とそれに引き続いた更新の間
に資源をロックしなければならない(すなわち、他の適
用業務による更新アクセスを阻止しなければならない)
ため、一時未決にしておけるトランザクション開始要求
が1つだけであるファイル・システムの場合である。
【0006】過ち許容トランザクション処理システムに
提供される他の解決策は、トランザクションが正常に完
了できるか否かに関する事前チェックを行わずに、資源
更新を行うが、トランザクションが正常に完了した場合
にのみ、資源の更新を永続的なものとし、他の適用業務
が利用できるようにするものである。適用業務はトラン
ザクションの正常な完了時にコミット操作を行い、すべ
ての更新を確認する。トランザクションが正常に完了し
なかった場合には、部分的な実行中に資源に対して行わ
れたすべての変更が除去される。トランザクションはバ
ックアウト(同義的に、ロールバックともいう)された
といわれ、変更が当初行われた時間的な順序と逆に変更
を除去することによって、トランザクションを開始する
前に存在していた一貫した状態に資源を復元する。この
逆方向回復機能は、事前テストを行わずに資源更新を適
用するシステムにおける変更のコミットに対する制御の
必須部分である。
提供される他の解決策は、トランザクションが正常に完
了できるか否かに関する事前チェックを行わずに、資源
更新を行うが、トランザクションが正常に完了した場合
にのみ、資源の更新を永続的なものとし、他の適用業務
が利用できるようにするものである。適用業務はトラン
ザクションの正常な完了時にコミット操作を行い、すべ
ての更新を確認する。トランザクションが正常に完了し
なかった場合には、部分的な実行中に資源に対して行わ
れたすべての変更が除去される。トランザクションはバ
ックアウト(同義的に、ロールバックともいう)された
といわれ、変更が当初行われた時間的な順序と逆に変更
を除去することによって、トランザクションを開始する
前に存在していた一貫した状態に資源を復元する。この
逆方向回復機能は、事前テストを行わずに資源更新を適
用するシステムにおける変更のコミットに対する制御の
必須部分である。
【0007】コミット手順は資源マネージャが1つだけ
関与している場合には、単一フェーズの手順である。ト
ランザクション・マネージャはトランザクションによっ
て行われたすべての変更をコミットするよう、資源マネ
ージャに伝えるだけである。2つ以上のデータ資源マネ
ージャが単一のトランザクションに関与している場合に
は、トランザクション処理システムはより複雑なコミッ
トメント管理プロセス、すなわちシステムが各資源マネ
ージャに、コミットの準備を行うことを要求し、各資源
マネージャが準備完了を連絡した場合には、各々にコミ
ットを要求する2フェーズ・コミット手順を必要とす
る。コミットできないといずれかのマネージャが伝えた
場合、トランザクション処理システムはこれらの各々に
バックアウトをするように要求する。
関与している場合には、単一フェーズの手順である。ト
ランザクション・マネージャはトランザクションによっ
て行われたすべての変更をコミットするよう、資源マネ
ージャに伝えるだけである。2つ以上のデータ資源マネ
ージャが単一のトランザクションに関与している場合に
は、トランザクション処理システムはより複雑なコミッ
トメント管理プロセス、すなわちシステムが各資源マネ
ージャに、コミットの準備を行うことを要求し、各資源
マネージャが準備完了を連絡した場合には、各々にコミ
ットを要求する2フェーズ・コミット手順を必要とす
る。コミットできないといずれかのマネージャが伝えた
場合、トランザクション処理システムはこれらの各々に
バックアウトをするように要求する。
【0008】いくつかの現在稼動しているトランザクシ
ョンが単一のデータ資源マネージャによって制御されて
いる異なるレコードを更新できることがしばしばある。
データ資源マネージャは共用の効果的な手段をサポート
しなければならず、同時に、2つのトランザクションが
同一のレコードを同時に更新するのを防止しなければな
らない(トランザクションがレコードの更新を終了して
からでなければ、他のトランザクションがこのレコード
を更新することはできない)。このような並行性管理を
達成するためにもっとも一般に使用されている方法はロ
ックであって、この場合、所与の資源(たとえば、メッ
セージまたはファイル内のレコード)が一時に1つのト
ランザクション・インスタンスに予約される。資源が更
新される前に、コミット中ロックがその資源について取
得される。作業単位が完了するまで、他のトランザクシ
ョンがこのロックされた資源にアクセスすることはでき
ない。一般に、コミット中ロックは作業単位の終わり
に、コミットまたはバックアウト操作としてリリースさ
れる。
ョンが単一のデータ資源マネージャによって制御されて
いる異なるレコードを更新できることがしばしばある。
データ資源マネージャは共用の効果的な手段をサポート
しなければならず、同時に、2つのトランザクションが
同一のレコードを同時に更新するのを防止しなければな
らない(トランザクションがレコードの更新を終了して
からでなければ、他のトランザクションがこのレコード
を更新することはできない)。このような並行性管理を
達成するためにもっとも一般に使用されている方法はロ
ックであって、この場合、所与の資源(たとえば、メッ
セージまたはファイル内のレコード)が一時に1つのト
ランザクション・インスタンスに予約される。資源が更
新される前に、コミット中ロックがその資源について取
得される。作業単位が完了するまで、他のトランザクシ
ョンがこのロックされた資源にアクセスすることはでき
ない。一般に、コミット中ロックは作業単位の終わり
に、コミットまたはバックアウト操作としてリリースさ
れる。
【0009】ロック・サービスは割振り中ロックないし
「長期」ロックももたらす。長期ロックは明示的にリリ
ースされるか、リクエスタが終了するまで保持され、複
数の作業単位にわたることができる。トランザクション
・インスタンスはコミット中ロック及び割振り中ロック
を同一のロック名で保持することができる。このような
状況において、このロックが他のトランザクションに利
用できるようになるのは、保持側がロックのコミット中
及び割振り中両方での使用をリリースした場合だけであ
る。
「長期」ロックももたらす。長期ロックは明示的にリリ
ースされるか、リクエスタが終了するまで保持され、複
数の作業単位にわたることができる。トランザクション
・インスタンスはコミット中ロック及び割振り中ロック
を同一のロック名で保持することができる。このような
状況において、このロックが他のトランザクションに利
用できるようになるのは、保持側がロックのコミット中
及び割振り中両方での使用をリリースした場合だけであ
る。
【0010】ロックされる一連の資源が、階層に編成さ
れていることが知られている。階層の各レベルにはノー
ド・タイプが与えられ、これはそのタイプのすべてのノ
ード・インスタンスに対する総称である。ロック階層の
サンプルは次のように表すことができる。
れていることが知られている。階層の各レベルにはノー
ド・タイプが与えられ、これはそのタイプのすべてのノ
ード・インスタンスに対する総称である。ロック階層の
サンプルは次のように表すことができる。
【0011】データベースはその直接の子孫としてエリ
ア・ノードを有しており、各エリア・ノードはその直接
の子孫としてファイル・ノードを有しており、各ファイ
ルはその直接の子孫としてレコード・ノードを有してい
る。各ノードは固有の親を有している。
ア・ノードを有しており、各エリア・ノードはその直接
の子孫としてファイル・ノードを有しており、各ファイ
ルはその直接の子孫としてレコード・ノードを有してい
る。各ノードは固有の親を有している。
【0012】階層の各ノードはロックできる。特定のノ
ードに対する排他(X)アクセスが要求され、要求が認
められた場合、リクエスタはそのノード、及び暗黙でそ
の子孫の各々に対する排他アクセスを有する。特定のノ
ードに対する共有(S)アクセスの要求が行われた場
合、要求の許可はリクエスタに、そのノード、及び必然
的にその子孫の各々に対する共用アクセスを与える。そ
れ故、これら2つのアクセス・モードは要求ノードをル
ートとする階層のサブツリーをロックする。
ードに対する排他(X)アクセスが要求され、要求が認
められた場合、リクエスタはそのノード、及び暗黙でそ
の子孫の各々に対する排他アクセスを有する。特定のノ
ードに対する共有(S)アクセスの要求が行われた場
合、要求の許可はリクエスタに、そのノード、及び必然
的にその子孫の各々に対する共用アクセスを与える。そ
れ故、これら2つのアクセス・モードは要求ノードをル
ートとする階層のサブツリーをロックする。
【0013】共用モードまたは排他モードの第1のノー
ドをルートとするサブツリーをロックするためには、第
1のノード及びその子孫を非互換モードで必然的にロッ
クする第1のノードの親元のロックを防止することが重
要である。このため、インテンション・アクセス(I)
モードが導入された。インテンション・モードは共用モ
ードまたは排他モードでロックするノードのすべての親
元をロックするために使用される。ISまたはIXロッ
クはロックが低いレベルで行われており、これによって
これらの必然的または明示的な排他または共用ロックが
親元に必要なことを通知する。
ドをルートとするサブツリーをロックするためには、第
1のノード及びその子孫を非互換モードで必然的にロッ
クする第1のノードの親元のロックを防止することが重
要である。このため、インテンション・アクセス(I)
モードが導入された。インテンション・モードは共用モ
ードまたは排他モードでロックするノードのすべての親
元をロックするために使用される。ISまたはIXロッ
クはロックが低いレベルで行われており、これによって
これらの必然的または明示的な排他または共用ロックが
親元に必要なことを通知する。
【0014】第1のノードをルートとするサブツリーを
排他(X)モードでロックするプロトコルは、まず第1
のノードのすべての親元をインテンション排他(IX)
モードでロックし、次いで第1のノードを排他(X)モ
ードでロックする。たとえば、待ち行列が「ページ」と
いうディスク・ブロックに編成されたメッセージを含ん
でいるメッセージ待ち行列化プログラム間連絡システム
において、特定のメッセージを排他的に(X)ロックす
るためには、まず待ち行列でインテンション排他(I
X)ロックを取得し、次いでメッセージを含んでいるペ
ージでIXロックを取得し、その後メッセージ自体に排
他(X)ロックを取得しなければならない。
排他(X)モードでロックするプロトコルは、まず第1
のノードのすべての親元をインテンション排他(IX)
モードでロックし、次いで第1のノードを排他(X)モ
ードでロックする。たとえば、待ち行列が「ページ」と
いうディスク・ブロックに編成されたメッセージを含ん
でいるメッセージ待ち行列化プログラム間連絡システム
において、特定のメッセージを排他的に(X)ロックす
るためには、まず待ち行列でインテンション排他(I
X)ロックを取得し、次いでメッセージを含んでいるペ
ージでIXロックを取得し、その後メッセージ自体に排
他(X)ロックを取得しなければならない。
【0015】すべてのメッセージング及び待ち行列化シ
ステムがトランザクション・ベースでなくとも、メッセ
ージ待ち行列化は、トランザクションが正常に完了でき
ない場合に、資源をバックアウトする機能が与えられる
プログラム間連絡の方法がある。メッセージ待ち行列化
はプログラムが適用業務固有のデータの送受信を、これ
らの間に直接接続を確立することなく行うことを可能と
する。1つまたは複数の適用業務に対して意味を有して
いるビット及びバイトのストリングであるメッセージが
記憶域内の待ち行列におかれるので、目標適用業務はこ
れらをメッセージ待ち行列から取り出し、目標適用業務
が選択したときに(送信適用業務が選択したときにでは
なく)、これらのメッセージを処理する。この場合、プ
ログラムは互いに独立して、異なる速度及び時間で作動
することができる。トランザクションが正常に完了でき
るのか否かのメッセージの送信前のチェックに、送信適
用業務が拘束されることがなく、また同様に、目標適用
業務が事前のチェックなしに待ち行列からメッセージを
取り出すことができるので、バックアウト機能がしばし
ば必要となる(もちろん、メッセージがシステムの資源
に対して何も変更を行わない単なる照会である場合を除
く)。
ステムがトランザクション・ベースでなくとも、メッセ
ージ待ち行列化は、トランザクションが正常に完了でき
ない場合に、資源をバックアウトする機能が与えられる
プログラム間連絡の方法がある。メッセージ待ち行列化
はプログラムが適用業務固有のデータの送受信を、これ
らの間に直接接続を確立することなく行うことを可能と
する。1つまたは複数の適用業務に対して意味を有して
いるビット及びバイトのストリングであるメッセージが
記憶域内の待ち行列におかれるので、目標適用業務はこ
れらをメッセージ待ち行列から取り出し、目標適用業務
が選択したときに(送信適用業務が選択したときにでは
なく)、これらのメッセージを処理する。この場合、プ
ログラムは互いに独立して、異なる速度及び時間で作動
することができる。トランザクションが正常に完了でき
るのか否かのメッセージの送信前のチェックに、送信適
用業務が拘束されることがなく、また同様に、目標適用
業務が事前のチェックなしに待ち行列からメッセージを
取り出すことができるので、バックアウト機能がしばし
ば必要となる(もちろん、メッセージがシステムの資源
に対して何も変更を行わない単なる照会である場合を除
く)。
【0016】待ち行列からメッセージを取り出す操作が
必然的に、適用業務によって実行される作業単位の一部
であるトランザクション・ベースのメッセージ・システ
ムにおいては、資源の更新のバックアウトを必要とする
適用業務が検出したエラー状態を完全に取り扱える適用
業務を作成するのが困難な場合がある。即ち、待ち行列
からトランザクションを開始したメッセージを獲得する
当初操作(メッセージ取出操作)を取り扱うことが困難
となる。ここでいう「エラー状態」とは正常に完了しな
い作業単位に対する適用業務が検出した理由を含むもの
である。ATM現金引出しの例では、「エラー状態」に
関連したデータはユーザが正しくない暗証番号(PI
N)を入力したことや、更新する口座の1つに充分な資
金がないことである。
必然的に、適用業務によって実行される作業単位の一部
であるトランザクション・ベースのメッセージ・システ
ムにおいては、資源の更新のバックアウトを必要とする
適用業務が検出したエラー状態を完全に取り扱える適用
業務を作成するのが困難な場合がある。即ち、待ち行列
からトランザクションを開始したメッセージを獲得する
当初操作(メッセージ取出操作)を取り扱うことが困難
となる。ここでいう「エラー状態」とは正常に完了しな
い作業単位に対する適用業務が検出した理由を含むもの
である。ATM現金引出しの例では、「エラー状態」に
関連したデータはユーザが正しくない暗証番号(PI
N)を入力したことや、更新する口座の1つに充分な資
金がないことである。
【0017】
【発明が解決しようとする課題】現金引出しに関するA
TMトランザクションの例を考えると、メッセージング
及び待ち行列化(ATMで顧客が行った現金引出し要
求、ならびにその後にATMがトランザクション処理要
求をサーバの待ち行列にいれたことに引き続いての)を
使用してサーバ・プロセッサによって実行されるトラン
ザクションのステップは次のようになる。
TMトランザクションの例を考えると、メッセージング
及び待ち行列化(ATMで顧客が行った現金引出し要
求、ならびにその後にATMがトランザクション処理要
求をサーバの待ち行列にいれたことに引き続いての)を
使用してサーバ・プロセッサによって実行されるトラン
ザクションのステップは次のようになる。
【0018】1.ATMからのメッセージ取出(すなわ
ち、ATMが待ち行列にいれたメッセージを収集する) 2.ATMの現金残高レコードの更新(減額) 3.顧客の現金残高レコードの更新(減額) 4.現金の払い出しをATMに命令するメッセージ書出
(すなわち、ATMの入力メッセージ待ち行列にメッセ
ージを入れる) 5.ATMからの入力メッセージをサーバの待ち行列か
ら削除し、ファイルの更新を永続化し、出力メッセージ
をATMのメッセージ待ち行列で利用可能とするコミッ
ト
ち、ATMが待ち行列にいれたメッセージを収集する) 2.ATMの現金残高レコードの更新(減額) 3.顧客の現金残高レコードの更新(減額) 4.現金の払い出しをATMに命令するメッセージ書出
(すなわち、ATMの入力メッセージ待ち行列にメッセ
ージを入れる) 5.ATMからの入力メッセージをサーバの待ち行列か
ら削除し、ファイルの更新を永続化し、出力メッセージ
をATMのメッセージ待ち行列で利用可能とするコミッ
ト
【0019】最初のファイル更新ステップ(前記2)に
よって、ATMの現金残高がマイナスになるか、あるい
は2番目のファイル更新ステップ(前記3)によって、
顧客の口座残高がマイナスとなる場合には、トランザク
ションは正常に完了できなくなり、現金は払い出されな
い。作業単位内で他のファイル更新を行った後、このよ
うなデータに関連した問題を検出した適用業務は、バッ
クアウトを出して、ファイルの更新がコミットされる前
にこれらを取り消す必要がある。しかしながら、周知の
バックアウト操作は最初のメッセージ取出ステップも取
り消し、メッセージを待ち行列に戻してしまう。
よって、ATMの現金残高がマイナスになるか、あるい
は2番目のファイル更新ステップ(前記3)によって、
顧客の口座残高がマイナスとなる場合には、トランザク
ションは正常に完了できなくなり、現金は払い出されな
い。作業単位内で他のファイル更新を行った後、このよ
うなデータに関連した問題を検出した適用業務は、バッ
クアウトを出して、ファイルの更新がコミットされる前
にこれらを取り消す必要がある。しかしながら、周知の
バックアウト操作は最初のメッセージ取出ステップも取
り消し、メッセージを待ち行列に戻してしまう。
【0020】トランザクションがシステム障害や適用業
務の異常終了などのその他の理由で取り消された場合に
は、メッセージ全体を適用業務に対して表示される待ち
行列に対して戻す必要があるため、これは問題とならな
い。しかしながら、取消しがエラー状態の検出後に適用
業務によって要求された場合、同一の入力メッセージ及
びファイル内容によってこのトランザクションを実行し
ようとする以降の各試みが、同じ理由、すなわち、資金
不足という適用業務が発生するバックアウトをもたらす
ことはほとんど(少なくとも)なく、したがって、デー
タに関連した問題は解決されなかった。
務の異常終了などのその他の理由で取り消された場合に
は、メッセージ全体を適用業務に対して表示される待ち
行列に対して戻す必要があるため、これは問題とならな
い。しかしながら、取消しがエラー状態の検出後に適用
業務によって要求された場合、同一の入力メッセージ及
びファイル内容によってこのトランザクションを実行し
ようとする以降の各試みが、同じ理由、すなわち、資金
不足という適用業務が発生するバックアウトをもたらす
ことはほとんど(少なくとも)なく、したがって、デー
タに関連した問題は解決されなかった。
【0021】この問題の解決策はトランザクションをバ
ックアウトし、次いで適用業務に対してメッセージ取出
を再度出して、エラーをトランザクション要求のイニシ
エータに報告するなどの異なる処置を行うことである。
この技法はReuterによって「Principles of Transactio
n-Oriented Recovery」、Computer Science、Rj 4214(4
6292)、1984年の第50ページ図1に示されている。こ
の解決策は(必ずしもすべての場合ではないが)、この
トランザクションの複数のインスタンスが活動状態であ
り、全部が同一の待ち行列からメッセージを取得する場
合にはうまくいかない。サーバ・インスタンスがバック
アウトを出すと、入力メッセージがロック解除され、バ
ックアウトを出したトランザクションがトランザクショ
ン障害を引き起こしたメッセージに対して再度メッセー
ジ取出を出す前に、メッセージが他のサーバ・インスタ
ンスによって待ち行列から取り出される。
ックアウトし、次いで適用業務に対してメッセージ取出
を再度出して、エラーをトランザクション要求のイニシ
エータに報告するなどの異なる処置を行うことである。
この技法はReuterによって「Principles of Transactio
n-Oriented Recovery」、Computer Science、Rj 4214(4
6292)、1984年の第50ページ図1に示されている。こ
の解決策は(必ずしもすべての場合ではないが)、この
トランザクションの複数のインスタンスが活動状態であ
り、全部が同一の待ち行列からメッセージを取得する場
合にはうまくいかない。サーバ・インスタンスがバック
アウトを出すと、入力メッセージがロック解除され、バ
ックアウトを出したトランザクションがトランザクショ
ン障害を引き起こしたメッセージに対して再度メッセー
ジ取出を出す前に、メッセージが他のサーバ・インスタ
ンスによって待ち行列から取り出される。
【0022】他の解決策がBernstein他によって、「Imp
lementing Recoverable Requests Using Queues」、Dig
ital Equipment Corporation、1990年の第117ページ
に記載されている。Bernsteinはメッセージが取り消さ
れた回数を記録するためのバックアウト・カウンタによ
ってメッセージ取出サービスを拡張している。トランザ
クションが何回か取消しを行うと、メッセージはエラー
待ち行列に移動し、異なる処理を受ける。Bernsteinの
手法では、トランザクションを何回も試み、その場合、
試みの1つがこの種の適用業務の検出したエラーを診断
するために必要なだけのものであることを必要とする。
また、この手法では、バックアウトの場合に格納されて
いるメッセージの状態を変更する(すなわち、メッセー
ジに関連したバックアウト・カウンタを変更する)ため
の特別の論理回路も必要である。バックアウト中に格納
されているデータの状態を変更することは、トランザク
ションのバックアウトが格納されているデータをトラン
ザクション前の状態に戻すこととは厳密にいって一貫し
たものではない。
lementing Recoverable Requests Using Queues」、Dig
ital Equipment Corporation、1990年の第117ページ
に記載されている。Bernsteinはメッセージが取り消さ
れた回数を記録するためのバックアウト・カウンタによ
ってメッセージ取出サービスを拡張している。トランザ
クションが何回か取消しを行うと、メッセージはエラー
待ち行列に移動し、異なる処理を受ける。Bernsteinの
手法では、トランザクションを何回も試み、その場合、
試みの1つがこの種の適用業務の検出したエラーを診断
するために必要なだけのものであることを必要とする。
また、この手法では、バックアウトの場合に格納されて
いるメッセージの状態を変更する(すなわち、メッセー
ジに関連したバックアウト・カウンタを変更する)ため
の特別の論理回路も必要である。バックアウト中に格納
されているデータの状態を変更することは、トランザク
ションのバックアウトが格納されているデータをトラン
ザクション前の状態に戻すこととは厳密にいって一貫し
たものではない。
【0023】資源の更新のバックアウトを必要とする適
用業務が検出したエラーの取扱い方法の問題に関して考
えられる解決策の1つは、トランザクションの開始前に
最初のメッセージ取出を実行するか、あるいは最初のメ
ッセージ取出の実行後にコミットを行うことであると提
案されている。メッセージが元の待ち行列に戻されるの
は防止されるが、この解決策はメッセージ取出操作をコ
ミットした後、ただし、応答メッセージを作成し、コミ
ットを完了する前に、システムまたは適用業務が障害を
起こした場合に、メッセージ取出をコミットするとメッ
セージが待ち行列から除去されるため、入力メッセージ
の喪失をもたらすことがあるので、受け入れられない。
用業務が検出したエラーの取扱い方法の問題に関して考
えられる解決策の1つは、トランザクションの開始前に
最初のメッセージ取出を実行するか、あるいは最初のメ
ッセージ取出の実行後にコミットを行うことであると提
案されている。メッセージが元の待ち行列に戻されるの
は防止されるが、この解決策はメッセージ取出操作をコ
ミットした後、ただし、応答メッセージを作成し、コミ
ットを完了する前に、システムまたは適用業務が障害を
起こした場合に、メッセージ取出をコミットするとメッ
セージが待ち行列から除去されるため、入力メッセージ
の喪失をもたらすことがあるので、受け入れられない。
【0024】提案されているもう1つの解決策は適用業
務が使用して、トランザクション内に「セーブポイン
ト」を確立し、トランザクション全体をバックアウトす
るのではなく、これらのセーブポイントをバックアウト
するサービスを提供することである。トランザクション
をバックアウトすることは、最新の要求後に行われた変
更だけを逆転して、セーブポイントを確立する。ATM
の現金引出しのための適用業務は、次のようになる。
務が使用して、トランザクション内に「セーブポイン
ト」を確立し、トランザクション全体をバックアウトす
るのではなく、これらのセーブポイントをバックアウト
するサービスを提供することである。トランザクション
をバックアウトすることは、最新の要求後に行われた変
更だけを逆転して、セーブポイントを確立する。ATM
の現金引出しのための適用業務は、次のようになる。
【0025】1.メッセージ取出 2.セーブポイントを確立する 3.ATMの現金残高を更新する 4.顧客の現金残高を更新する 5.現金の払い出しをATMに命令するメッセージ書出 6.更新が成功した場合(残高がマイナスにならな
い)、 *コミット 7.それ以外の場合には(1つまたは複数のファイル更
新によって、残高がマイナスになる) *セーブポイントへのバックアウト *エラー・メッセージの表示をATMに命令するメッセ
ージ書出 *コミット
い)、 *コミット 7.それ以外の場合には(1つまたは複数のファイル更
新によって、残高がマイナスになる) *セーブポイントへのバックアウト *エラー・メッセージの表示をATMに命令するメッセ
ージ書出 *コミット
【0026】この解決策はIBMの情報管理システム
(IMS)によって提供されるものであり、これはIB
Mから入手可能な「IMS/ESA General Information」、G
C26-4275に記載されている。中央トランザクション同期
点の概念を実施するには、すべての作業単位の参加プロ
グラムが前記処理を実施することが必要である。同期点
とはすべての参加プログラムの間の論理的一貫性の点で
あり、したがって、分離した単一の資源マネージャによ
って実施することができない。同期点の要件に適切に合
致しない適用業務もある。たとえば、適用業務の中に
は、データベースの更新によって各メッセージ取出操作
に追従し、次いでメッセージ取出を再度出し、他の更新
を行うなどというものがある。各メッセージ取出操作に
引き続いて他の適用業務を同期することは、関連するす
べての適用業務に受け入れることのできない処理の遅れ
をもたらす。
(IMS)によって提供されるものであり、これはIB
Mから入手可能な「IMS/ESA General Information」、G
C26-4275に記載されている。中央トランザクション同期
点の概念を実施するには、すべての作業単位の参加プロ
グラムが前記処理を実施することが必要である。同期点
とはすべての参加プログラムの間の論理的一貫性の点で
あり、したがって、分離した単一の資源マネージャによ
って実施することができない。同期点の要件に適切に合
致しない適用業務もある。たとえば、適用業務の中に
は、データベースの更新によって各メッセージ取出操作
に追従し、次いでメッセージ取出を再度出し、他の更新
を行うなどというものがある。各メッセージ取出操作に
引き続いて他の適用業務を同期することは、関連するす
べての適用業務に受け入れることのできない処理の遅れ
をもたらす。
【0027】それ故、資源更新のバックアウトを必要と
する適用業務が検出したエラー状態であって、ほとんど
再現することがないか、あるいは、トランザクションを
システム資源の同一初期状態及び同一の入力要求によっ
て再起動した場合にだけ再現するエラー状態を適切に処
理する過ち許容トランザクション処理が必要とされてい
る。
する適用業務が検出したエラー状態であって、ほとんど
再現することがないか、あるいは、トランザクションを
システム資源の同一初期状態及び同一の入力要求によっ
て再起動した場合にだけ再現するエラー状態を適切に処
理する過ち許容トランザクション処理が必要とされてい
る。
【0028】
【課題を解決するための手段】本発明は、トランザクシ
ョンが正常に完了した場合にのみ、第1の適用業務によ
って実行される資源更新が永続化され、他の適用業務に
利用できるようにされ、正常な完了前にエラー状態を発
見したときにバックアウトされる過ち許容トランザクシ
ョン指向データ処理方法及び過ち許容トランザクション
指向データ処理システムを提供するものであり、該方法
は前記第1の適用業務によって、第1の作業単位の実行
を開始し、エラー状態の検出後の適用業務が要求するバ
ックアウトの影響から前記第1の作業単位内の操作を排
除するかどうかを指定し、前記第1の適用業務によるエ
ラー状態の検出に応じて、前記第1の作業単位内で行わ
れる資源更新をバックアウトするとともに、排除された
操作が他の適用業務に利用できないようにし、前記の排
除された操作を含む作業単位を開始して、適用業務によ
る他の処理を可能とするステップからなる。
ョンが正常に完了した場合にのみ、第1の適用業務によ
って実行される資源更新が永続化され、他の適用業務に
利用できるようにされ、正常な完了前にエラー状態を発
見したときにバックアウトされる過ち許容トランザクシ
ョン指向データ処理方法及び過ち許容トランザクション
指向データ処理システムを提供するものであり、該方法
は前記第1の適用業務によって、第1の作業単位の実行
を開始し、エラー状態の検出後の適用業務が要求するバ
ックアウトの影響から前記第1の作業単位内の操作を排
除するかどうかを指定し、前記第1の適用業務によるエ
ラー状態の検出に応じて、前記第1の作業単位内で行わ
れる資源更新をバックアウトするとともに、排除された
操作が他の適用業務に利用できないようにし、前記の排
除された操作を含む作業単位を開始して、適用業務によ
る他の処理を可能とするステップからなる。
【0029】前記第1の適用業務によって排除された操
作について獲得される割振り中ロックによって、排除さ
れた操作が他の適用業務によって利用されることを防止
することが好ましい。本発明の好ましい実施形態におい
て、エラー状態を含んでいる作業単位はすべて、適用業
務によるエラー状態の検出後にバックアウトされるの
で、適用業務が要求したバックアウト後に開始される作
業単位は新しい作業単位となる。
作について獲得される割振り中ロックによって、排除さ
れた操作が他の適用業務によって利用されることを防止
することが好ましい。本発明の好ましい実施形態におい
て、エラー状態を含んでいる作業単位はすべて、適用業
務によるエラー状態の検出後にバックアウトされるの
で、適用業務が要求したバックアウト後に開始される作
業単位は新しい作業単位となる。
【0030】本発明の他の実施例において、適用業務が
資源更新のバックアウトを要求した場合に、指定された
排除された操作自体はバックアウトされない。第1の作
業単位内の排除された操作について獲得されたコミット
中ロックはリリースされず、したがって、操作は他の適
用業務に利用できなくされる。このような実施例におい
て、適用業務が要求したバックアウト後に開始された
(かつ、排除された操作を含んでいる)作業単位は、部
分的にバックアウトされた作業単位の再構成物ないし継
続物である。
資源更新のバックアウトを要求した場合に、指定された
排除された操作自体はバックアウトされない。第1の作
業単位内の排除された操作について獲得されたコミット
中ロックはリリースされず、したがって、操作は他の適
用業務に利用できなくされる。このような実施例におい
て、適用業務が要求したバックアウト後に開始された
(かつ、排除された操作を含んでいる)作業単位は、部
分的にバックアウトされた作業単位の再構成物ないし継
続物である。
【0031】新しい(あるいは、継続)作業単位は特定
の処置のコミットを含むように拘束されないことが好ま
しい。その代わり、この新しい作業単位でどのような処
置が行われるかは、特定の適用業務によって決定され
る。しかしながら、本発明による方法によって可能とな
る1つの重要な可能性は、正常に完了できないトランザ
クション処理要求が適用業務によって拒否され、要求が
同じ形態で適用業務に対して表示されないようになる。
の処置のコミットを含むように拘束されないことが好ま
しい。その代わり、この新しい作業単位でどのような処
置が行われるかは、特定の適用業務によって決定され
る。しかしながら、本発明による方法によって可能とな
る1つの重要な可能性は、正常に完了できないトランザ
クション処理要求が適用業務によって拒否され、要求が
同じ形態で適用業務に対して表示されないようになる。
【0032】操作が適用業務が要求したバックアウトの
影響をスキップするかどうかを指定するステップは、特
定の操作またはトランザクション要求をマークし、次い
で、マークした操作またはトランザクション要求のリス
トを格納することからなることが好ましい。資源更新の
適用業務が要求したバックアウトにおいて、このリスト
を検査して、作業単位がバックアウトの結果から排除さ
れる何らかの操作を含んでいるかどうかを決定する。い
ずれかの作業単位における複数の操作要求にマークし
て、適用業務が要求したバックアウトを回避できること
が好ましく(作業単位はいくつかのマークされていない
操作またはトランザクション要求を含むことも、あるい
は何も含まなくともかまわない)、また特にトランザク
ションが開始した要求にこのようにマークできることも
好ましい。各作業単位がマーク付きメッセージを1つだ
け含むことができれば、適用業務によっては充分である
が、常にそうとは限らない。作業単位の各種のマーク付
きメッセージによる異なるエラー状態の発生後に、異な
るシステム応答をもたらすことが望ましい。
影響をスキップするかどうかを指定するステップは、特
定の操作またはトランザクション要求をマークし、次い
で、マークした操作またはトランザクション要求のリス
トを格納することからなることが好ましい。資源更新の
適用業務が要求したバックアウトにおいて、このリスト
を検査して、作業単位がバックアウトの結果から排除さ
れる何らかの操作を含んでいるかどうかを決定する。い
ずれかの作業単位における複数の操作要求にマークし
て、適用業務が要求したバックアウトを回避できること
が好ましく(作業単位はいくつかのマークされていない
操作またはトランザクション要求を含むことも、あるい
は何も含まなくともかまわない)、また特にトランザク
ションが開始した要求にこのようにマークできることも
好ましい。各作業単位がマーク付きメッセージを1つだ
け含むことができれば、適用業務によっては充分である
が、常にそうとは限らない。作業単位の各種のマーク付
きメッセージによる異なるエラー状態の発生後に、異な
るシステム応答をもたらすことが望ましい。
【0033】マーク付き操作またはトランザクション要
求は適用業務が要求したバックアウト後にマークしない
ままにしておくことが望ましいので、その作業単位のバ
ックアウトの終了時に新しい(あるいは、継続)作業単
位の他の単位に対して、要求は異なる処理が行われる。
適用業務が2回目のスキップを行うために操作にマーク
をつけることができないように、新しい作業単位を拘束
することが望ましい。
求は適用業務が要求したバックアウト後にマークしない
ままにしておくことが望ましいので、その作業単位のバ
ックアウトの終了時に新しい(あるいは、継続)作業単
位の他の単位に対して、要求は異なる処理が行われる。
適用業務が2回目のスキップを行うために操作にマーク
をつけることができないように、新しい作業単位を拘束
することが望ましい。
【0034】本発明方法は、たとえば、システムの異常
終了あるいはシステムの再起動などの、エラー状態の適
用業務による検出以外の何らかの理由で、バックアウト
が生じた場合に、作業単位のいずれかの要素のバックア
ウトを防止するものではない。それ故、このようなその
他の理由で発生したバックアウト操作は作業単位全体を
取り消す。元の作業単位がその後コミットされた場合、
マーク付き操作またはトランザクションはマークされて
いないものと同じ態様でコミットされる。
終了あるいはシステムの再起動などの、エラー状態の適
用業務による検出以外の何らかの理由で、バックアウト
が生じた場合に、作業単位のいずれかの要素のバックア
ウトを防止するものではない。それ故、このようなその
他の理由で発生したバックアウト操作は作業単位全体を
取り消す。元の作業単位がその後コミットされた場合、
マーク付き操作またはトランザクションはマークされて
いないものと同じ態様でコミットされる。
【0035】マーク付き操作がトランザクションが開始
した操作(すなわち、待ち行列からメッセージを取り出
す要求)であってもかまわないトランザクション指向メ
ッセージング及び待ち行列化システムにおける本発明の
実施形態において、適用業務が要求したバックアウト後
に開始される作業単位のコミットが、何らかの以前にマ
ーク付き適用業務が開始した操作をコミットすることが
好ましい。したがって、エラー状態を発生したメッセー
ジはメッセージ待ち行列から除去され、前と同じように
処理される適用業務に再提示されるように拘束されるこ
とはない。待ち行列からのメッセージの削除に加えて、
新しい(あるいは、継続)作業単位はトランザクション
要求のイニシエータにエラーの発生を通知するステップ
を含むことができる。それ故、システムはエラー状態を
生じたマーク付き操作を含んでいるメッセージを効果的
に放棄し、かつ説明応答を生じることが可能となる。
した操作(すなわち、待ち行列からメッセージを取り出
す要求)であってもかまわないトランザクション指向メ
ッセージング及び待ち行列化システムにおける本発明の
実施形態において、適用業務が要求したバックアウト後
に開始される作業単位のコミットが、何らかの以前にマ
ーク付き適用業務が開始した操作をコミットすることが
好ましい。したがって、エラー状態を発生したメッセー
ジはメッセージ待ち行列から除去され、前と同じように
処理される適用業務に再提示されるように拘束されるこ
とはない。待ち行列からのメッセージの削除に加えて、
新しい(あるいは、継続)作業単位はトランザクション
要求のイニシエータにエラーの発生を通知するステップ
を含むことができる。それ故、システムはエラー状態を
生じたマーク付き操作を含んでいるメッセージを効果的
に放棄し、かつ説明応答を生じることが可能となる。
【0036】新しい(あるいは、継続)作業単位が監査
カウントの更新などのその他の活動も含んでいる(この
一例としては、ATMの顧客の口座の残高が少なかった
り、あるいは入力した暗証番号が正しくない場合にAT
Mの顧客の現金引出しの試みを記録し、適用業務がAT
Mにある回数の引出しの試みの後で顧客のATMにアク
セスしているカードを保持するよう命令することがあ
る)。適用業務が検出したエラー状態以外の何らかの理
由によって生じたバックアウトはあらゆるマークを無視
するので、マーク付きメッセージがマークなしのものと
同様に待ち行列に戻される。
カウントの更新などのその他の活動も含んでいる(この
一例としては、ATMの顧客の口座の残高が少なかった
り、あるいは入力した暗証番号が正しくない場合にAT
Mの顧客の現金引出しの試みを記録し、適用業務がAT
Mにある回数の引出しの試みの後で顧客のATMにアク
セスしているカードを保持するよう命令することがあ
る)。適用業務が検出したエラー状態以外の何らかの理
由によって生じたバックアウトはあらゆるマークを無視
するので、マーク付きメッセージがマークなしのものと
同様に待ち行列に戻される。
【0037】適用業務によっては、トランザクションが
開始した操作要求を出すことに関連したオプションにメ
ッセージのマーキングを行うことによって、本発明方法
を実施することができる。他の適用業務に対しては、ト
ランザクションを開始してから、作業単位内のいずれか
の操作にマークをつけて、バックアウトから除外すべき
かどうかを決定することが好ましい。
開始した操作要求を出すことに関連したオプションにメ
ッセージのマーキングを行うことによって、本発明方法
を実施することができる。他の適用業務に対しては、ト
ランザクションを開始してから、作業単位内のいずれか
の操作にマークをつけて、バックアウトから除外すべき
かどうかを決定することが好ましい。
【0038】本発明を添付図面を参照して、一例として
説明する。
説明する。
【0039】
【実施例】上述したように、メッセージ待ち行列化はプ
ログラムがその間に直接接続を確立することなく、適用
業務固有のデータをプログラムが送受信することを可能
とするプログラム間連絡の方法である。メッセージング
及び待ち行列化システムにおける本発明の特定の実施形
態を説明する前に、メッセージング及び待ち行列化を使
用したプログラム間連絡の一般的な方法を説明する。
ログラムがその間に直接接続を確立することなく、適用
業務固有のデータをプログラムが送受信することを可能
とするプログラム間連絡の方法である。メッセージング
及び待ち行列化システムにおける本発明の特定の実施形
態を説明する前に、メッセージング及び待ち行列化を使
用したプログラム間連絡の一般的な方法を説明する。
【0040】適用業務はメッセージを構成しているビッ
トのストリング及びバイトを、一連の「項目」を構成す
るものとみなしており、各項目は特定のデータ・タイプ
及び意味を有している。たとえば、最初の項目は口座番
号を含む4バイトの無符号2進整数、2番目の項目は顧
客名を含む20バイトの文字ストリングであってもかま
わない。このデータを適用業務データと呼ぶ。
トのストリング及びバイトを、一連の「項目」を構成す
るものとみなしており、各項目は特定のデータ・タイプ
及び意味を有している。たとえば、最初の項目は口座番
号を含む4バイトの無符号2進整数、2番目の項目は顧
客名を含む20バイトの文字ストリングであってもかま
わない。このデータを適用業務データと呼ぶ。
【0041】適用業務データに加えて、メッセージには
若干の補助データが関連づけられている。これはメッセ
ージの特性を規定する情報であり、メッセージをどのよ
うに処理すべきかを決定するために使用される。この情
報の中には、適用業務によって指定しなければならない
ものもある(たとえば、メッセージの宛先)。
若干の補助データが関連づけられている。これはメッセ
ージの特性を規定する情報であり、メッセージをどのよ
うに処理すべきかを決定するために使用される。この情
報の中には、適用業務によって指定しなければならない
ものもある(たとえば、メッセージの宛先)。
【0042】メッセージ待ち行列はメッセージが蓄積さ
れ、後でメッセージが取り出される名前のついた「オブ
ジェクト」である。各待ち行列は特定の待ち行列マネー
ジャに属しており、このマネージャはこの待ち行列の保
守に責任を負う。待ち行列はその名前によって識別され
る。待ち行列マネージャは多くの待ち行列を所有するこ
とができるが、各待ち行列はその待ち行列を所有する待
ち行列マネージャ・インスタンス内で独自のものである
名前を有している。メッセージ待ち行列は単なるスタッ
クではない。メッセージを待ち行列に付け加える場合、
これらは末尾に付け加えられ、メッセージを待ち行列か
ら除去する場合、これらは通常先頭から除去される。し
かしながら、メッセージが待ち行列内でならんでいる順
序以外の順序でメッセージを待ち行列から読み出すこと
を可能とする機構が存在している。たとえば、適用業務
は特定のメッセージに対する応答を処理することが必要
となることがある。この場合、適用業務はこのメッセー
ジが待ち行列の先頭のものでない場合であっても、これ
を待ち行列から検索することができる。
れ、後でメッセージが取り出される名前のついた「オブ
ジェクト」である。各待ち行列は特定の待ち行列マネー
ジャに属しており、このマネージャはこの待ち行列の保
守に責任を負う。待ち行列はその名前によって識別され
る。待ち行列マネージャは多くの待ち行列を所有するこ
とができるが、各待ち行列はその待ち行列を所有する待
ち行列マネージャ・インスタンス内で独自のものである
名前を有している。メッセージ待ち行列は単なるスタッ
クではない。メッセージを待ち行列に付け加える場合、
これらは末尾に付け加えられ、メッセージを待ち行列か
ら除去する場合、これらは通常先頭から除去される。し
かしながら、メッセージが待ち行列内でならんでいる順
序以外の順序でメッセージを待ち行列から読み出すこと
を可能とする機構が存在している。たとえば、適用業務
は特定のメッセージに対する応答を処理することが必要
となることがある。この場合、適用業務はこのメッセー
ジが待ち行列の先頭のものでない場合であっても、これ
を待ち行列から検索することができる。
【0043】メッセージ待ち行列の物理的表示は環境に
よって異なるが、主記憶域内のバッファ、ディスクまた
は他の永続記憶装置上のファイル、あるいはこれら両方
であることができる。しかしながら、メッセージ待ち行
列の物理的管理は完全に待ち行列マネージャ(適用業務
が使用するメッセージ待ち行列化機構を提供するシステ
ム・サービス)の責任であり、その詳細は適用業務に対
して明らかにはされない。適用業務はメッセージ待ち行
列を、メッセージが蓄積される単なる「ブラック・ボッ
クス」とみなすことができる。適用業務はメッセージ待
ち行列化呼出し(たとえば、メッセージを待ち行列から
取り出すMQGET、及びメッセージを待ち行列に送る
MQPUT)による場合を除き、メッセージ待ち行列に
アクセスすることはない。適用業務はメッセージ待ち行
列化呼出しを使用して待ち行列化サービスを獲得し、適
用業務と同じシステムに導入された待ち行列マネージャ
(ローカル待ち行列マネージャ)と通信する。
よって異なるが、主記憶域内のバッファ、ディスクまた
は他の永続記憶装置上のファイル、あるいはこれら両方
であることができる。しかしながら、メッセージ待ち行
列の物理的管理は完全に待ち行列マネージャ(適用業務
が使用するメッセージ待ち行列化機構を提供するシステ
ム・サービス)の責任であり、その詳細は適用業務に対
して明らかにはされない。適用業務はメッセージ待ち行
列を、メッセージが蓄積される単なる「ブラック・ボッ
クス」とみなすことができる。適用業務はメッセージ待
ち行列化呼出し(たとえば、メッセージを待ち行列から
取り出すMQGET、及びメッセージを待ち行列に送る
MQPUT)による場合を除き、メッセージ待ち行列に
アクセスすることはない。適用業務はメッセージ待ち行
列化呼出しを使用して待ち行列化サービスを獲得し、適
用業務と同じシステムに導入された待ち行列マネージャ
(ローカル待ち行列マネージャ)と通信する。
【0044】利用可能なメッセージ待ち行列化サービス
に対し、システムに少なくとも1つの待ち行列マネージ
ャがなければならない。しかしながら、システムに2つ
以上の待ち行列マネージャがあることがきわめてよくあ
る(たとえば、開発作業を本番作業から分離しておくた
めに)。それぞれの待ち行列マネージャ・インスタンス
はその名前で呼ばれる。一般に、この名前は相互接続さ
れた待ち行列マネージャのネットワーク内で独自のもの
でなければならず、したがって1つの待ち行列マネージ
ャは所与のメッセージを送る必要のある目標待ち行列マ
ネージャを、明白に識別することができる。
に対し、システムに少なくとも1つの待ち行列マネージ
ャがなければならない。しかしながら、システムに2つ
以上の待ち行列マネージャがあることがきわめてよくあ
る(たとえば、開発作業を本番作業から分離しておくた
めに)。それぞれの待ち行列マネージャ・インスタンス
はその名前で呼ばれる。一般に、この名前は相互接続さ
れた待ち行列マネージャのネットワーク内で独自のもの
でなければならず、したがって1つの待ち行列マネージ
ャは所与のメッセージを送る必要のある目標待ち行列マ
ネージャを、明白に識別することができる。
【0045】適用業務は特定の指定されたメッセージ待
ち行列の使用に同意し、特定の目標プログラムが読取り
に同意している特定の待ち行列にメッセージを送ること
によって通信を行う。これらの待ち行列の位置はメッセ
ージを送信する適用業務には明らかではなく、各適用業
務はそのローカル待ち行列マネージャのみと対話する。
メッセージを目的とする待ち行列へ移動するには、相互
接続された待ち行列マネージャのネットワークの責任で
ある。
ち行列の使用に同意し、特定の目標プログラムが読取り
に同意している特定の待ち行列にメッセージを送ること
によって通信を行う。これらの待ち行列の位置はメッセ
ージを送信する適用業務には明らかではなく、各適用業
務はそのローカル待ち行列マネージャのみと対話する。
メッセージを目的とする待ち行列へ移動するには、相互
接続された待ち行列マネージャのネットワークの責任で
ある。
【0046】図1は1対1通信という単純な例における
メッセージ待ち行列化システムにおける2つの通信を行
っている適用業務の間の流れの図である。2つの適用業
務10、20はそれぞれの待ち行列マネージャ50、6
0の制御下に、待ち行列30、40を介して互いにメッ
セージを送信する。第1の適用業務10は専用論理接続
を適用業務の間に確立することを必要とせずに、第2の
適用業務の待ち行列30にメッセージを入れる(このメ
ッセージの流れは図1に矢印f1、f2、f3、及びf
4によって示されている)。待ち行列マネージャ50、
60は適用業務自体がネットワークの変動及び複雑度か
ら遮蔽されるように、メッセージをネットワーク中で移
動させるものである。これは図1においてネットワーク
・リンク70によって示されている。適用業務20はメ
ッセージを待ち行列30から取り出し、送信側適用業務
10が選択したときにではなく、適用業務20の準備が
できたときに、これらのメッセージを処理する。メッセ
ージの転送及び以降の処理によって回復可能な資源に対
して行われた変更は、以降の障害時に使用するために回
復ログ75、76に記録される。
メッセージ待ち行列化システムにおける2つの通信を行
っている適用業務の間の流れの図である。2つの適用業
務10、20はそれぞれの待ち行列マネージャ50、6
0の制御下に、待ち行列30、40を介して互いにメッ
セージを送信する。第1の適用業務10は専用論理接続
を適用業務の間に確立することを必要とせずに、第2の
適用業務の待ち行列30にメッセージを入れる(このメ
ッセージの流れは図1に矢印f1、f2、f3、及びf
4によって示されている)。待ち行列マネージャ50、
60は適用業務自体がネットワークの変動及び複雑度か
ら遮蔽されるように、メッセージをネットワーク中で移
動させるものである。これは図1においてネットワーク
・リンク70によって示されている。適用業務20はメ
ッセージを待ち行列30から取り出し、送信側適用業務
10が選択したときにではなく、適用業務20の準備が
できたときに、これらのメッセージを処理する。メッセ
ージの転送及び以降の処理によって回復可能な資源に対
して行われた変更は、以降の障害時に使用するために回
復ログ75、76に記録される。
【0047】メッセージング及び待ち行列化において、
適用業務は他の適用業務のメッセージ待ち行列(あるい
は、複数の適用業務の待ち行列がオープンしている場合
には、そのうちの1つ)にメッセージを入れることによ
って、他の適用業務と通信を行う。前記他の適用業務は
メッセージを待ち行列から取り出すことによって通信を
受信する。これを発生させるのに関連したすべての活動
(メッセージと待ち行列の間の関係を維持し、ネットワ
ーク障害及び再起動を処理し、ネットワークを中心とし
てメッセージを移動することに関連した作業)は待ち行
列マネージャによって処理することができる。ネットワ
ーク間通信セッションが個々の適用業務の間ではなく、
待ち行列マネージャの間で確立されるので、適用業務は
他のタイプの適用業務間連絡の場合よりも、システム障
害による障害を受けにくくなる。プロセッサ間のリンク
が障害を生じた場合、障害からの回復は待ち行列マネー
ジャの仕事となる。障害を起こしたプロセッサ上の適用
業務が、このような事象によって停止されることはな
い。事実、これらの適用業務が障害が生じたことを認識
する必要はない。
適用業務は他の適用業務のメッセージ待ち行列(あるい
は、複数の適用業務の待ち行列がオープンしている場合
には、そのうちの1つ)にメッセージを入れることによ
って、他の適用業務と通信を行う。前記他の適用業務は
メッセージを待ち行列から取り出すことによって通信を
受信する。これを発生させるのに関連したすべての活動
(メッセージと待ち行列の間の関係を維持し、ネットワ
ーク障害及び再起動を処理し、ネットワークを中心とし
てメッセージを移動することに関連した作業)は待ち行
列マネージャによって処理することができる。ネットワ
ーク間通信セッションが個々の適用業務の間ではなく、
待ち行列マネージャの間で確立されるので、適用業務は
他のタイプの適用業務間連絡の場合よりも、システム障
害による障害を受けにくくなる。プロセッサ間のリンク
が障害を生じた場合、障害からの回復は待ち行列マネー
ジャの仕事となる。障害を起こしたプロセッサ上の適用
業務が、このような事象によって停止されることはな
い。事実、これらの適用業務が障害が生じたことを認識
する必要はない。
【0048】メッセージング及び待ち行列化において、
適用業務の構造には何の制約もない。図1に示すよう
に、1方向のメッセージの流れだけではなく、両方向の
相互通信が可能である。適用業務10、20の各々に対
するメッセージを受信するために、独立した待ち行列3
0、40がある。さらに、1対多(たとえば、単一の適
用業務の3部のコピーが負荷を平均的にするために並行
して作動し、同一の待ち行列からメッセージを取り出す
場合)、ならびに多対1(たとえば、単一のサーバにメ
ッセージを送信する複数のクライアントがある場合)、
あるいはこれらの関係すべての組合せの通信が可能であ
る。
適用業務の構造には何の制約もない。図1に示すよう
に、1方向のメッセージの流れだけではなく、両方向の
相互通信が可能である。適用業務10、20の各々に対
するメッセージを受信するために、独立した待ち行列3
0、40がある。さらに、1対多(たとえば、単一の適
用業務の3部のコピーが負荷を平均的にするために並行
して作動し、同一の待ち行列からメッセージを取り出す
場合)、ならびに多対1(たとえば、単一のサーバにメ
ッセージを送信する複数のクライアントがある場合)、
あるいはこれらの関係すべての組合せの通信が可能であ
る。
【0049】図2に示すメッセージ待ち行列化トランザ
クション指向処理システムに対する資源マネージャ・サ
ブシステム80は、以下のような構成要素を含んでい
る。
クション指向処理システムに対する資源マネージャ・サ
ブシステム80は、以下のような構成要素を含んでい
る。
【0050】*接続マネージャ要素(CMC) 接続マネージャ90はアダプタ要素95に、サブシステ
ム・アドレス空間との接続のためのインタフェースを提
供する。適用業務96からのすべての要求は、接続マネ
ージャ90を通って資源マネージャ・サブシステム80
に入る。接続マネージャ90は終了を監視するものであ
り、適用業務の終了を監視している。
ム・アドレス空間との接続のためのインタフェースを提
供する。適用業務96からのすべての要求は、接続マネ
ージャ90を通って資源マネージャ・サブシステム80
に入る。接続マネージャ90は終了を監視するものであ
り、適用業務の終了を監視している。
【0051】接続マネージャ90はMQPUT(指定さ
れた待ち行列にメッセージを入れるための要求、すなわ
ちメッセージ書出)またはMQGET(待ち行列解除の
要求、すなわちメッセージ取出)などのメッセージ待ち
行列化インタフェース(MQI)要求動詞を必要とする
ときに、メッセージ・マネージャ100を呼び出す。
れた待ち行列にメッセージを入れるための要求、すなわ
ちメッセージ書出)またはMQGET(待ち行列解除の
要求、すなわちメッセージ取出)などのメッセージ待ち
行列化インタフェース(MQI)要求動詞を必要とする
ときに、メッセージ・マネージャ100を呼び出す。
【0052】接続マネージャ90は回復マネージャ13
0を呼び出して、適用業務が発した要求以降のコミット
及びバックアウト、適用業務の正常な終了を検出したと
きのコミット、ならびに異常終了を検出した場合のバッ
クアウトの操作を実行する。接続マネージャ90は適用
業務が出したバックアウトに対する入口点や、適用業務
の異常終了による場合のバックアウトに対する入口点な
ど、さまざまな入口点で呼び出される。
0を呼び出して、適用業務が発した要求以降のコミット
及びバックアウト、適用業務の正常な終了を検出したと
きのコミット、ならびに異常終了を検出した場合のバッ
クアウトの操作を実行する。接続マネージャ90は適用
業務が出したバックアウトに対する入口点や、適用業務
の異常終了による場合のバックアウトに対する入口点な
ど、さまざまな入口点で呼び出される。
【0053】*メッセージ・マネージャ要素(MMC) メッセージ・マネージャ100はほとんどのMQI(M
QGET、MQPUT、待ち行列をオープンするMQO
PEN、及び待ち行列をクローズするMQCLOSEを
含む)に対してメッセージング・サービスを提供する。
メッセージ・マネージャ100はメッセージを待ち行列
に入れることができるようになる前に、指定した待ち行
列がオープンしたかどうかの検査などの、要求の検証を
行う。メッセージ・マネージャ100はメッセージ長及
び待ち行列深さの拘束を強制する。
QGET、MQPUT、待ち行列をオープンするMQO
PEN、及び待ち行列をクローズするMQCLOSEを
含む)に対してメッセージング・サービスを提供する。
メッセージ・マネージャ100はメッセージを待ち行列
に入れることができるようになる前に、指定した待ち行
列がオープンしたかどうかの検査などの、要求の検証を
行う。メッセージ・マネージャ100はメッセージ長及
び待ち行列深さの拘束を強制する。
【0054】メッセージ・マネージャ100はデータ・
マネージャ110を呼び出して、メッセージを待ち行列
に挿入したり、メッセージを待ち行列から検索したりす
る。メッセージ・マネージャ100はコミットまたはバ
ックアウトに関与しない。メッセージ・マネージャ10
0はロギングを行わず、またほとんどロックを行わな
い。
マネージャ110を呼び出して、メッセージを待ち行列
に挿入したり、メッセージを待ち行列から検索したりす
る。メッセージ・マネージャ100はコミットまたはバ
ックアウトに関与しない。メッセージ・マネージャ10
0はロギングを行わず、またほとんどロックを行わな
い。
【0055】*データ・マネージャ要素(DMC) データ・マネージャ110はディスク上のデータの編成
及びリンクに関与する。データ・マネージャ110は待
ち行列を表す「ページ」というディスク・ブロックのリ
ンクされたリストを維持する。データ・マネージャ11
0は使用済み及び利用可能なページの在庫の管理を含む
スペース管理機能を行う。
及びリンクに関与する。データ・マネージャ110は待
ち行列を表す「ページ」というディスク・ブロックのリ
ンクされたリストを維持する。データ・マネージャ11
0は使用済み及び利用可能なページの在庫の管理を含む
スペース管理機能を行う。
【0056】データ・マネージャ110はメッセージ・
マネージャ100によって呼び出されて、MQPUT中
にメッセージを所与の待ち行列に挿入し、またメッセー
ジ・マネージャ100によって呼び出されて、MQGE
T中に所与の待ち行列上のメッセージの探索を行う。デ
ータ・マネージャ110はメッセージ・マネージャ10
0によって指定される選択基準を使用して探索を行う。
マネージャ100によって呼び出されて、MQPUT中
にメッセージを所与の待ち行列に挿入し、またメッセー
ジ・マネージャ100によって呼び出されて、MQGE
T中に所与の待ち行列上のメッセージの探索を行う。デ
ータ・マネージャ110はメッセージ・マネージャ10
0によって指定される選択基準を使用して探索を行う。
【0057】データ・マネージャ110はロック・マネ
ージャ150を呼び出して、ページ及びディスク・レコ
ード(メッセージ)に対するコミット中ロックを取得す
る。通常、インテンション排他(IX)ロックが待ち行
列に対して取得され、IXロックがメッセージを含んで
いるページに対して取得され、排他(X)がMQGET
及びMQPUT中にページ内の論理レコード(メッセー
ジ)に対して取得される。
ージャ150を呼び出して、ページ及びディスク・レコ
ード(メッセージ)に対するコミット中ロックを取得す
る。通常、インテンション排他(IX)ロックが待ち行
列に対して取得され、IXロックがメッセージを含んで
いるページに対して取得され、排他(X)がMQGET
及びMQPUT中にページ内の論理レコード(メッセー
ジ)に対して取得される。
【0058】MQGET中に、データ・マネージャ11
0は探索基準に合致する削除されていないメッセージに
ついて、待ち行列を走査する。このようなメッセージが
発見された場合、IXロックがページに対して要求さ
れ、またXロックがそのメッセージに対して要求され
る。ロックが認められない場合、これはメッセージが存
在しており、削除されていないとしても、MQPUTの
発行者によってコミットされておらず、またデータ・マ
ネージャ110が他のメッセージへ進むことを意味す
る。
0は探索基準に合致する削除されていないメッセージに
ついて、待ち行列を走査する。このようなメッセージが
発見された場合、IXロックがページに対して要求さ
れ、またXロックがそのメッセージに対して要求され
る。ロックが認められない場合、これはメッセージが存
在しており、削除されていないとしても、MQPUTの
発行者によってコミットされておらず、またデータ・マ
ネージャ110が他のメッセージへ進むことを意味す
る。
【0059】スペース再利用操作はページのすべてのメ
ッセージが取得され、削除済みとマークされた後、待ち
行列の先頭を走査し、これらのページを未使用のページ
・プールに戻し、周囲のページにある該当するリンクを
更新する。メッセージを削除したすべてのMQGET操
作がコミット点に到達するまでページを除去しないこと
が重要であり、トランザクションがバックアウトした場
合には、メッセージから削除マークを除去し、これを再
度MQGETに使用できるようにする必要がある。
ッセージが取得され、削除済みとマークされた後、待ち
行列の先頭を走査し、これらのページを未使用のページ
・プールに戻し、周囲のページにある該当するリンクを
更新する。メッセージを削除したすべてのMQGET操
作がコミット点に到達するまでページを除去しないこと
が重要であり、トランザクションがバックアウトした場
合には、メッセージから削除マークを除去し、これを再
度MQGETに使用できるようにする必要がある。
【0060】データ・マネージャ110のスペース再利
用プロセスはロック・マネージャ150を使用して、所
与のページが他のトランザクションによって使用されて
いないことを検査する。ページいっぱいの削除済みメッ
セージにスペース再利用プロセスが遭遇した場合、ロッ
ク・マネージャ150にはそのページに対する排他ロッ
ク(Xロック)が要求される。ロックが認められた場
合、これは他のトランザクションがそのページに対して
IXロックを行っていないことを意味する。MQGET
及びMQPUTは影響を受けるページに対するコミット
中IXロックを取得するので、スペースが早期に再利用
されることはない。
用プロセスはロック・マネージャ150を使用して、所
与のページが他のトランザクションによって使用されて
いないことを検査する。ページいっぱいの削除済みメッ
セージにスペース再利用プロセスが遭遇した場合、ロッ
ク・マネージャ150にはそのページに対する排他ロッ
ク(Xロック)が要求される。ロックが認められた場
合、これは他のトランザクションがそのページに対して
IXロックを行っていないことを意味する。MQGET
及びMQPUTは影響を受けるページに対するコミット
中IXロックを取得するので、スペースが早期に再利用
されることはない。
【0061】*バッファ・マネージャ要素(BUFF) バッファ・マネージャ120はページ・バッファを管理
する。すなわち、適切なパフォーマンスを提供しなが
ら、データの回復に対するシステムの要件に一貫した態
様で、データ・マネージャ110からの要求に応じた補
助記憶装置(DASD)と仮想記憶域との間のデータ・
ページの移動を管理する。データ・マネージャ110は
ディスク上のディスク・ブロックを処理するのではな
く、バッファ・マネージャ120によって管理されるバ
ッファだけを処理する。待ち行列に対するすべてのディ
スク入出力(I/O)操作はバッファ・マネージャ12
0によって行われる。
する。すなわち、適切なパフォーマンスを提供しなが
ら、データの回復に対するシステムの要件に一貫した態
様で、データ・マネージャ110からの要求に応じた補
助記憶装置(DASD)と仮想記憶域との間のデータ・
ページの移動を管理する。データ・マネージャ110は
ディスク上のディスク・ブロックを処理するのではな
く、バッファ・マネージャ120によって管理されるバ
ッファだけを処理する。待ち行列に対するすべてのディ
スク入出力(I/O)操作はバッファ・マネージャ12
0によって行われる。
【0062】バッファ・マネージャ120は仮想記憶域
バッファ・プール内に「最新参照」ページを維持し、
「最後使用完了(LRU)」を不揮発性記憶装置に書き
込む。
バッファ・プール内に「最新参照」ページを維持し、
「最後使用完了(LRU)」を不揮発性記憶装置に書き
込む。
【0063】バッファ・マネージャ120はディスク・
ページ内容には関与しない。これには所与のページが所
与の待ち行列に割り振られたかどうか、あるいは未使用
リストにあるかどうか(すなわち、ページがロックされ
ているかどうか)はわからない。これらの事項はデータ
・マネージャ110が扱う。
ページ内容には関与しない。これには所与のページが所
与の待ち行列に割り振られたかどうか、あるいは未使用
リストにあるかどうか(すなわち、ページがロックされ
ているかどうか)はわからない。これらの事項はデータ
・マネージャ110が扱う。
【0064】所与のページをバッファに入れなければな
らない場合、あるいはデータ・マネージャ110がその
ページにアクセスする必要がもはやなくなった場合、バ
ッファ・マネージャ120にはデータ・マネージャ11
0によって通知が行われる。これらの操作を「ピン」及
び「ピン解除」という。データ・マネージャ110がバ
ッファを「ピン」した場合、バッファ・マネージャ12
0はページをディスクからバッファに入れ(まだバッフ
ァ内になければ)、対応する「ピン解除」操作をデータ
・マネージャ110から受信するまで、同じ場所に維持
する。
らない場合、あるいはデータ・マネージャ110がその
ページにアクセスする必要がもはやなくなった場合、バ
ッファ・マネージャ120にはデータ・マネージャ11
0によって通知が行われる。これらの操作を「ピン」及
び「ピン解除」という。データ・マネージャ110がバ
ッファを「ピン」した場合、バッファ・マネージャ12
0はページをディスクからバッファに入れ(まだバッフ
ァ内になければ)、対応する「ピン解除」操作をデータ
・マネージャ110から受信するまで、同じ場所に維持
する。
【0065】データ・マネージャ110がバッファの内
容を変更した場合、データ・マネージャ110はバッフ
ァ・マネージャ120に通知する。この操作を「インテ
ント書込み設定」といい、バッファ・マネージャ120
にディスク・ページをディスクに書き込まなければなら
ない(最終的に)ことを通知する。インテント書込みが
設定されているが、ディスク・スロットへの書込みがま
だ行われていないバッファを「ダーティ」バッファと呼
ぶ。
容を変更した場合、データ・マネージャ110はバッフ
ァ・マネージャ120に通知する。この操作を「インテ
ント書込み設定」といい、バッファ・マネージャ120
にディスク・ページをディスクに書き込まなければなら
ない(最終的に)ことを通知する。インテント書込みが
設定されているが、ディスク・スロットへの書込みがま
だ行われていないバッファを「ダーティ」バッファと呼
ぶ。
【0066】データ・マネージャ110はページの既知
の位置に、ページ(ダーティ・ページ)に対する最新の
変更に関する回復ログ・マネージャ(RLMC)140
のログ・レコードのログ・レコード・アドレス(ログ・
シーケンス番号と呼ぶ)を書き込む。バッファ・マネー
ジャ120が「LRU」基準によって、所与の「ダーテ
ィ」バッファがDASDへ書き込まれたと判断したら、
まずログ・マネージャ機能を呼び出して、アドレスがダ
ーティ・ページであるログ・レコードを「強制」する
(すなわち、不揮発性メモリに書き込む)。それ故、ペ
ージに対する何らかの変更をUNDOするのに必要なロ
グ・レコードが不揮発性ログ・ファイルに書き込まれて
から、(おそらく、コミットされていない)更新済みの
ページが待ち行列データセットに書き込まれる。これを
「ライト・アヘッド・ログ(WAL)」規則という。
の位置に、ページ(ダーティ・ページ)に対する最新の
変更に関する回復ログ・マネージャ(RLMC)140
のログ・レコードのログ・レコード・アドレス(ログ・
シーケンス番号と呼ぶ)を書き込む。バッファ・マネー
ジャ120が「LRU」基準によって、所与の「ダーテ
ィ」バッファがDASDへ書き込まれたと判断したら、
まずログ・マネージャ機能を呼び出して、アドレスがダ
ーティ・ページであるログ・レコードを「強制」する
(すなわち、不揮発性メモリに書き込む)。それ故、ペ
ージに対する何らかの変更をUNDOするのに必要なロ
グ・レコードが不揮発性ログ・ファイルに書き込まれて
から、(おそらく、コミットされていない)更新済みの
ページが待ち行列データセットに書き込まれる。これを
「ライト・アヘッド・ログ(WAL)」規則という。
【0067】*回復マネージャ要素(RMC) 回復マネージャ130は活動トランザクション(回復単
位、または作業単位という)のリストを維持し、これら
のトランザクションが通過する状態変更を調整し、これ
らを2フェーズ・コミット・プロトコルに通す。回復マ
ネージャ130はログ・レコードを書き込み(回復マネ
ージャ要素、RLMC140を介して)、トランザクシ
ョンの開始(BEGIN_UR、ただしURは回復単位
の略語である)、コミット・フェーズ1及び2の先頭、
コミット・フェーズ1及び2の末尾、ならびにトランザ
クションの終了を記録する。
位、または作業単位という)のリストを維持し、これら
のトランザクションが通過する状態変更を調整し、これ
らを2フェーズ・コミット・プロトコルに通す。回復マ
ネージャ130はログ・レコードを書き込み(回復マネ
ージャ要素、RLMC140を介して)、トランザクシ
ョンの開始(BEGIN_UR、ただしURは回復単位
の略語である)、コミット・フェーズ1及び2の先頭、
コミット・フェーズ1及び2の末尾、ならびにトランザ
クションの終了を記録する。
【0068】再起動時に、回復マネージャ130はログ
を読み取り、すべての活動トランザクションの状態を判
定し、他の資源マネージャ(主に、データ・マネージャ
110)の再起動回復活動を調整する。
を読み取り、すべての活動トランザクションの状態を判
定し、他の資源マネージャ(主に、データ・マネージャ
110)の再起動回復活動を調整する。
【0069】データ・マネージャは回復マネージャ・サ
ービス(Extract UR Token)を使用し
て、作業単位が原稿の適用業務インスタンスに対して進
行中であるかどうかを判定する。
ービス(Extract UR Token)を使用し
て、作業単位が原稿の適用業務インスタンスに対して進
行中であるかどうかを判定する。
【0070】データ・マネージャ110は回復マネージ
ャ130を呼び出して、最初の更新が持続資源に対して
行われ、回復単位がまだ起動されていない場合に、回復
単位を開始する(BEGIN_UR)。
ャ130を呼び出して、最初の更新が持続資源に対して
行われ、回復単位がまだ起動されていない場合に、回復
単位を開始する(BEGIN_UR)。
【0071】回復マネージャ130を接続マネージャ9
0が呼び出して、適用業務がコミットまたはバックアウ
トを出した場合、または接続マネージャ90が適用業務
の終了を認めた場合に、トランザクションをコミットま
たはバックアウトする。
0が呼び出して、適用業務がコミットまたはバックアウ
トを出した場合、または接続マネージャ90が適用業務
の終了を認めた場合に、トランザクションをコミットま
たはバックアウトする。
【0072】回復マネージャ130は回復ログ・マネー
ジャ140を呼び出して、トランザクション状態変換ロ
グ・レコードを書き込む。
ジャ140を呼び出して、トランザクション状態変換ロ
グ・レコードを書き込む。
【0073】回復マネージャ130はロック・マネージ
ャ150を呼び出して、ログにコミットまたはバックア
ウト操作の終了を記録した後、すべてのコミット中ロッ
クを解除する。
ャ150を呼び出して、ログにコミットまたはバックア
ウト操作の終了を記録した後、すべてのコミット中ロッ
クを解除する。
【0074】*回復ログ・マネージャ要素(RLMC) 回復ログ・マネージャ(RLMC)140は回復可能デ
ータ・オブジェクトに対する変更の回復ログに書き込ま
れたログ・レコードの継続的に増加するシーケンスを維
持する。ログ・レコードは主として、回復単位の開始、
終了、及び状態変換を記録する回復マネージャ(RM
C)130によって書き込まれる。データ・マネージャ
110はディスク・ファイルのデータ・ページに対して
変更を行う前に、データの「事前」及び「事後」イメー
ジ(UNDO/REDO)を書き込む。
ータ・オブジェクトに対する変更の回復ログに書き込ま
れたログ・レコードの継続的に増加するシーケンスを維
持する。ログ・レコードは主として、回復単位の開始、
終了、及び状態変換を記録する回復マネージャ(RM
C)130によって書き込まれる。データ・マネージャ
110はディスク・ファイルのデータ・ページに対して
変更を行う前に、データの「事前」及び「事後」イメー
ジ(UNDO/REDO)を書き込む。
【0075】ログ書込み操作は論理レコードを仮想記憶
域バッファに移動することからなる。バッファがほぼい
っぱいになると、回復ログ・マネージャ140はI/O
操作を開始して、ログ情報をディスクに入れる。トラン
ザクション中のいずれかの時点、詳細にいえばコミット
及びバックアウト中に、回復マネージャ130は回復ロ
グ・マネージャ140に対して「強制書込み」要求を出
し、ログ・レコードの回復ログ・マネージャ140のデ
ィスク・アドレスを「強制」する。回復ログ・マネージ
ャ140はこのログ・レコードならびに以前のすべての
ログ・レコードをログ・バッファに入れる出力操作を開
始する。要求されたログ・レコード及びそのすべての先
行レコードが不揮発性(ディスク)記憶装置に書き込ま
れるまで、「強制書込み」の発行は中断される。
域バッファに移動することからなる。バッファがほぼい
っぱいになると、回復ログ・マネージャ140はI/O
操作を開始して、ログ情報をディスクに入れる。トラン
ザクション中のいずれかの時点、詳細にいえばコミット
及びバックアウト中に、回復マネージャ130は回復ロ
グ・マネージャ140に対して「強制書込み」要求を出
し、ログ・レコードの回復ログ・マネージャ140のデ
ィスク・アドレスを「強制」する。回復ログ・マネージ
ャ140はこのログ・レコードならびに以前のすべての
ログ・レコードをログ・バッファに入れる出力操作を開
始する。要求されたログ・レコード及びそのすべての先
行レコードが不揮発性(ディスク)記憶装置に書き込ま
れるまで、「強制書込み」の発行は中断される。
【0076】バッファ・マネージャ120は回復ログ・
マネージャ要求も出し、所与のログ・レコードがログ・
ディスク・ファイルに書き込まれるまで、バッファ・マ
ネージャ120を中断する。これは上述した「ライト・
アヘッド・ログ」規則を順守するために行われる(バッ
ファ・マネージャ120の下で)。
マネージャ要求も出し、所与のログ・レコードがログ・
ディスク・ファイルに書き込まれるまで、バッファ・マ
ネージャ120を中断する。これは上述した「ライト・
アヘッド・ログ」規則を順守するために行われる(バッ
ファ・マネージャ120の下で)。
【0077】回復マネージャ130はバックアウト中に
ログ・レコードを読み取り、UNDOレコードをデータ
・マネージャ(DMC)110に提示する。データ・マ
ネージャ110はUNDOログ・レコードを使用して、
ディスク・レコードをトランザクションの開始前に存在
していた状態に復元する。
ログ・レコードを読み取り、UNDOレコードをデータ
・マネージャ(DMC)110に提示する。データ・マ
ネージャ110はUNDOログ・レコードを使用して、
ディスク・レコードをトランザクションの開始前に存在
していた状態に復元する。
【0078】回復マネージャ130は再起動時にログ・
レコードを読み取り、各活動トランザクションの状態を
判定し、REDO及びUNDOログ・レコードをデータ
・マネージャ110に提示する。
レコードを読み取り、各活動トランザクションの状態を
判定し、REDO及びUNDOログ・レコードをデータ
・マネージャ110に提示する。
【0079】*ロック・マネージャ要素(LMCまたは
LOCK) ロック・マネージャ150はデータ・マネージャ110
にロッキング・サービスを提供し、再起動及び正常な処
理中の各種のロックの取得、試験及びリリースを可能と
する。ロック・マネージャ150はロック名の仮想記憶
域構造を維持し、ロック名をこれらのロックを保持する
トランザクション・インスタンスに関連づける。
LOCK) ロック・マネージャ150はデータ・マネージャ110
にロッキング・サービスを提供し、再起動及び正常な処
理中の各種のロックの取得、試験及びリリースを可能と
する。ロック・マネージャ150はロック名の仮想記憶
域構造を維持し、ロック名をこれらのロックを保持する
トランザクション・インスタンスに関連づける。
【0080】所与のロック名を共用モードまたは排他モ
ードで要求できる。何らかのタイプの他の要求がそのロ
ック名に対して未決である(他のトランザクションによ
って)場合にだけ、排他ロックが認められる。他のトラ
ンザクションに対してロックが排他的に認められていな
い場合に、共用要求(S及びIX)が認められる。いく
つかのトランザクションが同一のIXまたはSロック名
を並行して保持することができる。
ードで要求できる。何らかのタイプの他の要求がそのロ
ック名に対して未決である(他のトランザクションによ
って)場合にだけ、排他ロックが認められる。他のトラ
ンザクションに対してロックが排他的に認められていな
い場合に、共用要求(S及びIX)が認められる。いく
つかのトランザクションが同一のIXまたはSロック名
を並行して保持することができる。
【0081】ロック・マネージャ150には、ロック名
の意味はわからない。データ・マネージャ110が創出
した名前の用途を調停するだけである。当分野で周知の
多くのロック管理と異なり、本システムのロック・マネ
ージャ150はロックが利用できない場合、呼出しプロ
グラムを中断しない(すなわち、これらを待たせな
い)。ロックを認めることができない場合、障害戻りコ
ードがデータ・マネージャ110に報告される。ロック
・マネージャが呼出しプログラムを中断しないのである
から、デッドロックを生じることはない。
の意味はわからない。データ・マネージャ110が創出
した名前の用途を調停するだけである。当分野で周知の
多くのロック管理と異なり、本システムのロック・マネ
ージャ150はロックが利用できない場合、呼出しプロ
グラムを中断しない(すなわち、これらを待たせな
い)。ロックを認めることができない場合、障害戻りコ
ードがデータ・マネージャ110に報告される。ロック
・マネージャが呼出しプログラムを中断しないのである
から、デッドロックを生じることはない。
【0082】ロック・マネージャ150はロック名を不
揮発性領域に記録せず、システムが終了した場合、すべ
てのロックは失われる。未確定トランザクションの再起
動時に、データ・マネージャ110は再ロックを必要と
する資源(待ち行列、ページ及びメッセージ)に対して
ロック要求を再発行する。ロックは未確定トランザクシ
ョンに対してだけ必要であり、未了トランザクションは
バックアウトされる(かつ、その資源はロック解除され
る)。
揮発性領域に記録せず、システムが終了した場合、すべ
てのロックは失われる。未確定トランザクションの再起
動時に、データ・マネージャ110は再ロックを必要と
する資源(待ち行列、ページ及びメッセージ)に対して
ロック要求を再発行する。ロックは未確定トランザクシ
ョンに対してだけ必要であり、未了トランザクションは
バックアウトされる(かつ、その資源はロック解除され
る)。
【0083】ロック・マネージャ150は逐次機械命令
(Compare及びSwap)を使用して、一時にせ
いぜい1つのトランザクションに対して排他ロックを認
める。
(Compare及びSwap)を使用して、一時にせ
いぜい1つのトランザクションに対して排他ロックを認
める。
【0084】データ・マネージャ110は所与のページ
のディスク・アドレスから導かれた名前を使用してIX
ロックを、また所与のページ及びメッセージを表す論理
レコードのディスク・アドレスから導かれたディスク・
アドレスを使用してXロックを取得する。これらのロッ
クを「コミット中」ロックと呼ぶ。MQPUTまたはM
QGET操作の処理中に、これらのロックが取得され、
コミットまたはバックアウト(及びそのロギング)が完
了した後、回復マネージャ130が「全コミット中ロッ
ク解除」要求を出した場合、ロックはコミットまたはバ
ックアウト時に解除される。
のディスク・アドレスから導かれた名前を使用してIX
ロックを、また所与のページ及びメッセージを表す論理
レコードのディスク・アドレスから導かれたディスク・
アドレスを使用してXロックを取得する。これらのロッ
クを「コミット中」ロックと呼ぶ。MQPUTまたはM
QGET操作の処理中に、これらのロックが取得され、
コミットまたはバックアウト(及びそのロギング)が完
了した後、回復マネージャ130が「全コミット中ロッ
ク解除」要求を出した場合、ロックはコミットまたはバ
ックアウト時に解除される。
【0085】それ故、データ・マネージャ110はロッ
クを取得するが、その名前を記憶しない。RMCによっ
て、回復単位中に取得されたすべてのロックがコミット
またはバックアウト後に一度に解除される。
クを取得するが、その名前を記憶しない。RMCによっ
て、回復単位中に取得されたすべてのロックがコミット
またはバックアウト後に一度に解除される。
【0086】コミット中ロックに加えて、ロック・マネ
ージャ150は共用及び排他「割振り中」ロックもサポ
ートしている。これらのロックをメッセージ・マネージ
ャ100がMQOPEN時(すなわち、待ち行列がオー
プンされるとき)に使用して、待ち行列共用規則を実施
し、マーク・スキップ・バックアウト操作(後述)中に
データ・マネージャ110が使用して、コミット中ロッ
クが1つのトランザクション・インスタンスに対して解
除され、かつその後間もなく新しいトランザクション・
インスタンス内の同一の適用業務によって取得された場
合に、ウィンドウ中のメッセージをロックする。
ージャ150は共用及び排他「割振り中」ロックもサポ
ートしている。これらのロックをメッセージ・マネージ
ャ100がMQOPEN時(すなわち、待ち行列がオー
プンされるとき)に使用して、待ち行列共用規則を実施
し、マーク・スキップ・バックアウト操作(後述)中に
データ・マネージャ110が使用して、コミット中ロッ
クが1つのトランザクション・インスタンスに対して解
除され、かつその後間もなく新しいトランザクション・
インスタンス内の同一の適用業務によって取得された場
合に、ウィンドウ中のメッセージをロックする。
【0087】メッセージ内のデータは貴重なビジネス資
産である。たとえば、送金を知らせるメッセージの喪失
は企業の財務損失を意味する。それ故、適用業務間で送
信されるデータの保護は必須である。この保護はメッセ
ージがリンクの他端で適切に受信され、処理されるま
で、これらを待ち行列から取消し不能に除去しないこと
によって達成される。待ち行列マネージャ自体が障害を
起こした場合には、メッセージが持続する(回復可能で
ある)旨を宣言するステップを取り、システム障害後の
これらの復元が確保されるようにする。
産である。たとえば、送金を知らせるメッセージの喪失
は企業の財務損失を意味する。それ故、適用業務間で送
信されるデータの保護は必須である。この保護はメッセ
ージがリンクの他端で適切に受信され、処理されるま
で、これらを待ち行列から取消し不能に除去しないこと
によって達成される。待ち行列マネージャ自体が障害を
起こした場合には、メッセージが持続する(回復可能で
ある)旨を宣言するステップを取り、システム障害後の
これらの復元が確保されるようにする。
【0088】特定の作業単位からなる多数のデータ更新
をすべて完了しなければならないか、あるいは、上述の
ように、これらのいずれも完了してはならない多くの状
況がある。資源更新の1つがエラー状態を生じ、これを
完了できない場合、他の更新をバックアウトしなければ
ならない。本発明はこのようなバックアウトに関連した
問題の処理に特に適するものである。
をすべて完了しなければならないか、あるいは、上述の
ように、これらのいずれも完了してはならない多くの状
況がある。資源更新の1つがエラー状態を生じ、これを
完了できない場合、他の更新をバックアウトしなければ
ならない。本発明はこのようなバックアウトに関連した
問題の処理に特に適するものである。
【0089】本発明の実施例による過ち許容指向データ
処理方法を、図2を参照して説明する。
処理方法を、図2を参照して説明する。
【0090】上述のような資源管理システムに障害が発
生した場合、適用業務が開始したバックアウトはシステ
ムが開始したバックアウトとは区別される。これはバッ
クアウト自体を要求した時期を知っている適用業務によ
って容易とされる。トランザクションの実行中に、トラ
ンザクションにシステムが開始したバックアウトが生じ
た場合(たとえば、トランザクションの異常終了、停
電、または操作員の処置による)、トランザクション全
体がバックアウトされる。指定のメッセージ取出または
その他の操作の取消しがオプションでスキップされるの
は、適用業務が発行したバックアウトに対してだけであ
る。
生した場合、適用業務が開始したバックアウトはシステ
ムが開始したバックアウトとは区別される。これはバッ
クアウト自体を要求した時期を知っている適用業務によ
って容易とされる。トランザクションの実行中に、トラ
ンザクションにシステムが開始したバックアウトが生じ
た場合(たとえば、トランザクションの異常終了、停
電、または操作員の処置による)、トランザクション全
体がバックアウトされる。指定のメッセージ取出または
その他の操作の取消しがオプションでスキップされるの
は、適用業務が発行したバックアウトに対してだけであ
る。
【0091】データを3タイプの障害、すなわちサブシ
ステム、ハードウェア及び適用業務の照会から保護しな
ければならない。障害後にデータ収集を再構成する方法
は、トランザクションを表す作業単位の最初から最後ま
での進行状況、ならびに回復可能なデータ・オブジェク
トに対する変更を引き起こした作業単位のアクションを
回復ログに記録することである。回復ログは作業単位の
コミットされたアクションが反映されるか、あるいはそ
のコミットされたアクションが逆転されるかのいずれか
に対するソースとなる。ログされたアクションがデータ
・オブジェクトの内容を反映している場合、これらのレ
コードも損傷した、あるいは喪失したデータ収集の再構
成のソースとなる。
ステム、ハードウェア及び適用業務の照会から保護しな
ければならない。障害後にデータ収集を再構成する方法
は、トランザクションを表す作業単位の最初から最後ま
での進行状況、ならびに回復可能なデータ・オブジェク
トに対する変更を引き起こした作業単位のアクションを
回復ログに記録することである。回復ログは作業単位の
コミットされたアクションが反映されるか、あるいはそ
のコミットされたアクションが逆転されるかのいずれか
に対するソースとなる。ログされたアクションがデータ
・オブジェクトの内容を反映している場合、これらのレ
コードも損傷した、あるいは喪失したデータ収集の再構
成のソースとなる。
【0092】回復可能データ・オブジェクトを変更する
アクションは、UNDO及びREDOレコードによって
ログに反映される。UNDOログ・レコードは変更アク
ションが行われる前のデータ・オブジェクトの内容を反
映する。REDOログ・レコードは変更後の内容を反映
する。障害が発生した場合、作業単位の進行状態を、ど
のレコードを使用するかを判定する際に使用する。変更
がデータ収集記憶媒体に対して行われ、作業単位が「未
了」である場合、UNDOログ・レコードをトランザク
ション回復中に使用して、変更を媒体にバックアウトす
る。データ収集記憶媒体が不揮発性(たとえば、DAS
D)で、作業単位が「未了」以外の状態である場合、R
EDOログ・レコードを回復中に使用して、オブジェク
トの媒体コピーが更新されていることを確認する。
アクションは、UNDO及びREDOレコードによって
ログに反映される。UNDOログ・レコードは変更アク
ションが行われる前のデータ・オブジェクトの内容を反
映する。REDOログ・レコードは変更後の内容を反映
する。障害が発生した場合、作業単位の進行状態を、ど
のレコードを使用するかを判定する際に使用する。変更
がデータ収集記憶媒体に対して行われ、作業単位が「未
了」である場合、UNDOログ・レコードをトランザク
ション回復中に使用して、変更を媒体にバックアウトす
る。データ収集記憶媒体が不揮発性(たとえば、DAS
D)で、作業単位が「未了」以外の状態である場合、R
EDOログ・レコードを回復中に使用して、オブジェク
トの媒体コピーが更新されていることを確認する。
【0093】データ収集が媒体の障害のために失われた
場合には、収集が作成されてからのすべてのREDOロ
グ・レコードが保管されており、利用可能なのであれ
ば、収集を再構成することが可能である。実際には、デ
ータの不揮発性コピーが定期的に作られ、保管され、コ
ピーが作成された時点のログ位置が記入される。次い
で、障害が発生した場合、回復ログが記憶されている位
置から処理される。作業単位によって作成されたデータ
収集に対するすべてのアクションを表す、その点からの
REDOレコードが、保管されたデータ収集のコピーに
対して再処理される。
場合には、収集が作成されてからのすべてのREDOロ
グ・レコードが保管されており、利用可能なのであれ
ば、収集を再構成することが可能である。実際には、デ
ータの不揮発性コピーが定期的に作られ、保管され、コ
ピーが作成された時点のログ位置が記入される。次い
で、障害が発生した場合、回復ログが記憶されている位
置から処理される。作業単位によって作成されたデータ
収集に対するすべてのアクションを表す、その点からの
REDOレコードが、保管されたデータ収集のコピーに
対して再処理される。
【0094】適用業務プログラムはシステムに接続され
ており、待ち行列にサービスを行い、待ち行列から検索
したメッセージ情報の内容に応じて各種のアクションを
行っている。このようなシステムにおける回復可能デー
タ構造は待ち行列である。待ち行列を安定状態へ戻せる
ようにするために、待ち行列のコピーが定期的に作成さ
れる。ログ・レコードが作成される待ち行列のコピーの
間の待ち行列の持続メッセージ(システム再起動におい
ても存続しなければならないという点で「持続性」の)
に対して行われたすべての変更に対して書き込まれる。
システム障害が発生した場合、これらのログ・レコード
を、始点としての待ち行列の最新のコピーとともに使用
して、すべての記録済みの変更に再適用し、これによっ
て待ち行列を回復する。
ており、待ち行列にサービスを行い、待ち行列から検索
したメッセージ情報の内容に応じて各種のアクションを
行っている。このようなシステムにおける回復可能デー
タ構造は待ち行列である。待ち行列を安定状態へ戻せる
ようにするために、待ち行列のコピーが定期的に作成さ
れる。ログ・レコードが作成される待ち行列のコピーの
間の待ち行列の持続メッセージ(システム再起動におい
ても存続しなければならないという点で「持続性」の)
に対して行われたすべての変更に対して書き込まれる。
システム障害が発生した場合、これらのログ・レコード
を、始点としての待ち行列の最新のコピーとともに使用
して、すべての記録済みの変更に再適用し、これによっ
て待ち行列を回復する。
【0095】各トランザクションをMQGET操作要求
を出す適用業務によって開始することができる。この要
求は接続マネージャ90を呼び出し、このマネージャは
初期設定ステップを実行し、要求をMQGETと認識
し、メッセージ・マネージャ100を呼び出す。メッセ
ージ・マネージャ100は該当する適用業務を探し出
し、妥当性検査を行い、データ・マネージャ要素のメッ
セージ取出操作を呼び出して、メッセージをローカル待
ち行列から取り出す。待ち行列はオブジェクト・ハンド
ルによって識別され、必要なメッセージの属性はMQG
ET操作要求内でメッセージ記述子によって識別され
る。MQGET操作要求内では、バッファ長(メッセー
ジ・データを収めるための領域のバイト数で表した長
さ)及び要求のアクションを制御するいくつかのオプシ
ョンも指定される。MQGET要求は適用業務が新しい
メッセージを処理するのに利用できるようになった場
合、あるいは新しい着信メッセージの待ち行列の到着時
に自動的に発行される。
を出す適用業務によって開始することができる。この要
求は接続マネージャ90を呼び出し、このマネージャは
初期設定ステップを実行し、要求をMQGETと認識
し、メッセージ・マネージャ100を呼び出す。メッセ
ージ・マネージャ100は該当する適用業務を探し出
し、妥当性検査を行い、データ・マネージャ要素のメッ
セージ取出操作を呼び出して、メッセージをローカル待
ち行列から取り出す。待ち行列はオブジェクト・ハンド
ルによって識別され、必要なメッセージの属性はMQG
ET操作要求内でメッセージ記述子によって識別され
る。MQGET操作要求内では、バッファ長(メッセー
ジ・データを収めるための領域のバイト数で表した長
さ)及び要求のアクションを制御するいくつかのオプシ
ョンも指定される。MQGET要求は適用業務が新しい
メッセージを処理するのに利用できるようになった場
合、あるいは新しい着信メッセージの待ち行列の到着時
に自動的に発行される。
【0096】メッセージ取出操作の実行時に、データ・
マネージャ110は該当するメッセージを探し出し、メ
ッセージ及びページにコミット中ロックを取得し(ロッ
ク・マネージャ150の制御下に)、メッセージを呼出
しプログラムのバッファに移動し、待ち行列に削除済み
のフラグをつけ、ログ・レコードを書き込んで、削除を
反映する。メッセージの最終処置はこの段階では行われ
ず、コミット操作後まで行われないので、メッセージン
グ・システムはバックアウトが要求された場合にメッセ
ージを復元することができる。
マネージャ110は該当するメッセージを探し出し、メ
ッセージ及びページにコミット中ロックを取得し(ロッ
ク・マネージャ150の制御下に)、メッセージを呼出
しプログラムのバッファに移動し、待ち行列に削除済み
のフラグをつけ、ログ・レコードを書き込んで、削除を
反映する。メッセージの最終処置はこの段階では行われ
ず、コミット操作後まで行われないので、メッセージン
グ・システムはバックアウトが要求された場合にメッセ
ージを復元することができる。
【0097】データ・マネージャ110のメッセージ取
出フロー 詳細にいえば、データ・マネージャ110は同期点範囲
内で持続メッセージを検索する際に以下のアクションを
行う。
出フロー 詳細にいえば、データ・マネージャ110は同期点範囲
内で持続メッセージを検索する際に以下のアクションを
行う。
【0098】a.DMC110はRMC130を呼び出
し、URが始動したかどうかを判定し、始動していない
場合には、RMC130を呼び出して、新しいURを開
始する。次いで、RMC130は回復ログ・マネージャ
(RLMC)140を呼び出して、BEGIN−URレ
コードを書き込む。
し、URが始動したかどうかを判定し、始動していない
場合には、RMC130を呼び出して、新しいURを開
始する。次いで、RMC130は回復ログ・マネージャ
(RLMC)140を呼び出して、BEGIN−URレ
コードを書き込む。
【0099】b.DMC110は適切なメッセージに関
して希望する待ち行列を操作する。
して希望する待ち行列を操作する。
【0100】1)操作の始点を決定する。
【0101】2)BUFF Get Pageを呼び出
して、ページを取り出す。
して、ページを取り出す。
【0102】3)適切なメッセージ(すなわち、削除さ
れていない)をさがす。
れていない)をさがす。
【0103】4)適切なメッセージが見つかった場合、
バッファにインテント書込み設定を行い(かつ、ラッチ
し)、メッセージの削除フラグを再度検査し(ラッチし
たまま)、ページに対するコミット中IXロック及びメ
ッセージに対するコミット中Xロックを取得する。
バッファにインテント書込み設定を行い(かつ、ラッチ
し)、メッセージの削除フラグを再度検査し(ラッチし
たまま)、ページに対するコミット中IXロック及びメ
ッセージに対するコミット中Xロックを取得する。
【0104】5)いずれのロック要求も失敗した場合に
は、メッセージが「適切」なものではない(コミットさ
れていないMQPUTである)。(未解決のIXロック
は保持される)。
は、メッセージが「適切」なものではない(コミットさ
れていないMQPUTである)。(未解決のIXロック
は保持される)。
【0105】6)DMC110はRLMC140を呼び
出して、論理メッセージの削除を反映するUNDO/R
EDOレコードを書き込む。
出して、論理メッセージの削除を反映するUNDO/R
EDOレコードを書き込む。
【0106】7)DMC110はそのUNDO/RED
Oログ・レコードのログ順序番号をページのページLS
Nフィールドに格納する。
Oログ・レコードのログ順序番号をページのページLS
Nフィールドに格納する。
【0107】8)DMC110は削除フラグを論理レコ
ード(メッセージ)用のディスク・バッファにセットす
る。
ード(メッセージ)用のディスク・バッファにセットす
る。
【0108】9)DMC110はメッセージを適用業の
務バッファへ移動する。
務バッファへ移動する。
【0109】10)DMC110はBUFFを呼び出し
て、ページをリリースし(ピン解除し)、インテント書
込みをリセットする。
て、ページをリリースし(ピン解除し)、インテント書
込みをリセットする。
【0110】c.これらのステップはメッセージの長さ
により必要に応じ反復される。4メガバイトのメッセー
ジは多数のページを読み取ることができるが、本発明で
は一時に1ページを扱う。削除フラグがメッセージの最
初の部分にだけ存在しているのであるから、最初のメッ
セージだけが「ダーティ」である(変更されている)。
により必要に応じ反復される。4メガバイトのメッセー
ジは多数のページを読み取ることができるが、本発明で
は一時に1ページを扱う。削除フラグがメッセージの最
初の部分にだけ存在しているのであるから、最初のメッ
セージだけが「ダーティ」である(変更されている)。
【0111】DMC110はそれが取得したロックの名
前を記憶しないが、ロック・マネージャ150はこれら
を知っている。
前を記憶しないが、ロック・マネージャ150はこれら
を知っている。
【0112】DMC110は次いで制御をMMC100
へ戻し、MMC100は制御をCMC90へ、最後に適
用業務へ戻す。
へ戻し、MMC100は制御をCMC90へ、最後に適
用業務へ戻す。
【0113】適用業務がMQGET要求によって指定す
ることのできるオプションの1つは、メッセージにマー
クをつけられることである。適用業務はMQGET_M
ARK_SKIP_バックアウトを出す。これはMQG
ET(上述)と同じものであり、データ・マネージャ1
10が取得したメッセージのディスク・アドレスをその
持続属性とともに、トランザクション・インスタンスに
関連した記憶域の私用リストに記録するというステップ
が付加されている。DMC110はこのメッセージに対
してコミット中Xロックを取得してから、これをこの
「マーク付きメッセージ・リスト」に入れる、すなわ
ち、ディスク・アドレス(または、ポインタ)はこの作
業単位によってロックされたメッセージを表していなけ
ればならない。
ることのできるオプションの1つは、メッセージにマー
クをつけられることである。適用業務はMQGET_M
ARK_SKIP_バックアウトを出す。これはMQG
ET(上述)と同じものであり、データ・マネージャ1
10が取得したメッセージのディスク・アドレスをその
持続属性とともに、トランザクション・インスタンスに
関連した記憶域の私用リストに記録するというステップ
が付加されている。DMC110はこのメッセージに対
してコミット中Xロックを取得してから、これをこの
「マーク付きメッセージ・リスト」に入れる、すなわ
ち、ディスク・アドレス(または、ポインタ)はこの作
業単位によってロックされたメッセージを表していなけ
ればならない。
【0114】オプションのマーク付けはMQGET操作
要求の属性であって、メッセージの属性ではない。適用
業務には待ち行列の次のメッセージがなんであるかはわ
からず、したがってメッセージ取出が出された時点で、
メッセージに含まれている情報を使用して、マークする
か否かを判定することができない。しかしながら、適用
業務には次に取得するメッセージのタイプがわかり、こ
れを使用して、次のメッセージにマークを付けるかどう
かを決定することができる。バックアウトを抜けるため
にメッセージにマークを付けるかどうかは、どの待ち行
列からメッセージを読み取るか(上述のように、どれが
メッセージ取出要求のパラメータであるか)に基づいて
決定される。MQGET操作要求の他の多数のオプショ
ン・パラメータをセットすることもできる。
要求の属性であって、メッセージの属性ではない。適用
業務には待ち行列の次のメッセージがなんであるかはわ
からず、したがってメッセージ取出が出された時点で、
メッセージに含まれている情報を使用して、マークする
か否かを判定することができない。しかしながら、適用
業務には次に取得するメッセージのタイプがわかり、こ
れを使用して、次のメッセージにマークを付けるかどう
かを決定することができる。バックアウトを抜けるため
にメッセージにマークを付けるかどうかは、どの待ち行
列からメッセージを読み取るか(上述のように、どれが
メッセージ取出要求のパラメータであるか)に基づいて
決定される。MQGET操作要求の他の多数のオプショ
ン・パラメータをセットすることもできる。
【0115】最初のメッセージがこの作業単位内ですで
にマークがつけられている場合(すなわち、マーク付き
メッセージのDMC110ポインタが非ゼロである場
合)、他のメッセージにこのようにマークを付けること
はできない。したがって、どの作業単位もマーク付きメ
ッセージを1つだけ含むことができるが、最初のメッセ
ージ以降のものにマークを付けるための以降の要求の拒
否は適用業務に通知される。メッセージング・システム
のマーク付きメッセージ・リストは揮発性記憶域に保持
される(したがって、メッセージング・システムの再起
動後に継続しない)。
にマークがつけられている場合(すなわち、マーク付き
メッセージのDMC110ポインタが非ゼロである場
合)、他のメッセージにこのようにマークを付けること
はできない。したがって、どの作業単位もマーク付きメ
ッセージを1つだけ含むことができるが、最初のメッセ
ージ以降のものにマークを付けるための以降の要求の拒
否は適用業務に通知される。メッセージング・システム
のマーク付きメッセージ・リストは揮発性記憶域に保持
される(したがって、メッセージング・システムの再起
動後に継続しない)。
【0116】もちろん、多くのメッセージはトランザク
ションが開始したメッセージではなく、それぞれのメッ
セージはきわめて異なる属性を有していることがあり、
またすべてのメッセージが必ずしも同じ待ち行列から取
ったものでないものであることがある。すべてのメッセ
ージにおいてバックアウトの結果をスキップすることは
望ましくはなく、したがって、バックアウトをスキップ
するようにメッセージにマークを付けることを、メッセ
ージ取出の一般的な結果とすることは望ましくなく、こ
れがこれをオプションとした理由である。たとえば、A
TMで預金引出しの要求を行った場合、暗証番号が正し
いかどうかに関する照会が作業単位内の暗証番号サーバ
のメッセージ待ち行列に入れられる。その後、適用業務
は照会に対する回答をもたらす暗証番号サーバから送ら
れたメッセージを取得する(メッセージ取出が、選択さ
れる特定のメッセージの到着を待つオプションをつけて
出される)。ここでエラーが検出された場合、暗証番号
サーバとの通信に関与しているこれらのメッセージ書出
及びメッセージ取出操作の完全なバックアウトを防止す
ることは望ましくない。
ションが開始したメッセージではなく、それぞれのメッ
セージはきわめて異なる属性を有していることがあり、
またすべてのメッセージが必ずしも同じ待ち行列から取
ったものでないものであることがある。すべてのメッセ
ージにおいてバックアウトの結果をスキップすることは
望ましくはなく、したがって、バックアウトをスキップ
するようにメッセージにマークを付けることを、メッセ
ージ取出の一般的な結果とすることは望ましくなく、こ
れがこれをオプションとした理由である。たとえば、A
TMで預金引出しの要求を行った場合、暗証番号が正し
いかどうかに関する照会が作業単位内の暗証番号サーバ
のメッセージ待ち行列に入れられる。その後、適用業務
は照会に対する回答をもたらす暗証番号サーバから送ら
れたメッセージを取得する(メッセージ取出が、選択さ
れる特定のメッセージの到着を待つオプションをつけて
出される)。ここでエラーが検出された場合、暗証番号
サーバとの通信に関与しているこれらのメッセージ書出
及びメッセージ取出操作の完全なバックアウトを防止す
ることは望ましくない。
【0117】コミット及び適用業務の終了 適用業務が単一フェーズのコミットを出すバッチ型適用
業務であるとする。任意の数(ゼロを含む)のMQGE
T及びMQPUT要求を出してから、適用業務はコミッ
トを出すことができる。接続マネージャ90はコミット
要求を認識し、以下で説明するように、回復マネージャ
130コミット−URサービスを呼び出す。回復マネー
ジャ130は次いで、制御を適用業務に戻す。
業務であるとする。任意の数(ゼロを含む)のMQGE
T及びMQPUT要求を出してから、適用業務はコミッ
トを出すことができる。接続マネージャ90はコミット
要求を認識し、以下で説明するように、回復マネージャ
130コミット−URサービスを呼び出す。回復マネー
ジャ130は次いで、制御を適用業務に戻す。
【0118】接続マネージャ90は接続されている適用
業務の終了も監視しており、適用業務が正常に終了した
のか、異常に終了したのかを判断できる。
業務の終了も監視しており、適用業務が正常に終了した
のか、異常に終了したのかを判断できる。
【0119】正常な適用業務の終了 MQIの指定は適用業務がコミットまたはバックアウト
を出さずに正常に終了した場合、未完了の操作をコミッ
トさせるようにする。正常な適用業務の終了ステップは
以下の通りである。
を出さずに正常に終了した場合、未完了の操作をコミッ
トさせるようにする。正常な適用業務の終了ステップは
以下の通りである。
【0120】1.適用業務が正常に終了する。
【0121】2.CMC90は正常終了を認識し、回復
マネージャ130コミット−URサービスを呼び出す。
マネージャ130コミット−URサービスを呼び出す。
【0122】3.CMC90はMMC100を呼び出
し、未完了のオープンな待ち行列にMQCLOSE操作
を行う。
し、未完了のオープンな待ち行列にMQCLOSE操作
を行う。
【0123】4.CMC90はLOCKを呼び出して、
この適用業務が保持しているすべての要求中ロック及び
コミット中ロックをリリースする。
この適用業務が保持しているすべての要求中ロック及び
コミット中ロックをリリースする。
【0124】回復マネージャ130コミット−UR この回復マネージャ・サービスは上述のように、適用業
務が出したコミット要求の結果として、あるいは正常な
適用業務の終了の結果として、接続マネージャ90によ
って呼び出される。サービスのステップは以下の通りで
ある。
務が出したコミット要求の結果として、あるいは正常な
適用業務の終了の結果として、接続マネージャ90によ
って呼び出される。サービスのステップは以下の通りで
ある。
【0125】1.RMC130は回復ログ・マネージャ
(RLMC)140を呼び出して、BEGIN−コミッ
ト−PHASE−1ログ・レコード及びPHASE−1
−TO−2−TRANSITIONログ・レコードを書
き込む。
(RLMC)140を呼び出して、BEGIN−コミッ
ト−PHASE−1ログ・レコード及びPHASE−1
−TO−2−TRANSITIONログ・レコードを書
き込む。
【0126】2.RMC130はRLMC140を呼び
出し、PHASE−1−TO−2−TRANSITIO
Nログ・レコードの記録後にログを「強制」する。
出し、PHASE−1−TO−2−TRANSITIO
Nログ・レコードの記録後にログを「強制」する。
【0127】3.RMC130はデータ・マネージャ1
10を呼び出す(コミット・フェーズ2のブロードキャ
スト中に)。
10を呼び出す(コミット・フェーズ2のブロードキャ
スト中に)。
【0128】4.DMC110はその「バックアウト・
スキップ・マーク」リストを空にする。
スキップ・マーク」リストを空にする。
【0129】5.RMC130はRLMC140を呼び
出して、END−PHASE−2ログ・レコードを書き
込む(ただし、強制ではない)。
出して、END−PHASE−2ログ・レコードを書き
込む(ただし、強制ではない)。
【0130】6.RMC130はロック・マネージャ1
50を呼び出して、すべてのコミット中ロックをリリー
スする。
50を呼び出して、すべてのコミット中ロックをリリー
スする。
【0131】7.ロック・マネージャ150はこのトラ
ンザクション・インスタンスが保持しているすべてのコ
ミット中ロックをリリースする(割振り中ロックを除
く)
ンザクション・インスタンスが保持しているすべてのコ
ミット中ロックをリリースする(割振り中ロックを除
く)
【0132】適用業務が出したバックアウト 処理を部分的に行ったところで、適用業務が現在処理中
のメッセージに何らかのエラー状態を発見した場合、適
用業務は現在の作業単位中にすでに実行した資源更新の
バックアウトを要求する。操作の流れは以下の通りであ
る。
のメッセージに何らかのエラー状態を発見した場合、適
用業務は現在の作業単位中にすでに実行した資源更新の
バックアウトを要求する。操作の流れは以下の通りであ
る。
【0133】適用業務は多数の(ゼロを含む)MQGE
TまたはMQPUTあるいはその両方の要求を出してい
る。MQGET及びMQPUT中に、データ・マネージ
ャ110はロック・マネージャ150を呼び出して、参
照されたページに対してコミット中ロック(IXロッ
ク)を、またメッセージに対してコミット中ロック(X
ロック)を取得している。
TまたはMQPUTあるいはその両方の要求を出してい
る。MQGET及びMQPUT中に、データ・マネージ
ャ110はロック・マネージャ150を呼び出して、参
照されたページに対してコミット中ロック(IXロッ
ク)を、またメッセージに対してコミット中ロック(X
ロック)を取得している。
【0134】1.適用業務はバックアウトを出す。
【0135】2.CMC90はデータ・マネージャ11
0を呼び出して、マーク付きメッセージのそのリストを
ロックする。
0を呼び出して、マーク付きメッセージのそのリストを
ロックする。
【0136】3.DMC110はそのマーク付きメッセ
ージ・リストを調べ、ロック・マネージャ150を呼び
出して、その「マーク付きメッセージ・リスト」内のす
べてのメッセージに対して割振り中Xロックを取得す
る。MARK SKIP バックアウトオプションをつ
けたMQGET操作を現行のURに対して要求されてい
なければ、このリストは空である。マークつきメッセー
ジ・リストが空でなければ、TEST LOCK要求を
出し、このメッセージ及びページにコミット中ロックが
存在していることを検査する。これらのテストの結果が
プラスの場合、割振り中ロックがページに対して取得さ
れ、割振り中ロックがメッセージに対して取得される。
ロック要求が認められた場合、マークつきメッセージの
DMC110ポインタ及びその持続属性が、接続マネー
ジャ90に戻される。
ージ・リストを調べ、ロック・マネージャ150を呼び
出して、その「マーク付きメッセージ・リスト」内のす
べてのメッセージに対して割振り中Xロックを取得す
る。MARK SKIP バックアウトオプションをつ
けたMQGET操作を現行のURに対して要求されてい
なければ、このリストは空である。マークつきメッセー
ジ・リストが空でなければ、TEST LOCK要求を
出し、このメッセージ及びページにコミット中ロックが
存在していることを検査する。これらのテストの結果が
プラスの場合、割振り中ロックがページに対して取得さ
れ、割振り中ロックがメッセージに対して取得される。
ロック要求が認められた場合、マークつきメッセージの
DMC110ポインタ及びその持続属性が、接続マネー
ジャ90に戻される。
【0137】4.DMC110は戻りコードによって、
マーク付きメッセージのリストが空であったかどうか、
あるいはメッセージがロックされていたかどうかを示
す。
マーク付きメッセージのリストが空であったかどうか、
あるいはメッセージがロックされていたかどうかを示
す。
【0138】5.DMC110はマーク付きメッセージ
のリストをその呼び出しプログラム、接続マネージャ9
0に戻す(このマネージャは本発明のこの実施形態の場
合、少なくとも1つのマーク付きメッセージのリストを
戻す)。
のリストをその呼び出しプログラム、接続マネージャ9
0に戻す(このマネージャは本発明のこの実施形態の場
合、少なくとも1つのマーク付きメッセージのリストを
戻す)。
【0139】6.CMC90は回復マネージャ130の
ABORT−URサービス(以下で詳述)を呼び出し
て、この作業単位内で行われたすべての資源更新をバッ
クアウトする。DMC110はABORT−URの一部
として、そのマーク付きメッセージ・リストを空にす
る。
ABORT−URサービス(以下で詳述)を呼び出し
て、この作業単位内で行われたすべての資源更新をバッ
クアウトする。DMC110はABORT−URの一部
として、そのマーク付きメッセージ・リストを空にす
る。
【0140】7.DMC110の「マーク付きメッセー
ジ・ロック」要求(上記4の)からの戻りコードがマー
ク付きメッセージがあったことを示している場合、CM
C90はDMC110の「マーク付きメッセージ削除」
サービスを呼び出し、マーク付きメッセージのリストを
表示する。マーク付きメッセージのDMC110ポイン
タならびにメッセージの持続属性がパラメータとして渡
される。
ジ・ロック」要求(上記4の)からの戻りコードがマー
ク付きメッセージがあったことを示している場合、CM
C90はDMC110の「マーク付きメッセージ削除」
サービスを呼び出し、マーク付きメッセージのリストを
表示する。マーク付きメッセージのDMC110ポイン
タならびにメッセージの持続属性がパラメータとして渡
される。
【0141】8.DMC110は現行のトランザクショ
ンがマーク付きメッセージ・リストの各要素に割振り中
Xロックを保持していることを検査する。ロック・テス
トがプラスの結果をもたらした場合、新しい作業単位が
直ちに開始される。
ンがマーク付きメッセージ・リストの各要素に割振り中
Xロックを保持していることを検査する。ロック・テス
トがプラスの結果をもたらした場合、新しい作業単位が
直ちに開始される。
【0142】9.DMC110は各マーク付きメッセー
ジに対してそのメッセージ取出操作を再度行うが、メッ
セージを適用業務のバッファに移動する点が異なってい
る。マークのつけられているメッセージの最終結果は、
したがって、新しい作業単位に転送される。
ジに対してそのメッセージ取出操作を再度行うが、メッ
セージを適用業務のバッファに移動する点が異なってい
る。マークのつけられているメッセージの最終結果は、
したがって、新しい作業単位に転送される。
【0143】メッセージ取出を再度実行することは、各
マーク付きメッセージを探し出し(ただし、バックアウ
ト操作の流れのこの説明以降の段落を参照)、ページに
対するコミット中IXロック、メッセージに対するコミ
ット中Xロックを取得し、バッファ・マネージャ120
がインテント書込み設定によってGet Pageを行
い、RLMCがUNDO/REDOを行い、バッファ内
の削除されたメッセージにマークを付け、ログ・レコー
ドLSNをバッファに格納し、バッファ・マネージャ1
20がページをリリースすることを含んでいる。
マーク付きメッセージを探し出し(ただし、バックアウ
ト操作の流れのこの説明以降の段落を参照)、ページに
対するコミット中IXロック、メッセージに対するコミ
ット中Xロックを取得し、バッファ・マネージャ120
がインテント書込み設定によってGet Pageを行
い、RLMCがUNDO/REDOを行い、バッファ内
の削除されたメッセージにマークを付け、ログ・レコー
ドLSNをバッファに格納し、バッファ・マネージャ1
20がページをリリースすることを含んでいる。
【0144】マーク付きメッセージはこの時点で割込み
中Xロック(ステップ3で取得した)、及びコミット中
Xロック(ステップ9で取得した)の両方を有してい
る。
中Xロック(ステップ3で取得した)、及びコミット中
Xロック(ステップ9で取得した)の両方を有してい
る。
【0145】9A.DMC110はマーク付きメッセー
ジに対する割込み中Xロックをリリースする。ステップ
9で取得されたコミット中Xロックは、新しい作業単位
がコミットまたはバックアウトを完了するまでリリース
されない。
ジに対する割込み中Xロックをリリースする。ステップ
9で取得されたコミット中Xロックは、新しい作業単位
がコミットまたはバックアウトを完了するまでリリース
されない。
【0146】10.DMC110はそのバックアウト・
スキップ・マーク・リストを空にするので、以降のバッ
クアウトが適用業務によって出された場合、MQGET
Sがバックアウトをスキップするようマークされること
はない。
スキップ・マーク・リストを空にするので、以降のバッ
クアウトが適用業務によって出された場合、MQGET
Sがバックアウトをスキップするようマークされること
はない。
【0147】11.CMC90は適用業務に制御を戻
す。
す。
【0148】複数のサーバが入力待ち行列にサービスを
行っている場合、1つのサーバによってマークのつけら
れたメッセージはそれが2度目にバックアウトされ、マ
ークが最初に除去されるまで、他のサーバによって検索
できない。
行っている場合、1つのサーバによってマークのつけら
れたメッセージはそれが2度目にバックアウトされ、マ
ークが最初に除去されるまで、他のサーバによって検索
できない。
【0149】「探し出される」マーク付きメッセージに
ついて前の段落でいったことは常に正確とは限らない。
実際には、各マーク付きメッセージは以下の理由から、
積極的に探し出されるのではなく、探索されるものであ
る。適用業務はメッセージ書出操作要求を出し(メッセ
ージを待ち行列に入れるために)、次いで、メッセージ
書出がそのトランザクション・インスタンス(ならび
に、他のトランザクション・インスタンス)に可視のト
ランザクションの部分的に完了した結果であるから、同
じメッセージに関するメッセージ取出を出す。しかしな
がら、トランザクションがメッセージ書出を出し、次い
でメッセージ取出/MARK/SKIP−バックアウト
を出し、(すなわち、待ち行列からメッセージを取り出
し、メッセージにマークをつけて、いくつかの操作がバ
ックアウトの結果をスキップするようにし)、その後、
バックアウトを出した場合、メッセージ書出及びメッセ
ージ取出両方の操作はバックアウトされる。それ故、ト
ランザクションがマーク付きメッセージを削除するよう
になった場合、これらのうち1つまたは複数がメッセー
ジ書出操作のバックアウトによって削除済みということ
になる。
ついて前の段落でいったことは常に正確とは限らない。
実際には、各マーク付きメッセージは以下の理由から、
積極的に探し出されるのではなく、探索されるものであ
る。適用業務はメッセージ書出操作要求を出し(メッセ
ージを待ち行列に入れるために)、次いで、メッセージ
書出がそのトランザクション・インスタンス(ならび
に、他のトランザクション・インスタンス)に可視のト
ランザクションの部分的に完了した結果であるから、同
じメッセージに関するメッセージ取出を出す。しかしな
がら、トランザクションがメッセージ書出を出し、次い
でメッセージ取出/MARK/SKIP−バックアウト
を出し、(すなわち、待ち行列からメッセージを取り出
し、メッセージにマークをつけて、いくつかの操作がバ
ックアウトの結果をスキップするようにし)、その後、
バックアウトを出した場合、メッセージ書出及びメッセ
ージ取出両方の操作はバックアウトされる。それ故、ト
ランザクションがマーク付きメッセージを削除するよう
になった場合、これらのうち1つまたは複数がメッセー
ジ書出操作のバックアウトによって削除済みということ
になる。
【0150】異常な適用業務の終了 上述したように、接続マネージャ90は接続されている
適用業務の終了を監視しており、適用業務が正常に終了
したのか、異常に終了したのかを判断できる。MQIの
指定は、適用業務がコミットまたはバックアウトを出さ
ずに、異常に終了した場合、未完了の操作はバックアウ
トされることになる。操作の流れは次の通りである。
適用業務の終了を監視しており、適用業務が正常に終了
したのか、異常に終了したのかを判断できる。MQIの
指定は、適用業務がコミットまたはバックアウトを出さ
ずに、異常に終了した場合、未完了の操作はバックアウ
トされることになる。操作の流れは次の通りである。
【0151】1.適用業務が異常に終了する。
【0152】2.CMC90は異常終了を認識し、回復
マネージャ130のABORT−URサービスを呼び出
す。
マネージャ130のABORT−URサービスを呼び出
す。
【0153】3.CMC90はMMC100を呼び出し
て、未完了のオープン待ち行列に対してMQCLOSE
操作を行う。
て、未完了のオープン待ち行列に対してMQCLOSE
操作を行う。
【0154】4.CMC90はLOCKを呼び出して、
この適用業務が保持しているすべての割振り中ロック及
びコミット中ロックをリリースする。
この適用業務が保持しているすべての割振り中ロック及
びコミット中ロックをリリースする。
【0155】異常な適用業務の終了の結果としてのバッ
クアウトがバックアウトを明示的に出した適用業務の結
果としてのバックアウトとは異なる処理を受けることに
留意すべきである。このバックアウト中、MARK S
KIP ROLLBACKリストは検査されない。
クアウトがバックアウトを明示的に出した適用業務の結
果としてのバックアウトとは異なる処理を受けることに
留意すべきである。このバックアウト中、MARK S
KIP ROLLBACKリストは検査されない。
【0156】回復マネージャ130のABORT−UR
機能 この機能は適用業務が出したバックアウトの結果または
上述したような適用業務の異常終了の結果として、接続
マネージャ90によって呼び出される。操作の流れは以
下の通りである。
機能 この機能は適用業務が出したバックアウトの結果または
上述したような適用業務の異常終了の結果として、接続
マネージャ90によって呼び出される。操作の流れは以
下の通りである。
【0157】1.RMC130は回復ログ・マネージャ
(RLMC)140を呼び出し、BEGIN−ABOR
Tログ・レコードを書き込む(かつ、強制する)。
(RLMC)140を呼び出し、BEGIN−ABOR
Tログ・レコードを書き込む(かつ、強制する)。
【0158】2.RMC130はRLMC140を呼び
出し、このトランザクション・インスタンスに対してD
MC110が書き込んだ各UNDOレコードを逆に読み
取るログを読み取る。
出し、このトランザクション・インスタンスに対してD
MC110が書き込んだ各UNDOレコードを逆に読み
取るログを読み取る。
【0159】3.RMC130は各DMC110ログ・
レコードに遭遇した場合に、UNDOログ・レコードに
対するDMC110ルーチンを呼び出す。
レコードに遭遇した場合に、UNDOログ・レコードに
対するDMC110ルーチンを呼び出す。
【0160】4.UNDOログ・レコードがもたらすD
MC110はこれがMQGETまたはMQPUT時に行
ったアクションを論理的に逆にする。
MC110はこれがMQGETまたはMQPUT時に行
ったアクションを論理的に逆にする。
【0161】a.インテント書込み設定によって、BU
FF Get Pageを呼び出す。
FF Get Pageを呼び出す。
【0162】b.該当する論理レコード(メッセージ)
を探し出す。
を探し出す。
【0163】c.メッセージ書出操作に対するUNDO
アクションはメッセージに削除済みとマークするもので
ある。
アクションはメッセージに削除済みとマークするもので
ある。
【0164】d.メッセージ取出操作に対するUNDO
アクションは削除マークを除去するものである。
アクションは削除マークを除去するものである。
【0165】e.DMC110はUNDOレコードから
REDO−ONLY「ログ・レコード補償」(CLR)
を構築し、RLMC140を呼び出して、これをログに
書き込む。メッセージ書出のUNDOに対するCLRは
REDOに関して処理された場合、メッセージを削除す
る。メッセージ取出のUNDOに対するCLRはRED
Oに関して処理された場合、削除マークを除去する。
REDO−ONLY「ログ・レコード補償」(CLR)
を構築し、RLMC140を呼び出して、これをログに
書き込む。メッセージ書出のUNDOに対するCLRは
REDOに関して処理された場合、メッセージを削除す
る。メッセージ取出のUNDOに対するCLRはRED
Oに関して処理された場合、削除マークを除去する。
【0166】f.CLRのアンドゥ−LSNフィールド
はこれが書き込まれたUNDOレコードの親をポイント
する。
はこれが書き込まれたUNDOレコードの親をポイント
する。
【0167】g.CLRのログ順序番号(LSN)はデ
ィスク・バッファのページ−LSNフィールドに格納さ
れる。
ィスク・バッファのページ−LSNフィールドに格納さ
れる。
【0168】h.DMC110はBUFFを呼び出し、
ページをリリースし、インテント書込みをリセットす
る。
ページをリリースし、インテント書込みをリセットす
る。
【0169】5.RMC130はUR関連ログ・レコー
ドの後方走査中にBIGIN−URレコードに出会う
と、RLMC140を呼び出して、「END−ABOR
T」ログ・レコードを書き込む。
ドの後方走査中にBIGIN−URレコードに出会う
と、RLMC140を呼び出して、「END−ABOR
T」ログ・レコードを書き込む。
【0170】6.RMC130は「アクティビティ範囲
の終り」を同報通信するためのDMC110を呼び出
す。
の終り」を同報通信するためのDMC110を呼び出
す。
【0171】7.DMC110はそのマーク付きメッセ
ージ・リストを空にする。(適用業務が出したバックア
ウトを処理した場合、マーク付きメッセージ・リストは
接続マネージャ90が保持している記憶域にコピーされ
る。)
ージ・リストを空にする。(適用業務が出したバックア
ウトを処理した場合、マーク付きメッセージ・リストは
接続マネージャ90が保持している記憶域にコピーされ
る。)
【0172】8.RMC130はロック・マネージャ1
50を呼び出して、すべてのコミット中ロックをリリー
スする。
50を呼び出して、すべてのコミット中ロックをリリー
スする。
【0173】9.ロック・マネージャ150はこのトラ
ンザクション・インスタンスが保持しているすべてのコ
ミット中ロックをリリースする(ただし、割振り中ロッ
クはリリースしない)。
ンザクション・インスタンスが保持しているすべてのコ
ミット中ロックをリリースする(ただし、割振り中ロッ
クはリリースしない)。
【0174】上記で詳述した方法の実施形態において、
マーク付きメッセージは適用業務が検出したエラー状態
に引き続いてバックアウトされ、ロックされているこれ
らが指定した除外操作が新しい作業単位で検索される。
適用業務は次いで、新しい作業単位をコミットし、以前
にマークのつけられたメッセージを待ち行列から除去さ
せることができる。要求プログラムに元の要求の最終結
果を通知する応答メッセージは、新しい作業単位に入れ
られ、新しい作業単位がコミットされたとき送られるこ
とが望ましい。
マーク付きメッセージは適用業務が検出したエラー状態
に引き続いてバックアウトされ、ロックされているこれ
らが指定した除外操作が新しい作業単位で検索される。
適用業務は次いで、新しい作業単位をコミットし、以前
にマークのつけられたメッセージを待ち行列から除去さ
せることができる。要求プログラムに元の要求の最終結
果を通知する応答メッセージは、新しい作業単位に入れ
られ、新しい作業単位がコミットされたとき送られるこ
とが望ましい。
【0175】他の実施形態において、除外操作はバック
アウトされないが、部分的に完了した作業単位として保
持される。この作業単位は次いで、保持された操作に付
加された新しい操作によって完了される。これら2つの
方法の実施形態の最終結果は類似しているが、前者の方
が実現が容易である。すべての資源更新をバックアウト
する場合、すべてのコミット中ロックのリリースは比較
的簡単に行うことができるが、リリースされるもの全部
または保持されるもの全部のいずれかに対してロック名
の付いたロック・マネージャ150を提供することは複
雑なものである。さらに、バックアウトされない操作を
新しい作業単位のログ・レコードに記録することは困難
である。
アウトされないが、部分的に完了した作業単位として保
持される。この作業単位は次いで、保持された操作に付
加された新しい操作によって完了される。これら2つの
方法の実施形態の最終結果は類似しているが、前者の方
が実現が容易である。すべての資源更新をバックアウト
する場合、すべてのコミット中ロックのリリースは比較
的簡単に行うことができるが、リリースされるもの全部
または保持されるもの全部のいずれかに対してロック名
の付いたロック・マネージャ150を提供することは複
雑なものである。さらに、バックアウトされない操作を
新しい作業単位のログ・レコードに記録することは困難
である。
【0176】上記で詳述した本発明の実施形態例が操作
要求の発行時のオプションとしてトランザクションの開
始したメッセージ待ち行列化操作のマーク付けを含んで
いるが、適用業務が出すバックアウト要求から除外され
るが、他のタイプのバックアウトに通常関与している資
源更新に本発明方法を適用でき、資源更新を除外するか
どうかの資源更新要求を出す時点でのみの決定に限定さ
れないことが、当分野の技術者には明らかであろう。
要求の発行時のオプションとしてトランザクションの開
始したメッセージ待ち行列化操作のマーク付けを含んで
いるが、適用業務が出すバックアウト要求から除外され
るが、他のタイプのバックアウトに通常関与している資
源更新に本発明方法を適用でき、資源更新を除外するか
どうかの資源更新要求を出す時点でのみの決定に限定さ
れないことが、当分野の技術者には明らかであろう。
【図1】メッセージ及び待ち行列化を使用して互いに通
信している2つの適用業務の略図である。
信している2つの適用業務の略図である。
【図2】本発明の実施例による、過ち許容トランザクシ
ョン指向データ処理システムの構成要素及びこれらの相
互関係の略図である。
ョン指向データ処理システムの構成要素及びこれらの相
互関係の略図である。
10 適用業務 20 適用業務 30 待ち行列 40 待ち行列 50 待ち行列マネージャ 60 待ち行列マネージャ 70 ネットワーク・リンク 75 回復ログ 76 回復ログ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・ディーベンドルフ イギリス ハンプシャー・エス・オー21 1エイ・ティー ウインチェスター イッ チェン・アバス メイン・ロード カート ランド(番地なし) (72)発明者 チャンドラセカーラン・モハン アメリカ合衆国95120 カリフォルニア州 サンノゼ ポーツウッド・ドライブ 727
Claims (22)
- 【請求項1】第1の適用業務が実行した資源更新がトラ
ンザクションの正常な完了時のみに他の適用業務に対し
て永続的で、かつ利用可能なものとされ、正常な完了前
にエラー状態を発見したときにバックアウトされるトラ
ンザクション指向データ処理方法において、 第1の作業単位の前記第1の適用業務による実行を開始
し、 前記第1の作業単位内の資源に対する操作をエラー状態
の発見後に適用業務が要求したバックアウトの結果から
除外するかどうかを指定し、 前記第1の適用業務によるエラー状態の検出に応じて、
前記第1の作業単位で行われる資源更新をバックアウト
するとともに、除外された資源を他の適用業務が利用で
きないようにし、 前記の除外された操作を含む作業単位を開始して、適用
業務による他の処理を可能とするステップからなる過ち
許容トランザクション指向データ処理方法。 - 【請求項2】前記の除外された資源が前記第1の適用業
務による該資源に対する割振り中ロックの取得によっ
て、他の適用業務に利用できないようにされる請求項1
に記載の方法。 - 【請求項3】バックアウト除外が指定された作業単位の
除外操作が適用業務の要求ではバックアウトされず、バ
ックアウト後に開始された前記作業単位がバックアウト
されない前記操作を含むように構成される請求項1に記
載の方法。 - 【請求項4】適用業務の要求したバックアウトの結果か
ら除外可能な操作がトランザクションの開始した操作に
含まれる請求項1に記載の方法。 - 【請求項5】適用業務の要求したバックアウトの結果か
ら除外可能な操作がトランザクションの開始した操作に
含まれる請求項2に記載の方法。 - 【請求項6】適用業務の要求したバックアウトの結果か
ら除外可能な操作がトランザクションの開始した操作に
含まれる請求項3に記載の方法。 - 【請求項7】適用業務の要求したバックアウトの結果か
ら除外される個々の操作要求またはトランザクション要
求にマークがつけられ、マークのつけられた該要求のリ
ストがトランザクション処理システムによる検査のため
に格納される請求項1に記載の方法。 - 【請求項8】適用業務の要求したバックアウトの結果か
ら除外される個々の操作要求またはトランザクション要
求にマークがつけられ、マークのつけられた該要求のリ
ストがトランザクション処理システムによる検査のため
に格納される請求項2に記載の方法。 - 【請求項9】適用業務の要求したバックアウトの結果か
ら除外される個々の操作要求またはトランザクション要
求にマークがつけられ、マークのつけられた該要求のリ
ストがトランザクション処理システムによる検査のため
に格納される請求項3に記載の方法。 - 【請求項10】適用業務の要求したバックアウトの結果
から除外される個々の操作要求またはトランザクション
要求にマークがつけられ、マークのつけられた該要求の
リストがトランザクション処理システムによる検査のた
めに格納される請求項4に記載の方法。 - 【請求項11】適用業務の要求したバックアウトの結果
から除外される個々の操作要求またはトランザクション
要求にマークがつけられ、マークのつけられた該要求の
リストがトランザクション処理システムによる検査のた
めに格納される請求項5に記載の方法。 - 【請求項12】適用業務の要求したバックアウトの結果
から除外される個々の操作要求またはトランザクション
要求にマークがつけられ、マークのつけられた該要求の
リストがトランザクション処理システムによる検査のた
めに格納される請求項6に記載の方法。 - 【請求項13】適用業務間のプログラム間連絡がメッセ
ージ待ち行列を使用して実行され、トランザクション要
求が待ち行列に送られたメッセージからなり、エラー状
態の検出に応じて適用業務の要求したバックアウトに引
き続いて開始された前記作業単位のコミットが、エラー
状態を生じたメッセージをメッセージ待ち行列から除去
する請求項4に記載の方法。 - 【請求項14】適用業務間のプログラム間連絡がメッセ
ージ待ち行列を使用して実行され、トランザクション要
求が待ち行列に送られたメッセージからなり、エラー状
態の検出に応じて適用業務の要求したバックアウトに引
き続いて開始された前記作業単位のコミットが、エラー
状態を生じたメッセージをメッセージ待ち行列から除去
する請求項5に記載の方法。 - 【請求項15】適用業務間のプログラム間連絡がメッセ
ージ待ち行列を使用して実行され、トランザクション要
求が待ち行列に送られたメッセージからなり、エラー状
態の検出に応じて適用業務の要求したバックアウトに引
き続いて開始された前記作業単位のコミットが、エラー
状態を生じたメッセージをメッセージ待ち行列から除去
する請求項6に記載の方法。 - 【請求項16】適用業務間のプログラム間連絡がメッセ
ージ待ち行列を使用して実行され、トランザクション要
求が待ち行列に送られたメッセージからなり、エラー状
態の検出に応じて適用業務の要求したバックアウトに引
き続いて開始された前記作業単位のコミットが、エラー
状態を生じたメッセージをメッセージ待ち行列から除去
する請求項7に記載の方法。 - 【請求項17】適用業務間のプログラム間連絡がメッセ
ージ待ち行列を使用して実行され、トランザクション要
求が待ち行列に送られたメッセージからなり、エラー状
態の検出に応じて適用業務の要求したバックアウトに引
き続いて開始された前記作業単位のコミットが、エラー
状態を生じたメッセージをメッセージ待ち行列から除去
する請求項8に記載の方法。 - 【請求項18】適用業務間のプログラム間連絡がメッセ
ージ待ち行列を使用して実行され、トランザクション要
求が待ち行列に送られたメッセージからなり、エラー状
態の検出に応じて適用業務の要求したバックアウトに引
き続いて開始された前記作業単位のコミットが、エラー
状態を生じたメッセージをメッセージ待ち行列から除去
する請求項9に記載の方法。 - 【請求項19】適用業務間のプログラム間連絡がメッセ
ージ待ち行列を使用して実行され、トランザクション要
求が待ち行列に送られたメッセージからなり、エラー状
態の検出に応じて適用業務の要求したバックアウトに引
き続いて開始された前記作業単位のコミットが、エラー
状態を生じたメッセージをメッセージ待ち行列から除去
する請求項10に記載の方法。 - 【請求項20】適用業務間のプログラム間連絡がメッセ
ージ待ち行列を使用して実行され、トランザクション要
求が待ち行列に送られたメッセージからなり、エラー状
態の検出に応じて適用業務の要求したバックアウトに引
き続いて開始された前記作業単位のコミットが、エラー
状態を生じたメッセージをメッセージ待ち行列から除去
する請求項11に記載の方法。 - 【請求項21】適用業務間のプログラム間連絡がメッセ
ージ待ち行列を使用して実行され、トランザクション要
求が待ち行列に送られたメッセージからなり、エラー状
態の検出に応じて適用業務の要求したバックアウトに引
き続いて開始された前記作業単位のコミットが、エラー
状態を生じたメッセージをメッセージ待ち行列から除去
する請求項12に記載の方法。 - 【請求項22】第1の適用業務が実行した資源更新がト
ランザクションの正常な完了時のみに他の適用業務に対
して永続的で、かつ利用可能なものとされ、正常な完了
前にエラー状態を発見したときにバックアウトされるト
ランザクション指向データ処理システムにおいて、 第1の作業単位内の操作をエラー状態の検出に引き続い
た適用業務の要求したバックアウトの結果から除外する
かどうかを指定する手段と、 前記第1の適用業務によるエラー状態の検出に応じて、
前記第1の作業単位内で行われる資源更新をバックアウ
トするとともに、除外された操作を他の適用業務に利用
できないようにする手段と、 前記の除外された操作を含んでいる作業単位を開始し、
適用業務による他の処理を可能とする手段とからなる過
ち許容トランザクション指向データ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9306649.6 | 1993-03-30 | ||
GB9306649A GB2276737A (en) | 1993-03-30 | 1993-03-30 | Fault-tolerant transaction-oriented data processing |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06301581A true JPH06301581A (ja) | 1994-10-28 |
Family
ID=10733034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6032358A Pending JPH06301581A (ja) | 1993-03-30 | 1994-03-02 | 過ち許容トランザクション指向データ処理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5465328A (ja) |
EP (1) | EP0618534A3 (ja) |
JP (1) | JPH06301581A (ja) |
GB (1) | GB2276737A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020031744A1 (ja) * | 2018-08-09 | 2020-02-13 | 日本電信電話株式会社 | 原子性保証装置および原子性保証方法 |
Families Citing this family (155)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05173988A (ja) * | 1991-12-26 | 1993-07-13 | Toshiba Corp | 分散処理方式および該分散処理に適用されるトランザクション処理方式 |
EP0694838A1 (en) * | 1994-07-25 | 1996-01-31 | International Business Machines Corporation | Step level recovery |
JP3593366B2 (ja) * | 1994-09-19 | 2004-11-24 | 株式会社日立製作所 | デ−タベ−ス管理方法 |
JP3441807B2 (ja) * | 1994-09-19 | 2003-09-02 | 株式会社日立製作所 | B木インデクスの管理方法およびシステム |
FR2727222B1 (fr) * | 1994-11-21 | 1996-12-27 | Cit Alcatel | Protocole transactionnel, et systeme pour la mise en oeuvre de ce protocole |
IE74214B1 (en) * | 1995-02-01 | 1997-07-16 | Darragh Fanning | Error prevention in computer systems |
US6052695A (en) * | 1995-02-28 | 2000-04-18 | Ntt Data Communications Systems Corporation | Accurate completion of transaction in cooperative type distributed system and recovery procedure for same |
JP3647512B2 (ja) * | 1995-08-04 | 2005-05-11 | 富士通株式会社 | 広域ワークフローシステムの保守方式 |
GB2313524A (en) * | 1996-05-24 | 1997-11-26 | Ibm | Providing communications links in a computer network |
EP1015973A4 (en) * | 1996-11-14 | 2002-09-25 | Mitsubishi Electric Inf Tech | LOGGING DATA ARCHITECTURE FOR TRANSACTIONAL SYSTEM FOR MANAGING MESSAGE WAITING WIRES |
US6353834B1 (en) * | 1996-11-14 | 2002-03-05 | Mitsubishi Electric Research Laboratories, Inc. | Log based data architecture for a transactional message queuing system |
US7716096B2 (en) * | 1996-11-27 | 2010-05-11 | Diebold Self-Service Systems A Division Of Diebold, Incorporated | Application service provider and automated transaction machine system and method |
GB2320112B (en) * | 1996-12-07 | 2001-07-25 | Ibm | High-availability computer server system |
US5845292A (en) * | 1996-12-16 | 1998-12-01 | Lucent Technologies Inc. | System and method for restoring a distributed checkpointed database |
US5864849A (en) * | 1996-12-16 | 1999-01-26 | Lucent Technologies Inc. | System and method for restoring a multiple checkpointed database in view of loss of volatile memory |
US5974425A (en) * | 1996-12-17 | 1999-10-26 | Oracle Corporation | Method and apparatus for reapplying changes to a database |
US5832516A (en) * | 1997-01-21 | 1998-11-03 | Oracle Corporation | Caching data in recoverable objects |
US5924095A (en) * | 1997-02-05 | 1999-07-13 | Oracle Corporation | Processing distributed transactions in heterogeneous computing environments using two-phase commit |
EP1018074A4 (en) * | 1997-03-13 | 2002-02-06 | Mark M Whitney | SYSTEM AND METHOD FOR DISCHARGING NETWORK TRANSACTIONS FROM A CENTRAL COMPUTER TO AN INTELLIGENT INPUT / OUTPUT DEVICE, INCLUDING DISCHARGE MESSAGE DEVICES |
US5940839A (en) * | 1997-04-04 | 1999-08-17 | Hewlett-Packard Company | Fault-tolerant system and method of managing transaction failures in hierarchies |
JP3778652B2 (ja) * | 1997-04-18 | 2006-05-24 | 株式会社日立製作所 | ログデータ収集管理方法及びその装置 |
GB2328042B (en) * | 1997-07-26 | 2002-10-09 | Ibm | Smartcard transaction processing |
GB2329986B (en) * | 1997-10-04 | 2002-07-10 | Ibm | Method, apparatus and computer program product for eliminating expired messages from a queue in a data processing system |
US6442533B1 (en) | 1997-10-29 | 2002-08-27 | William H. Hinkle | Multi-processing financial transaction processing system |
US6161198A (en) * | 1997-12-23 | 2000-12-12 | Unisys Corporation | System for providing transaction indivisibility in a transaction processing system upon recovery from a host processor failure by monitoring source message sequencing |
US6173292B1 (en) | 1998-03-04 | 2001-01-09 | International Business Machines Corporation | Data recovery in a transactional database using write-ahead logging and file caching |
US6446206B1 (en) | 1998-04-01 | 2002-09-03 | Microsoft Corporation | Method and system for access control of a message queue |
US6529932B1 (en) | 1998-04-01 | 2003-03-04 | Microsoft Corporation | Method and system for distributed transaction processing with asynchronous message delivery |
US6205498B1 (en) | 1998-04-01 | 2001-03-20 | Microsoft Corporation | Method and system for message transfer session management |
US6678726B1 (en) * | 1998-04-02 | 2004-01-13 | Microsoft Corporation | Method and apparatus for automatically determining topology information for a computer within a message queuing network |
US6202067B1 (en) * | 1998-04-07 | 2001-03-13 | Lucent Technologies, Inc. | Method and apparatus for correct and complete transactions in a fault tolerant distributed database system |
GB2336449A (en) * | 1998-04-14 | 1999-10-20 | Ibm | A server selection method in an asynchronous client-server computer system |
US6131094A (en) * | 1998-04-24 | 2000-10-10 | Unisys Corp. | Method for performing asynchronous writes to database logs using multiple insertion points |
US6101504A (en) * | 1998-04-24 | 2000-08-08 | Unisys Corp. | Method for reducing semaphore contention during a wait to transfer log buffers to persistent storage when performing asynchronous writes to database logs using multiple insertion points |
US6848108B1 (en) * | 1998-06-30 | 2005-01-25 | Microsoft Corporation | Method and apparatus for creating, sending, and using self-descriptive objects as messages over a message queuing network |
US6202089B1 (en) | 1998-06-30 | 2001-03-13 | Microsoft Corporation | Method for configuring at runtime, identifying and using a plurality of remote procedure call endpoints on a single server process |
US6275912B1 (en) | 1998-06-30 | 2001-08-14 | Microsoft Corporation | Method and system for storing data items to a storage device |
US6286110B1 (en) * | 1998-07-30 | 2001-09-04 | Compaq Computer Corporation | Fault-tolerant transaction processing in a distributed system using explicit resource information for fault determination |
US6269460B1 (en) * | 1998-09-01 | 2001-07-31 | International Business Machines Corporation | Dynamic enhancement of error condition handling and displayed error messages in computer operations |
US7065540B2 (en) * | 1998-11-24 | 2006-06-20 | Oracle International Corporation | Managing checkpoint queues in a multiple node system |
JP4094752B2 (ja) * | 1998-11-27 | 2008-06-04 | 株式会社日立製作所 | トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体 |
US6430598B1 (en) * | 1999-01-29 | 2002-08-06 | International Business Machines Corporation | Method and system for deleting messages from a server |
US6411981B1 (en) | 1999-03-12 | 2002-06-25 | Compaq Computer Corporation | Method and apparatus for conducting a transaction between homogeneous and/or heterogeneous transaction processing systems using asynchronous pull of a transaction transfer |
US6801938B1 (en) * | 1999-06-18 | 2004-10-05 | Torrent Systems, Inc. | Segmentation and processing of continuous data streams using transactional semantics |
US6446218B1 (en) | 1999-06-30 | 2002-09-03 | B-Hub, Inc. | Techniques for maintaining fault tolerance for software programs in a clustered computer system |
US6738775B2 (en) * | 1999-11-30 | 2004-05-18 | Base One International Corp. | Database communication system and method for communicating with a database |
GB2359386B (en) * | 2000-02-16 | 2004-08-04 | Data Connection Ltd | Replicated control block handles for fault-tolerant computer systems |
US6687851B1 (en) | 2000-04-13 | 2004-02-03 | Stratus Technologies Bermuda Ltd. | Method and system for upgrading fault-tolerant systems |
US6820213B1 (en) | 2000-04-13 | 2004-11-16 | Stratus Technologies Bermuda, Ltd. | Fault-tolerant computer system with voter delay buffer |
US6802022B1 (en) | 2000-04-14 | 2004-10-05 | Stratus Technologies Bermuda Ltd. | Maintenance of consistent, redundant mass storage images |
US6901481B2 (en) | 2000-04-14 | 2005-05-31 | Stratus Technologies Bermuda Ltd. | Method and apparatus for storing transactional information in persistent memory |
US6862689B2 (en) | 2001-04-12 | 2005-03-01 | Stratus Technologies Bermuda Ltd. | Method and apparatus for managing session information |
WO2002041149A2 (en) * | 2000-10-27 | 2002-05-23 | Eternal Systems, Inc. | Fault tolerance for computer programs that operate over a communication network |
US6665814B2 (en) * | 2000-11-29 | 2003-12-16 | International Business Machines Corporation | Method and apparatus for providing serialization support for a computer system |
US7089564B2 (en) * | 2001-02-22 | 2006-08-08 | International Business Machines Corporation | High-performance memory queue |
US6766413B2 (en) | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
US6874102B2 (en) | 2001-03-05 | 2005-03-29 | Stratus Technologies Bermuda Ltd. | Coordinated recalibration of high bandwidth memories in a multiprocessor computer |
US6804798B2 (en) * | 2001-03-30 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | System and method for setting new values for configuration parameters on a device |
US6816873B2 (en) * | 2001-05-15 | 2004-11-09 | International Business Machines Corporation | Method for managing distributed savepoints across multiple DBMS's within a distributed transaction |
US7454751B2 (en) * | 2001-06-07 | 2008-11-18 | Intel Corporation | Fault-tolerant system and methods with trusted message acknowledgement |
US7412520B2 (en) | 2001-06-07 | 2008-08-12 | Intel Corporation | Systems and methods for recoverable workflow |
US6944615B2 (en) * | 2001-06-28 | 2005-09-13 | International Business Machines Corporation | System and method for avoiding deadlock situations due to pseudo-deleted entries |
US20030004970A1 (en) * | 2001-06-28 | 2003-01-02 | Watts Julie Ann | Method for releasing update locks on rollback to savepoint |
US7499924B2 (en) * | 2001-06-28 | 2009-03-03 | International Business Machines Corporation | Method for releasing update locks on rollback to savepoint |
GB2378536B (en) * | 2001-08-09 | 2005-12-21 | Ibm | A method of logging message activity |
US20030037102A1 (en) * | 2001-08-14 | 2003-02-20 | Philippe Eckert | Message broker |
US7068604B2 (en) * | 2001-08-23 | 2006-06-27 | International Business Machines Corporation | Managing memory resident queues to control resources of the systems using the queues |
US6901533B2 (en) * | 2001-08-23 | 2005-05-31 | International Business Machines Corporation | Reconstructing memory residents queues of an inactive processor |
KR20030056540A (ko) * | 2001-12-28 | 2003-07-04 | 한국전자통신연구원 | 데이터베이스 관리 시스템에서 시스템 고장에 대비한 파일삭제 및 회복 방법 |
GB0211179D0 (en) * | 2002-05-16 | 2002-06-26 | Ibm | A method,apparatus and computer program for reducing the amount of data checkpointed |
GB0212100D0 (en) * | 2002-05-27 | 2002-07-03 | Ibm | Method apparatus system and computer program for reducing I/O in a messaging environment |
US7185033B2 (en) | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory |
US7181482B2 (en) * | 2002-08-01 | 2007-02-20 | Oracle International Corporation | Buffered message queue architecture for database management systems |
US7185034B2 (en) * | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with guaranteed at least once delivery |
US7203706B2 (en) * | 2002-08-01 | 2007-04-10 | Oracle International Corporation | Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue |
US7606560B2 (en) | 2002-08-08 | 2009-10-20 | Fujitsu Limited | Authentication services using mobile device |
US7784684B2 (en) * | 2002-08-08 | 2010-08-31 | Fujitsu Limited | Wireless computer wallet for physical point of sale (POS) transactions |
US7353382B2 (en) * | 2002-08-08 | 2008-04-01 | Fujitsu Limited | Security framework and protocol for universal pervasive transactions |
US7349871B2 (en) * | 2002-08-08 | 2008-03-25 | Fujitsu Limited | Methods for purchasing of goods and services |
US7822688B2 (en) | 2002-08-08 | 2010-10-26 | Fujitsu Limited | Wireless wallet |
US7801826B2 (en) * | 2002-08-08 | 2010-09-21 | Fujitsu Limited | Framework and system for purchasing of goods and services |
US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7376957B1 (en) * | 2002-12-16 | 2008-05-20 | At&T Delaware Intellectual Property, Inc. | Method and system for recovering stranded outbound messages |
GB0308264D0 (en) * | 2003-04-10 | 2003-05-14 | Ibm | Recovery from failures within data processing systems |
US7181476B2 (en) | 2003-04-30 | 2007-02-20 | Oracle International Corporation | Flashback database |
US7047379B2 (en) * | 2003-07-11 | 2006-05-16 | International Business Machines Corporation | Autonomic link optimization through elimination of unnecessary transfers |
US8365193B2 (en) | 2003-08-14 | 2013-01-29 | Oracle International Corporation | Recoverable asynchronous message driven processing in a multi-node system |
US20050066235A1 (en) * | 2003-09-24 | 2005-03-24 | International Business Machines Corporation | Automated fault finding in repository management program code |
GB0324961D0 (en) * | 2003-10-25 | 2003-11-26 | Ibm | Invocation of a follow on unit of work |
US7296273B2 (en) * | 2003-12-04 | 2007-11-13 | International Business Machines Corporation | System, method and program tool to reset an application |
US7877605B2 (en) | 2004-02-06 | 2011-01-25 | Fujitsu Limited | Opinion registering application for a universal pervasive transaction framework |
EP2341431A1 (en) * | 2004-03-13 | 2011-07-06 | Adaptive Computing Enterprises, Inc. | System and method of providing a self-optimizing reservation in space of compute resources |
US7870426B2 (en) * | 2004-04-14 | 2011-01-11 | International Business Machines Corporation | Apparatus, system, and method for transactional peer recovery in a data sharing clustering computer system |
US7281153B2 (en) * | 2004-04-14 | 2007-10-09 | International Business Machines Corporation | Apparatus, system, and method for transactional peer recovery in a data sharing clustering computer system |
US7644050B2 (en) * | 2004-12-02 | 2010-01-05 | International Business Machines Corporation | Method and apparatus for annotation-based behavior extensions |
US20050269400A1 (en) * | 2004-06-02 | 2005-12-08 | Proton World International N.V. | Checking of the atomicity of commands executed by a microprocessor |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
WO2006053093A2 (en) | 2004-11-08 | 2006-05-18 | Cluster Resources, Inc. | System and method of providing system jobs within a compute environment |
GB0426847D0 (en) * | 2004-12-08 | 2005-01-12 | Ibm | Method and system of committing operations of a synchronised transaction |
US7716260B2 (en) * | 2004-12-16 | 2010-05-11 | Oracle International Corporation | Techniques for transaction semantics for a database server performing file operations |
US7496787B2 (en) * | 2004-12-27 | 2009-02-24 | Stratus Technologies Bermuda Ltd. | Systems and methods for checkpointing |
US7779418B2 (en) * | 2004-12-30 | 2010-08-17 | Oracle International Corporation | Publisher flow control and bounded guaranteed delivery for message queues |
US7818386B2 (en) * | 2004-12-30 | 2010-10-19 | Oracle International Corporation | Repeatable message streams for message queues in distributed systems |
US7617180B1 (en) * | 2005-06-06 | 2009-11-10 | Infoblox Inc. | Efficient lock management |
US8301750B2 (en) * | 2005-06-10 | 2012-10-30 | International Business Machines Corporation | Apparatus, system, and method for facilitating communication between an enterprise information system and a client |
US7809675B2 (en) * | 2005-06-29 | 2010-10-05 | Oracle International Corporation | Sharing state information among a plurality of file operation servers |
US20070028144A1 (en) * | 2005-07-29 | 2007-02-01 | Stratus Technologies Bermuda Ltd. | Systems and methods for checkpointing |
US20070038891A1 (en) * | 2005-08-12 | 2007-02-15 | Stratus Technologies Bermuda Ltd. | Hardware checkpointing system |
US8196150B2 (en) * | 2005-10-07 | 2012-06-05 | Oracle International Corporation | Event locality using queue services |
US7680793B2 (en) * | 2005-10-07 | 2010-03-16 | Oracle International Corporation | Commit-time ordered message queue supporting arbitrary read and dequeue patterns from multiple subscribers |
US7882503B2 (en) | 2005-11-17 | 2011-02-01 | Oracle International Corporation | Production redeployment |
US7788660B2 (en) * | 2005-11-17 | 2010-08-31 | Bea Systems, Inc. | Resource adapter classloading |
US7496705B2 (en) * | 2005-11-17 | 2009-02-24 | Bea Systems, Inc. | Method and computer readable medium for suspended state resource adapter |
US7996837B2 (en) * | 2006-05-03 | 2011-08-09 | Oracle International Corporation | Recovery mechanism for transactions |
GB0615558D0 (en) * | 2006-08-05 | 2006-09-13 | Ibm | Method of modifying a queue manager to support smart aliasing |
US20080082761A1 (en) * | 2006-09-29 | 2008-04-03 | Eric Nels Herness | Generic locking service for business integration |
US7921075B2 (en) * | 2006-09-29 | 2011-04-05 | International Business Machines Corporation | Generic sequencing service for business integration |
US9274857B2 (en) | 2006-10-13 | 2016-03-01 | International Business Machines Corporation | Method and system for detecting work completion in loosely coupled components |
US9514201B2 (en) * | 2006-10-13 | 2016-12-06 | International Business Machines Corporation | Method and system for non-intrusive event sequencing |
GB0623237D0 (en) * | 2006-11-22 | 2007-01-03 | Ibm | Issuing syncpoints during execution of a batch application |
US9027025B2 (en) | 2007-04-17 | 2015-05-05 | Oracle International Corporation | Real-time database exception monitoring tool using instance eviction data |
US7774646B2 (en) * | 2007-07-23 | 2010-08-10 | Netapp, Inc. | Surviving storage system takeover by replaying operations in an operations log mirror |
US9021503B2 (en) * | 2007-11-16 | 2015-04-28 | Microsoft Technology Licensing, Llc | Coordinating application state and communication medium state |
US8719841B2 (en) * | 2007-11-16 | 2014-05-06 | Microsoft Corporation | Dispatch mechanism for coordinating application and communication medium state |
US8505030B2 (en) * | 2007-11-16 | 2013-08-06 | Microsoft Corporation | Coordinating resources using a volatile network intermediary |
US7904481B1 (en) * | 2008-01-10 | 2011-03-08 | Verint Systems Inc. | Workforce management system |
US7966298B2 (en) * | 2008-04-30 | 2011-06-21 | Unisys Corporation | Record-level locking and page-level recovery in a database management system |
US9418005B2 (en) | 2008-07-15 | 2016-08-16 | International Business Machines Corporation | Managing garbage collection in a data processing system |
US20100017583A1 (en) * | 2008-07-15 | 2010-01-21 | International Business Machines Corporation | Call Stack Sampling for a Multi-Processor System |
US8260707B2 (en) * | 2008-07-15 | 2012-09-04 | Bank Of America Corporation | Automated teller machine transaction queue |
US9542431B2 (en) * | 2008-10-24 | 2017-01-10 | Microsoft Technology Licensing, Llc | Cyclic commit transaction protocol |
US9128895B2 (en) | 2009-02-19 | 2015-09-08 | Oracle International Corporation | Intelligent flood control management |
US8301706B2 (en) | 2009-06-15 | 2012-10-30 | Microsoft Corporation | Routing of pooled messages via an intermediary |
US8510334B2 (en) | 2009-11-05 | 2013-08-13 | Oracle International Corporation | Lock manager on disk |
US9165086B2 (en) | 2010-01-20 | 2015-10-20 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
US8549538B2 (en) | 2010-03-18 | 2013-10-01 | Microsoft Corporation | Coordinating communication medium state for subtasks |
US8250234B2 (en) | 2010-04-26 | 2012-08-21 | Microsoft Corporation | Hierarchically disassembling messages |
US9176783B2 (en) | 2010-05-24 | 2015-11-03 | International Business Machines Corporation | Idle transitions sampling with execution context |
US8843684B2 (en) | 2010-06-11 | 2014-09-23 | International Business Machines Corporation | Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration |
US9092576B2 (en) * | 2010-06-25 | 2015-07-28 | International Business Machines Corporation | Non-intrusive measurement of content quality using dry runs with roll-back |
US8706619B1 (en) * | 2010-06-25 | 2014-04-22 | Amazon Technologies, Inc. | Employing spillover tables for data updates |
US8799872B2 (en) | 2010-06-27 | 2014-08-05 | International Business Machines Corporation | Sampling with sample pacing |
DE112011102242T5 (de) * | 2010-07-02 | 2013-04-25 | International Business Machines Corporation | Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit |
US8458530B2 (en) | 2010-09-21 | 2013-06-04 | Oracle International Corporation | Continuous system health indicator for managing computer system alerts |
US8799904B2 (en) | 2011-01-21 | 2014-08-05 | International Business Machines Corporation | Scalable system call stack sampling |
US10127259B2 (en) * | 2011-09-29 | 2018-11-13 | Oracle International Corporation | System and method for database persistence of transaction logs |
US9251002B2 (en) | 2013-01-15 | 2016-02-02 | Stratus Technologies Bermuda Ltd. | System and method for writing checkpointing data |
US9436561B2 (en) | 2013-03-28 | 2016-09-06 | Microsoft Technology Licensing, Llc | Recovery processing using torn write detection |
WO2015102875A1 (en) | 2013-12-30 | 2015-07-09 | Stratus Technologies Bermuda Ltd. | Checkpointing systems and methods of using data forwarding |
WO2015102873A2 (en) | 2013-12-30 | 2015-07-09 | Stratus Technologies Bermuda Ltd. | Dynamic checkpointing systems and methods |
ES2652262T3 (es) | 2013-12-30 | 2018-02-01 | Stratus Technologies Bermuda Ltd. | Método de retardar puntos de comprobación inspeccionando paquetes de red |
US10684994B2 (en) * | 2015-09-25 | 2020-06-16 | Netapp Inc. | Data synchronization |
US10540217B2 (en) | 2016-09-16 | 2020-01-21 | Oracle International Corporation | Message cache sizing |
US9858151B1 (en) | 2016-10-03 | 2018-01-02 | International Business Machines Corporation | Replaying processing of a restarted application |
US11580542B2 (en) * | 2020-03-30 | 2023-02-14 | Dwolla, Inc. | Distributed database stored at an edge application |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0448349A (ja) * | 1990-06-18 | 1992-02-18 | Nec Corp | 更新前イメージ出力方式 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63307551A (ja) * | 1987-06-08 | 1988-12-15 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 先書きロギング型のトランザクシヨン向けシステム中のロールバツク方法 |
US4945474A (en) * | 1988-04-08 | 1990-07-31 | Internatinal Business Machines Corporation | Method for restoring a database after I/O error employing write-ahead logging protocols |
DE68927705T2 (de) * | 1989-06-13 | 1997-07-17 | Ibm | Verfahren zum Entfernen unbestätigter Änderungen an gespeicherten Daten durch ein Datenbankverwaltungssystem |
US5319773A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Asynchronous resynchronization of a commit procedure |
US5261089A (en) * | 1990-05-16 | 1993-11-09 | International Business Machines Corporation | Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary |
US5333303A (en) * | 1991-03-28 | 1994-07-26 | International Business Machines Corporation | Method for providing data availability in a transaction-oriented system during restart after a failure |
US5258982A (en) * | 1991-05-07 | 1993-11-02 | International Business Machines Corporation | Method of excluding inactive nodes from two-phase commit operations in a distributed transaction processing system |
-
1993
- 1993-03-30 GB GB9306649A patent/GB2276737A/en not_active Withdrawn
-
1994
- 1994-01-14 US US08/181,521 patent/US5465328A/en not_active Expired - Fee Related
- 1994-03-02 JP JP6032358A patent/JPH06301581A/ja active Pending
- 1994-03-29 EP EP94302238A patent/EP0618534A3/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0448349A (ja) * | 1990-06-18 | 1992-02-18 | Nec Corp | 更新前イメージ出力方式 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020031744A1 (ja) * | 2018-08-09 | 2020-02-13 | 日本電信電話株式会社 | 原子性保証装置および原子性保証方法 |
JP2020027308A (ja) * | 2018-08-09 | 2020-02-20 | 日本電信電話株式会社 | 原子性保証装置および原子性保証方法 |
US11995482B2 (en) | 2018-08-09 | 2024-05-28 | Nippon Telegraph And Telephone Corporation | Atomicity assurance device and atomicity assurance method |
Also Published As
Publication number | Publication date |
---|---|
EP0618534A3 (en) | 1995-09-06 |
GB9306649D0 (en) | 1993-05-26 |
EP0618534A2 (en) | 1994-10-05 |
US5465328A (en) | 1995-11-07 |
GB2276737A (en) | 1994-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH06301581A (ja) | 過ち許容トランザクション指向データ処理 | |
JP2644188B2 (ja) | フォールト・トレラント・トランザクション指向データ処理システムおよび方法 | |
US5151987A (en) | Recovery objects in an object oriented computing environment | |
US6665814B2 (en) | Method and apparatus for providing serialization support for a computer system | |
US5261069A (en) | Method of maintaining consistency of cached data in a database system | |
US6618736B1 (en) | Template-based creation and archival of file systems | |
EP1341088B1 (en) | Rebuilding "in-doubt" states reliably after multiple system failures in a transaction processing system | |
GB2311391A (en) | Restart and recovery of OMG compliant transaction systems | |
US6018746A (en) | System and method for managing recovery information in a transaction processing system | |
US7543181B2 (en) | Recovery from failures within data processing systems | |
US6799188B2 (en) | Transaction processing system providing improved methodology for two-phase commit decision | |
US9767135B2 (en) | Data processing system and method of handling requests | |
US6101588A (en) | Device level busy arrangement for mass storage subsystem including a plurality of devices | |
US6061708A (en) | System and method for supporting mixed-phase transactions in an object-oriented environment | |
US7991971B2 (en) | State management for transactional backup consistency | |
GB2201270A (en) | Intersystem data base sharing system journal merge method and apparatus | |
JPH1069418A (ja) | 階層化トランザクション処理方法 | |
US6389431B1 (en) | Message-efficient client transparency system and method therefor | |
WO1993018454A1 (en) | Distributed transaction processing system | |
US6865741B1 (en) | Determining completion of transactions processing in a dynamically changing network | |
US7284018B1 (en) | Logless transaction coordination | |
JPH10232809A (ja) | トランザクション処理システム | |
US6539434B1 (en) | UOWE's retry process in shared queues environment | |
Frank | Atomicity implementation in mobile computing | |
Gupta | HP Encina/9000: Middleware for Constructing Transaction Processing Applications |