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
Application number
JP6032358A
Other languages
English (en)
Inventor
Dievendorff Richard
リチャード・ディーベンドルフ
Chandrasekaran Mohan
チャンドラセカーラン・モハン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06301581A publication Critical patent/JPH06301581A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • 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つの処理(す
なわち、適用業務内の論理物を構成する、処理の離散し
た単位の実行)がトランザクションである。
【0003】ほとんどの適用業務指向プログラムは何ら
かの形態のコンピュータ・システム機構(プロセッサ、
データベース、ファイル、待ち行列、入出力装置、他の
適用業務などの機構)にアクセスする必要がある。これ
らの機構は一般に資源といわれている。これらの資源を
制御するシステム・ソフトウェアは一般に資源マネージ
ャといわれている。共通した処理要件は調和した一連の
変更を2つ以上の資源に行い、変更のすべてが実施さ
れ、資源が異なる一貫した状態に移動するか、あるいは
これらのいずれもが生じないかのいずれかとなるように
できることである。ユーザはこれら2つの考えられる結
果のうちいずれが実際の結果であるかを知っている必要
がある。同一のシステムに保持されているある口座から
他の口座への送金を遂行する財務適用業務の例において
は、単一のプロセッサによって遂行される2つの基本操
作、すなわち、一方の口座の借方勘定と他の口座の貸方
勘定がある。通常、操作は両方とも正常に行われるが、
一方が障害を起こすと、他方も実施できなくなるはずで
ある。すなわち、データの保全性が失われる。障害は作
動上の理由、たとえば、システムの一部が一次的に利用
できなくなったことによるものである場合がある。ある
いは、送金側の口座の資金が不十分なためであることが
あり、この場合、適切な応答がトランザクションの要求
者に返されなければならない。
【0004】回復可能な資源の一貫した状態を他の一貫
した状態へ変換する(必ずしも、すべての中間点におけ
る一貫性を保存する必要なしに)関連操作のシーケンス
は「作業単位」といわれる。トランザクション処理は共
用データにアクセスし、更新する離散した作業単位を管
理することである。全体として達成されるか、あるいは
まったく達成されないトランザクションの特徴を、「ア
トム性」と呼ぶ。データの保全性を維持するために重要
なトランザクション処理のもう1つの特徴は一貫性であ
る。すなわち、トランザクションの結果は所与のセット
の条件に対して再現可能で、かつ予測可能でなければな
らず、またその目標に正常に到達するトランザクション
は、定義上、適法な結果だけを含んでいなければならな
い。
【0005】トランザクションのアトム性を確保する周
知の方法は、更新を正常に完了できることを確認してか
らだけ、トランザクション内のファイル更新の実行を開
始することである。ATMの預金引出しの例では、トラ
ンザクションでアクセスされるレコードの各々で充分な
資金が得られることが確認されるまで、ATMの現金残
高あるいは顧客の口座残高のいずれのレコードに対する
更新も行われない。この解決策の見かけの単純さにはか
かわりなく、資源の更新を行う前に検査が常に遂行でき
るとは限らない。トランザクションが正常に完了するか
否かに関する事前テストが処理に受け入れることのでき
ない遅延を必然的に引き起こす多くの状況がある。たと
えば、特に、テストの開始とそれに引き続いた更新の間
に資源をロックしなければならない(すなわち、他の適
用業務による更新アクセスを阻止しなければならない)
ため、一時未決にしておけるトランザクション開始要求
が1つだけであるファイル・システムの場合である。
【0006】過ち許容トランザクション処理システムに
提供される他の解決策は、トランザクションが正常に完
了できるか否かに関する事前チェックを行わずに、資源
更新を行うが、トランザクションが正常に完了した場合
にのみ、資源の更新を永続的なものとし、他の適用業務
が利用できるようにするものである。適用業務はトラン
ザクションの正常な完了時にコミット操作を行い、すべ
ての更新を確認する。トランザクションが正常に完了し
なかった場合には、部分的な実行中に資源に対して行わ
れたすべての変更が除去される。トランザクションはバ
ックアウト(同義的に、ロールバックともいう)された
といわれ、変更が当初行われた時間的な順序と逆に変更
を除去することによって、トランザクションを開始する
前に存在していた一貫した状態に資源を復元する。この
逆方向回復機能は、事前テストを行わずに資源更新を適
用するシステムにおける変更のコミットに対する制御の
必須部分である。
【0007】コミット手順は資源マネージャが1つだけ
関与している場合には、単一フェーズの手順である。ト
ランザクション・マネージャはトランザクションによっ
て行われたすべての変更をコミットするよう、資源マネ
ージャに伝えるだけである。2つ以上のデータ資源マネ
ージャが単一のトランザクションに関与している場合に
は、トランザクション処理システムはより複雑なコミッ
トメント管理プロセス、すなわちシステムが各資源マネ
ージャに、コミットの準備を行うことを要求し、各資源
マネージャが準備完了を連絡した場合には、各々にコミ
ットを要求する2フェーズ・コミット手順を必要とす
る。コミットできないといずれかのマネージャが伝えた
場合、トランザクション処理システムはこれらの各々に
バックアウトをするように要求する。
【0008】いくつかの現在稼動しているトランザクシ
ョンが単一のデータ資源マネージャによって制御されて
いる異なるレコードを更新できることがしばしばある。
データ資源マネージャは共用の効果的な手段をサポート
しなければならず、同時に、2つのトランザクションが
同一のレコードを同時に更新するのを防止しなければな
らない(トランザクションがレコードの更新を終了して
からでなければ、他のトランザクションがこのレコード
を更新することはできない)。このような並行性管理を
達成するためにもっとも一般に使用されている方法はロ
ックであって、この場合、所与の資源(たとえば、メッ
セージまたはファイル内のレコード)が一時に1つのト
ランザクション・インスタンスに予約される。資源が更
新される前に、コミット中ロックがその資源について取
得される。作業単位が完了するまで、他のトランザクシ
ョンがこのロックされた資源にアクセスすることはでき
ない。一般に、コミット中ロックは作業単位の終わり
に、コミットまたはバックアウト操作としてリリースさ
れる。
【0009】ロック・サービスは割振り中ロックないし
「長期」ロックももたらす。長期ロックは明示的にリリ
ースされるか、リクエスタが終了するまで保持され、複
数の作業単位にわたることができる。トランザクション
・インスタンスはコミット中ロック及び割振り中ロック
を同一のロック名で保持することができる。このような
状況において、このロックが他のトランザクションに利
用できるようになるのは、保持側がロックのコミット中
及び割振り中両方での使用をリリースした場合だけであ
る。
【0010】ロックされる一連の資源が、階層に編成さ
れていることが知られている。階層の各レベルにはノー
ド・タイプが与えられ、これはそのタイプのすべてのノ
ード・インスタンスに対する総称である。ロック階層の
サンプルは次のように表すことができる。
【0011】データベースはその直接の子孫としてエリ
ア・ノードを有しており、各エリア・ノードはその直接
の子孫としてファイル・ノードを有しており、各ファイ
ルはその直接の子孫としてレコード・ノードを有してい
る。各ノードは固有の親を有している。
【0012】階層の各ノードはロックできる。特定のノ
ードに対する排他(X)アクセスが要求され、要求が認
められた場合、リクエスタはそのノード、及び暗黙でそ
の子孫の各々に対する排他アクセスを有する。特定のノ
ードに対する共有(S)アクセスの要求が行われた場
合、要求の許可はリクエスタに、そのノード、及び必然
的にその子孫の各々に対する共用アクセスを与える。そ
れ故、これら2つのアクセス・モードは要求ノードをル
ートとする階層のサブツリーをロックする。
【0013】共用モードまたは排他モードの第1のノー
ドをルートとするサブツリーをロックするためには、第
1のノード及びその子孫を非互換モードで必然的にロッ
クする第1のノードの親元のロックを防止することが重
要である。このため、インテンション・アクセス(I)
モードが導入された。インテンション・モードは共用モ
ードまたは排他モードでロックするノードのすべての親
元をロックするために使用される。ISまたはIXロッ
クはロックが低いレベルで行われており、これによって
これらの必然的または明示的な排他または共用ロックが
親元に必要なことを通知する。
【0014】第1のノードをルートとするサブツリーを
排他(X)モードでロックするプロトコルは、まず第1
のノードのすべての親元をインテンション排他(IX)
モードでロックし、次いで第1のノードを排他(X)モ
ードでロックする。たとえば、待ち行列が「ページ」と
いうディスク・ブロックに編成されたメッセージを含ん
でいるメッセージ待ち行列化プログラム間連絡システム
において、特定のメッセージを排他的に(X)ロックす
るためには、まず待ち行列でインテンション排他(I
X)ロックを取得し、次いでメッセージを含んでいるペ
ージでIXロックを取得し、その後メッセージ自体に排
他(X)ロックを取得しなければならない。
【0015】すべてのメッセージング及び待ち行列化シ
ステムがトランザクション・ベースでなくとも、メッセ
ージ待ち行列化は、トランザクションが正常に完了でき
ない場合に、資源をバックアウトする機能が与えられる
プログラム間連絡の方法がある。メッセージ待ち行列化
はプログラムが適用業務固有のデータの送受信を、これ
らの間に直接接続を確立することなく行うことを可能と
する。1つまたは複数の適用業務に対して意味を有して
いるビット及びバイトのストリングであるメッセージが
記憶域内の待ち行列におかれるので、目標適用業務はこ
れらをメッセージ待ち行列から取り出し、目標適用業務
が選択したときに(送信適用業務が選択したときにでは
なく)、これらのメッセージを処理する。この場合、プ
ログラムは互いに独立して、異なる速度及び時間で作動
することができる。トランザクションが正常に完了でき
るのか否かのメッセージの送信前のチェックに、送信適
用業務が拘束されることがなく、また同様に、目標適用
業務が事前のチェックなしに待ち行列からメッセージを
取り出すことができるので、バックアウト機能がしばし
ば必要となる(もちろん、メッセージがシステムの資源
に対して何も変更を行わない単なる照会である場合を除
く)。
【0016】待ち行列からメッセージを取り出す操作が
必然的に、適用業務によって実行される作業単位の一部
であるトランザクション・ベースのメッセージ・システ
ムにおいては、資源の更新のバックアウトを必要とする
適用業務が検出したエラー状態を完全に取り扱える適用
業務を作成するのが困難な場合がある。即ち、待ち行列
からトランザクションを開始したメッセージを獲得する
当初操作(メッセージ取出操作)を取り扱うことが困難
となる。ここでいう「エラー状態」とは正常に完了しな
い作業単位に対する適用業務が検出した理由を含むもの
である。ATM現金引出しの例では、「エラー状態」に
関連したデータはユーザが正しくない暗証番号(PI
N)を入力したことや、更新する口座の1つに充分な資
金がないことである。
【0017】
【発明が解決しようとする課題】現金引出しに関するA
TMトランザクションの例を考えると、メッセージング
及び待ち行列化(ATMで顧客が行った現金引出し要
求、ならびにその後にATMがトランザクション処理要
求をサーバの待ち行列にいれたことに引き続いての)を
使用してサーバ・プロセッサによって実行されるトラン
ザクションのステップは次のようになる。
【0018】1.ATMからのメッセージ取出(すなわ
ち、ATMが待ち行列にいれたメッセージを収集する) 2.ATMの現金残高レコードの更新(減額) 3.顧客の現金残高レコードの更新(減額) 4.現金の払い出しをATMに命令するメッセージ書出
(すなわち、ATMの入力メッセージ待ち行列にメッセ
ージを入れる) 5.ATMからの入力メッセージをサーバの待ち行列か
ら削除し、ファイルの更新を永続化し、出力メッセージ
をATMのメッセージ待ち行列で利用可能とするコミッ
【0019】最初のファイル更新ステップ(前記2)に
よって、ATMの現金残高がマイナスになるか、あるい
は2番目のファイル更新ステップ(前記3)によって、
顧客の口座残高がマイナスとなる場合には、トランザク
ションは正常に完了できなくなり、現金は払い出されな
い。作業単位内で他のファイル更新を行った後、このよ
うなデータに関連した問題を検出した適用業務は、バッ
クアウトを出して、ファイルの更新がコミットされる前
にこれらを取り消す必要がある。しかしながら、周知の
バックアウト操作は最初のメッセージ取出ステップも取
り消し、メッセージを待ち行列に戻してしまう。
【0020】トランザクションがシステム障害や適用業
務の異常終了などのその他の理由で取り消された場合に
は、メッセージ全体を適用業務に対して表示される待ち
行列に対して戻す必要があるため、これは問題とならな
い。しかしながら、取消しがエラー状態の検出後に適用
業務によって要求された場合、同一の入力メッセージ及
びファイル内容によってこのトランザクションを実行し
ようとする以降の各試みが、同じ理由、すなわち、資金
不足という適用業務が発生するバックアウトをもたらす
ことはほとんど(少なくとも)なく、したがって、デー
タに関連した問題は解決されなかった。
【0021】この問題の解決策はトランザクションをバ
ックアウトし、次いで適用業務に対してメッセージ取出
を再度出して、エラーをトランザクション要求のイニシ
エータに報告するなどの異なる処置を行うことである。
この技法は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つがこの種の適用業務の検出したエラーを診断
するために必要なだけのものであることを必要とする。
また、この手法では、バックアウトの場合に格納されて
いるメッセージの状態を変更する(すなわち、メッセー
ジに関連したバックアウト・カウンタを変更する)ため
の特別の論理回路も必要である。バックアウト中に格納
されているデータの状態を変更することは、トランザク
ションのバックアウトが格納されているデータをトラン
ザクション前の状態に戻すこととは厳密にいって一貫し
たものではない。
【0023】資源の更新のバックアウトを必要とする適
用業務が検出したエラーの取扱い方法の問題に関して考
えられる解決策の1つは、トランザクションの開始前に
最初のメッセージ取出を実行するか、あるいは最初のメ
ッセージ取出の実行後にコミットを行うことであると提
案されている。メッセージが元の待ち行列に戻されるの
は防止されるが、この解決策はメッセージ取出操作をコ
ミットした後、ただし、応答メッセージを作成し、コミ
ットを完了する前に、システムまたは適用業務が障害を
起こした場合に、メッセージ取出をコミットするとメッ
セージが待ち行列から除去されるため、入力メッセージ
の喪失をもたらすことがあるので、受け入れられない。
【0024】提案されているもう1つの解決策は適用業
務が使用して、トランザクション内に「セーブポイン
ト」を確立し、トランザクション全体をバックアウトす
るのではなく、これらのセーブポイントをバックアウト
するサービスを提供することである。トランザクション
をバックアウトすることは、最新の要求後に行われた変
更だけを逆転して、セーブポイントを確立する。ATM
の現金引出しのための適用業務は、次のようになる。
【0025】1.メッセージ取出 2.セーブポイントを確立する 3.ATMの現金残高を更新する 4.顧客の現金残高を更新する 5.現金の払い出しをATMに命令するメッセージ書出 6.更新が成功した場合(残高がマイナスにならな
い)、 *コミット 7.それ以外の場合には(1つまたは複数のファイル更
新によって、残高がマイナスになる) *セーブポイントへのバックアウト *エラー・メッセージの表示をATMに命令するメッセ
ージ書出 *コミット
【0026】この解決策はIBMの情報管理システム
(IMS)によって提供されるものであり、これはIB
Mから入手可能な「IMS/ESA General Information」、G
C26-4275に記載されている。中央トランザクション同期
点の概念を実施するには、すべての作業単位の参加プロ
グラムが前記処理を実施することが必要である。同期点
とはすべての参加プログラムの間の論理的一貫性の点で
あり、したがって、分離した単一の資源マネージャによ
って実施することができない。同期点の要件に適切に合
致しない適用業務もある。たとえば、適用業務の中に
は、データベースの更新によって各メッセージ取出操作
に追従し、次いでメッセージ取出を再度出し、他の更新
を行うなどというものがある。各メッセージ取出操作に
引き続いて他の適用業務を同期することは、関連するす
べての適用業務に受け入れることのできない処理の遅れ
をもたらす。
【0027】それ故、資源更新のバックアウトを必要と
する適用業務が検出したエラー状態であって、ほとんど
再現することがないか、あるいは、トランザクションを
システム資源の同一初期状態及び同一の入力要求によっ
て再起動した場合にだけ再現するエラー状態を適切に処
理する過ち許容トランザクション処理が必要とされてい
る。
【0028】
【課題を解決するための手段】本発明は、トランザクシ
ョンが正常に完了した場合にのみ、第1の適用業務によ
って実行される資源更新が永続化され、他の適用業務に
利用できるようにされ、正常な完了前にエラー状態を発
見したときにバックアウトされる過ち許容トランザクシ
ョン指向データ処理方法及び過ち許容トランザクション
指向データ処理システムを提供するものであり、該方法
は前記第1の適用業務によって、第1の作業単位の実行
を開始し、エラー状態の検出後の適用業務が要求するバ
ックアウトの影響から前記第1の作業単位内の操作を排
除するかどうかを指定し、前記第1の適用業務によるエ
ラー状態の検出に応じて、前記第1の作業単位内で行わ
れる資源更新をバックアウトするとともに、排除された
操作が他の適用業務に利用できないようにし、前記の排
除された操作を含む作業単位を開始して、適用業務によ
る他の処理を可能とするステップからなる。
【0029】前記第1の適用業務によって排除された操
作について獲得される割振り中ロックによって、排除さ
れた操作が他の適用業務によって利用されることを防止
することが好ましい。本発明の好ましい実施形態におい
て、エラー状態を含んでいる作業単位はすべて、適用業
務によるエラー状態の検出後にバックアウトされるの
で、適用業務が要求したバックアウト後に開始される作
業単位は新しい作業単位となる。
【0030】本発明の他の実施例において、適用業務が
資源更新のバックアウトを要求した場合に、指定された
排除された操作自体はバックアウトされない。第1の作
業単位内の排除された操作について獲得されたコミット
中ロックはリリースされず、したがって、操作は他の適
用業務に利用できなくされる。このような実施例におい
て、適用業務が要求したバックアウト後に開始された
(かつ、排除された操作を含んでいる)作業単位は、部
分的にバックアウトされた作業単位の再構成物ないし継
続物である。
【0031】新しい(あるいは、継続)作業単位は特定
の処置のコミットを含むように拘束されないことが好ま
しい。その代わり、この新しい作業単位でどのような処
置が行われるかは、特定の適用業務によって決定され
る。しかしながら、本発明による方法によって可能とな
る1つの重要な可能性は、正常に完了できないトランザ
クション処理要求が適用業務によって拒否され、要求が
同じ形態で適用業務に対して表示されないようになる。
【0032】操作が適用業務が要求したバックアウトの
影響をスキップするかどうかを指定するステップは、特
定の操作またはトランザクション要求をマークし、次い
で、マークした操作またはトランザクション要求のリス
トを格納することからなることが好ましい。資源更新の
適用業務が要求したバックアウトにおいて、このリスト
を検査して、作業単位がバックアウトの結果から排除さ
れる何らかの操作を含んでいるかどうかを決定する。い
ずれかの作業単位における複数の操作要求にマークし
て、適用業務が要求したバックアウトを回避できること
が好ましく(作業単位はいくつかのマークされていない
操作またはトランザクション要求を含むことも、あるい
は何も含まなくともかまわない)、また特にトランザク
ションが開始した要求にこのようにマークできることも
好ましい。各作業単位がマーク付きメッセージを1つだ
け含むことができれば、適用業務によっては充分である
が、常にそうとは限らない。作業単位の各種のマーク付
きメッセージによる異なるエラー状態の発生後に、異な
るシステム応答をもたらすことが望ましい。
【0033】マーク付き操作またはトランザクション要
求は適用業務が要求したバックアウト後にマークしない
ままにしておくことが望ましいので、その作業単位のバ
ックアウトの終了時に新しい(あるいは、継続)作業単
位の他の単位に対して、要求は異なる処理が行われる。
適用業務が2回目のスキップを行うために操作にマーク
をつけることができないように、新しい作業単位を拘束
することが望ましい。
【0034】本発明方法は、たとえば、システムの異常
終了あるいはシステムの再起動などの、エラー状態の適
用業務による検出以外の何らかの理由で、バックアウト
が生じた場合に、作業単位のいずれかの要素のバックア
ウトを防止するものではない。それ故、このようなその
他の理由で発生したバックアウト操作は作業単位全体を
取り消す。元の作業単位がその後コミットされた場合、
マーク付き操作またはトランザクションはマークされて
いないものと同じ態様でコミットされる。
【0035】マーク付き操作がトランザクションが開始
した操作(すなわち、待ち行列からメッセージを取り出
す要求)であってもかまわないトランザクション指向メ
ッセージング及び待ち行列化システムにおける本発明の
実施形態において、適用業務が要求したバックアウト後
に開始される作業単位のコミットが、何らかの以前にマ
ーク付き適用業務が開始した操作をコミットすることが
好ましい。したがって、エラー状態を発生したメッセー
ジはメッセージ待ち行列から除去され、前と同じように
処理される適用業務に再提示されるように拘束されるこ
とはない。待ち行列からのメッセージの削除に加えて、
新しい(あるいは、継続)作業単位はトランザクション
要求のイニシエータにエラーの発生を通知するステップ
を含むことができる。それ故、システムはエラー状態を
生じたマーク付き操作を含んでいるメッセージを効果的
に放棄し、かつ説明応答を生じることが可能となる。
【0036】新しい(あるいは、継続)作業単位が監査
カウントの更新などのその他の活動も含んでいる(この
一例としては、ATMの顧客の口座の残高が少なかった
り、あるいは入力した暗証番号が正しくない場合にAT
Mの顧客の現金引出しの試みを記録し、適用業務がAT
Mにある回数の引出しの試みの後で顧客のATMにアク
セスしているカードを保持するよう命令することがあ
る)。適用業務が検出したエラー状態以外の何らかの理
由によって生じたバックアウトはあらゆるマークを無視
するので、マーク付きメッセージがマークなしのものと
同様に待ち行列に戻される。
【0037】適用業務によっては、トランザクションが
開始した操作要求を出すことに関連したオプションにメ
ッセージのマーキングを行うことによって、本発明方法
を実施することができる。他の適用業務に対しては、ト
ランザクションを開始してから、作業単位内のいずれか
の操作にマークをつけて、バックアウトから除外すべき
かどうかを決定することが好ましい。
【0038】本発明を添付図面を参照して、一例として
説明する。
【0039】
【実施例】上述したように、メッセージ待ち行列化はプ
ログラムがその間に直接接続を確立することなく、適用
業務固有のデータをプログラムが送受信することを可能
とするプログラム間連絡の方法である。メッセージング
及び待ち行列化システムにおける本発明の特定の実施形
態を説明する前に、メッセージング及び待ち行列化を使
用したプログラム間連絡の一般的な方法を説明する。
【0040】適用業務はメッセージを構成しているビッ
トのストリング及びバイトを、一連の「項目」を構成す
るものとみなしており、各項目は特定のデータ・タイプ
及び意味を有している。たとえば、最初の項目は口座番
号を含む4バイトの無符号2進整数、2番目の項目は顧
客名を含む20バイトの文字ストリングであってもかま
わない。このデータを適用業務データと呼ぶ。
【0041】適用業務データに加えて、メッセージには
若干の補助データが関連づけられている。これはメッセ
ージの特性を規定する情報であり、メッセージをどのよ
うに処理すべきかを決定するために使用される。この情
報の中には、適用業務によって指定しなければならない
ものもある(たとえば、メッセージの宛先)。
【0042】メッセージ待ち行列はメッセージが蓄積さ
れ、後でメッセージが取り出される名前のついた「オブ
ジェクト」である。各待ち行列は特定の待ち行列マネー
ジャに属しており、このマネージャはこの待ち行列の保
守に責任を負う。待ち行列はその名前によって識別され
る。待ち行列マネージャは多くの待ち行列を所有するこ
とができるが、各待ち行列はその待ち行列を所有する待
ち行列マネージャ・インスタンス内で独自のものである
名前を有している。メッセージ待ち行列は単なるスタッ
クではない。メッセージを待ち行列に付け加える場合、
これらは末尾に付け加えられ、メッセージを待ち行列か
ら除去する場合、これらは通常先頭から除去される。し
かしながら、メッセージが待ち行列内でならんでいる順
序以外の順序でメッセージを待ち行列から読み出すこと
を可能とする機構が存在している。たとえば、適用業務
は特定のメッセージに対する応答を処理することが必要
となることがある。この場合、適用業務はこのメッセー
ジが待ち行列の先頭のものでない場合であっても、これ
を待ち行列から検索することができる。
【0043】メッセージ待ち行列の物理的表示は環境に
よって異なるが、主記憶域内のバッファ、ディスクまた
は他の永続記憶装置上のファイル、あるいはこれら両方
であることができる。しかしながら、メッセージ待ち行
列の物理的管理は完全に待ち行列マネージャ(適用業務
が使用するメッセージ待ち行列化機構を提供するシステ
ム・サービス)の責任であり、その詳細は適用業務に対
して明らかにはされない。適用業務はメッセージ待ち行
列を、メッセージが蓄積される単なる「ブラック・ボッ
クス」とみなすことができる。適用業務はメッセージ待
ち行列化呼出し(たとえば、メッセージを待ち行列から
取り出すMQGET、及びメッセージを待ち行列に送る
MQPUT)による場合を除き、メッセージ待ち行列に
アクセスすることはない。適用業務はメッセージ待ち行
列化呼出しを使用して待ち行列化サービスを獲得し、適
用業務と同じシステムに導入された待ち行列マネージャ
(ローカル待ち行列マネージャ)と通信する。
【0044】利用可能なメッセージ待ち行列化サービス
に対し、システムに少なくとも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に記録される。
【0047】メッセージング及び待ち行列化において、
適用業務は他の適用業務のメッセージ待ち行列(あるい
は、複数の適用業務の待ち行列がオープンしている場合
には、そのうちの1つ)にメッセージを入れることによ
って、他の適用業務と通信を行う。前記他の適用業務は
メッセージを待ち行列から取り出すことによって通信を
受信する。これを発生させるのに関連したすべての活動
(メッセージと待ち行列の間の関係を維持し、ネットワ
ーク障害及び再起動を処理し、ネットワークを中心とし
てメッセージを移動することに関連した作業)は待ち行
列マネージャによって処理することができる。ネットワ
ーク間通信セッションが個々の適用業務の間ではなく、
待ち行列マネージャの間で確立されるので、適用業務は
他のタイプの適用業務間連絡の場合よりも、システム障
害による障害を受けにくくなる。プロセッサ間のリンク
が障害を生じた場合、障害からの回復は待ち行列マネー
ジャの仕事となる。障害を起こしたプロセッサ上の適用
業務が、このような事象によって停止されることはな
い。事実、これらの適用業務が障害が生じたことを認識
する必要はない。
【0048】メッセージング及び待ち行列化において、
適用業務の構造には何の制約もない。図1に示すよう
に、1方向のメッセージの流れだけではなく、両方向の
相互通信が可能である。適用業務10、20の各々に対
するメッセージを受信するために、独立した待ち行列3
0、40がある。さらに、1対多(たとえば、単一の適
用業務の3部のコピーが負荷を平均的にするために並行
して作動し、同一の待ち行列からメッセージを取り出す
場合)、ならびに多対1(たとえば、単一のサーバにメ
ッセージを送信する複数のクライアントがある場合)、
あるいはこれらの関係すべての組合せの通信が可能であ
る。
【0049】図2に示すメッセージ待ち行列化トランザ
クション指向処理システムに対する資源マネージャ・サ
ブシステム80は、以下のような構成要素を含んでい
る。
【0050】*接続マネージャ要素(CMC) 接続マネージャ90はアダプタ要素95に、サブシステ
ム・アドレス空間との接続のためのインタフェースを提
供する。適用業務96からのすべての要求は、接続マネ
ージャ90を通って資源マネージャ・サブシステム80
に入る。接続マネージャ90は終了を監視するものであ
り、適用業務の終了を監視している。
【0051】接続マネージャ90はMQPUT(指定さ
れた待ち行列にメッセージを入れるための要求、すなわ
ちメッセージ書出)またはMQGET(待ち行列解除の
要求、すなわちメッセージ取出)などのメッセージ待ち
行列化インタフェース(MQI)要求動詞を必要とする
ときに、メッセージ・マネージャ100を呼び出す。
【0052】接続マネージャ90は回復マネージャ13
0を呼び出して、適用業務が発した要求以降のコミット
及びバックアウト、適用業務の正常な終了を検出したと
きのコミット、ならびに異常終了を検出した場合のバッ
クアウトの操作を実行する。接続マネージャ90は適用
業務が出したバックアウトに対する入口点や、適用業務
の異常終了による場合のバックアウトに対する入口点な
ど、さまざまな入口点で呼び出される。
【0053】*メッセージ・マネージャ要素(MMC) メッセージ・マネージャ100はほとんどのMQI(M
QGET、MQPUT、待ち行列をオープンするMQO
PEN、及び待ち行列をクローズするMQCLOSEを
含む)に対してメッセージング・サービスを提供する。
メッセージ・マネージャ100はメッセージを待ち行列
に入れることができるようになる前に、指定した待ち行
列がオープンしたかどうかの検査などの、要求の検証を
行う。メッセージ・マネージャ100はメッセージ長及
び待ち行列深さの拘束を強制する。
【0054】メッセージ・マネージャ100はデータ・
マネージャ110を呼び出して、メッセージを待ち行列
に挿入したり、メッセージを待ち行列から検索したりす
る。メッセージ・マネージャ100はコミットまたはバ
ックアウトに関与しない。メッセージ・マネージャ10
0はロギングを行わず、またほとんどロックを行わな
い。
【0055】*データ・マネージャ要素(DMC) データ・マネージャ110はディスク上のデータの編成
及びリンクに関与する。データ・マネージャ110は待
ち行列を表す「ページ」というディスク・ブロックのリ
ンクされたリストを維持する。データ・マネージャ11
0は使用済み及び利用可能なページの在庫の管理を含む
スペース管理機能を行う。
【0056】データ・マネージャ110はメッセージ・
マネージャ100によって呼び出されて、MQPUT中
にメッセージを所与の待ち行列に挿入し、またメッセー
ジ・マネージャ100によって呼び出されて、MQGE
T中に所与の待ち行列上のメッセージの探索を行う。デ
ータ・マネージャ110はメッセージ・マネージャ10
0によって指定される選択基準を使用して探索を行う。
【0057】データ・マネージャ110はロック・マネ
ージャ150を呼び出して、ページ及びディスク・レコ
ード(メッセージ)に対するコミット中ロックを取得す
る。通常、インテンション排他(IX)ロックが待ち行
列に対して取得され、IXロックがメッセージを含んで
いるページに対して取得され、排他(X)がMQGET
及びMQPUT中にページ内の論理レコード(メッセー
ジ)に対して取得される。
【0058】MQGET中に、データ・マネージャ11
0は探索基準に合致する削除されていないメッセージに
ついて、待ち行列を走査する。このようなメッセージが
発見された場合、IXロックがページに対して要求さ
れ、またXロックがそのメッセージに対して要求され
る。ロックが認められない場合、これはメッセージが存
在しており、削除されていないとしても、MQPUTの
発行者によってコミットされておらず、またデータ・マ
ネージャ110が他のメッセージへ進むことを意味す
る。
【0059】スペース再利用操作はページのすべてのメ
ッセージが取得され、削除済みとマークされた後、待ち
行列の先頭を走査し、これらのページを未使用のページ
・プールに戻し、周囲のページにある該当するリンクを
更新する。メッセージを削除したすべてのMQGET操
作がコミット点に到達するまでページを除去しないこと
が重要であり、トランザクションがバックアウトした場
合には、メッセージから削除マークを除去し、これを再
度MQGETに使用できるようにする必要がある。
【0060】データ・マネージャ110のスペース再利
用プロセスはロック・マネージャ150を使用して、所
与のページが他のトランザクションによって使用されて
いないことを検査する。ページいっぱいの削除済みメッ
セージにスペース再利用プロセスが遭遇した場合、ロッ
ク・マネージャ150にはそのページに対する排他ロッ
ク(Xロック)が要求される。ロックが認められた場
合、これは他のトランザクションがそのページに対して
IXロックを行っていないことを意味する。MQGET
及びMQPUTは影響を受けるページに対するコミット
中IXロックを取得するので、スペースが早期に再利用
されることはない。
【0061】*バッファ・マネージャ要素(BUFF) バッファ・マネージャ120はページ・バッファを管理
する。すなわち、適切なパフォーマンスを提供しなが
ら、データの回復に対するシステムの要件に一貫した態
様で、データ・マネージャ110からの要求に応じた補
助記憶装置(DASD)と仮想記憶域との間のデータ・
ページの移動を管理する。データ・マネージャ110は
ディスク上のディスク・ブロックを処理するのではな
く、バッファ・マネージャ120によって管理されるバ
ッファだけを処理する。待ち行列に対するすべてのディ
スク入出力(I/O)操作はバッファ・マネージャ12
0によって行われる。
【0062】バッファ・マネージャ120は仮想記憶域
バッファ・プール内に「最新参照」ページを維持し、
「最後使用完了(LRU)」を不揮発性記憶装置に書き
込む。
【0063】バッファ・マネージャ120はディスク・
ページ内容には関与しない。これには所与のページが所
与の待ち行列に割り振られたかどうか、あるいは未使用
リストにあるかどうか(すなわち、ページがロックされ
ているかどうか)はわからない。これらの事項はデータ
・マネージャ110が扱う。
【0064】所与のページをバッファに入れなければな
らない場合、あるいはデータ・マネージャ110がその
ページにアクセスする必要がもはやなくなった場合、バ
ッファ・マネージャ120にはデータ・マネージャ11
0によって通知が行われる。これらの操作を「ピン」及
び「ピン解除」という。データ・マネージャ110がバ
ッファを「ピン」した場合、バッファ・マネージャ12
0はページをディスクからバッファに入れ(まだバッフ
ァ内になければ)、対応する「ピン解除」操作をデータ
・マネージャ110から受信するまで、同じ場所に維持
する。
【0065】データ・マネージャ110がバッファの内
容を変更した場合、データ・マネージャ110はバッフ
ァ・マネージャ120に通知する。この操作を「インテ
ント書込み設定」といい、バッファ・マネージャ120
にディスク・ページをディスクに書き込まなければなら
ない(最終的に)ことを通知する。インテント書込みが
設定されているが、ディスク・スロットへの書込みがま
だ行われていないバッファを「ダーティ」バッファと呼
ぶ。
【0066】データ・マネージャ110はページの既知
の位置に、ページ(ダーティ・ページ)に対する最新の
変更に関する回復ログ・マネージャ(RLMC)140
のログ・レコードのログ・レコード・アドレス(ログ・
シーケンス番号と呼ぶ)を書き込む。バッファ・マネー
ジャ120が「LRU」基準によって、所与の「ダーテ
ィ」バッファがDASDへ書き込まれたと判断したら、
まずログ・マネージャ機能を呼び出して、アドレスがダ
ーティ・ページであるログ・レコードを「強制」する
(すなわち、不揮発性メモリに書き込む)。それ故、ペ
ージに対する何らかの変更をUNDOするのに必要なロ
グ・レコードが不揮発性ログ・ファイルに書き込まれて
から、(おそらく、コミットされていない)更新済みの
ページが待ち行列データセットに書き込まれる。これを
「ライト・アヘッド・ログ(WAL)」規則という。
【0067】*回復マネージャ要素(RMC) 回復マネージャ130は活動トランザクション(回復単
位、または作業単位という)のリストを維持し、これら
のトランザクションが通過する状態変更を調整し、これ
らを2フェーズ・コミット・プロトコルに通す。回復マ
ネージャ130はログ・レコードを書き込み(回復マネ
ージャ要素、RLMC140を介して)、トランザクシ
ョンの開始(BEGIN_UR、ただしURは回復単位
の略語である)、コミット・フェーズ1及び2の先頭、
コミット・フェーズ1及び2の末尾、ならびにトランザ
クションの終了を記録する。
【0068】再起動時に、回復マネージャ130はログ
を読み取り、すべての活動トランザクションの状態を判
定し、他の資源マネージャ(主に、データ・マネージャ
110)の再起動回復活動を調整する。
【0069】データ・マネージャは回復マネージャ・サ
ービス(Extract UR Token)を使用し
て、作業単位が原稿の適用業務インスタンスに対して進
行中であるかどうかを判定する。
【0070】データ・マネージャ110は回復マネージ
ャ130を呼び出して、最初の更新が持続資源に対して
行われ、回復単位がまだ起動されていない場合に、回復
単位を開始する(BEGIN_UR)。
【0071】回復マネージャ130を接続マネージャ9
0が呼び出して、適用業務がコミットまたはバックアウ
トを出した場合、または接続マネージャ90が適用業務
の終了を認めた場合に、トランザクションをコミットま
たはバックアウトする。
【0072】回復マネージャ130は回復ログ・マネー
ジャ140を呼び出して、トランザクション状態変換ロ
グ・レコードを書き込む。
【0073】回復マネージャ130はロック・マネージ
ャ150を呼び出して、ログにコミットまたはバックア
ウト操作の終了を記録した後、すべてのコミット中ロッ
クを解除する。
【0074】*回復ログ・マネージャ要素(RLMC) 回復ログ・マネージャ(RLMC)140は回復可能デ
ータ・オブジェクトに対する変更の回復ログに書き込ま
れたログ・レコードの継続的に増加するシーケンスを維
持する。ログ・レコードは主として、回復単位の開始、
終了、及び状態変換を記録する回復マネージャ(RM
C)130によって書き込まれる。データ・マネージャ
110はディスク・ファイルのデータ・ページに対して
変更を行う前に、データの「事前」及び「事後」イメー
ジ(UNDO/REDO)を書き込む。
【0075】ログ書込み操作は論理レコードを仮想記憶
域バッファに移動することからなる。バッファがほぼい
っぱいになると、回復ログ・マネージャ140はI/O
操作を開始して、ログ情報をディスクに入れる。トラン
ザクション中のいずれかの時点、詳細にいえばコミット
及びバックアウト中に、回復マネージャ130は回復ロ
グ・マネージャ140に対して「強制書込み」要求を出
し、ログ・レコードの回復ログ・マネージャ140のデ
ィスク・アドレスを「強制」する。回復ログ・マネージ
ャ140はこのログ・レコードならびに以前のすべての
ログ・レコードをログ・バッファに入れる出力操作を開
始する。要求されたログ・レコード及びそのすべての先
行レコードが不揮発性(ディスク)記憶装置に書き込ま
れるまで、「強制書込み」の発行は中断される。
【0076】バッファ・マネージャ120は回復ログ・
マネージャ要求も出し、所与のログ・レコードがログ・
ディスク・ファイルに書き込まれるまで、バッファ・マ
ネージャ120を中断する。これは上述した「ライト・
アヘッド・ログ」規則を順守するために行われる(バッ
ファ・マネージャ120の下で)。
【0077】回復マネージャ130はバックアウト中に
ログ・レコードを読み取り、UNDOレコードをデータ
・マネージャ(DMC)110に提示する。データ・マ
ネージャ110はUNDOログ・レコードを使用して、
ディスク・レコードをトランザクションの開始前に存在
していた状態に復元する。
【0078】回復マネージャ130は再起動時にログ・
レコードを読み取り、各活動トランザクションの状態を
判定し、REDO及びUNDOログ・レコードをデータ
・マネージャ110に提示する。
【0079】*ロック・マネージャ要素(LMCまたは
LOCK) ロック・マネージャ150はデータ・マネージャ110
にロッキング・サービスを提供し、再起動及び正常な処
理中の各種のロックの取得、試験及びリリースを可能と
する。ロック・マネージャ150はロック名の仮想記憶
域構造を維持し、ロック名をこれらのロックを保持する
トランザクション・インスタンスに関連づける。
【0080】所与のロック名を共用モードまたは排他モ
ードで要求できる。何らかのタイプの他の要求がそのロ
ック名に対して未決である(他のトランザクションによ
って)場合にだけ、排他ロックが認められる。他のトラ
ンザクションに対してロックが排他的に認められていな
い場合に、共用要求(S及びIX)が認められる。いく
つかのトランザクションが同一のIXまたはSロック名
を並行して保持することができる。
【0081】ロック・マネージャ150には、ロック名
の意味はわからない。データ・マネージャ110が創出
した名前の用途を調停するだけである。当分野で周知の
多くのロック管理と異なり、本システムのロック・マネ
ージャ150はロックが利用できない場合、呼出しプロ
グラムを中断しない(すなわち、これらを待たせな
い)。ロックを認めることができない場合、障害戻りコ
ードがデータ・マネージャ110に報告される。ロック
・マネージャが呼出しプログラムを中断しないのである
から、デッドロックを生じることはない。
【0082】ロック・マネージャ150はロック名を不
揮発性領域に記録せず、システムが終了した場合、すべ
てのロックは失われる。未確定トランザクションの再起
動時に、データ・マネージャ110は再ロックを必要と
する資源(待ち行列、ページ及びメッセージ)に対して
ロック要求を再発行する。ロックは未確定トランザクシ
ョンに対してだけ必要であり、未了トランザクションは
バックアウトされる(かつ、その資源はロック解除され
る)。
【0083】ロック・マネージャ150は逐次機械命令
(Compare及びSwap)を使用して、一時にせ
いぜい1つのトランザクションに対して排他ロックを認
める。
【0084】データ・マネージャ110は所与のページ
のディスク・アドレスから導かれた名前を使用してIX
ロックを、また所与のページ及びメッセージを表す論理
レコードのディスク・アドレスから導かれたディスク・
アドレスを使用してXロックを取得する。これらのロッ
クを「コミット中」ロックと呼ぶ。MQPUTまたはM
QGET操作の処理中に、これらのロックが取得され、
コミットまたはバックアウト(及びそのロギング)が完
了した後、回復マネージャ130が「全コミット中ロッ
ク解除」要求を出した場合、ロックはコミットまたはバ
ックアウト時に解除される。
【0085】それ故、データ・マネージャ110はロッ
クを取得するが、その名前を記憶しない。RMCによっ
て、回復単位中に取得されたすべてのロックがコミット
またはバックアウト後に一度に解除される。
【0086】コミット中ロックに加えて、ロック・マネ
ージャ150は共用及び排他「割振り中」ロックもサポ
ートしている。これらのロックをメッセージ・マネージ
ャ100がMQOPEN時(すなわち、待ち行列がオー
プンされるとき)に使用して、待ち行列共用規則を実施
し、マーク・スキップ・バックアウト操作(後述)中に
データ・マネージャ110が使用して、コミット中ロッ
クが1つのトランザクション・インスタンスに対して解
除され、かつその後間もなく新しいトランザクション・
インスタンス内の同一の適用業務によって取得された場
合に、ウィンドウ中のメッセージをロックする。
【0087】メッセージ内のデータは貴重なビジネス資
産である。たとえば、送金を知らせるメッセージの喪失
は企業の財務損失を意味する。それ故、適用業務間で送
信されるデータの保護は必須である。この保護はメッセ
ージがリンクの他端で適切に受信され、処理されるま
で、これらを待ち行列から取消し不能に除去しないこと
によって達成される。待ち行列マネージャ自体が障害を
起こした場合には、メッセージが持続する(回復可能で
ある)旨を宣言するステップを取り、システム障害後の
これらの復元が確保されるようにする。
【0088】特定の作業単位からなる多数のデータ更新
をすべて完了しなければならないか、あるいは、上述の
ように、これらのいずれも完了してはならない多くの状
況がある。資源更新の1つがエラー状態を生じ、これを
完了できない場合、他の更新をバックアウトしなければ
ならない。本発明はこのようなバックアウトに関連した
問題の処理に特に適するものである。
【0089】本発明の実施例による過ち許容指向データ
処理方法を、図2を参照して説明する。
【0090】上述のような資源管理システムに障害が発
生した場合、適用業務が開始したバックアウトはシステ
ムが開始したバックアウトとは区別される。これはバッ
クアウト自体を要求した時期を知っている適用業務によ
って容易とされる。トランザクションの実行中に、トラ
ンザクションにシステムが開始したバックアウトが生じ
た場合(たとえば、トランザクションの異常終了、停
電、または操作員の処置による)、トランザクション全
体がバックアウトされる。指定のメッセージ取出または
その他の操作の取消しがオプションでスキップされるの
は、適用業務が発行したバックアウトに対してだけであ
る。
【0091】データを3タイプの障害、すなわちサブシ
ステム、ハードウェア及び適用業務の照会から保護しな
ければならない。障害後にデータ収集を再構成する方法
は、トランザクションを表す作業単位の最初から最後ま
での進行状況、ならびに回復可能なデータ・オブジェク
トに対する変更を引き起こした作業単位のアクションを
回復ログに記録することである。回復ログは作業単位の
コミットされたアクションが反映されるか、あるいはそ
のコミットされたアクションが逆転されるかのいずれか
に対するソースとなる。ログされたアクションがデータ
・オブジェクトの内容を反映している場合、これらのレ
コードも損傷した、あるいは喪失したデータ収集の再構
成のソースとなる。
【0092】回復可能データ・オブジェクトを変更する
アクションは、UNDO及びREDOレコードによって
ログに反映される。UNDOログ・レコードは変更アク
ションが行われる前のデータ・オブジェクトの内容を反
映する。REDOログ・レコードは変更後の内容を反映
する。障害が発生した場合、作業単位の進行状態を、ど
のレコードを使用するかを判定する際に使用する。変更
がデータ収集記憶媒体に対して行われ、作業単位が「未
了」である場合、UNDOログ・レコードをトランザク
ション回復中に使用して、変更を媒体にバックアウトす
る。データ収集記憶媒体が不揮発性(たとえば、DAS
D)で、作業単位が「未了」以外の状態である場合、R
EDOログ・レコードを回復中に使用して、オブジェク
トの媒体コピーが更新されていることを確認する。
【0093】データ収集が媒体の障害のために失われた
場合には、収集が作成されてからのすべてのREDOロ
グ・レコードが保管されており、利用可能なのであれ
ば、収集を再構成することが可能である。実際には、デ
ータの不揮発性コピーが定期的に作られ、保管され、コ
ピーが作成された時点のログ位置が記入される。次い
で、障害が発生した場合、回復ログが記憶されている位
置から処理される。作業単位によって作成されたデータ
収集に対するすべてのアクションを表す、その点からの
REDOレコードが、保管されたデータ収集のコピーに
対して再処理される。
【0094】適用業務プログラムはシステムに接続され
ており、待ち行列にサービスを行い、待ち行列から検索
したメッセージ情報の内容に応じて各種のアクションを
行っている。このようなシステムにおける回復可能デー
タ構造は待ち行列である。待ち行列を安定状態へ戻せる
ようにするために、待ち行列のコピーが定期的に作成さ
れる。ログ・レコードが作成される待ち行列のコピーの
間の待ち行列の持続メッセージ(システム再起動におい
ても存続しなければならないという点で「持続性」の)
に対して行われたすべての変更に対して書き込まれる。
システム障害が発生した場合、これらのログ・レコード
を、始点としての待ち行列の最新のコピーとともに使用
して、すべての記録済みの変更に再適用し、これによっ
て待ち行列を回復する。
【0095】各トランザクションをMQGET操作要求
を出す適用業務によって開始することができる。この要
求は接続マネージャ90を呼び出し、このマネージャは
初期設定ステップを実行し、要求をMQGETと認識
し、メッセージ・マネージャ100を呼び出す。メッセ
ージ・マネージャ100は該当する適用業務を探し出
し、妥当性検査を行い、データ・マネージャ要素のメッ
セージ取出操作を呼び出して、メッセージをローカル待
ち行列から取り出す。待ち行列はオブジェクト・ハンド
ルによって識別され、必要なメッセージの属性はMQG
ET操作要求内でメッセージ記述子によって識別され
る。MQGET操作要求内では、バッファ長(メッセー
ジ・データを収めるための領域のバイト数で表した長
さ)及び要求のアクションを制御するいくつかのオプシ
ョンも指定される。MQGET要求は適用業務が新しい
メッセージを処理するのに利用できるようになった場
合、あるいは新しい着信メッセージの待ち行列の到着時
に自動的に発行される。
【0096】メッセージ取出操作の実行時に、データ・
マネージャ110は該当するメッセージを探し出し、メ
ッセージ及びページにコミット中ロックを取得し(ロッ
ク・マネージャ150の制御下に)、メッセージを呼出
しプログラムのバッファに移動し、待ち行列に削除済み
のフラグをつけ、ログ・レコードを書き込んで、削除を
反映する。メッセージの最終処置はこの段階では行われ
ず、コミット操作後まで行われないので、メッセージン
グ・システムはバックアウトが要求された場合にメッセ
ージを復元することができる。
【0097】データ・マネージャ110のメッセージ取
出フロー 詳細にいえば、データ・マネージャ110は同期点範囲
内で持続メッセージを検索する際に以下のアクションを
行う。
【0098】a.DMC110はRMC130を呼び出
し、URが始動したかどうかを判定し、始動していない
場合には、RMC130を呼び出して、新しいURを開
始する。次いで、RMC130は回復ログ・マネージャ
(RLMC)140を呼び出して、BEGIN−URレ
コードを書き込む。
【0099】b.DMC110は適切なメッセージに関
して希望する待ち行列を操作する。
【0100】1)操作の始点を決定する。
【0101】2)BUFF Get Pageを呼び出
して、ページを取り出す。
【0102】3)適切なメッセージ(すなわち、削除さ
れていない)をさがす。
【0103】4)適切なメッセージが見つかった場合、
バッファにインテント書込み設定を行い(かつ、ラッチ
し)、メッセージの削除フラグを再度検査し(ラッチし
たまま)、ページに対するコミット中IXロック及びメ
ッセージに対するコミット中Xロックを取得する。
【0104】5)いずれのロック要求も失敗した場合に
は、メッセージが「適切」なものではない(コミットさ
れていないMQPUTである)。(未解決のIXロック
は保持される)。
【0105】6)DMC110はRLMC140を呼び
出して、論理メッセージの削除を反映するUNDO/R
EDOレコードを書き込む。
【0106】7)DMC110はそのUNDO/RED
Oログ・レコードのログ順序番号をページのページLS
Nフィールドに格納する。
【0107】8)DMC110は削除フラグを論理レコ
ード(メッセージ)用のディスク・バッファにセットす
る。
【0108】9)DMC110はメッセージを適用業の
務バッファへ移動する。
【0109】10)DMC110はBUFFを呼び出し
て、ページをリリースし(ピン解除し)、インテント書
込みをリセットする。
【0110】c.これらのステップはメッセージの長さ
により必要に応じ反復される。4メガバイトのメッセー
ジは多数のページを読み取ることができるが、本発明で
は一時に1ページを扱う。削除フラグがメッセージの最
初の部分にだけ存在しているのであるから、最初のメッ
セージだけが「ダーティ」である(変更されている)。
【0111】DMC110はそれが取得したロックの名
前を記憶しないが、ロック・マネージャ150はこれら
を知っている。
【0112】DMC110は次いで制御をMMC100
へ戻し、MMC100は制御をCMC90へ、最後に適
用業務へ戻す。
【0113】適用業務がMQGET要求によって指定す
ることのできるオプションの1つは、メッセージにマー
クをつけられることである。適用業務はMQGET_M
ARK_SKIP_バックアウトを出す。これはMQG
ET(上述)と同じものであり、データ・マネージャ1
10が取得したメッセージのディスク・アドレスをその
持続属性とともに、トランザクション・インスタンスに
関連した記憶域の私用リストに記録するというステップ
が付加されている。DMC110はこのメッセージに対
してコミット中Xロックを取得してから、これをこの
「マーク付きメッセージ・リスト」に入れる、すなわ
ち、ディスク・アドレス(または、ポインタ)はこの作
業単位によってロックされたメッセージを表していなけ
ればならない。
【0114】オプションのマーク付けはMQGET操作
要求の属性であって、メッセージの属性ではない。適用
業務には待ち行列の次のメッセージがなんであるかはわ
からず、したがってメッセージ取出が出された時点で、
メッセージに含まれている情報を使用して、マークする
か否かを判定することができない。しかしながら、適用
業務には次に取得するメッセージのタイプがわかり、こ
れを使用して、次のメッセージにマークを付けるかどう
かを決定することができる。バックアウトを抜けるため
にメッセージにマークを付けるかどうかは、どの待ち行
列からメッセージを読み取るか(上述のように、どれが
メッセージ取出要求のパラメータであるか)に基づいて
決定される。MQGET操作要求の他の多数のオプショ
ン・パラメータをセットすることもできる。
【0115】最初のメッセージがこの作業単位内ですで
にマークがつけられている場合(すなわち、マーク付き
メッセージのDMC110ポインタが非ゼロである場
合)、他のメッセージにこのようにマークを付けること
はできない。したがって、どの作業単位もマーク付きメ
ッセージを1つだけ含むことができるが、最初のメッセ
ージ以降のものにマークを付けるための以降の要求の拒
否は適用業務に通知される。メッセージング・システム
のマーク付きメッセージ・リストは揮発性記憶域に保持
される(したがって、メッセージング・システムの再起
動後に継続しない)。
【0116】もちろん、多くのメッセージはトランザク
ションが開始したメッセージではなく、それぞれのメッ
セージはきわめて異なる属性を有していることがあり、
またすべてのメッセージが必ずしも同じ待ち行列から取
ったものでないものであることがある。すべてのメッセ
ージにおいてバックアウトの結果をスキップすることは
望ましくはなく、したがって、バックアウトをスキップ
するようにメッセージにマークを付けることを、メッセ
ージ取出の一般的な結果とすることは望ましくなく、こ
れがこれをオプションとした理由である。たとえば、A
TMで預金引出しの要求を行った場合、暗証番号が正し
いかどうかに関する照会が作業単位内の暗証番号サーバ
のメッセージ待ち行列に入れられる。その後、適用業務
は照会に対する回答をもたらす暗証番号サーバから送ら
れたメッセージを取得する(メッセージ取出が、選択さ
れる特定のメッセージの到着を待つオプションをつけて
出される)。ここでエラーが検出された場合、暗証番号
サーバとの通信に関与しているこれらのメッセージ書出
及びメッセージ取出操作の完全なバックアウトを防止す
ることは望ましくない。
【0117】コミット及び適用業務の終了 適用業務が単一フェーズのコミットを出すバッチ型適用
業務であるとする。任意の数(ゼロを含む)のMQGE
T及びMQPUT要求を出してから、適用業務はコミッ
トを出すことができる。接続マネージャ90はコミット
要求を認識し、以下で説明するように、回復マネージャ
130コミット−URサービスを呼び出す。回復マネー
ジャ130は次いで、制御を適用業務に戻す。
【0118】接続マネージャ90は接続されている適用
業務の終了も監視しており、適用業務が正常に終了した
のか、異常に終了したのかを判断できる。
【0119】正常な適用業務の終了 MQIの指定は適用業務がコミットまたはバックアウト
を出さずに正常に終了した場合、未完了の操作をコミッ
トさせるようにする。正常な適用業務の終了ステップは
以下の通りである。
【0120】1.適用業務が正常に終了する。
【0121】2.CMC90は正常終了を認識し、回復
マネージャ130コミット−URサービスを呼び出す。
【0122】3.CMC90はMMC100を呼び出
し、未完了のオープンな待ち行列にMQCLOSE操作
を行う。
【0123】4.CMC90はLOCKを呼び出して、
この適用業務が保持しているすべての要求中ロック及び
コミット中ロックをリリースする。
【0124】回復マネージャ130コミット−UR この回復マネージャ・サービスは上述のように、適用業
務が出したコミット要求の結果として、あるいは正常な
適用業務の終了の結果として、接続マネージャ90によ
って呼び出される。サービスのステップは以下の通りで
ある。
【0125】1.RMC130は回復ログ・マネージャ
(RLMC)140を呼び出して、BEGIN−コミッ
ト−PHASE−1ログ・レコード及びPHASE−1
−TO−2−TRANSITIONログ・レコードを書
き込む。
【0126】2.RMC130はRLMC140を呼び
出し、PHASE−1−TO−2−TRANSITIO
Nログ・レコードの記録後にログを「強制」する。
【0127】3.RMC130はデータ・マネージャ1
10を呼び出す(コミット・フェーズ2のブロードキャ
スト中に)。
【0128】4.DMC110はその「バックアウト・
スキップ・マーク」リストを空にする。
【0129】5.RMC130はRLMC140を呼び
出して、END−PHASE−2ログ・レコードを書き
込む(ただし、強制ではない)。
【0130】6.RMC130はロック・マネージャ1
50を呼び出して、すべてのコミット中ロックをリリー
スする。
【0131】7.ロック・マネージャ150はこのトラ
ンザクション・インスタンスが保持しているすべてのコ
ミット中ロックをリリースする(割振り中ロックを除
く)
【0132】適用業務が出したバックアウト 処理を部分的に行ったところで、適用業務が現在処理中
のメッセージに何らかのエラー状態を発見した場合、適
用業務は現在の作業単位中にすでに実行した資源更新の
バックアウトを要求する。操作の流れは以下の通りであ
る。
【0133】適用業務は多数の(ゼロを含む)MQGE
TまたはMQPUTあるいはその両方の要求を出してい
る。MQGET及びMQPUT中に、データ・マネージ
ャ110はロック・マネージャ150を呼び出して、参
照されたページに対してコミット中ロック(IXロッ
ク)を、またメッセージに対してコミット中ロック(X
ロック)を取得している。
【0134】1.適用業務はバックアウトを出す。
【0135】2.CMC90はデータ・マネージャ11
0を呼び出して、マーク付きメッセージのそのリストを
ロックする。
【0136】3.DMC110はそのマーク付きメッセ
ージ・リストを調べ、ロック・マネージャ150を呼び
出して、その「マーク付きメッセージ・リスト」内のす
べてのメッセージに対して割振り中Xロックを取得す
る。MARK SKIP バックアウトオプションをつ
けたMQGET操作を現行のURに対して要求されてい
なければ、このリストは空である。マークつきメッセー
ジ・リストが空でなければ、TEST LOCK要求を
出し、このメッセージ及びページにコミット中ロックが
存在していることを検査する。これらのテストの結果が
プラスの場合、割振り中ロックがページに対して取得さ
れ、割振り中ロックがメッセージに対して取得される。
ロック要求が認められた場合、マークつきメッセージの
DMC110ポインタ及びその持続属性が、接続マネー
ジャ90に戻される。
【0137】4.DMC110は戻りコードによって、
マーク付きメッセージのリストが空であったかどうか、
あるいはメッセージがロックされていたかどうかを示
す。
【0138】5.DMC110はマーク付きメッセージ
のリストをその呼び出しプログラム、接続マネージャ9
0に戻す(このマネージャは本発明のこの実施形態の場
合、少なくとも1つのマーク付きメッセージのリストを
戻す)。
【0139】6.CMC90は回復マネージャ130の
ABORT−URサービス(以下で詳述)を呼び出し
て、この作業単位内で行われたすべての資源更新をバッ
クアウトする。DMC110はABORT−URの一部
として、そのマーク付きメッセージ・リストを空にす
る。
【0140】7.DMC110の「マーク付きメッセー
ジ・ロック」要求(上記4の)からの戻りコードがマー
ク付きメッセージがあったことを示している場合、CM
C90はDMC110の「マーク付きメッセージ削除」
サービスを呼び出し、マーク付きメッセージのリストを
表示する。マーク付きメッセージのDMC110ポイン
タならびにメッセージの持続属性がパラメータとして渡
される。
【0141】8.DMC110は現行のトランザクショ
ンがマーク付きメッセージ・リストの各要素に割振り中
Xロックを保持していることを検査する。ロック・テス
トがプラスの結果をもたらした場合、新しい作業単位が
直ちに開始される。
【0142】9.DMC110は各マーク付きメッセー
ジに対してそのメッセージ取出操作を再度行うが、メッ
セージを適用業務のバッファに移動する点が異なってい
る。マークのつけられているメッセージの最終結果は、
したがって、新しい作業単位に転送される。
【0143】メッセージ取出を再度実行することは、各
マーク付きメッセージを探し出し(ただし、バックアウ
ト操作の流れのこの説明以降の段落を参照)、ページに
対するコミット中IXロック、メッセージに対するコミ
ット中Xロックを取得し、バッファ・マネージャ120
がインテント書込み設定によってGet Pageを行
い、RLMCがUNDO/REDOを行い、バッファ内
の削除されたメッセージにマークを付け、ログ・レコー
ドLSNをバッファに格納し、バッファ・マネージャ1
20がページをリリースすることを含んでいる。
【0144】マーク付きメッセージはこの時点で割込み
中Xロック(ステップ3で取得した)、及びコミット中
Xロック(ステップ9で取得した)の両方を有してい
る。
【0145】9A.DMC110はマーク付きメッセー
ジに対する割込み中Xロックをリリースする。ステップ
9で取得されたコミット中Xロックは、新しい作業単位
がコミットまたはバックアウトを完了するまでリリース
されない。
【0146】10.DMC110はそのバックアウト・
スキップ・マーク・リストを空にするので、以降のバッ
クアウトが適用業務によって出された場合、MQGET
Sがバックアウトをスキップするようマークされること
はない。
【0147】11.CMC90は適用業務に制御を戻
す。
【0148】複数のサーバが入力待ち行列にサービスを
行っている場合、1つのサーバによってマークのつけら
れたメッセージはそれが2度目にバックアウトされ、マ
ークが最初に除去されるまで、他のサーバによって検索
できない。
【0149】「探し出される」マーク付きメッセージに
ついて前の段落でいったことは常に正確とは限らない。
実際には、各マーク付きメッセージは以下の理由から、
積極的に探し出されるのではなく、探索されるものであ
る。適用業務はメッセージ書出操作要求を出し(メッセ
ージを待ち行列に入れるために)、次いで、メッセージ
書出がそのトランザクション・インスタンス(ならび
に、他のトランザクション・インスタンス)に可視のト
ランザクションの部分的に完了した結果であるから、同
じメッセージに関するメッセージ取出を出す。しかしな
がら、トランザクションがメッセージ書出を出し、次い
でメッセージ取出/MARK/SKIP−バックアウト
を出し、(すなわち、待ち行列からメッセージを取り出
し、メッセージにマークをつけて、いくつかの操作がバ
ックアウトの結果をスキップするようにし)、その後、
バックアウトを出した場合、メッセージ書出及びメッセ
ージ取出両方の操作はバックアウトされる。それ故、ト
ランザクションがマーク付きメッセージを削除するよう
になった場合、これらのうち1つまたは複数がメッセー
ジ書出操作のバックアウトによって削除済みということ
になる。
【0150】異常な適用業務の終了 上述したように、接続マネージャ90は接続されている
適用業務の終了を監視しており、適用業務が正常に終了
したのか、異常に終了したのかを判断できる。MQIの
指定は、適用業務がコミットまたはバックアウトを出さ
ずに、異常に終了した場合、未完了の操作はバックアウ
トされることになる。操作の流れは次の通りである。
【0151】1.適用業務が異常に終了する。
【0152】2.CMC90は異常終了を認識し、回復
マネージャ130のABORT−URサービスを呼び出
す。
【0153】3.CMC90はMMC100を呼び出し
て、未完了のオープン待ち行列に対してMQCLOSE
操作を行う。
【0154】4.CMC90はLOCKを呼び出して、
この適用業務が保持しているすべての割振り中ロック及
びコミット中ロックをリリースする。
【0155】異常な適用業務の終了の結果としてのバッ
クアウトがバックアウトを明示的に出した適用業務の結
果としてのバックアウトとは異なる処理を受けることに
留意すべきである。このバックアウト中、MARK S
KIP ROLLBACKリストは検査されない。
【0156】回復マネージャ130のABORT−UR
機能 この機能は適用業務が出したバックアウトの結果または
上述したような適用業務の異常終了の結果として、接続
マネージャ90によって呼び出される。操作の流れは以
下の通りである。
【0157】1.RMC130は回復ログ・マネージャ
(RLMC)140を呼び出し、BEGIN−ABOR
Tログ・レコードを書き込む(かつ、強制する)。
【0158】2.RMC130はRLMC140を呼び
出し、このトランザクション・インスタンスに対してD
MC110が書き込んだ各UNDOレコードを逆に読み
取るログを読み取る。
【0159】3.RMC130は各DMC110ログ・
レコードに遭遇した場合に、UNDOログ・レコードに
対するDMC110ルーチンを呼び出す。
【0160】4.UNDOログ・レコードがもたらすD
MC110はこれがMQGETまたはMQPUT時に行
ったアクションを論理的に逆にする。
【0161】a.インテント書込み設定によって、BU
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に関して処理された場合、削除マークを除去する。
【0166】f.CLRのアンドゥ−LSNフィールド
はこれが書き込まれたUNDOレコードの親をポイント
する。
【0167】g.CLRのログ順序番号(LSN)はデ
ィスク・バッファのページ−LSNフィールドに格納さ
れる。
【0168】h.DMC110はBUFFを呼び出し、
ページをリリースし、インテント書込みをリセットす
る。
【0169】5.RMC130はUR関連ログ・レコー
ドの後方走査中にBIGIN−URレコードに出会う
と、RLMC140を呼び出して、「END−ABOR
T」ログ・レコードを書き込む。
【0170】6.RMC130は「アクティビティ範囲
の終り」を同報通信するためのDMC110を呼び出
す。
【0171】7.DMC110はそのマーク付きメッセ
ージ・リストを空にする。(適用業務が出したバックア
ウトを処理した場合、マーク付きメッセージ・リストは
接続マネージャ90が保持している記憶域にコピーされ
る。)
【0172】8.RMC130はロック・マネージャ1
50を呼び出して、すべてのコミット中ロックをリリー
スする。
【0173】9.ロック・マネージャ150はこのトラ
ンザクション・インスタンスが保持しているすべてのコ
ミット中ロックをリリースする(ただし、割振り中ロッ
クはリリースしない)。
【0174】上記で詳述した方法の実施形態において、
マーク付きメッセージは適用業務が検出したエラー状態
に引き続いてバックアウトされ、ロックされているこれ
らが指定した除外操作が新しい作業単位で検索される。
適用業務は次いで、新しい作業単位をコミットし、以前
にマークのつけられたメッセージを待ち行列から除去さ
せることができる。要求プログラムに元の要求の最終結
果を通知する応答メッセージは、新しい作業単位に入れ
られ、新しい作業単位がコミットされたとき送られるこ
とが望ましい。
【0175】他の実施形態において、除外操作はバック
アウトされないが、部分的に完了した作業単位として保
持される。この作業単位は次いで、保持された操作に付
加された新しい操作によって完了される。これら2つの
方法の実施形態の最終結果は類似しているが、前者の方
が実現が容易である。すべての資源更新をバックアウト
する場合、すべてのコミット中ロックのリリースは比較
的簡単に行うことができるが、リリースされるもの全部
または保持されるもの全部のいずれかに対してロック名
の付いたロック・マネージャ150を提供することは複
雑なものである。さらに、バックアウトされない操作を
新しい作業単位のログ・レコードに記録することは困難
である。
【0176】上記で詳述した本発明の実施形態例が操作
要求の発行時のオプションとしてトランザクションの開
始したメッセージ待ち行列化操作のマーク付けを含んで
いるが、適用業務が出すバックアウト要求から除外され
るが、他のタイプのバックアウトに通常関与している資
源更新に本発明方法を適用でき、資源更新を除外するか
どうかの資源更新要求を出す時点でのみの決定に限定さ
れないことが、当分野の技術者には明らかであろう。
【図面の簡単な説明】
【図1】メッセージ及び待ち行列化を使用して互いに通
信している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の適用業務によるエラー状態の検出に応じて、
    前記第1の作業単位で行われる資源更新をバックアウト
    するとともに、除外された資源を他の適用業務が利用で
    きないようにし、 前記の除外された操作を含む作業単位を開始して、適用
    業務による他の処理を可能とするステップからなる過ち
    許容トランザクション指向データ処理方法。
  2. 【請求項2】前記の除外された資源が前記第1の適用業
    務による該資源に対する割振り中ロックの取得によっ
    て、他の適用業務に利用できないようにされる請求項1
    に記載の方法。
  3. 【請求項3】バックアウト除外が指定された作業単位の
    除外操作が適用業務の要求ではバックアウトされず、バ
    ックアウト後に開始された前記作業単位がバックアウト
    されない前記操作を含むように構成される請求項1に記
    載の方法。
  4. 【請求項4】適用業務の要求したバックアウトの結果か
    ら除外可能な操作がトランザクションの開始した操作に
    含まれる請求項1に記載の方法。
  5. 【請求項5】適用業務の要求したバックアウトの結果か
    ら除外可能な操作がトランザクションの開始した操作に
    含まれる請求項2に記載の方法。
  6. 【請求項6】適用業務の要求したバックアウトの結果か
    ら除外可能な操作がトランザクションの開始した操作に
    含まれる請求項3に記載の方法。
  7. 【請求項7】適用業務の要求したバックアウトの結果か
    ら除外される個々の操作要求またはトランザクション要
    求にマークがつけられ、マークのつけられた該要求のリ
    ストがトランザクション処理システムによる検査のため
    に格納される請求項1に記載の方法。
  8. 【請求項8】適用業務の要求したバックアウトの結果か
    ら除外される個々の操作要求またはトランザクション要
    求にマークがつけられ、マークのつけられた該要求のリ
    ストがトランザクション処理システムによる検査のため
    に格納される請求項2に記載の方法。
  9. 【請求項9】適用業務の要求したバックアウトの結果か
    ら除外される個々の操作要求またはトランザクション要
    求にマークがつけられ、マークのつけられた該要求のリ
    ストがトランザクション処理システムによる検査のため
    に格納される請求項3に記載の方法。
  10. 【請求項10】適用業務の要求したバックアウトの結果
    から除外される個々の操作要求またはトランザクション
    要求にマークがつけられ、マークのつけられた該要求の
    リストがトランザクション処理システムによる検査のた
    めに格納される請求項4に記載の方法。
  11. 【請求項11】適用業務の要求したバックアウトの結果
    から除外される個々の操作要求またはトランザクション
    要求にマークがつけられ、マークのつけられた該要求の
    リストがトランザクション処理システムによる検査のた
    めに格納される請求項5に記載の方法。
  12. 【請求項12】適用業務の要求したバックアウトの結果
    から除外される個々の操作要求またはトランザクション
    要求にマークがつけられ、マークのつけられた該要求の
    リストがトランザクション処理システムによる検査のた
    めに格納される請求項6に記載の方法。
  13. 【請求項13】適用業務間のプログラム間連絡がメッセ
    ージ待ち行列を使用して実行され、トランザクション要
    求が待ち行列に送られたメッセージからなり、エラー状
    態の検出に応じて適用業務の要求したバックアウトに引
    き続いて開始された前記作業単位のコミットが、エラー
    状態を生じたメッセージをメッセージ待ち行列から除去
    する請求項4に記載の方法。
  14. 【請求項14】適用業務間のプログラム間連絡がメッセ
    ージ待ち行列を使用して実行され、トランザクション要
    求が待ち行列に送られたメッセージからなり、エラー状
    態の検出に応じて適用業務の要求したバックアウトに引
    き続いて開始された前記作業単位のコミットが、エラー
    状態を生じたメッセージをメッセージ待ち行列から除去
    する請求項5に記載の方法。
  15. 【請求項15】適用業務間のプログラム間連絡がメッセ
    ージ待ち行列を使用して実行され、トランザクション要
    求が待ち行列に送られたメッセージからなり、エラー状
    態の検出に応じて適用業務の要求したバックアウトに引
    き続いて開始された前記作業単位のコミットが、エラー
    状態を生じたメッセージをメッセージ待ち行列から除去
    する請求項6に記載の方法。
  16. 【請求項16】適用業務間のプログラム間連絡がメッセ
    ージ待ち行列を使用して実行され、トランザクション要
    求が待ち行列に送られたメッセージからなり、エラー状
    態の検出に応じて適用業務の要求したバックアウトに引
    き続いて開始された前記作業単位のコミットが、エラー
    状態を生じたメッセージをメッセージ待ち行列から除去
    する請求項7に記載の方法。
  17. 【請求項17】適用業務間のプログラム間連絡がメッセ
    ージ待ち行列を使用して実行され、トランザクション要
    求が待ち行列に送られたメッセージからなり、エラー状
    態の検出に応じて適用業務の要求したバックアウトに引
    き続いて開始された前記作業単位のコミットが、エラー
    状態を生じたメッセージをメッセージ待ち行列から除去
    する請求項8に記載の方法。
  18. 【請求項18】適用業務間のプログラム間連絡がメッセ
    ージ待ち行列を使用して実行され、トランザクション要
    求が待ち行列に送られたメッセージからなり、エラー状
    態の検出に応じて適用業務の要求したバックアウトに引
    き続いて開始された前記作業単位のコミットが、エラー
    状態を生じたメッセージをメッセージ待ち行列から除去
    する請求項9に記載の方法。
  19. 【請求項19】適用業務間のプログラム間連絡がメッセ
    ージ待ち行列を使用して実行され、トランザクション要
    求が待ち行列に送られたメッセージからなり、エラー状
    態の検出に応じて適用業務の要求したバックアウトに引
    き続いて開始された前記作業単位のコミットが、エラー
    状態を生じたメッセージをメッセージ待ち行列から除去
    する請求項10に記載の方法。
  20. 【請求項20】適用業務間のプログラム間連絡がメッセ
    ージ待ち行列を使用して実行され、トランザクション要
    求が待ち行列に送られたメッセージからなり、エラー状
    態の検出に応じて適用業務の要求したバックアウトに引
    き続いて開始された前記作業単位のコミットが、エラー
    状態を生じたメッセージをメッセージ待ち行列から除去
    する請求項11に記載の方法。
  21. 【請求項21】適用業務間のプログラム間連絡がメッセ
    ージ待ち行列を使用して実行され、トランザクション要
    求が待ち行列に送られたメッセージからなり、エラー状
    態の検出に応じて適用業務の要求したバックアウトに引
    き続いて開始された前記作業単位のコミットが、エラー
    状態を生じたメッセージをメッセージ待ち行列から除去
    する請求項12に記載の方法。
  22. 【請求項22】第1の適用業務が実行した資源更新がト
    ランザクションの正常な完了時のみに他の適用業務に対
    して永続的で、かつ利用可能なものとされ、正常な完了
    前にエラー状態を発見したときにバックアウトされるト
    ランザクション指向データ処理システムにおいて、 第1の作業単位内の操作をエラー状態の検出に引き続い
    た適用業務の要求したバックアウトの結果から除外する
    かどうかを指定する手段と、 前記第1の適用業務によるエラー状態の検出に応じて、
    前記第1の作業単位内で行われる資源更新をバックアウ
    トするとともに、除外された操作を他の適用業務に利用
    できないようにする手段と、 前記の除外された操作を含んでいる作業単位を開始し、
    適用業務による他の処理を可能とする手段とからなる過
    ち許容トランザクション指向データ処理システム。
JP6032358A 1993-03-30 1994-03-02 過ち許容トランザクション指向データ処理 Pending JPH06301581A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020031744A1 (ja) * 2018-08-09 2020-02-13 日本電信電話株式会社 原子性保証装置および原子性保証方法

Families Citing this family (155)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0448349A (ja) * 1990-06-18 1992-02-18 Nec Corp 更新前イメージ出力方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0448349A (ja) * 1990-06-18 1992-02-18 Nec Corp 更新前イメージ出力方式

Cited By (3)

* Cited by examiner, † Cited by third party
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