JPH103416A - 情報処理装置およびその方法 - Google Patents

情報処理装置およびその方法

Info

Publication number
JPH103416A
JPH103416A JP8154119A JP15411996A JPH103416A JP H103416 A JPH103416 A JP H103416A JP 8154119 A JP8154119 A JP 8154119A JP 15411996 A JP15411996 A JP 15411996A JP H103416 A JPH103416 A JP H103416A
Authority
JP
Japan
Prior art keywords
transaction
transaction context
identification information
transactions
information processing
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.)
Withdrawn
Application number
JP8154119A
Other languages
English (en)
Inventor
Masahiko Yoshimoto
雅彦 吉本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP8154119A priority Critical patent/JPH103416A/ja
Priority to US08/873,712 priority patent/US6148299A/en
Priority to EP97304132A priority patent/EP0817036B1/en
Priority to DE69731998T priority patent/DE69731998T2/de
Publication of JPH103416A publication Critical patent/JPH103416A/ja
Withdrawn legal-status Critical Current

Links

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
    • 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/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • 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

Abstract

(57)【要約】 【課題】 あるアプリケーションが複数の共有データに
対して更新処理を行う場合、ある共有データについて更
新内容をコミットしつつ、他の共有データに対しては引
続いて更新処理を行ったり、あるいは更新内容を破棄し
たりという操作は、禁止されている。 【解決手段】 アプリケーションプロセス内部における
複数のトランザクションを識別するためにトランザクシ
ョンコンテキスト202を設け、トランザクションとトラ
ンザクションコンテキスト202との対応をトランザクシ
ョンコンテキスト管理表201により管理する。そして、
トランザクションコンテキストを作成,消去,切換える
手段を設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置および
その方法に関し、例えば、対話的な協調型アプリケーシ
ョンに適した並行制御機構を有する情報処理装置および
その方法に関するものである。
【0002】
【従来の技術】トランザクション処理における並行制御
は、2フェーズロックに従って行われる。これは、複数
のトランザクションを分離し、一貫性のあるスケジュー
リングを保証するための手段として、広く用いられてい
る。さらに、障害時の回復処理においても一貫性を保証
するために、2フェーズロックにおけるロック解放処理
は、トランザクションの最後にコミット処理に続いて行
われるのが通例である。
【0003】
【発明が解決しようとする課題】しかし、上述した技術
においては、次のような問題点がある。
【0004】近年のコンピュータシステムでは、一般に
マルチウィンドウシステムを用いた対話的操作環境が提
供され、データベースを用いて共有されたデータを多面
的に表示しつつ、対話的にデータの更新を行うようなア
プリケーションが望まれている。
【0005】しかし、上記の技術においては、あるアプ
リケーションが複数の共有データに対して更新処理を行
う場合、ある共有データについて更新内容をコミットし
つつ、他の共有データに対しては引続いて更新処理を行
ったり、あるいは更新内容を破棄したりという操作は、
禁止されている。これは、上記の要求事項(複雑な構造
をもつ共有データに対する対話的な操作環境の実現)に
対する大きな制約になる。
【0006】上記の技術のもとで、一部の共有データに
対する更新内容をコミットしつつ、他の共有データに対
する更新内容を実効的に破棄することは、必ずしも不可
能ではない。
【0007】例えば、トランザクションにおいて、デー
タ更新処理を開始する以前にデータの内容を保存し、保
存した内容により更新内容の無効化処理を行うことで、
トランザクションを終了する際に実効的に更新内容を破
棄することができる。しかし、このような方法は、デー
タ更新の対象になるすべての共有データに対して、その
内容を保存する必要があり、実効効率の低下は避けられ
ない。また、データベース管理システムによっては、コ
ミットに関わるタイムスタンプの更新や、あるいはデー
モン手続きの起動を行う場合があり、これらは実効的な
更新内容の破棄とは無関係であることから、状況によっ
ては好ましからざる副作用になる。
【0008】また、上記の技術のもとで、一部の共有デ
ータに対する更新内容をコミットしつつ、他の共有デー
タに対して引続き更新処理を行うことは、より強い制約
があるとはいえ、やはり、必ずしも不可能ではない。
【0009】例えば、マルチタスク処理が可能なコンピ
ュータシステムにおいて、タスクごとに、独立に起動さ
れた一連のトランザクションは前述した制約を受けない
ことから、前述した要求事項(複雑な構造をもつ共有デ
ータに対する対話的な操作環境の実現)を含む広範囲の
選択的コミット処理が可能である。しかし、このような
方法は、一般に、タスク数の増大に伴い、オペレーティ
ングシステムやデータベース管理システムにおける負荷
が増大することになるとともに、アプリケーション開発
に関わる工数の増大をも招くことになる。
【0010】さらに、マルチタスクを利用する方法は、
本来は一体となって動作するアプリケーションを複数の
タスクに分割するのであるから、然るべきタスク間通信
手段により、タスク間の連係を行う必要がある。タスク
間通信手段は、一般に、トランザクションとは独立して
いるため、アプリケーションの開発者は、共有データの
内容に依存した通信によりトランザクションの一貫性が
損なわれる可能性を排除しなければならない。しかし、
これは極めて困難であり、アプリケーションの拡張性や
保守性も甚だ乏しいものになる。
【0011】本発明は、上述の問題を解決するためのも
のであり、あるアプリケーションが複数の共有データに
対して更新処理を行う場合に、ある共有データについて
更新内容をコミットしつつ、他の共有データに対しては
引続いて更新処理を行ったり、あるいは更新内容を破棄
したりという操作をすることができる情報処理装置およ
びその方法を提供することを目的とする。
【0012】
【課題を解決するための手段】本発明は、前記の目的を
達成する一手段として、以下の構成を備える。
【0013】本発明にかかる情報処理装置は、プロセス
内部における複数のトランザクションを識別するための
識別情報と、トランザクションとの対応を管理する管理
手段と、前記識別情報を操作する操作手段とを有するこ
とを特徴とする。
【0014】また、本発明にかかる情報処理方法は、プ
ロセス内部における複数のトランザクションを識別する
ための識別情報と、トランザクションとの対応を管理す
る管理ステップと、前記識別情報を操作する操作ステッ
プとを有することを特徴とする。
【0015】
【発明の実施の形態】以下、本発明にかかる一実施形態
の情報処理装置を図面を参照して詳細に説明する。な
お、本発明を実施する装置は、図8に一例を示すよう
な、ワークステーションやパーソナルコンピュータなど
のコンピュータを、任意のネットワーク101により相互
に接続したコンピュータシステムである。このコンピュ
ータシステム上のサーバ102や104上では、トランザクシ
ョンに基づくアプリケーション間データ共有機構を提供
するソフトウェアとして、例えばデータベース管理サー
バが稼働している。一方、クライアント103上で稼働す
る、データ共有機構を利用するアプリケーションは、所
定のライブラリによりデータベース管理サーバと交信し
つつ、処理を行う。
【0016】以下で説明する一連の手順は、データベー
ス管理サーバが行うものであるが、一部またはすべての
手順を上記ライブラリにより実施してもよい。また、デ
ータベース管理サーバは、複数のサーバにより構成され
ていてもよい。本発明は、データベース管理サーバとラ
イブラリの構成や役割分担には無関係であるから、以下
の説明では、単にデータベース管理システムと呼ぶ。
【0017】
【第1実施形態】 [トランザクションコンテキスト]初めに、アプリケー
ションプロセス内部の複数のトランザクションを識別す
る機構として、新たにトランザクションコンテキストを
導入する。
【0018】トランザクションコンテキストは、周知の
手続型プログラミング言語におけるレコード型などで表
現される状態であり、表現される内容は、トランザクシ
ョンコンテキストの下で起動されているトランザクショ
ンの識別子、トランザクションコンテキストの切換えの
禁止を指示するフラグ(切換禁止フラグ)、外部的な要
因などによりトランザクションがアボートされるときに
起動されるハンドラ、などの情報を含む。ここでトラン
ザクションは、そのトランザクションが起動された時点
のトランザクションコンテキストに属し、そのトランザ
クションコンテキストは、当該トランザクションが終了
するまで変更されることはない。このような状況を「ト
ランザクションは、トランザクションコンテキストの下
で起動される」と表現する。
【0019】トランザクションコンテキストの下で起動
されるトランザクションは、入れ子構造における最も外
側のトップレベルトランザクションとして高々一つであ
り、トランザクションが起動されていないとき「トラン
ザクションコンテキストは空である」という。トランザ
クションコンテキストには、数字または文字列による識
別子を与えるとともに、公知の手段により構成された対
応表としてトランザクションコンテキスト管理表を設け
ることで、識別子とトランザクションコンテキストとは
一意に対応させる。また、トランザクションコンテキス
トの操作においては、パラメータとして上記の識別子が
指定される。
【0020】図1はデータベース管理システムにおける
トランザクションコンテキスト管理表とトランザクショ
ンコンテキストの構成例を示す図である。
【0021】同図において、201はトランザクションコ
ンテキスト管理表、202はトランザクションコンテキス
トであり、管理表201の識別子c1とc2に対応して、二つ
のトランザクションコンテキスト202が設けられてい
る。ここで、識別子c1に対応するトランザクションコン
テキストでは、トランザクション識別子=12に対応する
トランザクションが起動されている。一方、識別子c2に
対応するトランザクションコンテキストは空である。
【0022】[トランザクションコンテキストの作成]
図2はトランザクションコンテキストを作成する手順例
を示すフローチャートである。
【0023】同図において、ステップS201で、指定され
た識別子に対応するトランザクションコンテキストが存
在するかどうかを確認するために、トランザクションコ
ンテキスト管理表を検索する。そして、ステップS202
で、検索結果を判定し、指定された識別子に対応するト
ランザクションコンテキストを発見した場合は処理を終
了する。
【0024】一方、指定された識別子に対応するトラン
ザクションコンテキストを発見しなかった場合は、新た
にトランザクションコンテキストの作成と登録を行うた
めにステップS203へ進む。つまり、ステップS203でトラ
ンザクションコンテキストを作成し、ステップS204で切
換禁止フラグをクリアする。そして、ステップS205で、
新たに作成したトランザクションコンテキストの識別子
をトランザクションコンテキスト管理表へ登録し、処理
を終了する。
【0025】なお、アプリケーション開発における便宜
性の点では、図2の手順を明示的に実行することなく利
用可能なトランザクションコンテキストが存在すること
が望ましい。例えば、従来技術に基づくアプリケーショ
ンは、本発明においてトランザクションコンテキストを
一個までに制限した場合と同等である。すなわち、制限
がある場合のトランザクションコンテキストは、少なく
ともトランザクション起動の直前に作成され、トランザ
クション実行中に限り存在するようなものであってもよ
い。
【0026】ところで、以下に説明する複数のトランザ
クションコンテキストを用いる場合であっても、一時的
にトランザクションコンテキストが存在しない状況は発
生し得る。これらの状況に対して共通に適用できる手段
として、本実施形態においては、デフォルトトランザク
ションコンテキストを設けている。すなわち、本実施形
態では、明示的にトランザクションコンテキストが指定
されていない場合に、アプリケーションがデータベース
に対して行う操作は、デフォルトトランザクションコン
テキストに属するトランザクションに関する操作として
扱う。なお、デフォルトトランザクションコンテキスト
には、数字の「0」あるいは空の文字列など、所定の識
別子が割当て、その識別子により任意のトランザクショ
ンコンテキスト操作が可能である。
【0027】[トランザクションコンテキストの切換
え]図3はトランザクションコンテキストの切換え手順
の一例を示すフローチャートである。
【0028】同図において、ステップS301で、現在のト
ランザクションコンテキストが切換え可であるかどうか
を検査する。ここで、切換え可とは、現在のトランザク
ションコンテキストにおける切換禁止フラグがクリアさ
れていることである。そして、ステップS302で、検査結
果を判定し、切換禁止フラグがクリアされていなければ
処理を終了する。
【0029】一方、切換禁止フラグがクリアされていて
切換えが可能な場合はステップS303へ進み、指定の識別
子に対応するトランザクションコンテキストが存在する
かどうかを確認するために、トランザクションコンテキ
スト管理表を検索する。そして、ステップS304で、検索
結果を判定し、指定の識別子に対応するトランザクショ
ンコンテキストを発見しなかった場合は処理を終了す
る。
【0030】一方、指定の識別子に対応するトランザク
ションコンテキストを発見した場合は、ステップS305
で、検索されたトランザクションコンテキストと現在の
トランザクションコンテキストとの比較を行う。そし
て、ステップS306で、比較結果を判定し、両者が異なる
と判定した場合は、ステップS307で指定されたトランザ
クションコンテキストに変更して処理を終了する。
【0031】トランザクションコンテキストが変更され
た場合は、次の切換操作が行われるまでの間、トランザ
クションや共有データに対するすべての操作が、指定の
トランザクションコンテキストに属するトランザクショ
ンに対して行われる。
【0032】[トランザクションコンテキストの消去]
図4は指定のトランザクションコンテキストを消去する
手順例を示すフローチャートである。
【0033】同図において、ステップS401で、指定の識
別子に対応するトランザクションコンテキストが存在す
るかどうかを確認するために、トランザクションコンテ
キスト管理表を検索する。そして、ステップS402で、検
索結果を判定し、指定の識別子に対応するトランザクシ
ョンコンテキストを発見しなかった場合は処理を終了す
る。
【0034】一方、指定の識別子に対応するトランザク
ションコンテキストを発見した場合は、ステップS403
で、発見したトランザクションテキストの状態を検査す
る。そして、ステップS404で、検査結果を判定し、指定
の識別子に対応するトランザクションコンテキストが空
でなければ処理を終了する。
【0035】また、指定の識別子に対応するトランザク
ションコンテキストが空であれば、ステップS405で、指
定の識別子をトランザクションコンテキスト管理表から
削除し、必要であればトランザクションコンテキストを
表現するレコードを解放して、処理を終了する。
【0036】現在のトランザクションコンテキストが消
去される場合は、必要に応じて、前述したデフォルトト
ランザクションコンテキストへの変更処理を行う。しか
し、これに限らず、例えば、現在のトランザクションコ
ンテキストの消去を禁止する手順を、図4に示す手順に
加えてもよい。
【0037】[選択的コミット処理]以上の手順を用い
て実現される選択的コミット処理について詳細に説明す
る。
【0038】共有データA,B,Cを用いたアプリケーショ
ンにおいて、識別子a,b,cに対する三つのトランザクシ
ョンコンテキストを、図2に示した手順で作成し、Aと
a,Bとb,Cとcをそれぞれ対応させる。ここで、Aとaが
対応するとは、図3に示した手順に従ってトランザクシ
ョンコンテキストをaに変更して、aに属するトランザク
ションを起動し、その中でAに対する更新処理を行うこ
とである。この段階で、A,B,Cに関する排他ロックは、
それぞれa,b,cに属するトランザクションにおいて確保
されている。
【0039】ここで、従来は困難であった選択的コミッ
ト処理、すなわち、Aの変更内容をコミットし、Bの更新
内容をアボートし、Cについてはそのまま更新処理を続
ける、というような処理が可能である。すなわち、トラ
ンザクションコンテキストを、aに変更してトランザク
ションをコミットし、bに変更してアボートすればよ
い。上記の処理において、個々のトランザクションは2
フェーズロックの規約に違反しないことから、一貫性が
損なわれることも避けられる。
【0040】[一貫性の保証]以下では、一貫性の保証
について詳しく説明する。
【0041】まず、トランザクションコンテキストはプ
ロセス固有の状態であって、これが他のプロセスに対し
て影響を及ぼすことはない。すなわち、他プロセスによ
って移動された一連のトランザクションは、トランザク
ションコンテキストの構成などとは無関係に対等であ
る。このことから、一貫性に対しては問題が生じ得るの
は、あるプロセスに属する複数のトランザクションが、
互いに重なり合う場合に限られる。このような状況は、
見掛け上、トランザクション処理の前提、すなわちトラ
ンザクション間の相互分離性に違反しているようにみえ
る。
【0042】実際、2フェーズロック方式は、相互に分
離されている一連のトランザクションが逐次化可能であ
るための条件として提案されたものである。しかしなが
ら、トランザクションの実行が同一プロセスによって制
御される場合においては、この限りではない。元来、2
フェーズロック方式の背景には、トランザクションスケ
ジューリングにおける任意性、すなわち並行して動作す
るトランザクションの順番が、一般に予測不可能である
という前提がある。これに対して、一つのプロセス内で
起動された複数のトランザクションに関しては、処理順
序を自由に決定することが可能であり、非決定的スケジ
ューリングに対する逐次化の可能性を考慮する必要はな
い。つまり、逐次化の可能性は、異なるプロセスにおい
て起動されたトランザクション間において保証されれば
充分である。本発明において、この条件は明らかに満足
される。
【0043】[ロック管理機構の修正]データベース管
理システムにおけるロック管理機構には、以下に示す修
正を加える必要がある。
【0044】上記の例では、三つの共有データそれぞれ
に対応するトランザクションコンテキストを設けた。し
かし、異なるトランザクションコンテキストに対応する
共有データの参照、例えばトランザクションコンテキス
トaにおいて共有データBやCの参照が可能である方が、
アプリケーションを作成する上で有利である。また、こ
れは、前記のプロセス内トランザクションの重なり合い
に他ならない。その場合、プロセス外部のトランザクシ
ョンとの関係において、逐次化の可能性を保証するに
は、aにおいてBやCに対する共有ロックが確保されてい
れば充分である。言い換えれば、プロセス内のトランザ
クション間では排他ロックと共有ロックが、見掛け上、
共存するということになる。
【0045】なお、排他ロックと共存する共有ロックの
確保は、通常の共有ロックを確保する場合と同様であ
り、共有データの参照に先立って行われていればよい。
共有ロックと共存する排他ロックの確保についても、全
く同様である。また、プロセス外トランザクションにお
いては、排他ロックと共有ロックの共存は無意味であっ
て、排他ロックの存在だけが知られればよい。共有ロッ
クの存在は、排他ロックが解放された時点で明らかにな
れば充分であって、その方が従来のセマンティックスと
一致する点で好適である。
【0046】一方、プロセス内の複数のトランザクショ
ンが同時に排他ロックを確保することを許すことも可能
であるが、以下の理由から、本発明においては、基本的
に許可しないものとする。
【0047】まず、プロセス外のトランザクションから
みて、複数の排他ロックの存在は明らかに望ましくない
が、一連の排他ロックは対等であるため、従来のセマン
ティックスとの対応付けは困難である。また、データベ
ース管理システムの修正は、共有ロックについての場合
に比べて遙かに困難である。加えて、当該手段が許され
ない場合であっても、図3に示した手順を用いて、一時
的に別のトランザクションコンテキストへ切換えれば、
実質的に目的は達成される上、アプリケーションにおい
て明示的な切換えを記述した方が、結果的に保守性が向
上するという利点もある。
【0048】以上から、プロセス内で確保される排他ロ
ックは、共有データに対して高々一つまでとし、複数の
排他ロック確保を要求した場合は異常終了する。
【0049】
【第2実施形態】以下、本発明にかかる第2実施形態の情
報処理装置を説明する。なお、第2実施形態において、
第1実施形態と略同様の構成については、同一符号を付
して、その詳細説明を省略する。
【0050】前述した第1実施形態は、例えば、マルチ
ウィンドウ環境を用いたアプリケーションに対しても適
用することができる。
【0051】例えば、上記の例において、ウィンドウと
してWa,Wb,Wcの三つを設け、ウィンドウWaとトランザク
ションコンテキストaとを対応させる、などを行う場
合、ユーザウィンドウを選択することによってトランザ
クションコンテキストの切換えを行ってもよい。しか
し、この場合、以下のような問題点が発生する。
【0052】すなわち、トランザクションにおいて共有
データに対するロック確保を要求するとき、その要求が
直ちに満たされない場合は、トランザクションは待ち状
態になる。一方、対話的アプリケーションにおいては、
トランザクションが待ち状態にある間もアプリケーショ
ン固有の処理を実行することが可能である。このため、
トランザクションコンテキストを利用する場合は、待ち
状態にある間にトランザクションコンテキストの変更が
行われる可能性がある。
【0053】トランザクションコンテキストの変更が行
われた場合、待ち状態が解消された時点で処理を再開す
るには、元のトランザクションコンテキストに戻す必要
があるが、これは必ずしも容易ではない。待ち状態の解
消は、アプリケーションに対して非同期に発生するた
め、処理の再開を非同期的に起動する手段(例えばソフ
トウェア割込み)が考えられる。しかし、多くのプログ
ラミング言語において、非同期的な処理の記述は、同期
的な処理の記述に比べて煩雑であり、多数の共有データ
に対して読み書きを行うトランザクションに対して実用
的とは言えない。
【0054】[トランザクションコンテキストの切換禁
止]本実施形態は、上記の問題を解決するために、図5
に示す手順により、トランザクションコンテキストの切
換えを禁止する。
【0055】同図において、ステップS501で、指定の識
別子に対応するトランザクションコンテキストが存在す
るかどうかを確認するために、トランザクションコンテ
キスト管理表を検索する。そして、ステップS502で、検
索結果を判定し、指定の識別子に対応するトランザクシ
ョンコンテキストを発見しなかった場合は処理を終了す
る。
【0056】一方、指定の識別子に対応するトランザク
ションコンテキストを発見した場合は、ステップS503
で、発見したトランザクションコンテキストが切換え可
であるかどうかを検査する。そして、ステップS504で、
検査結果を判定し、切換禁止フラグがクリアされていな
ければ処理を終了する。
【0057】また、切換禁止フラグがクリアされていた
場合は、ステップS505で、指定の識別子のトランザクシ
ョンコンテキストの切換禁止フラグをセットし、処理を
終了する。
【0058】なお、上記の手順において、識別子の指定
について、その省略を許可し、現在のトランザクション
コンテキストに対して上記処理を行うように変更するこ
ともできる。
【0059】[トランザクションテキストの切換禁止解
除]図6はトランザクションコンテキストの切換禁止を
解除する手順例を示すフローチャートである。
【0060】同図において、ステップS601で、指定の識
別子に対応するトランザクションコンテキストが存在す
るかどうかを確認するために、トランザクションコンテ
キスト管理表を検索する。そして、ステップS602で、検
索結果を判定し、指定の識別子に対応するトランザクシ
ョンコンテキストを発見しなかった場合は処理を終了す
る。
【0061】一方、指定の識別子に対応するトランザク
ションコンテキストを発見した場合は、ステップS603
で、発見したトランザクションコンテキストが切換え可
であるかどうかを検査する。そして、ステップS604で、
検査結果を判定し、切換禁止フラグがクリアされていれ
ば処理を終了する。
【0062】また、切換禁止フラグがセットされていた
場合は、ステップS605で、指定の識別子のトランザクシ
ョンコンテキストの切換禁止フラグをクリアし、処理を
終了する。
【0063】なお、上記の手順において、識別子の指定
について、その省略を許可し、現在のトランザクション
コンテキストに対して上記処理を行うように変更するこ
ともできる。
【0064】以上説明した手順によれば、トランザクシ
ョンコンテキストの切換禁止フラグを、セットもしくは
クリアに変更することが可能である。一方、図3に示し
たトランザクションコンテキストの切換手段によれば、
ステップS301において、切換禁止フラグの状態を検査す
るので、結果としてトランザクションコンテキストの切
換禁止とその解除を自在に行うことが可能である。
【0065】
【第3実施形態】以下、本発明にかかる第3実施形態の情
報処理装置を説明する。なお、第3実施形態において、
第1実施形態と略同様の構成については、同一符号を付
して、その詳細説明を省略する。
【0066】ところで、トランザクションはハードウェ
アの障害やデッドロックなどの要因により外部的にアボ
ートされることがある。この外部的なアボートは非同期
に発生し、アプリケーションにおいて固有の例外処理を
行う場合は、予め例外ハンドラを設定しておくのが通例
である。
【0067】一方、本発明におけるトランザクションコ
ンテキストを用いる場合、その例外処理は、トランザク
ションに対応するトランザクションコンテキストにおい
て行われる方が好都合である。何故なら、例外処理の目
的は、トランザクションが異常終了したことを受けてア
プリケーション固有の後処理を行うことにあり、そのア
プリケーション固有の処理は明らかにトランザクション
コンテキストに固有だからである。
【0068】以上述べた要求を満たすために、本実施形
態においては、例外ハンドラの設定をトランザクション
コンテキストごとに行う。すなわち、第1実施形態にお
いて説明したトランザクションコンテキストで表現され
る内容において「外部的な要因によってトランザクショ
ンがアボートされるときに起動されるハンドラ」を設定
する手段を提供する。この設定手段は、使用するプログ
ラミング言語に固有である。
【0069】図7は外部的なトランザクションのアボー
トにおけるハンドラの起動手順の一例を示すフローチャ
ートである。
【0070】同図において、ステップS701で、トランザ
クションコンテキスト管理表により、アボートされたト
ランザクションに対応するトランザクションコンテキス
トを検索し、ステップS702で、現在のトランザクション
と比較する。そして、ステップS703で比較結果を判定し
て、両者が同一の場合はステップS706へ進む。また、両
者が異なる場合は、ステップS704で現在のトランザクシ
ョンコンテキストを検査し、ステップS705で検査結果を
判定して、切換え可の場合はステップS706へ進み、切換
え可でない場合はステップS709で保留処理を行った後、
処理を終了する。
【0071】次に、ステップS706で、ハンドラが設定さ
れているかどうかを検査し、ステップS707で検査結果を
判定して、ハンドラが設定されていなければ処理を終了
する。一方、ハンドラが設定されている場合は、ステッ
プS708で設定されているハンドラを起動する。
【0072】ここで、ステップS708の詳細は、次のよう
になる。まず、図3に示した手順に従ってトランザクシ
ョンコンテキストを切換え、図5に示した手順に従って
トランザクションコンテキストの切換えを禁止する。続
いて、ハンドラを起動するが、この間、図6に示したト
ランザクションコンテキストの切換禁止を解除する手段
は無効とする。最後に、ハンドラの実行が終了した時点
で、図6に示した手順によりトランザクションコンテキ
ストの切換禁止を解除し、図2に示した手順によりアボ
ート処理以前のトランザクションコンテキストの再設定
を行い、処理を終了する。
【0073】また、ステップS709における保留処理は、
以下のとおりである。トランザクションコンテキストの
切換えが禁止されていれば、ハンドラを起動する代わり
に、現在のトランザクションコンテキストにおける切換
禁止が解除された時点、すなわち、図5に示した切換禁
止の解除手順をデータベース管理システムが実行した時
点で、設定されているハンドラを起動する。これは、一
種の遅延評価手段になる。従って、複数のトランザクシ
ョンに対するアボートが起こった場合は、複数のハンド
ラが起動されることがあり、その場合のハンドラの起動
順序は、外部的なアボートの順序に従う。
【0074】なお、図7に示した手順は、外部的なトラ
ンザクションのアボートを対象とするものである。しか
し、内部的なトランザクションのアボートにおいても、
同一のハンドラにより後処理を行った方が、アプリケー
ションの作成においては好都合な場合がある。そのよう
な場合、例えばトランザクションコンテキストに、内部
アボートに対応するハンドラ起動フラグを追加するとと
もに、そのフラグの変更手段を設けることで、容易に、
内部アボートに対してハンドラを起動するように変更す
ることができる。
【0075】
【他の実施形態】なお、本発明は、複数の機器(例えば
ホストコンピュータ,インタフェイス機器,リーダ,プ
リンタなど)から構成されるシステムに適用しても、一
つの機器からなる装置(例えば、複写機,ファクシミリ
装置など)に適用してもよい。
【0076】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPUやM
PU)が記憶媒体に格納されたプログラムコードを読出し
実行することによっても、達成されることは言うまでも
ない。この場合、記憶媒体から読出されたプログラムコ
ード自体が前述した実施形態の機能を実現することにな
り、そのプログラムコードを記憶した記憶媒体は本発明
を構成することになる。プログラムコードを供給するた
めの記憶媒体としては、例えば、フロッピディスク,ハ
ードディスク,光ディスク,光磁気ディスク,CD-ROM,
CD-R,磁気テープ,不揮発性のメモリカード,ROMなど
を用いることができる。
【0077】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレー
ティングシステム)などが実際の処理の一部または全部
を行い、その処理によって前述した実施形態の機能が実
現される場合も含まれることは言うまでもない。
【0078】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張カード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張カードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、その
処理によって前述した実施形態の機能が実現される場合
も含まれることは言うまでもない。
【0079】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明したフローチャートに対応す
るプログラムコードを格納することになるが、簡単に説
明すると、図XXのメモリマップ例に示す各モジュールを
記憶媒体に格納することになる。すなわち、少なくとも
「識別情報管理」および「識別情報操作」の各モジュー
ルのプログラムコードを記憶媒体に格納すればよい。さ
らに、「識別情報切換制御」「ハンドラ起動」「共有排
他制御」などのモジュールのプログラムコードを記憶媒
体に格納すれば、より好ましい。
【0080】
【発明の効果】以上説明したように、本発明によれば、
あるアプリケーションが複数の共有データに対して更新
処理を行う場合に、ある共有データについて更新内容を
コミットしつつ、他の共有データに対しては引続いて更
新処理を行ったり、あるいは更新内容を破棄したりとい
う操作をすることができる情報処理装置およびその方法
を提供することができる。
【図面の簡単な説明】
【図1】データベース管理システムにおけるトランザク
ションコンテキスト管理表とトランザクションコンテキ
ストの構成例を示す図、
【図2】トランザクションコンテキストを作成する手順
例を示すフローチャート、
【図3】トランザクションコンテキストの切換え手順の
一例を示すフローチャート、
【図4】指定のトランザクションコンテキストを消去す
る手順例を示すフローチャート、
【図5】トランザクションコンテキストの切換えを禁止
する手順例を示すフローチャート、
【図6】トランザクションコンテキストの切換禁止を解
除する手順例を示すフローチャート、
【図7】外部的なトランザクションのアボートにおける
ハンドラの起動手順の一例を示すフローチャート、
【図8】本発明を実施するコンピュータシステムの一例
を説明するための図、
【図9】本発明にかかるプログラムコードを格納した記
憶媒体のメモリマップ例を示す図である。

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 プロセス内部における複数のトランザク
    ションを識別するための識別情報と、トランザクション
    との対応を管理する管理手段と、 前記識別情報を操作する操作手段とを有することを特徴
    とする情報処理装置。
  2. 【請求項2】 前記識別情報はトランザクションコンテ
    キストとして構成されることを特徴とする請求項1に記
    載された情報処理装置。
  3. 【請求項3】 前記管理手段は、前記識別情報と前記ト
    ランザクションとの対応を識別子により管理することを
    特徴とする請求項1に記載された情報処理装置。
  4. 【請求項4】 前記操作手段は、前記識別情報の作成,
    消去,切換えを行うことを特徴とする請求項1から請求
    項3の何れかに記載された情報処理装置。
  5. 【請求項5】 さらに、前記操作手段を用いることなく
    利用可能なデフォルトの識別情報を有することを特徴と
    する請求項1から請求項4の何れかに記載された情報処理
    装置。
  6. 【請求項6】 さらに、前記操作手段による前記識別情
    報の切換えを禁止し、その禁止を解除する切換制御手段
    を有することを特徴とする請求項4または請求項5に記載
    された情報処理装置。
  7. 【請求項7】 さらに、トランザクションがアボートさ
    れた場合、そのトランザクションに対応する識別情報に
    設定されたハンドラを起動する起動手段を有することを
    特徴とする請求項1から請求項6の何れかに記載された情
    報処理装置。
  8. 【請求項8】 さらに、一つのプロセス内部における複
    数のトランザクションに、一つのロック対象に対する共
    有ロックと排他ロックを同時に確保させるための共有排
    他制御手段を有することを特徴とする請求項1から請求
    項7の何れかに記載された情報処理装置。
  9. 【請求項9】 前記共有排他制御手段は、一つのプロセ
    スに含まれるトランザクションであるかどうかに関係な
    く、一つのトランザクションにだけ前記排他ロックを確
    保することを特徴とする請求項8に記載された情報処理
    装置。
  10. 【請求項10】 プロセス内部における複数のトランザ
    クションを識別するための識別情報と、トランザクショ
    ンとの対応を管理する管理ステップと、 前記識別情報を操作する操作ステップとを有することを
    特徴とする情報処理方法。
  11. 【請求項11】 さらに、前記操作ステップによる前記
    識別情報の切換えを禁止し、その禁止を解除する切換制
    御ステップを有することを特徴とする請求項10に記載さ
    れた情報処理方法。
  12. 【請求項12】 さらに、トランザクションがアボート
    された場合、そのトランザクションに対応する識別情報
    に設定されたハンドラを起動する起動ステップを有する
    ことを特徴とする請求項10または請求項11に記載された
    情報処理方法。
  13. 【請求項13】 さらに、一つのプロセス内部における
    複数のトランザクションに、一つのロック対象に対する
    共有ロックと排他ロックを同時に確保させるための共有
    排他制御ステップを有することを特徴とする請求項10か
    ら請求項12の何れかに記載された情報処理方法
  14. 【請求項14】 情報処理方法のプログラムコードが格
    納されたコンピュータ可読メモリであって、 プロセス内部における複数のトランザクションを識別す
    るための識別情報と、トランザクションとの対応を管理
    する管理ステップのコードと、 前記識別情報を操作する操作ステップのコードとを有す
    ることを特徴とするコンピュータ可読メモリ。
JP8154119A 1996-06-14 1996-06-14 情報処理装置およびその方法 Withdrawn JPH103416A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP8154119A JPH103416A (ja) 1996-06-14 1996-06-14 情報処理装置およびその方法
US08/873,712 US6148299A (en) 1996-06-14 1997-06-12 Selectively processing plurality of transactions using transaction identifiers that including committing, aborting updating and continuous updating content in a plurality of shared data
EP97304132A EP0817036B1 (en) 1996-06-14 1997-06-12 Information processing apparatus and method
DE69731998T DE69731998T2 (de) 1996-06-14 1997-06-12 Informationsverarbeitungsvorrichtung und Verfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8154119A JPH103416A (ja) 1996-06-14 1996-06-14 情報処理装置およびその方法

Publications (1)

Publication Number Publication Date
JPH103416A true JPH103416A (ja) 1998-01-06

Family

ID=15577347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8154119A Withdrawn JPH103416A (ja) 1996-06-14 1996-06-14 情報処理装置およびその方法

Country Status (4)

Country Link
US (1) US6148299A (ja)
EP (1) EP0817036B1 (ja)
JP (1) JPH103416A (ja)
DE (1) DE69731998T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015556A (ja) * 2008-07-02 2010-01-21 Sap Portals Israel Ltd 分散アプリケーションコンテキストを意識したトランザクション処理のための方法及び装置

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6618751B1 (en) * 1999-08-20 2003-09-09 International Business Machines Corporation Systems and methods for publishing data with expiration times
US8290809B1 (en) 2000-02-14 2012-10-16 Ebay Inc. Determining a community rating for a user using feedback ratings of related users in an electronic environment
US9614934B2 (en) 2000-02-29 2017-04-04 Paypal, Inc. Methods and systems for harvesting comments regarding users on a network-based facility
US7428505B1 (en) * 2000-02-29 2008-09-23 Ebay, Inc. Method and system for harvesting feedback and comments regarding multiple items from users of a network-based transaction facility
US6772176B1 (en) * 2000-11-17 2004-08-03 Oracle International Corporation Coordinating a distributed transaction between participants unable to follow a two-phase commit
US20020078152A1 (en) 2000-12-19 2002-06-20 Barry Boone Method and apparatus for providing predefined feedback
US7069317B1 (en) 2001-02-28 2006-06-27 Oracle International Corporation System and method for providing out-of-band notification of service changes
US6892205B1 (en) 2001-02-28 2005-05-10 Oracle International Corporation System and method for pre-compiling a source cursor into a target library cache
US7444335B1 (en) 2001-02-28 2008-10-28 Oracle International Corporation System and method for providing cooperative resource groups for high availability applications
US7058629B1 (en) * 2001-02-28 2006-06-06 Oracle International Corporation System and method for detecting termination of an application instance using locks
US7213049B2 (en) * 2001-07-17 2007-05-01 Bea Systems, Inc. System and method for transaction processing with transaction property feature
US7085755B2 (en) * 2002-11-07 2006-08-01 Thomson Global Resources Ag Electronic document repository management and access system
JP5159375B2 (ja) 2008-03-07 2013-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション メタバースにおけるオブジェクトの真贋判断システム、方法及びそのコンピュータ・プログラム
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US8880959B2 (en) * 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US9372724B2 (en) * 2014-04-01 2016-06-21 Freescale Semiconductor, Inc. System and method for conditional task switching during ordering scope transitions
US9372723B2 (en) * 2014-04-01 2016-06-21 Freescale Semiconductor, Inc. System and method for conditional task switching during ordering scope transitions
US9733981B2 (en) 2014-06-10 2017-08-15 Nxp Usa, Inc. System and method for conditional task switching during ordering scope transitions
US10380656B2 (en) 2015-02-27 2019-08-13 Ebay Inc. Dynamic predefined product reviews
US10864443B2 (en) 2017-12-22 2020-12-15 Activision Publishing, Inc. Video game content aggregation, normalization, and publication systems and methods
US11712627B2 (en) 2019-11-08 2023-08-01 Activision Publishing, Inc. System and method for providing conditional access to virtual gaming items
US20230153803A1 (en) * 2021-11-18 2023-05-18 Aaron Bawcom Systems and Methods for Resilient Transaction Processing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3293839B2 (ja) * 1990-05-16 2002-06-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム
JPH05134886A (ja) * 1990-11-30 1993-06-01 Fujitsu Ltd デツドロツク検出方式
US5504899A (en) * 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5335343A (en) * 1992-07-06 1994-08-02 Digital Equipment Corporation Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
US5689706A (en) * 1993-06-18 1997-11-18 Lucent Technologies Inc. Distributed systems with replicated files
US6330582B1 (en) * 1994-03-21 2001-12-11 International Business Machines Corporation Apparatus and method enabling a client to control transaction message traffic between server and client processes
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
US5721915A (en) * 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
US5682537A (en) * 1995-08-31 1997-10-28 Unisys Corporation Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015556A (ja) * 2008-07-02 2010-01-21 Sap Portals Israel Ltd 分散アプリケーションコンテキストを意識したトランザクション処理のための方法及び装置

Also Published As

Publication number Publication date
DE69731998D1 (de) 2005-01-27
EP0817036B1 (en) 2004-12-22
US6148299A (en) 2000-11-14
EP0817036A2 (en) 1998-01-07
EP0817036A3 (en) 1999-06-16
DE69731998T2 (de) 2005-10-06

Similar Documents

Publication Publication Date Title
JPH103416A (ja) 情報処理装置およびその方法
US10180903B2 (en) Hybrid hardware and software implementation of transactional memory access
US6834275B2 (en) Transaction processing system using efficient file update processing and recovery processing
US7895401B2 (en) Software transactional memory for dynamically sizable shared data structures
Biliris et al. ASSET: A system for supporting extended transactions
EP1910929B1 (en) Direct-update software transactional memory
Schwarz et al. Synchronizing shared abstract types
US9569254B2 (en) Automatic checkpointing and partial rollback in software transaction memory
EP2150900B1 (en) Transactional memory using buffered writes and enforced serialization order
US5666532A (en) Computer method and apparatus for asynchronous ordered operations
US8799213B2 (en) Combining capture and apply in a distributed information sharing system
US5197148A (en) Method for maintaining data availability after component failure included denying access to others while completing by one of the microprocessor systems an atomic transaction changing a portion of the multiple copies of data
US7552434B2 (en) Method of performing kernel task upon initial execution of process at user level
US7546600B2 (en) Method of assigning virtual process identifier to process within process domain
US7363288B2 (en) Method of checkpointing and restarting processes which share open file
Kaiser et al. Multiple concurrency control policies in an object-oriented programming system
Kiviniemi et al. Transaction processing in the RODAIN real-time database system
JPH0628199A (ja) 並行処理の同期方法
Tabassum et al. Transactional Memory: A Review
Nett et al. Implementing fault-tolerance in a distributed system architecture
JPH09204337A (ja) データベース管理システム
JPH07152622A (ja) 情報処理方法及び装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030902