JPH07104805B2 - 持続性があり再起動可能なカーソルを用いた順次バッチ・アプリ ケーションを支援するための方法 - Google Patents

持続性があり再起動可能なカーソルを用いた順次バッチ・アプリ ケーションを支援するための方法

Info

Publication number
JPH07104805B2
JPH07104805B2 JP3103462A JP10346291A JPH07104805B2 JP H07104805 B2 JPH07104805 B2 JP H07104805B2 JP 3103462 A JP3103462 A JP 3103462A JP 10346291 A JP10346291 A JP 10346291A JP H07104805 B2 JPH07104805 B2 JP H07104805B2
Authority
JP
Japan
Prior art keywords
cursor
persistent
named
cursors
block
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 - Lifetime
Application number
JP3103462A
Other languages
English (en)
Other versions
JPH04229344A (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 JPH04229344A publication Critical patent/JPH04229344A/ja
Publication of JPH07104805B2 publication Critical patent/JPH07104805B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/1474Saving, restoring, recovering or retrying in transactions
    • 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
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2438Embedded query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の技術分野】この発明は、一般的にはデータベ
ース・アプリケーションの分野に関するものであり、特
に順次バッチ・アプリケーションを支援するデータベー
ス・アプリケーションの分野に関するものである。これ
をより詳細にいえば、この発明は、順次バッチ・アプリ
ケーションを支援し、また、トランザクション・コミッ
トまたはロール・バックを通して、オブジェクトのシー
ケンスについて連続的な評価および計算を許容するデー
タベース・アプリケーションに関するものである。
【0002】
【従来の技術】データベース・アプリケーション内のデ
ータ・レコードまたはオブジェクトの記憶および取り扱
いをすることは、先行の技術においてよく知られてい
る。データベース・アプリケーションが、より大規模に
なり、また、より複雑になるにつれて、データ・オブジ
ェクトの大規模なセットに対して、アプリケーションに
処理操作を適用する必要性に関する問題が生じてきてい
る。
【0003】データベース・アプリケーションにおいて
処理を必要とするオブジェクトは、”照会(quer
y)”として知られている、非手順的で(non−pr
ocedural)、関係のある計算表現を用いて特定
される。ある1個の名称の付されている”カーソル(c
ursor)”はある1個の照会と関連させることが可
能であって、”オープン(open)”および”フェッ
チ(fetch)”として知られている操作により、該
当の照会を評価し、計算する(enumerate)た
めに用いられる。代表的には、ある1個のプラン(pl
an)が発生されて、データベース内で単一の関係をも
って操作するように、これらのカーソルの操作をより低
レベルの操作までマッピング処理するために用いられ
る。
【0004】より低レベルの操作の例に含まれているも
のには、「スキャン(scans)」およびいわゆる
「一時的な関係(temporary relatio
ns)」の生成がある。「スキャン」は、単一の関係に
ついての順次アクセス経路に対する計算子(enume
rator)である。ある1個のアクセス経路を構成し
得るものは、物理的な順序または数字的な順序でテーブ
ルのレコードを通してなされる順次アクセス・スキャ
ン、または、インデックスのキーを通してなされるイン
デックス・スキャンである。ある「一時的な関係」に含
まれ、またはバッファ操作されているそれらの中間的な
結果は、照会結果のセットの構成において、該当の照会
プラン(query plan)によって用いられる。
【0005】任意の時点において、データベース・アプ
リケーション内の活動カーソルの状態は、任意の関連の
ある一時的な関係の状態および1個または複数個のアク
セス経路スキャンの位置において具体化される。また、
カーソルの状態には、照会プランの進行を追跡するため
に用いることができるコントロール状態も含まれてい
る。大方のデータベース・アプリケーションにおいて
は、カーソルはトランザクションの終了によりクローズ
にされる。即ち、最小単位の状態(state of
atomicity)に達すると、トランザクションの
委託すなわち”コミット(commit)”が可能にな
り、いずれの変化も永久的なものにする全てのカーソル
に関連するような、全ての基礎的なスキャン、一時的な
関係およびロック(locks)が解放される。その結
果、解放されたレコードが他のユーザに利用可能にな
る。同様にして、最小単位の達成に先だってトランザク
ションが終了したときには、一時的なログのエントリを
用いることにより、その中の全ての活動の状態が”ロー
ル・バック”されて、最後の”コミット”によって表さ
れる先行の最小単位の状態にデータベースが戻るように
される。
【0006】データベースの最小単位を維持することの
必要性の結果として、多くの操作を処理せねばならない
ときに問題がある。先行の技術で知られているシステム
においては、処理されるべき全てのレコードが”ロッ
ク”されねばならず、また、全ての処理が完了するまで
当該状態に維持されねばならない。この方法によれば、
多くの操作が首尾良く達成されるというある程度の保証
はなされるけれども、それらのレコードに対する他者か
らの同時的なアクセスは、このような操作の間は禁止さ
れることになる。
【0007】上述の結果として、リアルタイム、オンラ
インのトランザクション処理を混乱させることなく、多
くのレコードのバッチの処理を許容するために、幾つか
のシステムが試行的に提案されている。例えば、”コミ
ット・ホールド(Commit Hold)”として知
られているメカニズムは、データベース・アプリケーシ
ョンが、トランザクションの境界を通して選択されたス
キャンに関連しているロックを保持することを許容する
ように提案されたものである。しかしながら、このシス
テムには、いずれのスキャンが保持されるべきかを、ア
プリケーションが特定することを許容するように特定さ
れた方法は存在しない。より重大なこととして、トラン
ザクションにロール・バックがあったときには、このシ
ステムにおけるスキャン位置が失われるということがあ
る。ロール・バックの開始はオペレータによる入力なし
でシステムによってなされることがあり得ることから、
この”コミット・ホールド”システムは一般的に有用で
あるとはいえない。
【0008】1986年12月発行の「データベースシ
ステムのACMトランザクション」11巻,No.4、
の「トランザクションとランダム・バッチのコンシステ
ンシー」(”Consistency of Tran
sactions andRandom Batc
h”, ACM Transactions on D
atabase Systems, Volume 1
1, Number 4,December 198
6)において提案されたシステムは、オンライン・アプ
リケーションのアクセスに対するバッチ・アプリケーシ
ョンのアクセスの順序付けに制限がある。この方法によ
れば、全ての含まれていることについての直列的な実行
が確実にされるけれども、そのためには、バッチ・アプ
リケーションとオンライン・アプリケーションとの間で
極めて注意深い同期をとることが必要とされる。このシ
ステムにおける同期エリアでの失敗の結果として、バッ
チ・アプリケーションまたはオンライン・アプリケーシ
ョンのいずれかでのロール・バックが生じることがあり
得る。
【0009】
【発明が解決しようとする課題】上述したところから明
かにされるべきことは、次のようなデータベース・アプ
リケーション・システムに対する必要性があるというこ
とである。即ち、照会で規定されるオブジェクトのセッ
トを連続的に処理しながら、バッチ・アプリケーション
の更新のコミットおよびロックの解放を頻繁に許容する
ことにより、リアルタイム、オンラインのトランザクシ
ョン処理を混乱させることなく、大量のオブジェクトの
処理が許容されるようなシステムに対する必要性がある
ということである。
【0010】従って、この発明の目的は、改良されたデ
ータベース・アプリケーションを提供することにある。
【0011】この発明の別の目的は、順次バッチ・アプ
リケーションを支援する、改良されたデータベース・ア
プリケーションを提供することにある。
【0012】この発明の更に別の目的は、順次バッチ・
アプリケーションを支援するとともに、トランザクショ
ンのコミット、ロールバックまたはシステムの障害に関
する一連のオブジェクトについての連続的な評価および
計算を許容するような、改良されたデータベース・アプ
リケーションを提供することにある。
【0013】
【課題を解決するための手段】前述された目的は、これ
から説明されることによって達成される。この発明によ
る方法においては、オブジェクトのセットを特定する照
会の規定がなされる。名称を付されたカーソルは該当の
照会と関連しており、各カーソルに含まれた少なくとも
1個のスキャンは、該照会の評価および計算のために用
いることができる。選択されたカーソルは持続性のある
カーソルとして指定されることが可能であり、トランザ
クションのコミットに応答して、任意の関連のある1個
または複数個のスキャンの状態、および、持続性カーソ
ル・テーブル(PCT)における照会の評価状態ととも
に記憶される。その後で、照会の評価および計算は、持
続性カーソル・テーブル(PCT)に記憶されている情
報を用いることにより、持続性カーソルの点において再
設定することができる。次のコミットの点に先だって、
トランザクションのロール・バックが後続して生じたと
きには、持続性カーソル・テーブル(PCT)に記憶さ
れている情報を用いることにより、先行するコミットの
点において照会の再設定をすることができる。また、カ
ーソルは再起動可能なカーソルとして指定されることも
可能であって、不揮発性のメモリ内に、持続性カーソル
・テーブル(PCT)における全ての情報とともに記憶
される。その後で、システムに障害が生じたときには、
照会の評価および計算は、不揮発性のメモリに記憶され
ている情報を用いることにより、再起動可能なカーソル
の点において再設定をすることができる。この発明の好
適な実施例においては、識別子パラメータ(ident
ifier parameter)が各再起動可能なカ
ーソルと関連して記憶されて、多くのアプリケーション
で単一の再起動可能なカーソルを同時に使用できるよう
にされている。
【0014】
【実施例】図1を参照すると、ホスト・コンピュータ1
0およびデータベース12が示されている。ここで例示
されているように、ホスト・コンピュータ10は通信リ
ンク14を介してデータベース12に結合されているけ
れども、データベース12をホスト・コンピュータ10
の内部記憶媒体内に記憶させることもできる。同様にし
て、ホスト・コンピュータ10も、データベースにアク
セスする任意のサーバ・デバイスとして構成することが
できる。
【0015】図2を参照すると、データ・テーブル22
およびこのデータ・テーブル22を順次アクセスするた
めの関連のスキャン状態16が示されている。ある1個
のスキャンは、単一の関係についての順次アクセス経路
に対する計算子(enumerator)である。アク
セス経路を構成するものは、テーブルのレコードを物理
的な順序で通る順次アクセスのスキャン、または、イン
デックスのキーを通るインデックスのスキャンである。
ここで例示されているように、スキャン状態16には2
個のフィールドが含まれている。即ち、フィールド18
においては、データが必要とされるテーブルの識別がリ
ストにされている。また、フィールド20においては、
現在のエントリが配置されるエントリ・キーの識別が含
まれている。フィールド18は、データ・テーブル22
内のフィールド24に記憶されているような特定のテー
ブル名を参照するために用いられるものであり、また、
エントリ・キー・フィールド20は、データ・テーブル
22内に記憶されている特定のキーの中の一つを参照す
るために用いられるものである。
【0016】次に図3を参照すると、カーソル状態32
が示されている。ここで例示されているように、データ
ベース・アプリケーションにおける活動的なカーソルの
状態は、任意の関連がある一時的な関係の状態および1
個または複数個のアクセス経路のスキャンの位置におい
て具体化されている。カーソル状態32に含まれている
フィールド34には、特定のカーソル名がリストにされ
ている。また、複数個のスキャン36−40の各々の状
態も、各スキャンによって戻されるエントリ値とととも
に、それぞれの参照数値38および42をもって、その
中でリストにされている。これに加えて、フィールド4
4に示されているものは、自由な変動性のある設定(b
indings)であり、フィールド46に示されてい
るものは、名称を付されたカーソルに関連する照会の評
価状態、および、該名称を付されたカーソルに関連した
バッファ内に記憶されている任意の中間的な結果に対す
る値である。
【0017】次に図4を参照すると、この発明の重要な
特徴に従った方法によって設定された、持続性カーソル
・テーブル(PCT)が、示されている。カーソルを利
用するアプリケーション・プログラムにより各カーソル
が持続性、または、再起動可能であるかが指定され、ど
のカーソルを指定するかは、該アプリケーション・プロ
グラムに依存する。持続性カーソル・テーブル(PC
T)48に含まれているものは、持続性のものとして指
定された全てのカーソルのリストである。これに含まれ
ている多くのカーソル50、54および58の各々は、
カーソル状態32(図3を参照)に関して先に示したよ
うに、該当の名称が付されたカーソルの状態を具体化す
るために、それらの値に関連して記憶されている。
【0018】即ち、持続性カーソル・テーブル(PC
T)48内の各々の名称を付されたカーソルは、カーソ
ル状態32として示された、それらの値を含んでいる複
数個のフィールドとともに記憶されている。例えば、カ
ーソル名フィールド50はカーソル状態フィールド52
と関連付けられている。同様にして、カーソル名フィー
ルド54はカーソル状態フィールド56と関連付けられ
ており、また、カーソル名フィールド58はカーソル状
態フィールド60と関連付けられている。この態様にお
いて、持続性のあるカーソルとして指定されている各カ
ーソルは、トランザクションの終了に続いて、一連のデ
ータ・オブジェクトの計算を続行するために用いること
ができるものである。このカーソルは、トランザクショ
ンの終了に続いてカーソルの再設定を可能にするのに十
分な状態情報および一時的な関係情報とともに、持続性
カーソル・テーブル(PCT)48内に記憶される。ま
た、ここでより詳細に説明されるように、”再起動可能
な”ものとして指定された、任意のカーソルに対する持
続性カーソル・テーブル(PCT)48の内容は、それ
に関連して選択された位置がシステムの障害に伴って効
果的に再設定されるように、不揮発性のメモリに記憶さ
れることになる。いうまでもないが、持続性カーソル・
テーブル(PCT)48の内容の不揮発性メモリへの記
憶は、最小単位の状態を達成するためのアプリケーショ
ンの失敗によって、任意の記憶されているデータのロー
ル・バックがもたらされるように、トランザクションの
境界に同期した態様でなされねばならない。
【0019】ここで図5を参照すると、この発明の方法
によって設定されたオープン・カーソル・テーブル62
が、示されている。各選択された照会に対して、該当の
照会が処理されている任意の時点においてオープンされ
るカーソルをリストにするために、この発明の方法によ
ってオープン・カーソル・テーブル62が使用される。
ここで例示されているように、名称が付された複数個の
カーソル64、68および72が、このような各カーソ
ルに関連した照会の実行状態とともにリストにされてい
る。即ち、名称が付されたカーソル64は照会実行状態
66と関連が付けられている。同様にして、名称が付さ
れたカーソル68は照会実行状態70と関連が付けられ
ており、また、名称が付されたカーソル72は照会実行
状態74と関連が付けられている。参照数値76におい
て例示されているように、各照会実行状態に含まれてい
るものは、好適には、関連したスキャンの状態に関する
情報であって、所望のエントリ値に戻るために必要とさ
れるテーブルおよびエントリ・キーの識別項を含むよう
にされている。更に、状態フラグおよび照会結果を具現
するためのプランの記述とともに、任意の一時的なバッ
ファの内容も記憶されている。これに加えて、任意の一
時的なバッファに記憶された値および自由な変動値も、
オープン・カーソル・テーブル62内の名称が付された
カーソルに対する照会実行状態に関連して記憶されてい
る。この態様において、ある選択された名称付きのカー
ソルに関連した照会の実行状態を決定するために、デー
タベース・システムはオープン・カーソル・テーブル6
2を容易に参照することができる。
【0020】次に図6を参照すると、この発明の方法に
よる持続性カーソルのオープン操作を例示するハイレベ
ルのフローチャートが示されている。ブロック80にお
ける処理の開始の後ブロック82に至り、名称の付され
たカーソルが既にオープンしているか否かの決定がなさ
れる。該当の名称付きのカーソルがその中でリストにさ
れているか否かを定めるためにオープン・カーソル・テ
ーブル62(図5を参照)を参照することによって、こ
の決定を簡単かつ容易にすることができる。該当の名称
付きのカーソルが既にオープンしているときには、ブロ
ック84で例示されているように、ユーザに対してエラ
ー・メッセージを戻す。
【0021】ブロック82で、該当の名称付きのカーソ
ルがオープンしていないことが決定された後、ブロック
86で、そのカーソルに関連した自由変数の設定がなさ
れる。次に、ブロック88で、スキャン・エントリおよ
び照会結果のセットを具現させながら発生することがで
きる中間的な結果に対するバッファの割り当てがなされ
る。
【0022】次のブロック90で、照会結果のセットを
具現させるために必要とされる任意の一時的なテーブル
の生成がなされ、また、ブロック92で、名称付きのカ
ーソルをオープン・カーソル・テーブルに付加する操作
(図5で例示されるような)がなされる。その後で、ブ
ロック94で示されているように、その処理が終了す
る。
【0023】次に、図7を参照すると、この発明の方法
による、持続性のある、および/または、再起動可能な
カーソルによるエントリのフェッチ操作を例示するハイ
レベルのフローチャートが示されている。この処理はブ
ロック96において開始され、ブロック98において
は、名称の付されたカーソルがオープン・カーソルであ
るか否かの決定がなされる。先に示したように、図5に
示されたオープン・カーソル・テーブルの簡単な参照に
よってこの処理を実施することができる。名称の付され
たカーソルがオープンであったときには、ブロック10
0で示されているように、このカーソルは照会プランの
実行を継続するために用いられる。しかしながら、この
名称の付されたカーソルがオープンでなかったときに
は、ブロック102で該当のカーソルが持続性カーソル
であるか否かの決定がなされる。即ち、トランザクショ
ンの終了に続いて、コミットまたはロール・バックによ
り、カーソルの再設定が可能にされる。
【0024】ブロック102で名称の付されたカーソル
が持続性カーソルとして指定されなかったときには、ブ
ロック104で、名称の付されたカーソルが再起動可能
カーソルであるか否かの決定がなされる。”再起動可能
(restartable)”カーソルとは、システム
の障害に続いてこの発明の方法を用いることにより、再
設定が可能にされるカーソルを意味している。名称の付
されたカーソルが持続性、再起動可能のいずれでもなか
ったときには、ブロック106で例示されているよう
に、照会プランの続行が不可能である旨を指示するエラ
ー・メッセージがユーザに戻される。
【0025】ブロック104において、名称の付された
カーソルが再起動可能なカーソルであったときには、ブ
ロック108において不揮発性のメモリからタグ付きの
カーソルの検索がなされる。以下でより詳細に述べるよ
うに、識別子は好適には各再起動可能なカーソルと関連
して不揮発性のメモリに記憶されて、ある1個の再起動
可能なカーソルを多くのアプリケーションで同時に用い
ることができるようにされる。この次のブロック110
においては、再起動可能なカーソルが不揮発性のメモリ
内で見出されたか否かの決定がなされる。そして、これ
が見出されなかったときには、ブロック112で、図6
に関して先に例示されている態様をもって、名称の付さ
れたカーソルをオープンする。
【0026】しかしながら、ブロック110で、再起動
可能なカーソルが不揮発性のメモリ内に配置されている
と判断されたときには、ブロック114に示されている
ように、このカーソルが持続性カーソル・テーブル(P
CT)に付加される。ここで規定されると、再起動可能
のものとして指定されるいずれのカーソルでも持続性の
ものになる。勿論この逆は真ではない。その理由は、こ
こで規定される持続性カーソルはシステムの障害に従っ
ては再設定できないため、および、持続性カーソルの状
態が不揮発性のメモリに記憶されることがないためであ
る。
【0027】ブロック114で、名称が付されたカーソ
ルを持続性カーソル・テーブル(PCT)に付加した後
で、処理がブロック116に戻って、任意の必要とされ
たバッファの割当がなされ、また、全ての関連のある値
が、持続性カーソル・テーブル(PCT)に記憶されて
いる名称の付されたカーソルに関する情報から初期化さ
れる。
【0028】その後で、ブロック118において、持続
性カーソル・テーブル(PCT)48(図4を参照)内
に含まれているスキャン位置情報によって、カーソルに
対するスキャン位置の設定がなされる。これに続いて、
ブロック120において、持続性カーソル・テーブル
(PCT)48内に含まれているカーソル状態情報によ
って、自由変動の設定が実施される。最後に、ブロック
122において、カーソル状態情報のヘッディングの下
に、持続性カーソル・テーブル(PCT)48内に含ま
れている情報によって、照会プランのセット操作がなさ
れる。
【0029】照会プランの実行の間に名称の付されたカ
ーソルがオープン・カーソル・テーブル内でリストにさ
れていないときには、この発明による方法に従って、図
4に例示されているような持続性カーソル・テーブル
(PCT)48内に記憶されている情報を用いて、正確
にかつ効果的に再設定することができる。最後に、照会
プラン内のデータ・オブジェクトの計算を続行できるよ
うに持続性カーソル・テーブル(PCT)48の再設定
をした後で、ブロック124で例示されているように、
名称の付されたカーソルがオープン・カーソル・テーブ
ルに付加される。その後ブロック100において、照会
プランの実行が継続される。
【0030】ここで図8を参照すると、この発明によっ
てなされる、持続性のある、および/または、再起動可
能なカーソルのクローズ操作を例示するハイレベルのフ
ローチャートが示されている。この処理はブロック12
6で開始され、これに続くブロック128においては、
名称の付されたカーソルがオープンであるか否かの決定
がなされる。先に述べたように、オープン・カーソル・
テーブル(図5を参照)を単に参照することにより、こ
の処理を達成することができる。名称の付されたカーソ
ルがオープン・カーソル・テーブル内でリストにされて
いないときには、ブロック130で、エラー・メッセー
ジをユーザに戻して、それがオープンではないことか
ら、カーソルをクローズにはできない旨の指示をする。
【0031】ブロック128において、名称の付された
カーソルがオープン・カーソル・テーブル内でリストに
されているときには、ブロック132で、名称の付され
たカーソルがオープン・カーソル・テーブルから削除さ
れる。次に、ブロック136で、名称の付されたカーソ
ルと関連可能にされたそれらの一時的なテーブルの解放
をするようにされる。
【0032】次のブロック138において、名称の付さ
れたカーソルが再起動可能なカーソルであるか否かの決
定がなされる。即ち、不揮発性のメモリ内に記憶された
持続性カーソル・テーブル(PCT)48の内容を有し
ているカーソルが、システムの障害に伴って再設定でき
るようにされる。前記の決定が肯定であるときには、ブ
ロック140において、この特定のアプリケーションに
関連する事例識別子において、該当のカーソルに対して
記憶されている回復可能な状態の削除がなされる。その
後で、または、ブロック138で決定されたような、名
称の付されたカーソルが再起動可能なカーソルではない
ときに、ブロック142で示されているように、その処
理が終端する。
【0033】次に、図9を参照すると、トランザクショ
ン・コミットがあったときに、この発明による方法に従
ってなされる、持続性のある、および/または、再起動
可能なカーソルの取り扱い(treatment)を例
示するハイレベルのフローチャートが示されている。ブ
ロック144においては、トランザクション・コミット
が生じたときに、任意の関連のあるカーソルを取り扱う
ための処理が開始され、これに続くブロック146にお
いては、図4で述べられているように、持続性カーソル
・テーブル(PCT)48のクリア操作がなされる。
【0034】その後で、ブロック148において示され
ているようなオープン・カーソル・テーブル内の各カー
ソルに対して、ブロック150で、トランザクション・
コミットが発生したアプリケーションの事例識別子を有
するカーソルが持続性のカーソルであるか否かの決定が
なされる。現に処理をされている名称付きのカーソルが
持続性のカーソルではなかったときには、ブロック15
2で、任意の関連したバッファ、および、該名称付きの
カーソルに関連している一時的なテーブルの解放がなさ
れる。次のブロック154においては、名称付きのカー
ソルがオープン・カーソル・テーブルから除去され、こ
れに続くブロック158での処理において、残りのオー
プン・カーソルが存在するか否かの決定がなされる。そ
の決定が肯定であったときには、反復的にブロック14
8へ処理が戻って、オープン・カーソル・テーブル内で
次に続くカーソルの処理がなされる。
【0035】ブロック150において、処理をされてい
るある特定のカーソルが持続性のカーソルであると決定
されたときには、これに続くブロック156において、
該当の選択されたカーソルの名称、および、その状態に
関連する全ての情報が、図4で例示されている態様をも
って、持続性カーソル・テーブル(PCT)48に入力
される。その後に続くブロック158においても、残り
のオープン・カーソルが存在するか否かの決定がなされ
る。
【0036】トラザクションのコミットにともなって持
続性カーソル・テーブル(PCT)48がクリアされ、
これに次いで、オープン・カーソル・テーブル内の各カ
ーソルが検査される。持続性のものとしては指定されな
いそれらのカーソルはオープン・カーソル・テーブルか
ら除去され、任意の関連したバッファまたは一時的なテ
ーブルも解放される。ただし、持続性のものとして先に
指定されているカーソルは持続性カーソル・テーブル
(PCT)48に再入力されて、反復的な態様をもって
処理が続行される。
【0037】ブロック158の決定により、オープン・
カーソル・テーブル内にオープン・カーソルが残留して
いないことが一旦明かになれば、次に続くブロック16
0での処理において、再起動可能なものとして指定され
ている各カーソルに対する持続性カーソル・テーブル
(PCT)48内のデータが、事例識別子とともに、不
揮発性のメモリ内に記憶される。なお、事例識別子は、
ここで検討されているように、ある1個の再起動可能な
カーソルが多くのアプリケーションによって同時に使用
されることを許容するためのものである。最後に、ブロ
ック162で、残留しているカーソルに関連するいずれ
かのロックまたはスキャンの保持がなされ、ブロック1
64でその処理が終端する。
【0038】最後に図10を参照すると、トランザクシ
ョンのロール・バックがあったときに、この発明による
方法に従ってなされる、持続性のある、および/また
は、再起動可能なカーソルの取り扱いを例示するハイレ
ベルのフローチャートが示されている。その処理はブロ
ック166において開始され、これに続くブロック16
8においては、オープン・カーソル・テーブル内の各カ
ーソルに対するこの処理の反復性が例示されている。次
のブロック170においては、オープン・カーソル・テ
ーブル内の各カーソルに関連する任意のバッファおよび
一時的なテーブルの解放が示されている。次に続くブロ
ック172においては、オープン・カーソル・テーブル
内に残りのオープン・カーソルが存在するか否かの決定
がなされる。そして、その決定が肯定であるときには、
反復的にブロック168に戻って、その処理を続行する
ようにされる。全てのオープン・カーソルが上述された
ように処理された後で、ブロック174でオープン・カ
ーソル・テーブルがクリアにされ、そして、ブロック1
76でその処理が終端する。
【0039】以上説明した方法により、データベースの
照会のための評価および計算をするために用いられるカ
ーソルが、選択されたデータ・オブジェクトのセットの
計算がトランザクションのコミット、ロール・バックま
たはシステムの障害にしてがって続行できるように、持
続性のもの、および/または、再起動可能のものとして
指定されることが可能になる。
【0040】トランザクションのコミットに従う第1の
フェッチ操作は、持続性カーソル・テーブル(PCT)
48内で保存されたスキャン位置情報を用いて、選択さ
れたカーソルに対するスキャン位置の再設定をするため
に用いることができる。これに加え、スキャン位置の再
設定をするのに先だって、保存されていたスキャンにつ
いての関係およびアクセス経路に対するデータベースの
物理的なスキーマ(schema)の”通用性(cur
rency)”が確認されねばならない。使用されてい
る関係またはアクセス経路が破壊されたときには、デー
タベースのスキーマの変化によってカーソル位置の再設
定が妨げられる。スキーマの”通用性”は、これもスキ
ャン位置とともに保存されているスキーマ・バージョン
識別子(schema version identi
fier)を用いてテストすることができるか、また
は、スキーマの修正を妨げる持続のロックによるように
される。
【0041】ここで開示された方法に従って保存されて
いるスキャン位置は、トランザクションの処理操作の間
にも持続されて、トランザクションのロール・バックに
従うスキャンおよびカーソルの再位置決めを許容するよ
うにされる。トランザクションのロール・バックの後
で、カーソルに対して”古い(old)”保存された状
態を、カーソル位置の再設定のために用いることができ
る。トランザクションのロール・バックに従うスキーマ
の”通用性”を確認するために、ロックを用いることは
できない。
【0042】持続性のあるカーソルまたは再起動可能な
カーソルに対するスキャン位置を再設定するために必要
とされる情報には、スキーマ確認トークン(schem
avalidation token)の外に、スキャ
ンによって処理された最後のレコードの識別が含まれね
ばならない。処理された最後のレコードにおいて、また
は、処理された最後のレコードがバッチ・アプリケーシ
ョンまたは他の何等かのデータベース・アプリケーショ
ンによって削除されたときには、処理された最後のレコ
ードに従って、この値をスキャンの再位置決めのために
用いることができる。いうまでもなく、現在のスキャン
位置におけるレコードを”安定化させる(stabil
ize)”ロックを持続させる実施の最適化は、コミッ
トされたトランザクションに対するオーバヘッド(ov
erhead)の再位置決め操作を回避するために用い
ることができる。トランザクションのロール・バック
は、明白な再位置決め操作およびスキーマの”通用性”
の確認を常に必要とするものである。
【0043】
【発明の効果】この発明によれば、照会で規定されるオ
ブジェクトのセットを連続的に処理しながら、バッチ・
アプリケーションの更新のコミット(委託)およびロッ
クの解放を頻繁に許容することにより、リアルタイム、
オンラインのトランザクション処理を混乱させることな
く、大量のオブジェクトの処理が許容されるようなデー
タベース・アプリケーション・システムが提供される。
【図面の簡単な説明】
【図1】この発明による方法の実施のために用いること
ができる、ホスト・コンピュータとデータベースを示す
ものである。
【図2】データ・テーブルと、このデータ・テーブルの
順次的なアクセス操作のために関連のあるスキャンを示
すものである。
【図3】この発明による方法に従って用いることができ
るカーソルの状態を示すものである。
【図4】この発明による方法に従って設定される持続性
カーソル・テーブル(PCT)を示すものである。
【図5】この発明による方法に従って設定される、オー
プン・カーソル・テーブルを示すものである。
【図6】この発明による方法に従ってなされる、持続性
カーソルのオープン操作を表すハイレベルのフローチャ
ートである。
【図7】この発明による方法に従ってなされる、持続性
のある、および/または、再起動可能なカーソルによる
エントリのフェッチ操作を表す、ハイレベルのフローチ
ャートである。
【図8】この発明による方法に従ってなされる、持続性
のある、および/または、再起動可能なカーソルのクロ
ーズ操作を表す、ハイレベルのフローチャートである。
【図9】トランザクション・コミットがあったときに、
この発明による方法に従ってなされる、持続性のある、
および/または、再起動可能なカーソルの取り扱いを表
す、ハイレベルのフローチャートである。
【図10】トランザクションのロール・バックがあった
ときに、この発明による方法に従ってなされる、持続性
のある、および/または、再起動可能なカーソルの取り
扱いを表す、ハイレベルのフローチャートである。
【符号の説明】
10 ホスト・コンピュータ 12 データベース 14 通信リンク 16 スキャン状態 18 テーブルIDフィールド 20 エントリ・キー・フィールド 22 データ・テーブル

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムにおいて、複数の照会
    を利用することにより特定のオブジェクのシーケンスで
    あるアプリケーションを同時に処理するデータベース・
    アプリケーションにおいて処理効率を改善する方法であ
    って、各オブジェクトのセット及び名称を付されたカー
    ソルは前記複数の照会と関連し、前記名称を付されたカ
    ーソルは関連する照会の評価及び計算に利用されるスキ
    ャンを含む方法であって、 (a)前記名称を付されたカーソルを持続性のあるカー
    ソルとして指定するステップと、 (b)持続性カーソル・テーブルに各持続性カーソルの
    スキャン及びコミット動作に応答する照会の評価と伴
    に、前記持続性のあるカーソルを記憶させるステップ
    と、 (c)前記コミット動作に応答して、すべてのカーソル
    をクローズするステップと、 (d)前記コミット動作に続いて、前記持続性カーソル
    ・テーブルを利用して持続性カーソルに指定された各カ
    ーソルに関連する照会を再設定するステップと、を含
    み、特定のオブジェクトのシーケンスであるアプリケー
    ションが、頻繁なコミット動作の間も処理され、他のユ
    ーザによるアクセスが行われる場合でも処理できること
    を特徴とする方法。
  2. 【請求項2】請求項1に記載の方法が、更に、 (e)選択されたスキャン及びコミット動作に応答する
    持続性のあるカーソルに関連する中間結果を記憶するス
    テップと、 を含むことを特徴とする方法。
  3. 【請求項3】複数の照会を利用することにより特定のオ
    ブジェクのシーケンスであるアプリケーションを同時に
    処理するデータベース・アプリケーションにおいて処理
    効率を改善するデータ処理システムであって、各オブジ
    ェクトのセット及び名称を付されたカーソルは前記複数
    の照会と関連し、前記名称を付されたカーソルは関連す
    る照会の評価及び計算に利用されるスキャンを含むデー
    タ処理システムであって、 (a)前記名称を付されたカーソルを持続性のあるカー
    ソルとして指定する手段と、 (b)持続性カーソル・テーブルに各持続性カーソルの
    スキャン及びコミット動作に応答する照会の評価と伴
    に、前記持続性のあるカーソルを記憶させる手段と、 (c)前記コミット動作に応答して、すべてのカーソル
    をクローズする手段と、 (d)前記コミット動作に続いて、前記持続性カーソル
    ・テーブルを利用して持続性カーソルに指定された各カ
    ーソルに関連する照会を再設定する手段と、 を含み、特定のオブジェクトのシーケンスであるアプリ
    ケーションが、頻繁なコミット動作の間も処理され、他
    のユーザによるアクセスが行われる場合でも処理できる
    ことを特徴とするデータ処理システム。
  4. 【請求項4】請求項3に記載のデータ処理システムが、
    更に、 (e)選択されたスキャン及びコミット動作に応答する
    持続性のあるカーソルに関連する中間結果を記憶する手
    段と、 を含むことを特徴とするデータ処理システム。
JP3103462A 1990-04-30 1991-04-09 持続性があり再起動可能なカーソルを用いた順次バッチ・アプリ ケーションを支援するための方法 Expired - Lifetime JPH07104805B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/516,363 US5220665A (en) 1990-04-30 1990-04-30 Method and system for supporting concurrent use during sequential batch applications utilizing persistent cursors
US516363 1990-04-30

Publications (2)

Publication Number Publication Date
JPH04229344A JPH04229344A (ja) 1992-08-18
JPH07104805B2 true JPH07104805B2 (ja) 1995-11-13

Family

ID=24055230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3103462A Expired - Lifetime JPH07104805B2 (ja) 1990-04-30 1991-04-09 持続性があり再起動可能なカーソルを用いた順次バッチ・アプリ ケーションを支援するための方法

Country Status (4)

Country Link
US (1) US5220665A (ja)
EP (1) EP0455440B1 (ja)
JP (1) JPH07104805B2 (ja)
DE (1) DE69112694T2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317733A (en) * 1990-01-26 1994-05-31 Cisgem Technologies, Inc. Office automation system for data base management and forms generation
JP3612339B2 (ja) * 1992-10-23 2005-01-19 株式会社日立製作所 データ処理方法および装置
US6658488B2 (en) 1994-02-28 2003-12-02 Teleflex Information Systems, Inc. No-reset option in a batch billing system
US6708226B2 (en) 1994-02-28 2004-03-16 At&T Wireless Services, Inc. Multithreaded batch processing system
US7412707B2 (en) * 1994-02-28 2008-08-12 Peters Michael S No-reset option in a batch billing system
US5999916A (en) 1994-02-28 1999-12-07 Teleflex Information Systems, Inc. No-reset option in a batch billing system
US5668993A (en) * 1994-02-28 1997-09-16 Teleflex Information Systems, Inc. Multithreaded batch processing system
AU1927695A (en) * 1994-02-28 1995-09-11 Teleflex Information Systems, Inc. Method and apparatus for processing discrete billing events
US5802523A (en) * 1996-06-21 1998-09-01 Oracle Corporation Method and apparatus for reducing the memory required to store bind variable descriptors in a database
US5940813A (en) * 1996-07-26 1999-08-17 Citibank, N.A. Process facility management matrix and system and method for performing batch, processing in an on-line environment
US5960426A (en) * 1997-06-30 1999-09-28 International Business Machines Corporation Database system and method for supporting current of cursor updates and deletes from a select query from one or more updatable tables in single node and mpp environments
JPH1196062A (ja) * 1997-09-19 1999-04-09 Hitachi Ltd ディレクトリ・アクセス方法
US6874104B1 (en) 1999-06-11 2005-03-29 International Business Machines Corporation Assigning recoverable unique sequence numbers in a transaction processing system
US6859838B1 (en) * 2000-05-04 2005-02-22 On24, Inc. Media player with programmable playlists
FR2818426A1 (fr) * 2000-12-18 2002-06-21 Schlumberger Systems & Service Dispositif et procede de securisation de zones de donnees dans une carte a puce
US7146370B1 (en) * 2001-06-27 2006-12-05 Ncr Corp. Copying a portion of a database structure associated with a query
GB2377337A (en) 2001-07-06 2003-01-08 Zarlink Semiconductor Ltd Buffering in packet-TDM systems
NZ539138A (en) * 2002-09-23 2006-09-29 Neos Financial Systems Ltd Transaction processing system
US7792797B2 (en) * 2002-12-24 2010-09-07 International Business Machines Corporation Fail over resource manager access in a content management system
EP1922673A2 (en) * 2005-08-19 2008-05-21 Global Payment Technologies, Inc. Information readers, apparatuses including information readers, and related methods
US20080002830A1 (en) * 2006-04-14 2008-01-03 Cherkasov Aleksey G Method, system, and computer-readable medium to maintain and/or purge files of a document management system
US7584890B2 (en) * 2006-06-23 2009-09-08 Global Payment Technologies, Inc. Validator linear array
US8768904B2 (en) * 2007-01-12 2014-07-01 International Business Machines Corporation Intelligent open query cursor management
US9892028B1 (en) 2008-05-16 2018-02-13 On24, Inc. System and method for debugging of webcasting applications during live events
US10430491B1 (en) 2008-05-30 2019-10-01 On24, Inc. System and method for communication between rich internet applications
US9063932B2 (en) * 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) * 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
US8706812B2 (en) 2010-04-07 2014-04-22 On24, Inc. Communication console with component aggregation
US11438410B2 (en) 2010-04-07 2022-09-06 On24, Inc. Communication console with component aggregation
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
US9607036B2 (en) 2013-08-21 2017-03-28 International Business Machines Corporation Managing a data set
US11429781B1 (en) 2013-10-22 2022-08-30 On24, Inc. System and method of annotating presentation timeline with questions, comments and notes using simple user inputs in mobile devices
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
US10785325B1 (en) 2014-09-03 2020-09-22 On24, Inc. Audience binning system and method for webcasting and on-line presentations
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
CN106095938A (zh) * 2016-06-12 2016-11-09 腾讯科技(深圳)有限公司 一种实例操作方法及其装置
US11188822B2 (en) 2017-10-05 2021-11-30 On24, Inc. Attendee engagement determining system and method
US11281723B2 (en) 2017-10-05 2022-03-22 On24, Inc. Widget recommendation for an online event using co-occurrence matrix
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11567925B2 (en) 2019-11-07 2023-01-31 International Business Machines Corporation Concurrent update management

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63133240A (ja) * 1986-11-25 1988-06-06 Hitachi Ltd 常駐テ−ブルの内容保証方式

Also Published As

Publication number Publication date
DE69112694T2 (de) 1996-04-18
US5220665A (en) 1993-06-15
DE69112694D1 (de) 1995-10-12
JPH04229344A (ja) 1992-08-18
EP0455440A3 (en) 1993-09-15
EP0455440B1 (en) 1995-09-06
EP0455440A2 (en) 1991-11-06

Similar Documents

Publication Publication Date Title
JPH07104805B2 (ja) 持続性があり再起動可能なカーソルを用いた順次バッチ・アプリ ケーションを支援するための方法
US5263155A (en) System for selectively registering and blocking requests initiated by optimistic and pessimistic transactions respectively for shared objects based upon associated locks
JP2505040B2 (ja) 索引木への並列アクセスのためのデ―タ・アクセス方法およびデ―タ処理システム
US6772155B1 (en) Looking data in a database system
US5991768A (en) Finer grained quiescence for data replication
US4881166A (en) Method for consistent multidatabase transaction processing
US6240413B1 (en) Fine-grained consistency mechanism for optimistic concurrency control using lock groups
US6256637B1 (en) Transactional virtual machine architecture
Shasha et al. Transaction chopping: Algorithms and performance studies
US6601023B1 (en) Method for impact analysis of a model
US8745707B2 (en) Method and apparatus providing optimistic locking of shared computer resources
US6219675B1 (en) Distribution of a centralized database
CA1322422C (en) Single-keyed indexed file for tp queue repository
US20050102255A1 (en) Computer-implemented system and method for handling stored data
CA2167790A1 (en) Relational database system and method with high data availability during table data restructuring
JPH0728679A (ja) チェックイン・チェックアウトモデルにおける施錠方式
WO2003058452A1 (en) Method and apparatus to maintain consistency between an object store and a plurality of cache utilizing transactional updates to data caches
US20070198517A1 (en) Interface to lock a database row through a logical locking interface
US6889358B1 (en) Concurrency control in materialized views of a database
US10459810B2 (en) Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery
Pupezescu et al. Optimizations of Database Management Systems for Real Time IoT Edge Applications
US7209919B2 (en) Library server locks DB2 resources in short time for CM implicit transaction
JP3330006B2 (ja) 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに
Kim et al. Lock-free red-black trees using cas
Stanley A simulation of a distributed file system