JP4049293B2 - 情報システムにおいて一貫性を維持するためのトランザクションシステム及び方法 - Google Patents

情報システムにおいて一貫性を維持するためのトランザクションシステム及び方法 Download PDF

Info

Publication number
JP4049293B2
JP4049293B2 JP2000535992A JP2000535992A JP4049293B2 JP 4049293 B2 JP4049293 B2 JP 4049293B2 JP 2000535992 A JP2000535992 A JP 2000535992A JP 2000535992 A JP2000535992 A JP 2000535992A JP 4049293 B2 JP4049293 B2 JP 4049293B2
Authority
JP
Japan
Prior art keywords
transaction
service
state
subtransaction
independence
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.)
Expired - Fee Related
Application number
JP2000535992A
Other languages
English (en)
Other versions
JP2002507021A (ja
JP2002507021A5 (ja
Inventor
プラシャント グピタ,
デイヴィッド, エス. ルビン,
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 JP2002507021A publication Critical patent/JP2002507021A/ja
Publication of JP2002507021A5 publication Critical patent/JP2002507021A5/ja
Application granted granted Critical
Publication of JP4049293B2 publication Critical patent/JP4049293B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Complex Calculations (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、全体として、コンピューティングシステムに関し、特に情報システムの非同期トランザクションを処理する方法及び装置に関する。
【0002】
【従来の技術】
情報システム又はデータベースシステムは、一まとまりのコンピュータ化データファイル(データベース)のためのリポジトリである。一人以上のユーザがデータベースの情報にアクセスし、その情報を検索、修正できるように、情報システムは、データベース管理システムの形でデータベース管理機能を含むことができる。データベースは、ある企業のアプリケーションシステムによって使用することができる一まとまりの持続的なデータから成る。一般的に、このような多くのユーザは、所定の時間にデータベースにアクセスする。データベース管理システムの1つの機能は、データベースのデータに示される多くの脅威に対する防御である。データベースデータを保護するためのツールは、リカバリーツール、コンカレンシツール、セキュリティツール及び完全性ツールを含むことができる。
【0003】
リカバリー及びコンカレンシは、トランザクション処理を伴う関連した概念である。トランザクションは、作業の論理単位である。トランザクションは、データベースに対する1つ以上のアクセスを伴うことができ、また、データベースに格納される情報の1つ以上のアップデートを含むことができる。たとえ多くのデータベース動作を起動することができる場合であっても、トランザクションは原子単位であると考えられる。古典的なトランザクション処理では、トランザクションがデータベースに幾つかのアップデートを実行し、トランザクションがその正常終了に至る前に障害が発生すると、それらのアップデートは取り消されることになる。
【0004】
トランザクション処理を容易にするために、データベース管理システムはトランザクションマネージャを含むことができる。トランザクションマネージャは、データベースに対するトランザクションを監督して、トランザクション処理をサポートするために必要な原子性を提供するためにCOMMIT及びROLLBACKオペレーションなどのツールを使用することができる。COMMITオペレーションは、作業のロジカルユニット、すなわちトランザクションが完了したという”トランザクションの成功終了(成功エンド・オブ・トランザクション”を送信する。ROLLBACKオペレーションは、データベースが矛盾状態にあるかもしれないことを示す”トランザクションの不成功終了(不成功エンド・オブ・トランザクション”を送信する。リカバリーは、ロールバック( ROLLBACK に応答してトランザクションマネージャによって開始されるそれらのオペレーションに関連する。
【0005】
コンカレンシは、複数のユーザによって実行されるトランザクションのインタラクションに関連する。コンカレンシ管理者又は他のコンカレンシ制御メカニズムは、同時トランザクションがお互いのオペレーションを妨げないようにデータベース管理機能の一部として提供することができる。コンカレンシ制御メカニズムは、失ったアップデート、未遂の従属性及び矛盾する解析問題に関する問題を軽減することができる。コンカレンシ問題のより詳細な説明は、Addison Wesleyから出版されている「An Introduction toDatabase Systems 第5版」 (C.J. Date著、1991年)に記載されている。
【0006】
コンカレンシ問題に対する1つの従来の解決法は、ロックの使用である。ロッキングは1つのトランザクションがデータベースの特定の部分の状態に依存することができ、データの状態を変更する他のトランザクションに関係しないという保証を提供する。
【0007】
従来のコンカレンシ管理者は、2種類のロック、すなわち排他ロック(Xロック)及び共有ロック(Sロック))を使用する。1つのトランザクションだけが、トランザクションレコード上のXロックを一度に保持することができる。2つ以上のトランザクションが、同じレコード上のSロックを維持することができる。例えば、トランザクションAがレコードR上の排他的(X)ロックを保持する場合、トランザクションBから出されるR上のいずれのタイプのロックの要求もBを待ち状態に入らせる。Aのロックが解除されるまで、Bは待機することになる。トランザクションAがレコードR上の共有(S)ロックを保持する場合、トランザクションBから出されるR上のXロックの要求はBを待ち状態(に入らせる(そして、Aのロックが解放されるまでBは待機する)。しかしながら、トランザクションBから出されるR上のSロックの要求は認可される(すなわち、これ以降、BもR上のSロックを保持することになる)。
【0008】
レコードロックのトランザクション要求は、通常、暗黙的である。トランザクションは、レコードの検索に成功すると、自動的にそのレコード上のSロックを取得する。トランザクションは、レコードのアップデートに成功すると、自動的にそのレコード上のXロックを取得する。トランザクションがレコード上のSロックをすでに保持している場合、アップデートはSロックをXレベルに「進める」。Xロックは、次の同期点(synchpoint)まで保たれる。同期点は、2つの連続するトランザクション間の境界を表す。このため、同期点は、作業のロジカルユニットの終りに一致し、従ってデータベースが一貫性の状態にある点(或いは一貫性の状態にあるはずの点)に一致する。通常、同期点を確立する唯一の操作は、COMMIT、ROLLBACK及びプログラム開始である。Sロックも、通常、次の同期点まで保持される。
【0009】
トランザクションサービスの典型的役割は、トランザクションの古典的ACID特性を確保にすることである。これらの特性には、原子性(Atomicity)、一貫性(Consistency)、独立性(又は隔離性)(Isolation)及び耐久性(Durability)が含まれる。
【0010】
原子性は、トランザクションの全てのステップが実行されるか、或いはいずれのステップも実行されないトランザクションサービスの特性に関連する。一貫性は、1つの既知の状態から別の既知の状態へのデータの遷移をいう。独立性特性は、その言葉が連想させるように、あるトランザクションの範囲内で行われたデータ修正が他のトランザクションデータ修正から分離されていることを提示する。換言すれば、トランザクションの中間結果、他のトランザクションに「示され」ない。耐久性特性は、トランザクションの範囲内で行われたデータ修正がディスクに保存される保証を確保する。
【0011】
要するに、持続的なデータに対する状態変更が、他のプロセスによって行われる状態変更から分離され、「回復」できるような方法(すなわち、障害時に我々がオブジェクトを既知の状態に復元できる)で確実に行われるようにすることは、トランザクションサービスのジョブである。ロッキングはコンカレンシの保証を与えるが、長寿命又は非同期のトランザクションを処理する際に問題が起こる。上記のように、ロックは、トランザクションの完了及び次の同期点の発生まで所定の場所に残る。しかし、長寿命のトランザクションが生じると、データベースに対するロックは、効率のわるいパフォーマンスを生じさせることがある。例えば、ビジネストランザクションは、様々な供給元に送られる予定の見積額の要求を含むことがある。このトランザクションは、1つ以上の入札が返される将来の不確定な時点に完了する。明らかなように、これらのタイプの長寿命トランザクションを待つ間、データベースのリソースを拘束することは非効率的である。
【0012】
古典的なオンライントランザクション処理(OLTP)システムでは、少量のデータに接触し、非常に素早く完了(例えば、古典的な航空券予約システム)する小さくて持続時間の短いトランザクションから作業負荷が構成されている。長寿命のトランザクションを示すシステムでは、WANにわたって存続するデータに接触するトランザクション、又は信頼できるメッセージ送信プロバイダを介してデータを参照するトランザクション(すなわち、アプリケーションを実行する必要がない場合)から作業負荷が構成されることがある。。いずれにせよ、この作業負荷のセマンティックスは、古典的OLTP作業負荷とは劇的に異なっている。これらの作業負荷に対しては、トランザクション処理システムによって提供される従来のロッキング方式は、ひどく不適当である。
【0013】
【課題を解決するための手段】
一般に、ある態様において本発明は、非同期トランザクションをサポートする情報システムの一貫性を維持するためにサーバマシン上で実装されるトランザクションシステムを提供する。この情報システムは、複数のユーザ間で共有され、クライアントマシン上に実装されるデータベースを含んでいる。このトランザクションシステムは、トランザクションの実行時に起動される。ここで、トランザクションは、1つ以上のサブトランザクションステップを含む。トランザクションシステムは、サーバマシンとデータベース又はアプリケーションとの間のトランザクションを実行するためのユーザ定義独立性レベル選択を受信するグラフィカルユーザインタフェースと、各サブトランザクションステップの実行において影響を受ける各オブジェクトに関するオブジェクト状態情報を記憶する持続性サービスと、サブトランザクションステップによって影響を受ける各オブジェクトの状態を検証し、そのオブジェクトの状態がそのオブジェクトがトランザクション中で最後に見られたときと同じであることを検証する状態検証サービスと、を含んでいる。
【0014】
本発明の態様は、多数の特徴を含む。独立性レベル選択は、一貫性サービスから連続サービスまでの範囲にわたって変化することができる。ここで、一貫性サービスは、サブトランザクションレベルで全てのACID特性を満たす。また、連続サービスは、サブトランザクションの実行時におけるACID特性の保証を何ら提供しない。一貫性サービスは、各サブトランザクションが実行される期間にわたる読取りの一貫性を保証するために、独立性レベル読み取りを含んでいる。
【0015】
独立性レベル選択は、”ストリンジェント”独立性サービス及び”独立性サービスなし”独立性サービスを含む。”ストリンジェント”独立性サービスは、サブトランザクションレベルで、全てのACID特性にコンプライアンスを提供し、”独立性サービスなし”独立性サービスは、サブトランザクションの実行時におけるACID特性の保証を何ら提供しない。
【0016】
トランザクションシステムは、”最良のエフォート”独立性サービスを含む。ここで、”最良のエフォート”独立性サービス及びストリンジェント独立性サービスは、すべてのACID特性にコンプライアンスを提供するが、”ストリンジェント”独立性サービスは、サブトランザクションステップが実行される期間全体にわたって一貫性を保証するために独立性レベル読み取りを含んでいる。トランザクションシステムは、”最小のエフォート”独立性サービスを含む。個の場合、状態検証サービスが使用禁止にされ、サブトランザクションステップの実行前にオブジェクト状態チェックは実行されない。トランザクションシステムは、”エフォートなし”独立性レベル選択を含む。この結果、一貫性エラーがサブトランザクション処理中に返されるまでトランザクションが実行されることになる。
【0017】
トランザクションシステムは、サブトランザクションレコードのリンクリストを維持し、トランザクションが実行されるときにトランザクションレコードを補償するサガサービスと、トランザクションの実行のフォワード進行中に障害が発生したときにトランザクションの補償を実施するリカバリーサービスと、を含む。
【0018】
別の態様では、本発明は、情報システムの一貫性を維持するためにサーバマシン上で実施される方法を提供する。ここで、この情報システムは、複数のユーザ間で共有され、クライアントマシン上で実装されるデータベースを含む。この方法は、トランザクションの実行時に呼び出される。ここで、トランザクションは、1つ以上のサブトランザクションステップを含む。この方法は、サーバマシン及びデータベースアプリケーション間のトランザクションを実行するための定義済みサービスレベル選択を行うステップと、各サブトランザクションステップの実行時に影響を受ける各オブジェクトに関するオブジェクト状態情報を記憶するステップと、サブトランザクションステップによって影響を受ける各オブジェクトの状態を検証し、そのオブジェクトの状態がそのオブジェクトがトランザクション中で最後に見られたときと同じであることを検証するステップと、を含む。その状態が最後の既知の状態と一致しない場合、トランザクションの順方向実行進行が停止される。
【0019】
別の態様では、本発明は、独立のアプリケーションのインタラクションを指示するため ビジネス論理を含むコラボレーションであって、サーバマシン上で実行されるコラボレーションであり、複数の同様のアプリケーションと通じる複数のコネクターと、アプリケーションコラボレーションモジュール及びサービスモジュールを含むインターチェンジサーバを含む。前記アプリケーションコラボレーションモジュールは2つ以上のアプリケーションの間でインターオペラビリティを定義し、関連アプリケーションに搬送するための一以上のコネクターにデータを送出する1つ以上のサブトランザクションステップを有するトランザクションを含む。インターチェンジサーバは、アプリケーションによって管理されるデータベースで一貫性を維持するトランザクションシステムを含んでいるサービスモジュールを含む。トランザクションシステムは、トランザクション実行中に維持される独立性レベルを特徴づける定義されたユーザ独立性レベル選択を構成するグラフィカルユーザインタフェースを含む。各サブトランザクションステップの実行で影響を及ぼされる各オブジェクトに対して、オブジェクト状態情報を格納する持続的サービスを含み、オブジェクトがトランザクションで前に見られたのと同じ状態かを検証するために、サブトランザクションステップによって影響を及ぼされる各オブジェクトの状態を検証するための状態検証サービスを含む。
【0020】
本発明の各態様は、多数の利点を含む。本発明の1つの利点は、必要とされている適切なレベルのサービスをサービスの顧客が要求できるように、柔軟なトランザクションサービスが提供されるということである。提供されるサービスの様々なレベルの各々について、このトランザクションサービスは、適切なトランザクショナルセマンティックス及びリカバリーセマンティックスを確保する。このトランザクションサービスは、構築が容易であり、適切なインタフェースを他の交換顧客に提供し、また拡張性を与える。他の利点及び特徴は、以下の説明及び特許請求の範囲から明らかになる。
【0021】
【発明の実施の形態】
本発明の好ましい実施例は、1997年1月8日に本願の出願人によって出願された米国特許出願第08/780593号に記載されたコラボレーション構成のコンテクスト中に動作する好ましい実施例は、上記の出願で定義されるコラボレーション内のフレキシブルトランザクションシステムを提供するために用いられる。
【0022】
一般に、コラボレーション構成は、相容しない且つ自分で直接互いにインタラクションしない独立のアプリケーションのインタラクションをサポートする。コラボレーション構成の構造の例は、図1の中で示される。コラボレーション構成は、独立アプリケーション102、104、106間のインタラクションのためのインターチェンジサーバ100を提供する。インターチェンジサーバ100は好ましく、コネクター108、110、112によってインターチェンジサーバ100に接続しているアプリケーション102、104、106の間で動作する。そして、コネクター108、110、112は、インターチェンジサーバ100内に位置するコラボレーション114、116に関連付けられる。コラボレーション114、116は、1つ以上のプロセスを表す。各プロセスは、1つ以上のアプリケーション102、104、106を含むトランザクションである。よって、コラボレーション114、116は、アプリケーション102、104、106間のインタラクション及びデータ交換のための共通ミーティングポイントとして作用する。
【0023】
例えば、コラボレーション114は、アプリケーション102からデータを受け取り、そして異なるフォーマットでアプリケーション104にそのデータの一部を送ることを要求するプロセスを含んでもよい。アプリケーション102は、データをコネクター108へ送信する。コネクター108は、データをインターチェンジフォーマットオブジェクトに変換して、データの利用性を示すイベントを公表する。コラボレーション114は、上記オブジェクトを、イベントの加入者として受け取る。コラボレーション114は、そのプロセスを実行し、コネクター110に送られるべきオブジェクトを生成する。コネク ター110は、上記対象を適切なフォーマットに変換して、アプリケーション104において適切なマシン能を始める。このように、独立に相容しない2つのアプリケーション102、104からのインタラクションを必要とするプロセスが達成される。
【0024】
本発明によるプロセス非同期トランザクションのためのより一般的な構成は、図2で示される。分散されたコンピュータシステム200は、サーバマシン220とクライアントマシン250を含む。サーバマシン220とクライアントマシン250の各々は、セントラルプロセッシングユニット(CPU)202、メモリ204、ディスクサブシステム206、ネットワークサブシステム208、オペレーティングシステム210とコミュニケーションインタフェース213を含んでもよい。各々は、アプリケーションプログラムの実行のために必要なサービスを提供する。メモリ204は、リードオンリーメモリ(ROM)や揮発性及び不揮発性のランダムアクセスメモリ(RAM)を含んでもよい。サーバマシン220内のディスクサブシステム206が、実行可能なプログラム(例えばビジネスアプリケーション(以下、ビジネス論理という場合がある)又はコラボレーション)の格納に用いられ、クライアントマシン250内のディスクサブシステム206が、アプリケーション251とデータベース252の格納に用いられても良い。ネットワークサブシステム208は、他のサーバマシン220とクライアントマシン250を実行しているアプリケーションによって、コミュニケーションインタフェース213を介するコミュニケーションを容易にする。種々のクライアント及びサーバマシン、ネットワーク26によって接続される。ネットワークは、イントラネット、インタネット、ローカルエリアネットワーク又は他の類似のデバイスの形式であってもよい。
【0025】
サーバマシン220は、アプリケーションAPIに対して或る所定のリクエストを実行する責任の或るビジネス論理222を組み入れて良い。この例の目的のために、サーバマシン220は、クライアントマシン250を実行しているアプリケーション251と通信するために、(クライアントマシン250の)API240に、リクエストを提供する。サーバマシン220は、トランザクションシステム224と、メタ−データ管理サービス221とユーザインタフェース207とを含む。トランザクションシステム224は、非同期或いは長寿命トランザクションのためにサポートを提供して、独立性レベル(サービスレベル)を設定する方法を含む。トランザクションシステム224は、クライアントが必要なサービスの適切なレベルをリクエストできるようにする。提供されるサービスの各異なるレベルで、トランザクションシステム224は、適切なトランザクション及びリカバリーセマンティクスを確保する。トランザクションシステム224は、状態検証サービス225、持続的サービス226、サガサービス228とリカバリーサービス230を含む。
【0026】
状態検証サービス225は、トランザクションによって示されるオブジェクトと関連する状態情報をチェックする。特に、状態検証サービスは、トランザクションのために実行時で起動される。各サブトランザクションステップが実行される際、状態検証サービス225は、一定のトランザクションステップに影響される各オブジェクトの状態をチェックして、オブジェクトの現在状態が、トランザクション内に同様なオブジェクトが見られた前回と同じものであることを検証する。
【0027】
持続的サービス226は、情報の持続状態を確保すること役割を果たす。トランザクションシステムの全ての他のコンポーネントは、持続的サービスの正確なオペレーションに頼る。アンドゥ操作を実行するために必要な全てのオブジェクト状態情報は、実行時で格納されなければならない。オブジェクト状態情報をロギングし、ビジネス論理222に従って実行されるトランザクションと関連するトランザクション情報を補償するためのリポジトリ237が、持続的サービス226に関連付けられる
【0028】
サガサービス228は、「トランザクションを開始する」、「トランザクションを行う」及び「トランザクションを中断する」のセマンティクスを制御することを含むトランザクション正当性を確保する役割を果たす。サガサービス228は、異常終了(トランザクション異常終了)の場合におけるトランザクションをアンドゥするための付随の補償トランザクションと共に行われる、サーバマシン220とクライアントマシン250とをそれぞれ実行するアプリケーション間のインタラクションのためのトランザクションを定義する(以下に定義される)「サガ」を形成する。
【0029】
リカバリーサービス230は、異常終了後のトランザクション正当性を確保する役割を果たす。更に、リカバリーサービス230は、どんなタイプの異常終了が回復可能であることを定義し、回復のための方法論(すなわちロールバック対ロールフォーワ−ド)を定義する役割を果たす。
【0030】
これらのサービスの各々のオペレーションが、以下に、より詳細に論議される。
【0031】
メタデータ管理サービス221は、ユーザインタフェース207のグラフィカルユーザインタフェース(GUI)212上で、サービスリクエストを表示する方法を含む。サービスリクエストは、順番にリポジトリ237に格納されうるビジネス論理222を処理する際に用いられるための独立性レベル選択を定義することをユーザ促す。ビジネス論理222の処理及びユーザによって定義された独立性レベルの使用が、以下に、より詳細に論議される。
【0032】
クライアントマシン250は、アプリケーション251を実行し、サーバマシン220への或いはサーバマシン220からのデータ搬送を必要とするトランザクションに応答して開始してもよい。API 240は、クライアントマシン250で実行するアプリケーション251に、データ検索、データインサート、データアップデート又はデータ削除のためのリクエストを伝える方法を提供する。これらの議論の目的のために、例えばデータベース252に位置するクライアントの中のデータレジデントは、サーバマシン220によって開始されたトランザクションによって操作されることになっている。API 240は、何らかの外部トランザクションコーディネータとのインタラクションのための何らかのインタフェースを提供しない。このように、外部の使用のために「トランザクション的」動作の何らかの概念を表さない
【0033】
ここで記載されているトランザクションシステムによってアドレスされる基本問題は、サーバ上でビジネス論理に代わって(トランザクションのインタフェースを示さない)一般的なAPIとインタレクトすることになる。トランザクション作業は、ACID特性を示すオペレーションのシーケンスとして定義される。
【0034】
アプリケーションAPIとインタラクトするトランザクションシステムは、(それがAPIを通してさらされないので)排他的ロッキングを用いることができない、よって、単にAPIによって提供されるマシン能性だけによって、ACID特性を成し遂げなければならない。
【0035】
本発明において、ビジネス論理222は、ユーザが、ストリンジェント”、”最良のエフォート”、”最小のエフォート”、”エフォートなし”を含む4つの別々のトランザクション独立性レベルのうちの1つを指定できるようにするためGUIを示す。特定の独立性レベルの選択は、失敗したサブトランザクションステップに応答するための方法論及び状態情報の格納に対する必要な条件を定義する。「ストリンジェント」から下へ、各以降のレベルは、ユーザに、トランザクションACID特性とシステム性能との保証の間で、トレードオフを提供する。しかし、より少ない制限レベルのサービス(”最小のエフ ォート”及び”エフォートなし”)は、ACID特性に対して、少しのみの保証を提供し、或いは保証しないが、ますます少ないシステムオーバヘッドが、これらのトランザクションを実行するためにトランザクションシステムによって必要され、よって、より大きなレベルのシステムトランザクション能力を提供する。サービスの各レベルのオペレーションを理解するために、サンプルトランザクションが定義される。
【0036】
図3aに示されるように、ビジネス論理222(図2)は、1つ以上のトランザクション300を含んでもよい。トランザクション300は、1つ以上のサブトランザクション302を含んでもよい。各サブトランザクションは、サブトランザクションによって影響を受けることになっている全てのビジネスオブジェクトを識別するためのオブジェクト識別子304と、サブトランザクションの一部として行われる動作を記述する動詞(バーブ)306と、動詞と共に用いられる値(バリュー308とを含む。
【0037】
トランザクション300は、それに関連付けられている補償サガチェイン310を有し、補償サガチェイン310は、トランザクション300の異常終了の場合に実行されてもよい。サガチェイン310は、1つ以上の補償トランザクション312を含んでもよい。サブトランザクションと補償トランザクションとの1対1のマッピングが存在してもよい。各補償トランザクション312は、補償トランザクションによって影響される全てのビジネスオブジェクトを識別するオブジェクト識別子314と、補償トランザクションの一部として実行される動作を記述する補償動詞(補償バーブ)316と、補償動詞と共に用いられる318(又はビジネスオブジェクト)とを含む。
【0038】
補償トランザクションのための内容作成は、ビジネス論理の開発者に任せられる。どんな特定ステップが補償トランザクションを形成するは、その開発者によって定義される。トランザクションの実行のための時間(ランタイム)に、トランザクションシステム224(特にサガサービス228)は、ビジネス論理によって提供されるトランザクション(及びサブトランザクション)及び何らかの関連する補償トランザクション定義する「サガ」を開発する。各サブトランザクションステップの影響をセマンティクス的に取り消す論理を含む1つ且つ唯一の原子性補償トランザクションスが存在するように、サガは、補正された補償トランザクションステップテップとサブトランザクションとからなる1つのセットである。トランザクションの論理的「アンドゥ」が、失敗状態を検出すると実行されるように、サガは、トランザクション及び関連する補償トランザクションステップに関連付けられた必要な情報を記録するキュー形成する。サガサービス228は、サガの作成及び修正のために用いられる。
【0039】
実行(ランタイム)の時に、トランザクション300は、データベース252に格納されているレコード(記録(ビジネスオブジェクト)の検索、アップデート又は他操作を結果としてもたらす。各サブトランザクションステップで、ビジネスオブジェクトは、サブトランザクション動詞に従って操作されてもよい。サブトランザクションが完了する時点で、実行されるサブトランザクションのリスティング、並びにあらゆるオブジェクトの状態及びトランザクションサービスのためにリクエストされる独立性レベルを維持するために、持続的サービスが起動されうる
【0040】
基礎的なトランザクション構成が与えられる場合、独立性の各レベルのための持続的サービス、サガサービス及びリカバリーサービスを含むトランザクションのオペレーションが記載されることが可能である。
【0041】
ストリンジェント独立性レベル
各サブトランザクションステップ(又は補償トランザクション)が実行される前に定められるストリンジェントエントリ基準によって、ストリンジェント独立性レベルが特徴づけられる。エントリ基準が失敗ならば、ステップ(又は補償)は「独立性故障(フォルト」で失敗となる。該故障がサブトランザクションステップで発生したならば、トランザクションは中止され、リカバリーサービス補償を開始する。該故障が補償で発生するならば、詳細なトレースイベントはロギングされてもよく、サガは中止される。好適な実施形態では、補償トランザクションを実行するとき故障が検出されると、サガは中止され、人間の介入のための要求が生成される。
【0042】
ストリンジェントエントリ基準は、次のように維持される:すなわち、各サブトランザクションが実行されるとき、影響を受ける全てのビジネスオブジェクトの次の状態が、トランザクションコンテキストの一部として、例えばリポジトリ237に絶え間なくロギングされる。新しい各サブトランザクションステップへエントリされると、テストが実行される。このステップ(オブジェクト識別子によって示される)によって影響を受ける各ビジネスオブジェクトのために、検索がトランザクションのコンテクストで行われる。より詳しくは、影響を受ける各ビジネスオブジェクトは、その特定のビジネスオブジェクトがカレントトランザクションコンテクストで作動したか(所定のトランザクションにおける以前のサブトランザクションステップによって)どうかを決定するために、チェックされる。動作された全てのビジネスオブジェクトのために、ビジネスオブジェクトの現在の状態は、トランザクションコンテキストにおいてオブジェクトの最後の既知の状態と照合される。適合する場合には、最後にビジネスオブジェクトがトランザクションコンテキストにおいて見出されたので、状態変更は起こらず、サブトランザクションステップの実行が進行してもよい。各サブトランザクションステップの完了で、所定のトランザクションステップによって影響を受けるビジネスオブジェクトは、トランザクションコンテキストにおいて最新バージョンでアップデートされる。適合しない場合、独立性失敗が起こり、トランザクションは中止されてもよく、そしてリカバリーが発動する。
【0043】
図4aは、ストリンジェント独立性サービスで構成されるトランザクションについてのフロー制御を示す。ここで、トランザクションステップが図4(b)に示され、サガサービス228によって生成されうるサガが図4(c)に示される。
【0044】
トランザクション400が、開始される(450)。トランザクション400と関連付けられた第1のサブトランザクションフォワード実行ステップ402は、「新入社員」オブジェクト404の作成 CREATE )を提供する。サガが開始され(452)、第1のサブトランザクションステップが実行される(454)。サガ420が生成され、このサブトランザクションのための補償レコード406が、補償サブトランザクションによって影響を受ける全てのオブジェクト関連付けられた状態情報とともに記憶される(456)
【0045】
より多くのサブトランザクションステップがトランザクションで提供されるかどうかを決定するためにチェックが実行される(458)。もしそうでなければ、該トランザクションはコミットされうる(459)。より多くのトランザクションステップが処理される場合、特定のビジネスオブジェクトがトランザクションコンテキストにおいて知られている場合に、次のサブトランザクションステップによって影響を受ける全てのビジネスオブジェクトについて決定するためにチェックが行われる(460)。以下で議論されているように、チェックはAPIレベルで実行される。
【0046】
既知のように、ビジネスオブジェクトは、トランザクション400の一部として提供されるサブトランザクションによって、既に影響を受けていることを意味する。サブトランザクション又は種々の補償トランザクションの実行の前に、ロジックはトランザクションサービスによって実行されなければならないことに注意されたい。ビジネスオブジェクトが既知でない場合(462)、サブトランザクションステップが実行される(464)。
【0047】
ビジネスオブジェクトが既知である場合(462)、ビジネスオブジェクトの既存の条件はビジネスオブジェクトの最後の既知の状態と比較される(466)。この目的は、最後及び現在の間でトランザクションが実行される時、他のいかなるトランザクションもこのオブジェクトを修正しなかったことを確実にすることである。このチェックが成功すると、次にサブトランザクションはステップ464で実行される。もしそうでなければ、リカバリーサービスを起動する独立性故障が識別され(468)、レベルn−1でトランザクションを補償する実行を開始する。
【0048】
各サブトランザクションが実行される場合、ちょうどコミットされた特定のサブトランザクションのために、サガは補償トランザクションをロギング(記録するために修正される。サガ420は、レベルで配列される。各レベルは、コミットされたサブトランザクションに対応する。サブトランザクションの実行が競合するたびに、新しいエントリが加えられる。このように、サブトランザクションが失敗するとき、ロールバックは最後の成功したサブトランザクション実行ステップまで進んでもよい。第1のトランザクションステップ402がコミットされた後(或いは、同時並行)、次に、補償トランザクションがサガ420に加えられる。この例では、トランザクションにおいてコミットされる第1のトランザクションステップを元に戻す UNDO ための補償トランザクションは、新しく作成 CREATE された従業員オブジェクトの削除を含む(削除( DELETE )動詞410及びオブジェクト412によって示される)。トランザクション400のステップがコミットされるように、サガへのエントリが実行され、サブトランザクションステップを体系的に元に戻す UNDO ことを許す。全てのトランザクションが完了する場合、該トランザクションがコミットされたと見なされ、そして該サガが捨てられる。
【0049】
サブトランザクションロッキング及びオブジェクトチェック
サブトランザクション動作が完了されるまで、サブトランザクションレベルでのロッキングは、トランザクションの独立性を確実にするために要求されてもよい。しかしながら、ロッキングはトランザクションレベルで起こらない。具体的には、所定のサブトランザクションによって影響を受けるように、ビジネスオブジェクトが識別されたとき、特定のサブトランザクションステップが完了され、全てのオブジェクトデータが格納されるまで、ビジネスオブジェクトに関連付けられたレコードは所定期間ロックされてもよい。このロッキング機能は、独立性レベル読み取り”を通じて呼び出される。独立性レベル読み取り、データの一時的なロッキングをもたらし、所定のサブトランザクションステップに関連付けられた何らかの変更 CHANGE が呼び出される。サブトランザクションが完了されるまで、ロックはレコードに置かれる。
【0050】
状態検証サービス225は、サブトランザクションステップで影響を受ける各オブジェクトの状態をチェックするために呼び出されうる。状態検証サービス225は、サーバ220でこれらのチェックを実行してもよく、又はチェック機能を実行するためにAPIにおける機能を利用してもよい。
【0051】
例えば、フォワード進行の間、トランザクションサブシステムは、各サービスレベルのための上記した、動作の必要な状態情報(リポジトリを使用する)を最適に格納する。(オペレーティングシステムとともに)ネットワークサブシステムは、各サブトランザクションステップのために、APIに動作及び状態情報を送ってもよい。リクエストがAPIに到着するとき、APIは原子性テスト及びセット動作を実行するために、動作情報とともに状態情報を使用してもよい。原子性テスト及びセット動作が成功であるならば、成功状態がサーバマシンに(及び最終的にビジネス論理に返され、さもなければ失敗状態が返される。動作がいつでも失敗するならば、次に「実行を元に戻すこと UNDO 」のプロセスが、リカバリーサービスを通して開始される。
【0052】
等価決定がAPIによってなされることができるまで、API240はアプリケーション251において原子性テスト及びセット動作を呼び出して、データベース252からのレコードを読みそしてレコードをロックしうる。特に、トランザクションシステムは、所定のレコード及び変更情報(特定のサブトランザクションステップによって示される)に関連づけられる特定のビジネスオブジェクトの最後の既知状態がAPIに運ばれる。最後の既知状態がトランザクションコンテキストのオブジェクトの状態と一致しているならば、レコードへのアップデートが実行される。他に、アップデートはAPIによって実行されない。実行されるロッキングは、再びサブトランザクションレベルで取り扱われるだけである点に留意されたい。従って、データベース252でのデータレコードの長期ロッキングは、サーバマシン220上で実行しているトランザクションが長期間でありうることを支持するために、要求されない。
【0053】
独立性故障が識別されたとき、サガキューに示される補償トランザクションは、一貫した状態にロールバックするために、先入れ後出し方法論により実行してもよい。ストリンジェント独立性レベルのために、ロールバック操作は実行時実行に類似した方法で実行される。すなわち、各補償トランザクションの実行の前に、所定補償トランザクションステップによって影響される全てのビジネスオブジェクトの状態が検証されて、既知のトランザクションコンテキストかどうか決定される。どんなオブジェクトでも既知でその状態が最後の既知状態と一致しない場合、トランザクションコンテキストの範囲内で定められるように、独立性故障が引き起こされる。補償トランザクションの運営において起こる独立性故障は、詳細なトレースイベントのロギングで終わり、サガを中止してもよい。
【0054】
最良のエフォート
”ストリンジェント”独立性レベル及び”最良のエフォート”(ベストエフォート)独立性の間の違いは、非常に微妙である。1つの顕著な例外で、最良のエフォートはストリンジェントと同様なアルゴリズムを使用する(すなわち、各サブトランザクションステップの前に、等価チェックが、オブジェクトの記憶された前の状態とトランザクションコンテキストにおけるオブジェクトの現在の状態との間で実行される)。等価チェックが行われるとき、独立性レベル読み取りを使用しているデータレコードはチェックされない。オブジェクトは、記憶された以前の状態と比較したデータベース(APIによって)から単に読みだすだけであり、値が等しい場合、動作は進行する。チェックが失敗するならば、取消し操作はサガのために開始される。トランザクションシステムが等価チェックの間、繰り返し可能な読取りを必要としていないので、当業者は、データレコードでの整合性問題に帰着する、ウインドウが開けられていると認められる。ここでの意図は、繰り返し可能な読取りがAPIで支持されていない又はAPIから入手できる環境で、できるだけ同じ整合性を提供することである。
【0055】
最小のエフォート
”最小のエフォート”独立性及び”最良のエフォート”独立性の間の違いは、トランザクションサービスが、サブトランザクションステップを実行するか、トランザクションを補償する前に、少しの等価チェックも試みないということである。ここでの意図は、交換が既知であるトランザクション混合のために、独立性パラダイムをより良く実行することである。しかし、このパラダイムを使用することは、トランザクションデザイナーが彼らのトランザクションの特定の意味を知っていることを必要とする。再び、サブトランザクションステップが失敗する場合(すなわち、否定応答がアプリケーションから受容される場合)、トランザクションサービスはサガに関連付けられたアンドゥ UNDO )セマンティクスを呼び出してもよい。エラーの点までうまく実行される各サブトランザクションステップのために、補償トランザクションが実行されてもよい。
【0056】
エフォートなし
”エフォートなし”独立性パラダイムは、独立性を全く提供しない。それは単に、サブトランザクションステップが失敗するとき、詳細なイベントトレースレコードがロギングされ、人間の介入(及びデータの一致)が可能となり、トランザクションは停止する。このパラダイムで、サブトランザクションステップが失敗するとき、サガは停止しロールバックを試みないこと重要である点に留意されたい。むしろ、故障事象がロギングされ、人間の介入が要請される。
【0057】
フォワード進行及び持続的サービス
ユーザが独立性レベルを選びビジネス論理が実行を開始した後、ネットワークサブシステムがアプリケーションAPIから実行され機能性が利用される前に、トランザクションシステムに関連付けられた持続的サービス、オブジェクト状態情報を追跡する。
【0058】
各動作がAPIを使用して実行されるように、トランザクションシステムが介入して状態情報を加える。これにより、独立性(要請されるならば)は、フォワードトランザクション進行の間(同様に、バックワード進行/ロールバック、必要な場合)に維持されうる。これは、サブトランザクション又は補償トランザクションステップによって影響を受ける各オブジェクトの状態を格納することによって達成される。
【0059】
図5は、トランザクションコンテキスト500を表す。トランザクションコンテキストは、トランザクションシステムによって使用される持続的構造を画成し、進行するトランザクションが元に戻す UNDO )又は回復する RECOVER のに必要な状態情報及び補償情報を追跡する。好適な実施形態で、コンテクストの平行なイメージは、ランタイムで参照付けられるメモリに格納される。
【0060】
コンテクストは、コラボレーションネーム502、スレッドID504、独立性構成506、現在のサブトランザクションステップ508のインデックス、補償レコード510、サブトランザクションステップレコード512及びサガスケルトン514を含む。
【0061】
コラボレーションネーム502は、特定のトランザクションコンテキストを使用するコラボレーション(トランザクション)の名前を参照する。スレッドID504は、それが実行しているトランザクションのインスタンスを表す。スレッドID504は、実行しているトランザクションのインスタンスを表す。スレッドIDは、トランザクション(又はコラボレーションの例)をユニークに識別し、特定のトランザクションを実行しているオペレーティングシステムのスレッドIDではないことに留意されたい。コラボレーションネーム及びスレッドIDを使用して、トランザクションサービスは、トランザクションのインスタンスのために持続的トランザクションコンテキストをさがしてもよい。独立性構成506は、ユーザによって要請された独立性レベルを識別する。現在のサブトランザクションステップ508のインデックスは、現在実行しているサブトランザクションステップを示す。この情報は、リカバリーサービスによって必要とされる。補償レコード510は、サブトランザクションステップの意味論的なアンドゥ UNDO を提供する。各補償レコードは、ビジネスオブジェクトから成る(ここで、ビジネスオブジェクトの状態が、各サブトランザクションステップ実行の間、持続的サービスによって記入されることが重要である)。APIが関係する限り、他の動作と同様に、補償動作は単に、動詞を持ったビジネスオブジェクトである。
【0062】
サブトランザクションステップレコード512は、”最良のエフォート”又は”ストリンジェント独立性レベル”を使用しているトランザクションだけのために使用される。我々が最後に出会ったように、これらのレコードはビジネスオブジェクトの状態を表す。従って、サブトランザクションステップを実行する前に、トランザクションサービスは、その状態がサブトランザクションステップレコードで記憶される状態と一致するということを知るために、オブジェクトをチェックする。
【0063】
サガスケルトン514は、レコードの順序付けられたリストである。各レコードは、トランザクション内でユニークなサブトランザクションステップに対応する補償ステップを(少なくとも)表す。サガスケルトンは、何らかの影響を受けるビジネスオブジェクトでも、対応する補償動詞及びこの補償レコードと対応するサブトランザクションステップの状態インデックスのネームを含む。関連したサブトランザクションの実行の結果として展開された場合、スペース、実行時ビジネスオブジェクト状態の記憶装置のために、トランザクションコンテキストにおいて確保されてもよい。
【0064】
サガ
サガは、サガサービス228(図2)によって作成され且つ修正される。サガは、ポインタ(又はサブトランザクションインデックス)518、ステップ520によって影響を受けるだろう全てのビジネスオブジェクトの現在の状態、補償のために使用される動詞516、及び補償動詞で使用される値515(又はビジネスオブジェクト)を含む補償トランザクションステップを含む。補償トランザクションが以前に実行され該関連付けられたサブトランザクションステップに、ポインタ518は「アンドゥ UNDO 」動作を示す。オブジェクトがサガにおいて少し前のステップで修正されなかったならば、現在の状態はアプリケーションからのその状態である。
【0065】
リカバリーサービス
トランザクションサービスのリカバリー部分が、中断されたサガに代わってトランザクションを補償することを実行するために必要である(それは順に、実行するトランザクションの代わりである)。リカバリーは、補償トランザクション(ユーザによって要請されたように)を実行するときに、正しい独立性レベルセマンティクスを確実にするように、適切なロジックを実行することに対して責任を負う。リカバリーサービスは、サガによって定義される補償トランザクションの実行を監督する。リカバリー実行は、オリジナル基本的トランザクションの実行として同じ独立性レベルで実行されるだろう。従って、ストリンジェント独立性レベルが選択されるならば、”ストリンジェント”独立性レベルロッキング又は繰り返し可能な読み取りが、ロールバック操作において使用されるだろう。代替的に、必要ならば、異なる独立性レベルが、特にリカバリーのために、ユーザによって選択されるだろう。
【0066】
ロールバックは、サガにおいて格納された補償トランザクションの幾つか又は全ての実行を含みうる。ロールバックは、最後に(又はユーザ選択)持続状態で止まり、そして終了しうる代替的に、コンティンジェンシサービスが、リカバリーステップの完了の後に、フォワードトランザクションを続けることを許すために提供されうる。コンティンジェンシサービスは、独立性故障が識別された後に、トランザクションのフォワード進行を続けるために、フォワードをジャンピングすることを含む。例えば、最初の独立性故障が受け取られ、及びロールバックが始まった後、(データベースのための)最後の持続状態が達成されるまで、ロールバックは進むだろう。その時点で、コンティンジェンシサービスは、トランザクションにおける他の位置にフォワードをジャンプし、フォワード実行を再び始める。ロールバック及びコンティンジェンシオプションユーザ定義可能であり、望ましい特定のビジネス機能を達成するために開発者によって独自にプログラムされうる
【0067】
図6では、本発明に従うトランザクションシステムによってトランザクションを処理するためのフロー図600が示される。ユーザは、所望(「要請されたレベル」)且つ最小の独立性レベルであって、実行される所定のビジネス論理機能に関連付けられた独立性レベルを定義することを指示される(602)。サポートの要請されたレベルが利用でき る場合に決定するための所定のトランザクションによって起動される各APIに対して、要請されたサービスレベルが検査される(604)。要請されたレベルが利用可能であれば、独立性レベルは、リポジトリにおいて格納される(606)。要請されたレベルがサポートされないならば、次にコネクター最低の共通レベルが決定される(607)。最低の共通レベルが最小の要請されたレベル(608)よりも下の場合故障が記録され、そしてコラボレーションが実行されることは許されない(609)。さもないと、最低の共通レベルが、リポジトリにおける独立性レベルとして記録される。特定のトランザクションは、実行時モードに移行され、そして該トランザクションはコラボレーションのサポートで実行されうる
【0068】
実行時、コラボレーションに関連付けられたトランザクションが、実行される(610)。各トランザクションステップで、指定された該関連する独立性レベルを決定するためにチェックがなされ、次にサブトランザクションが独立性レベルに従って実行される(612)。結局、独立性故障が識別され(614)、トランザクションは、独立性レベルに従いロールバック(616)又は中止される622)。ロールバックは、独立性のレベルについての検査を含み、トランザクションの独立性レベルに従って、補償サブトランザクション実行する。さもなくば、トランザクションはコミッティング(622)まで続く。
【0069】
インプリメンテーション(実装)
発明は、ソフトウェアのハードウェア又は両方のコンビネーションで実行されるだろう。しかし、本発明は、各々、プロセッサ、データ記憶システム(揮発性及び不揮発性メモリ及び/又はストレージ要素を含む)、少なくとも1つの入力装置及び少なくとも1つの出力装置、を含むプログラム可能コンピュータ上で実行しているコンピュータプログラムで、好ましくは実行される。プログラムコードは、本明細書で説明される機能を実行するために入力データに加えられ、出力情報を発生させる。既知のやり方で、出力情報は1つ以上の出力装置に加えられる。
【0070】
各プログラムは、コンピュータシステムに通じているためにハイレベル手続又はオブジェクト指向プログラミング言語で、好ましくは実行される。しかし、希望する場合、プログラムはアセンブリ又はマシン語で実行されることができる。いずれにせよ、言語はコンパイルされまたは翻訳された言語であるだろう。
【0071】
そのような各コンピュータプログラムは、一般的な又は特殊目的プログラム可能なコンピュータで読み取り可能な、記憶媒体又は装置(例えばROM、CDROM又はマグネティックディスケット)で、記憶媒体又は装置が本明細書で説明した手順を実行するために、コンピュータで読み込まれるときコンピュータを構成して及び動作するために好ましくは記録される。本発明のシステムは、コンピュータプログラムで構成されるコンピュータ読取り可能な記憶媒体として実行されると考えられ、コンピュータが、本明細書で説明した機能を実行するために、特定の及び所定の態様で動作するように記録媒体は構成されるであろう。
【0072】
幾つかの変形と共に、本発明の好ましい実施形態を説明した。それにもかかわらず、種々の変更が精神及び発明の範囲から逸脱することなくされるだろうこと理解される。従って、発明が特定の示された実施形態によって制限されるべきでなく、添付の請求項の範囲によってのみ制限されるべきであることが、理解されるべきである。
【図面の簡単な説明】
【図1】 本発明に従うモジューラアプリケーションコラボレーションの概略ブロック図である。
【図2】 本発明に従うトランザクションシステムを含む、分散されたコンピュータシステムの概略ブロック図である。
【図3a】 本発明に従うトランザクションの概略ブロック図である。
【図3b】 本発明に従う補償トランザクションの概略ブロック図である
【図4a】 本発明に従うデータベース一貫性を提供する方法の流れ図である。
【図4b】 図4bは、図4aのフロー図に関連付けられたサンプルトランザクションである。図4cは、図4aのフロー図に関連して生成されたサンプルサガである。
【図5】 本発明に従うトランザクションセマンティクスを格納するためのトランザクションコンテキストのための体系的なブロック図である。
【図6】 本発明に従う長寿命トランザクションのためフロー図である。

Claims (10)

  1. 非同期トランザクションをサポートする情報システムにおいて一貫性を維持するための、サーバマシン上で実行されるトランザクションシステムにおいて、該情報システムは、複数のユーザ間で分配されるデータベースを含み及びクライアントマシン上に実装され、該トランザクションは、トランザクションの実行時に起動され、該トランザクションが1つ以上のサブトランザクションステップを含み、前記トランザクションシステムが下記機能を実行するためのプログラムを実行し、該機能が、
    サーバマシンとデータベース又はアプリケーションとの間のトランザクションを実行するために、ユーザ定義された独立性レベルを選択できるようにするためのグラフィカルユーザインタフェースと、
    各サブトランザクションステップの実行に影響を及ぼす各オブジェクトのためのオブジェクト状態情報を格納するための持続的サービスと、
    前記選択された独立性レベルに従い各サブトランザクションステップが実行される際に、該サブトランザクションステップによって影響を及ぼされたオブジェクトの状態が、該オブジェクトが該トランザクションにおいて見られた最後の状態と同じであるかを検証するための状態検証サービスであって、前記オブジェクトの状態が、該オブジェクトが前記トランザクションにおいて見られた前記最後状態と同じでない場合に、該状態検証サービスが独立性故障を生じ、そして該トランザクションについてのフォワード進行処理を中止するように動作可能であり、前記オブジェクトの状態が、該オブジェクトが前記トランザクションにおいて見られた前記最後の状態と同じである場合に、前記サブトランザクションステップの実行が進行する、前記状態検証サービスと、
    を含む、前記トランザクションシステム。
  2. 独立性レベル選択が、一貫サービスから連続的サービスまでの範囲にわたって変化し、一貫サービスがサブトランザクションレベルで全てのACID特性に合い、連続的サービスがサブトランザクションの実行における何らかのACID特性に保証しないことを提供する、請求項1記載のトランザクションシステム。
  3. 一貫サービスが、各サブトランザクションが実行される期間にわたって読取りの一貫性を保証するための”独立性レベル読み取り”を含む、請求項2記載のトランザクションシステム。
  4. 独立性レベル選択が、”ストリンジェント”独立性サービス及び”独立性サービスなし”を含み、
    該”ストリンジェント”独立性サービスが、サブトランザクションレベルでの全てのACID特性に対するコンプライアンスを提供し、
    該”独立性サービスなし”がサブトランザクションの実行において何らかのACID特性の保証を提供しない、請求項1記載のトランザクションシステム。
  5. 独立性レベル選択が”最良のエフォート”独立性サービスを更に含み、該”最良のエフォート”独立性サービスでは、該”最良のエフォート”独立性サービス及び前記”ストリンジェント”独立性サービスが全てのACID特性にコンプライアンスを提供するが、前記”ストリンジェント”独立性サービスは、サブトランザクションステップが実行される全時間にわたって一貫性を保証するための”独立性レベル読み取り”を含む、請求項4記載のトランザクションシステム。
  6. 独立性レベル選択が”最小のエフォート”独立性サービスを更に含み、該”最小のエフォート”独立性サービスでは、前記状態検証サービスが使用できず、オブジェクト状態チェックが、サブトランザクションステップの実行の前に実行されない、請求項5記載のトランザクションシステム。
  7. 独立性レベル選択が”エフォートなし”独立性サービスを更に含み、該”エフォートなし”独立性サービスでは、一貫性エラーがサブトランザクション処理中に戻されるまで、トランザクションの実行をもたらす”エフォートなし”独立性レベル選択を含む、請求項4記載のトランザクションシステム。
  8. サブトランザクションレコードのリンクリストを維持し、且つトランザクションが実行されたときに、トランザクションレコードを補償するためのサガサービスと、
    トランザクションの実行のフォワードでの独立性故障が発生すると、補償トランザクションを実行するためのリカバリーサービスと、
    を更に含む、請求項1のトランザクションシステム。
  9. 非同期トランザクションをサポートする情報システムにおいて一貫性を維持するためにサーバマシン上で実行される方法であって、該情報システムは、複数のユーザ間で分配されるデータベースを含み及びクライアントマシン上に実装され、該トランザクションは、該トランザクションは、トランザクションの実行時に起動され、該トランザクションが1つ以上のサブトランザクションステップを含み、前記方法が、
    サーバマシンとデータベース又はアプリケーションとの間のトランザクションを実行するために、所定のサービスレベルの選択するためのグラフィカルユーザインタフェースを提供するステップ
    各サブトランザクションステップの実行に影響を及ぼす各オブジェクトのためのオブジェクト状態情報を格納することと、
    前記選択された独立性レベルに従い各サブトランザクションステップが実行される際に、該サブトランザクションステップによって影響を及ぼされたオブジェクトの状態が、該オブジェクトが該トランザクションにおいて見られた最後の状態と同じであるかを検証し、そして前記オブジェクトの状態が、該オブジェクトが前記トランザクションにおいて見られた前記最後状態と同じでない場合に、該トランザクションについてのフォワード進行処理を中止し、前記オブジェクトの状態が、該オブジェクトがトランザクションにおいて見られた前記最後の状態と同じである場合に、前記サブトランザクションステップの実行が進行することと、
    を含む方法。
  10. インターチェンジサーバシステムのサービスモジュールにおいて使用するための請求項1に記載のトランザクションシステムであって、該インターチェンジサーバシステムが、アプリケーションコラボレーションモジュール及びサービスモジュールを含み、前記アプリケーションコラボレーションモジュールは2つ以上のアプリケーションの間でインターオペラビリティを定義し、且つ関連アプリケーションに搬送するための一以上のコネクターにデータを送出する1つ以上のサブトランザクションステップを有するトランザクションを含む、前記トランザクションシステム。
JP2000535992A 1998-03-12 1999-03-11 情報システムにおいて一貫性を維持するためのトランザクションシステム及び方法 Expired - Fee Related JP4049293B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/039,281 US6233585B1 (en) 1998-03-12 1998-03-12 Isolation levels and compensating transactions in an information system
US09/039,281 1998-03-12
PCT/US1999/005382 WO1999046674A1 (en) 1998-03-12 1999-03-11 Isolation levels and compensating transactions in an information system

Publications (3)

Publication Number Publication Date
JP2002507021A JP2002507021A (ja) 2002-03-05
JP2002507021A5 JP2002507021A5 (ja) 2007-08-23
JP4049293B2 true JP4049293B2 (ja) 2008-02-20

Family

ID=21904639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000535992A Expired - Fee Related JP4049293B2 (ja) 1998-03-12 1999-03-11 情報システムにおいて一貫性を維持するためのトランザクションシステム及び方法

Country Status (6)

Country Link
US (1) US6233585B1 (ja)
EP (1) EP1062569B1 (ja)
JP (1) JP4049293B2 (ja)
AT (1) ATE394730T1 (ja)
DE (1) DE69938654D1 (ja)
WO (1) WO1999046674A1 (ja)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1093061A1 (de) * 1999-10-14 2001-04-18 SAP Aktiengesellschaft Integriertes Datenbank-Verbundsystem
US6654756B1 (en) * 2000-02-29 2003-11-25 Unisys Corporation Combination of mass storage sizer, comparator, OLTP user defined workload sizer, and design
AU2001245808A1 (en) 2000-03-17 2001-10-03 United States Postal Service Methods and systems for providing a secure electronic mailbox
AU2001290971A1 (en) * 2000-09-15 2002-03-26 Learnframe, Inc. Extended asynchronous messaging
DE10047216A1 (de) * 2000-09-23 2002-04-11 Philips Corp Intellectual Pty Ein Verfahren zur Erkennung von Schreibkonflikten in replizierten Datenbanken ohne Speicheroverhead
US6671686B2 (en) 2000-11-02 2003-12-30 Guy Pardon Decentralized, distributed internet data management
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
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
US7219110B2 (en) * 2002-08-30 2007-05-15 Sun Microsystems, Inc. Testing a database transaction system without modifying a database
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7890466B2 (en) * 2003-04-16 2011-02-15 Oracle International Corporation Techniques for increasing the usefulness of transaction logs
US7346905B2 (en) 2003-06-10 2008-03-18 International Business Machines Corporation Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment
US7243088B2 (en) * 2003-08-06 2007-07-10 Oracle International Corporation Database management system with efficient version control
US7269588B1 (en) 2003-09-24 2007-09-11 Oracle International Corporation Neighborhood locking technique for increasing concurrency among transactions
US7555481B1 (en) 2003-10-28 2009-06-30 Oracle Corporation Method and apparatus for increasing transaction concurrency by early release of locks in groups
US7293043B1 (en) * 2003-12-04 2007-11-06 Sprint Communications Company L.P. Tracking switch transactions
KR100659971B1 (ko) * 2003-12-26 2006-12-22 한국전자통신연구원 웹서비스 트랜잭션의 자동중단 처리시스템 및 방법
US7509429B2 (en) * 2004-05-28 2009-03-24 Sap Ag Message endpoint activation
US20050289212A1 (en) * 2004-06-01 2005-12-29 Tankov Nikolal D Non-transactional resource reference
US7594237B2 (en) * 2004-06-01 2009-09-22 Sap Ag Program object to support connection generation
US9582313B2 (en) * 2004-06-03 2017-02-28 Sap Se Connection resource system
US7676810B2 (en) * 2004-06-03 2010-03-09 Sap Ag Identification of execution context
US7657658B2 (en) * 2004-06-07 2010-02-02 Sap Ag Resource adapter deployment
US20060053087A1 (en) * 2004-06-08 2006-03-09 Pavlov Vladimir K System and method for deploying enterprise components using deployment descriptors
US7774319B2 (en) * 2004-08-11 2010-08-10 Sap Ag System and method for an optimistic database access
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7739244B2 (en) * 2004-10-14 2010-06-15 Oracle International Corporation Operating logging for online recovery in shared memory information systems
US20070073678A1 (en) * 2005-09-23 2007-03-29 Applied Linguistics, Llc Semantic document profiling
US7949551B2 (en) * 2005-04-06 2011-05-24 International Business Machines Corporation Processing of compensation scopes in workflow management systems
US7925252B2 (en) 2005-04-18 2011-04-12 Research In Motion Limited Container-level transaction management system and method therefor
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US8386555B2 (en) * 2005-11-04 2013-02-26 Sap Ag Systems and methods for adapting procedure calls to service providers
US7921075B2 (en) * 2006-09-29 2011-04-05 International Business Machines Corporation Generic sequencing service for business integration
WO2008042980A2 (en) * 2006-10-04 2008-04-10 Salesforce.Com, Inc. Methods and systems for providing fault recovery to side effects occurring during data processing
US8161010B2 (en) 2006-10-04 2012-04-17 Salesforce.Com, Inc. Methods and systems for providing fault recovery to side effects occurring during data processing
US8548942B2 (en) 2006-10-04 2013-10-01 Salesforce.Com, Inc. Methods and systems for recursive saving of hierarchical objects to a database
US8682863B2 (en) 2006-10-04 2014-03-25 Salesforce.Com, Inc. Methods and systems for bulk row save logic in an object relational mapping layer and application framework
US9514201B2 (en) * 2006-10-13 2016-12-06 International Business Machines Corporation Method and system for non-intrusive event sequencing
US9274857B2 (en) * 2006-10-13 2016-03-01 International Business Machines Corporation Method and system for detecting work completion in loosely coupled components
US8898126B1 (en) * 2007-04-04 2014-11-25 Emc Corporation Method and apparatus for providing concurrent data insertion and updating
US8566780B2 (en) * 2007-06-26 2013-10-22 Microsoft Corporation Object model based mapping
US7747899B2 (en) * 2007-06-26 2010-06-29 Microsoft Corporation Providing mapping fault processing
US8014994B2 (en) * 2007-08-31 2011-09-06 Sap Ag Simulation business object for service oriented architecture
US8566296B2 (en) 2007-09-14 2013-10-22 Oracle International Corporation Support for compensation aware data types in relational database systems
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US9418005B2 (en) 2008-07-15 2016-08-16 International Business Machines Corporation Managing garbage collection in a data processing system
TW201032535A (en) * 2008-10-14 2010-09-01 Ibm A method of handling a message
US8001548B2 (en) * 2008-10-20 2011-08-16 Microsoft Corporation Transaction processing for side-effecting actions in transactional memory
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US20100333071A1 (en) * 2009-06-30 2010-12-30 International Business Machines Corporation Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
US8103937B1 (en) * 2010-03-31 2012-01-24 Emc Corporation Cas command network replication
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
US8799872B2 (en) 2010-06-27 2014-08-05 International Business Machines Corporation Sampling with sample pacing
US8799904B2 (en) 2011-01-21 2014-08-05 International Business Machines Corporation Scalable system call stack sampling
US20120331471A1 (en) * 2011-06-27 2012-12-27 Microsoft Corporation Executing molecular transactions
US8930330B1 (en) 2011-06-27 2015-01-06 Amazon Technologies, Inc. Validation of log formats
US20130227143A1 (en) * 2012-02-27 2013-08-29 Verizon Patent And Licensing Inc. Method and system for providing transaction management in a request-oriented service architecture using meta-models
US20130227101A1 (en) * 2012-02-27 2013-08-29 Verizon Patent And Licensing, Inc. Method and system for providing transaction management in a request-oriented service architecture
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US9501501B2 (en) 2013-03-15 2016-11-22 Amazon Technologies, Inc. Log record management
US9514007B2 (en) 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US9317213B1 (en) 2013-05-10 2016-04-19 Amazon Technologies, Inc. Efficient storage of variably-sized data objects in a data store
US9760596B2 (en) 2013-05-13 2017-09-12 Amazon Technologies, Inc. Transaction ordering
US9208032B1 (en) 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US9305056B1 (en) 2013-05-24 2016-04-05 Amazon Technologies, Inc. Results cache invalidation
US9047189B1 (en) 2013-05-28 2015-06-02 Amazon Technologies, Inc. Self-describing data blocks of a minimum atomic write size for a data store
US9460008B1 (en) 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US9280591B1 (en) 2013-09-20 2016-03-08 Amazon Technologies, Inc. Efficient replication of system transactions for read-only nodes of a distributed database
US9507843B1 (en) 2013-09-20 2016-11-29 Amazon Technologies, Inc. Efficient replication of distributed storage changes for read-only nodes of a distributed database
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US9519664B1 (en) 2013-09-20 2016-12-13 Amazon Technologies, Inc. Index structure navigation using page versions for read-only nodes
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US9552242B1 (en) 2013-09-25 2017-01-24 Amazon Technologies, Inc. Log-structured distributed storage using a single log sequence number space
US9760480B1 (en) 2013-11-01 2017-09-12 Amazon Technologies, Inc. Enhanced logging using non-volatile system memory
US10387399B1 (en) 2013-11-01 2019-08-20 Amazon Technologies, Inc. Efficient database journaling using non-volatile system memory
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US9223843B1 (en) 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
US10303663B1 (en) 2014-06-12 2019-05-28 Amazon Technologies, Inc. Remote durable logging for journaling file systems
EP3269081A4 (en) * 2015-04-06 2018-04-25 Hewlett-Packard Enterprise Development LP Certificate generation
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database
US10942823B2 (en) 2018-01-29 2021-03-09 Guy Pardon Transaction processing system, recovery subsystem and method for operating a recovery subsystem
US11487714B2 (en) 2019-05-15 2022-11-01 International Business Machines Corporation Data replication in a data analysis system
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database
US20220253409A1 (en) * 2021-02-05 2022-08-11 International Business Machines Corporation Cleaning compensated change records in transaction logs
US11874830B2 (en) 2022-03-09 2024-01-16 International Business Machines Corporation Efficient job writing for database member

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5280612A (en) * 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
JPH06243072A (ja) * 1993-02-17 1994-09-02 Hitachi Ltd 分散処理システムの分散トランザクションコミット制御方式
EP0622930A3 (en) * 1993-03-19 1996-06-05 At & T Global Inf Solution Division of applications for computer arrangement with collaboration.
US5864679A (en) * 1993-09-06 1999-01-26 Kabushiki Kaisha Toshiba Transaction routing in a multiple processor system using an extracted transaction feature parameter and transaction historical data
US5796999A (en) * 1994-04-15 1998-08-18 International Business Machines Corporation Method and system for selectable consistency level maintenance in a resilent database system
US5581753A (en) * 1994-09-28 1996-12-03 Xerox Corporation Method for providing session consistency guarantees
US5644768A (en) * 1994-12-09 1997-07-01 Borland International, Inc. Systems and methods for sharing resources in a multi-user environment
US5758149A (en) * 1995-03-17 1998-05-26 Unisys Corporation System for optimally processing a transaction and a query to the same database concurrently
JP2964926B2 (ja) * 1995-08-29 1999-10-18 富士ゼロックス株式会社 データベース管理装置及び方法
US5758083A (en) * 1995-10-30 1998-05-26 Sun Microsystems, Inc. Method and system for sharing information between network managers
JPH09319633A (ja) * 1996-05-31 1997-12-12 Nippon Telegr & Teleph Corp <Ntt> 分散エージェントの実行制御方法
JP3672208B2 (ja) * 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US5781910A (en) * 1996-09-13 1998-07-14 Stratus Computer, Inc. Preforming concurrent transactions in a replicated database environment
US5913061A (en) * 1997-01-08 1999-06-15 Crossroads Software, Inc. Modular application collaboration
US5878415A (en) * 1997-03-20 1999-03-02 Novell, Inc. Controlling access to objects in a hierarchical database

Also Published As

Publication number Publication date
EP1062569A4 (en) 2002-04-17
DE69938654D1 (de) 2008-06-19
JP2002507021A (ja) 2002-03-05
EP1062569A1 (en) 2000-12-27
US6233585B1 (en) 2001-05-15
ATE394730T1 (de) 2008-05-15
EP1062569B1 (en) 2008-05-07
WO1999046674A1 (en) 1999-09-16

Similar Documents

Publication Publication Date Title
JP4049293B2 (ja) 情報システムにおいて一貫性を維持するためのトランザクションシステム及び方法
US6873995B2 (en) Method, system, and program product for transaction management in a distributed content management application
US11061884B2 (en) Method and system to accelerate transaction commit using non-volatile memory
US5857204A (en) Restoring the state of a set of files
US7472129B2 (en) Lossless recovery for computer systems with map assisted state transfer
US7360111B2 (en) Lossless recovery for computer systems with remotely dependent data recovery
US8209699B2 (en) System and method for subunit operations in a database
US7543181B2 (en) Recovery from failures within data processing systems
JP2505112B2 (ja) トランザクション管理方法
US8032790B2 (en) Testing of a system logging facility using randomized input and iteratively changed log parameters
US20070239725A1 (en) Active cache offline access and management of project files
CN108021338B (zh) 用于实现两层提交协议的系统和方法
US6625601B1 (en) Escrow-locking multithreaded process-pair resource manager dictionary
US20020065834A1 (en) Maintenance of data integrity during transfer among computer networks
US20240143386A1 (en) Using multiple blockchains for applying transactions to a set of persistent data objects in persistent storage systems
US6944635B2 (en) Method for file deletion and recovery against system failures in database management system
JPH0628402A (ja) アクティブなデータ辞書を維持するためのデータ辞書マネージャ
US12093139B2 (en) Rolling back a database transaction
CN117874145B (zh) 一种主从数据库的强一致方法、装置、设备及存储介质
US20240289230A1 (en) Generating installation software that rolls back agent updates when cluster updates fail
Hutchings et al. MySQL cluster tutorial
Goetz Attributes of fault-tolerant distributed file systems
JPH07248950A (ja) 資源の更新連携方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070420

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20070420

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20070420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071022

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071022

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071121

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20071121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071122

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131207

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees