JP2006085539A - データベース管理プログラム、方法、装置及び記録媒体 - Google Patents

データベース管理プログラム、方法、装置及び記録媒体 Download PDF

Info

Publication number
JP2006085539A
JP2006085539A JP2004271074A JP2004271074A JP2006085539A JP 2006085539 A JP2006085539 A JP 2006085539A JP 2004271074 A JP2004271074 A JP 2004271074A JP 2004271074 A JP2004271074 A JP 2004271074A JP 2006085539 A JP2006085539 A JP 2006085539A
Authority
JP
Japan
Prior art keywords
search
database
version number
update
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004271074A
Other languages
English (en)
Inventor
Hisayuki Enbutsu
久幸 圓佛
Akihide Nishino
晃英 西野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004271074A priority Critical patent/JP2006085539A/ja
Priority to US11/062,477 priority patent/US20060064408A1/en
Publication of JP2006085539A publication Critical patent/JP2006085539A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】アプリケーションの変更を必要とすることなく、検索処理と更新処理を別トランザクションとして占有時間の短縮および更新処理での占有範囲を必要最小限とする。
【解決手段】版数管理部24は基幹データベース20を排他制御する最小単位であるページ毎に版数を登録した版数管理テーブル30を管理し、ページの更新処理に伴い該当する版数管理テーブル30の版数を更新する。検索処理部26は、検索処理要求を受信した際に基幹データベース20の検索処理を実行し、検索結果を検索処理要求元のAIサーバ14−1に通知すると共に、検索対象となったページの版数をAIサーバ14−1に通知して保存させる。更新処理部28は、検索結果の通知に基づいてレコード更新処理要求を受信した際に、AIサーバ14−1から取得した検索時の版数と版数管理テーブル30から取得した現在の版数とを比較し、両者が一致した場合に基幹データベース20を更新し、不一致の場合はエラーを通知して検索処理からリトライさせる。
【選択図】 図1

Description

本発明は、サーバ上のアプリケーションからの検索と更新の処理要求を受信してホストの基幹データベースにアクセスするデータベース管理プログラム、方法、装置及び記録媒体に関し、特に、検索結果を通知した後に検索したデータの一部を更新する更新要求を受信して処理するデータベース管理プログラム、方法、装置及び記録媒体に関する。
従来、ホストの基幹データベースの管理方法にあっては、サーバ上のアプリケーションからホストの基幹データベースをアクセスするデータベースコネクタと呼ばれるデータベース管理プログラムが提供されている。
このようなホスト基幹データベースの管理プログラムにあっては、サーバ上のアプリケーションにより検索したレコードの一部を更新する場合、データベースの検索と更新を一つのトランザクションとして実行している。
まず、データベースの管理プログラムは、サーバ上のアプリケーションから全件検索またはキー値前方一致検索といった集合検索処理要求を受信すると、検索処理のトランザクションを開始し、検索結果として得られた検索レコードをサーバに通知する。検索処理のトランザクションを開始する際には、検索対象とするページ領域に対し排他ロックを設定し、処理の途中で他のトランザクションにより内容が変更されることを防止している。
ホストから検索レコードの通知を受けたサーバ上のアプリケーションは、検索レコードをオペレータに表示し、オペレータは検索レコードを見てレコード内容を変更するための入力操作を行った後に、ホストに対しレコード更新を要求する。これを受けてホストのデータベース管理プログラムは、サーバから受信した更新レコードにより基幹データベースを更新し、更新完了でトランザクションを終了して排他ロックを解除する。
特開平3−123946 特開平6−028400 特開平10−049420
しかしながら、このような従来のデータベース管理プログラムにあっては、検索後に検索した一部のレコードを更新する場合、トランザクション終了までデータベースのページ領域に排他ロックを設定して占有しており、しかも更新要求はオペレータの操作を伴うために分オーダーのタイムラグがあり、トランザクション終了まで基幹データベースにおける大量のページを長時間占有してしまい、その間、他の処理が占有待ちとなり、基幹データベースに対する検索更新の実行多重度が低下する問題がある。
この大量ページの長時間占有を防止するためには、データベースの検索処理と更新処理を別のトランザクションで実行すればよい。しかし、検索処理と更新処理の間で排他ロックが解除されるため、検索処理を終了してから更新処理を開始するまでの間に、他のトランザクションにより更新対象レコードの内容が変更されていないことを確認する必要がある。
この確認のためには、集合検索で得られた大量データをサーバ側で記憶領域を獲得して保存し、更新時に、更新対象レコードとサーバに保存している検索時のレコードとを比較して他のトランザクションにより更新されていないことを確認するロジックをサーバのアプリケーションに追加する必要がある。
しかし、このようなロジック追加は、大量に存在する全てのアプリケーションの変更を必要とし、また集合検索で得られた大量データを保存する記憶領域をサーバ側に獲得する必要があり、現実的ではないという問題がある。
本発明は、アプリケーションの変更や大きな記憶領域の確保を必要とすることなく、データベースの検索処理と更新処理を別トランザクションとして占有時間の短縮および更新処理でのデータベースの占有範囲を必要最小限とするデータベース管理プログラム、方法、装置及び記録媒体を提供することを目的とする。
図1は本発明の原理説明図である。本発明は、データベースを管理するホストコンピュータにより実行されるデータベース管理プログラムを提供する。
本発明のデータベース管理プログラムは、ホストを構成するコンピュータに、
データベースを排他制御する最小単位毎に版数を登録して管理し、最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を検索処理要求元に通知して保存させる検索ステップと、
検索結果の通知に基づいてデータベース更新処理要求を受信した際に、更新処理要求元から取得した検索時の版数と版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合にデータベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を実行させることを特徴とする。
ここで、データベースを排他制御する最小単位は、複数のレコードを含むページ単位であり、
版数管理ステップは、データベースを排他制御するページ毎に版数を登録して管理し、ページ内でのレコードの更新処理に伴い対応する版数を更新し、
検索ステップは、データベースのレコード検索要求を受信した際にデータベースの検索処理を実行し、検索レコードを前記要求元に通知すると共に、検索レコードに対応したページの版数を検索要求元に通知して保存させ、
更新ステップは、検索レコードの通知に基づいてレコード更新要求を受信した際に、更新要求元から取得した検索時の版数と版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合にページ内のレコード更新し、不一致の場合はレコード更新不可をエラー通知する。
また検索ステップは、検索開始時に排他制御の最小単位で指定されるデータベースの検索対象領域に排他ロックを設定し、検索終了時に前記排他ロックを解除し、更新ステップは、更新開始時に更新対象データを含む排他制御の最小単位となるデータベースの更新対象領域に排他ロックを設定し、更新終了時に排他ロックを解除する。
更新ステップは、検索結果の通知から人的操作のタイムラグを経てデータベース更新処理要求を受信する。
版数管理ステップは、運用開始時に、検索要求元に割当られたデータベース領域を対象に排他制御の最小単位毎に版数の初期値を設定し、更新処理毎に版数を1つずつ増加させる。
更新ステップは、エラー通知として、検索処理からのリトライ要求を通知する。データベースは、ホストの基幹データベースであり、検索処理及び更新処理の要求元はサーバ上のアプリケーションである。
本発明は、データベース管理方法を提供する。本発明のデータベース管理方法は、
データベースを排他制御する最小単位毎に版数を登録して管理し、最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を検索処理要求元に通知して保存させる検索ステップと、
検索結果の通知に基づいてデータベース更新処理要求を受信した際に、更新処理要求元から取得した検索時の版数と版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合にデータベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を備えたことを特徴とする。
本発明は、データベース管理装置を提供する。本発明のデータベース管理装置は、
データベースを排他制御する最小単位毎に版数を登録して管理し、最小単位内での更新処理に伴い対応する版数を更新する版数管理部と、
データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を検索処理要求元に通知して保存させる検索部と、
検索結果の通知に基づいてデータベース更新処理要求を受信した際に、更新処理要求元から取得した検索時の版数と版数管理部で管理している現在の版数とを比較し、両者が一致した場合にデータベースを更新し、不一致の場合はエラーを通知する更新部と、
を備えたことを特徴とする。
更に本発明は、データベース管理プログラムを格納したコンピュータが読み取り可能な記録媒体を提供する。即ち、本発明の記録媒体は、データベースを管理するコンピュータに、
データベースを排他制御する最小単位毎に版数を登録して管理し、最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を検索処理要求元に通知して保存させる検索ステップと、
検索結果の通知に基づいてデータベース更新処理要求を受信した際に、更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を実行させることを特徴とするデータベース管理プログラムを格納する。
なお、本発明によるデータベース管理方法、装置及び記録媒体の詳細は、本発明によるデータベース管理プログラムの場合と基本的に同じになる。
本発明によれば、サーバ側のアプリケーションを変更することなく、ホスト側のデータベースに対する検索処理と更新処理を別トランザクションとし、データベースのアクセス実行の多重度を向上させることができる。
特に、検索レコードの一部をオペレータが編集操作して更新処理を要求することから、検索と更新との間に例えば分オーダーのタイムラグがあるが、検索処理と更新処理を別トランザクションとしてその間の空き時間につきデータベースの占有を解除しているため、他のトランザクションからの要求によるデータベースの検索と更新理を可能とし、データベースアクセスの実行多重度を高めることができる。
また検索処理と更新処理とを別トランザクションとしても、更新処理の際の更新対象データが他のトランザクションにより更新されたか否かの判断は、データベースに排他ロックをかける最小単位毎、例えばページ単位に分けて版数を管理し、検索時の版数と更新時の版数を比較することで判断でき、サーバ側に記憶領域を獲得して検索結果として得られた大量のデータを比較のために保存する必要はなく、検索ページの版数という少量のデータを保存するだけで済む。
またアプリケーションは既存の検索要求及び更新要求に加え、検索時にホストからの版数情報を保存し、更新時にはホストからの読出しに対し版数情報を応答するが、これはアプリケーションの持つ入出力機能にすぎないことから、アプリケーションの変更は不要である。
更に、更新処理の際には、更新対象データを含む最小単位について排他ロックを掛けて占有させることで、更新処理の際の占有領域を必要最小限に局所化し、更新処理における別トランザクションによるデータベースのアクセス実行の多重度を向上させることができる
図1は本発明によるデータベース管理処理の機能構成のブロック図である。図1において、ホスト10に対してはネットワーク12を介して例えばUNIX(R)のAIサーバ14−1,14−2,14−3が接続されている。ホスト10にはアダプタ16、データベースコネクタとして機能するデータベース管理部18及び基幹データベース20が設けられている。
基幹データベース20は、ホスト10を設置している会社などにおける基幹業務データを保存したデータベースとして構築されている。AIサーバ14−1〜14−3による基幹データベース20のアクセス領域は、それぞれのアプリーケーションに応じて初期設定により割当てられる。図1のホスト10における基幹データベース20のページ22−1〜22−nは、AIサーバ14−1〜14−3のアプリケーションのアクセス対象として割り当てられたページ領域を示している。
基幹データベース20のページ22−1〜22−nは、図2に取り出して示す構造を有する。図2において、AIサーバ14−1〜14−3のアクセス対象となる基幹データベース20のページ22−1〜22−nのそれぞれはレコードR1〜Rmで構成されており、データベースの検索及び更新はレコード単位に行われる。
AIサーバ14−1〜14−3から検索要求を受けた場合は、アクセス対象領域となるページ22−1〜22−nに排他ロックを掛けてから検索処理を実行する。また検索後に、検索したレコードの一部を更新を必要とする場合にも、更新対象レコードを含むページに排他ロックを掛けて占有した状態で、レコードの更新処理を実行する。
再び図1を参照するに、ホスト10のデータベース管理部18には、版数管理部24、検索処理部26、更新処理部28、版数管理テーブル30及び排他ロック管理テーブル32が設けられている。データベース管理部18は、AIサーバ14−1〜14−3による基幹データベース20のアクセスを可能とするホスト10側のデータベースコネクタとして機能する。
データベース管理部18の版数管理部24は、基幹データベース20における排他制御の最小単位であるページ毎に版数を登録した版数管理テーブル30を管理し、ページ内でのレコードの更新処理に伴い、対応するページの版数を更新する。
図3は図1のデータベース管理部18に設けた版数管理テーブル30の説明図である。図3の版数管理テーブル30は、「ページ番号」と「更新版数」の2項目で構成され、データベース管理部18のジョブを起動した際に、ホスト10におけるメモリの共通域に更新版数を管理する領域を獲得して、図3のような版数管理テーブル30を配置し、更新版数は初期値として図示のように0が設定されており、ページ内のレコード更新が行われるごとに+1ずつ値が増加される。
再び図1を参照するに、ホスト10のデータベースコネクタとして機能するデータベース管理部18に対応して、AIサーバ14−1側にはアダプタ34及びアプリケーション36が設けられ、アプリケーション36には検索要求部38、更新要求部40及び版数保存テーブル42が設けられている。このAIサーバ14−1の構成は、他のAIサーバ14−2,14−3についても同様である。
ホスト10のデータベース管理部18に設けた検索処理部26は、例えばAIサーバ14−1のアプリケーション36に設けている検索要求部38より全件検索またはキー値前方一致検索となる集合検索による基幹データベース20のレコード検索要求を受信した際に、基幹データベース20における対象ページ領域となるページ22−1〜22−nの検索処理を実行し、検索レコードを要求元のAIサーバ14−1に通知する。
この検索処理部26による検索処理の際には、基幹データベース20のページ22−1〜22−nに対する他のAIサーバ14−2,14−3からのアクセスを禁止するため、排他ロックを掛けて検索処理を実行する。ページ22−1〜22−nに対する排他ロック制御は、排他ロック管理テーブル32に排他フラグをセットする。
図4は図1の排他ロック管理テーブル32の説明図である。図4の排他ロック管理テーブル32は、「ページ番号」に対応して「排他フラグ」を設けており、「排他フラグ」を1にセットすることで排他ロックを掛けて対象ページを占有することができる。
再び図1を参照するに、ホスト10のデータベース管理部18に設けた検索処理部26は、検索処理の実行により検索レコードを要求元のAIサーバ14−1に通知すると共に、更に検索レコードに対応したページの版数を版数管理テーブル30から取得し、検索要求元のAIサーバ14−1に通知し、アプリケーション36に設けている版数保存テーブル42に保存させる。
このようなホスト10のデータベース管理部18における検索処理部26の検索処理にあっては、検索要求を受けてトランザクションを開始し、検索レコードを通知して検索時の版数を保存させると、トランザクションを終了し、トランザクション終了で排他ロック管理テーブル32の排他フラグ(図4)を0にリセットし、排他ロックを解除する。
ホスト10からの検索レコードの通知を受けたAIサーバ14−1のアプリケーション36は、検索レコードをディスプレイ上に表示してオペレータに提示し、オペレータは検索レコードを見て検索レコードの内容の変更の有無を判断し、必要があれば検索レコードの内容を変更、削除、加入などといった必要な編集処理を行った後に、レコード更新要求の入力操作を行う。
このような検索レコードに基づいて検索レコードの一部を更新する処理にはオペレータの編集操作が介入するため、通常、分オーダーのタイムラグがレコード更新要求を行うまでに生ずる。しかしながら、ホスト10のデータベース管理部18にあっては、検索処理部26による検索終了で検索対象ページ22−1〜22−nの排他ロックを解除しているため、他のAIサーバ14−2,14−3による基幹データベース20のアクセスが検索終了から更新開始までの間に可能である。
更新要求部40は、検索レコードに基づいたオペレータの編集操作に基づく更新入力指示を受けると、ホスト10に対しレコード更新要求を行う。
ホスト10のデータベース管理部18に設けた更新処理部28は、AIサーバ14−1からのレコード更新要求を受信すると、AIサーバ14−1のアプリケーション36に対する読出要求で版数保存テーブル42から検索時の版数を取得し、取得した検索時の版数と版数管理テーブル30から取得した現在の版数とを比較し、両者が一致した場合には対象ページ内の対象レコードの更新処理を実行する。
一方、AIサーバ14−1から取得した検索時の版数と版数管理テーブル30から取得した現在の版数とが不一致の場合には、検索処理を終了してから更新処理を要求するまでの間に他のAIサーバ14−2,14−3によるアクセスで更新対象レコードに対する更新処理が行われて版数管理テーブル30の版数の更新が行われた場合であり、検索時のレコード内容が変更されている。この場合にはレコード更新が不可能であることをAIサーバ14−1にエラー通知して更新処理を終了する。
また更新処理部28は、更新処理を開始する際に、更新対象レコードを含むページについて排他ロック管理テーブル32の排他フラグを1にセットすることで、排他ロックを掛けて占有し、更新処理終了で排他フラグを0にオフして排他ロックを解除する。
更に、更新処理部28において検索時の版数と現在の版数とが不一致が判別された場合のAIサーバ14−1に対するエラー通知には、検索処理からのリトライを求める内容が含まれている。このような更新要求に対するエラー通知を受けたAIサーバ14−1にあっては、エラー対象となった検索要求及び更新要求をキャンセルした後に、改めて検索要求部38を起動して、再度、ホスト10に対する基幹データベース20の検索要求をリトライする。
図5及び図6は、図1におけるホスト10とAIサーバ14−1における版数管理を伴うデータベース管理処理のタイムチャートである。
図5において、ホスト10にあっては、ホスト側のデータベースコネクタとして機能するデータベース管理部18のジョブを起動すると、ステップS1でAIサーバ14−1のアプリケーション36についてのデータベース割当ページ領域を設定する。例えば、この割当ページ領域としては、図1に示すページ22−1〜22−nの領域を設定する。
続いて、ステップS2で割当ページ領域について版数管理テーブル30を生成し、版数初期値に0をセットする。即ち、図3に示す版数管理テーブル30をホスト10のメモリ共通域に確保し、割当ページ領域となるページ22−1〜22−nのページ番号に対応して、更新版数の初期値として0をセットする。
次に、ステップS3でAIサーバ14−1からの検索要求の受信の有無をチェックしている。AIサーバ14−1にあっては、ステップS101で集合検索の検索要求を行ったとすると、この検索要求がホスト10のステップS3で判別されてステップS4に進み、割当ページ22−1〜22−nに排他ロックを設定してトランザクションを開始する。
なお、割当ページ22−1〜22−nに排他ロックを設定する際に、既に他のトランザクションにより排他ロックが設定されていた場合には、その排他ロックの解除を待って自己の排他ロックを設定する。
続いて、ステップS5で集合検索要求に基づく検索処理を対象ページ22−1〜22−nに対し実行し、ステップS6で検索レコードをAIサーバ14−1に応答する。続いてステップS7で検索レコードを含むページの版数情報をAIサーバ14−1に通知する。例えば割当ページ22−1〜22−nの内、ページ22−2,22−3の2ページについて検索レコードが含まれていた場合には、ページ22−2,22−3の更新版数をAIサーバ14−1に通知する。そしてステップS8で排他ロックを解除してトランザクションを終了する。
一方、AIサーバ14−1にあっては、ステップS102で検索レコードを画面表示した後、ステップS103でホスト10から通知された検索レコードを含むページの版数情報を受信し、版数保存テーブル42に保存する。図7(A)はAIサーバ14−1における版数保存テーブル42の保存内容であり、検索時の版数情報としてページ番号2,3について更新版数0が保存されている。
再び図5を参照するに、AIサーバ14−1にあっては、ステップS104で検索レコードの画面表示を見ながら更新レコードの編集操作を行い、ステップS105で編集の済んだレコードについてレコード更新要求をホスト10に対し行う。ホスト10にあっては、ステップS9でレコード更新要求の受信をチェックしており、更新要求を受信すると、ステップS10で更新対象ページに排他ロックを設定してトランザクションを開始する。
ここでAIサーバ14−1からのレコード更新要求が検索対象ページ22−2,22−3の両方について行われたとすると、図4の排他ロック管理テーブル32のページ番号2,3について、それぞれ排他フラグを1にセットすることで、排他ロックを設定して占有する。
次にステップS11で現在の更新対象ページの版数を版数管理テーブル30から取得する。このとき版数管理テーブル30の内容は図7(B)のように、ページ番号2については初期値0であるが、ページ番号3については1に更新されていたとする。
続いてステップS12でAIサーバ14−1の版数保存テーブル42から検索時の版数を取得する。この検索時の版数は図7(A)のように、ページ番号2,3について共に0となっている。
続いてステップS13で現在の版数と検索時の版数とが一致するか否か判別する。ページ22−2のページ番号2については両者が共に0であることから一致し、この場合にはステップS14に進み、ページ22−2を対象に、その中のレコード更新を行い、図6のステップS15に進み、更新終了をAIサーバ14−1に通知し、これを受けてAIサーバ14−1は、ステップS107で更新完了表示を行い、一連の処理を終了する。
一方、図5のステップS13でページ22−3について現在の版数と検索時の版数を比較すると、両者は不一致であることから、図6のステップS16に進み、ページ22−3に対する更新処理要求をキャンセルし、ステップS17で検索リトライを内容とするエラー通知をAIサーバ14−1に通知する。そしてステップS18で排他ロックを解除してレコード更新のトランザクションを終了する。
AIサーバ14−1にあっては、ステップS108でホスト10からのエラー通知に基づきページ22−3の更新エラー表示を行い、ステップS109で検索処理からのリトライを行うことになる。
図8及び図9は、図1のホスト10に設けたデータベース管理部18による本発明のデータベース管理処理のフローチャートである。図8において、このデータベース管理処理はデータベース管理部18のジョブ起動により開始され、ステップS1でホスト10にデータベースコネクタとして接続しているAIサーバ14−1〜14−3のそれぞれにつき、利用させるデータベース領域、即ちページ領域の割当を行う。
次にステップS2で、データベース割当領域につきページ単位に版数初期値0を設定して版数管理テーブル30を生成する。続いてステップS3でAIサーバ側からの検索処理要求の有無をチェックしており、検索処理要求があるとステップS4に進み、データベース割当領域に排他ロックを掛けた後に検索処理を開始する。勿論、他のトランザクションにより排他ロックが掛けられていれば、その解除を待って排他ロックを掛ける。
続いてステップS5でレコード単位の検索ヒットの有無をチェックしており、検索ヒットがあると、ステップS6で検索レコードをアプリケーションに通知し、ステップS7で割当領域の最終レコードの検索終了か否かチェックし、最終レコードの検索終了までステップS5からの処理を繰り返す。
割当領域の最終レコードの検索が終了すると、ステップS8で検索レコードを含むページの版数を版数管理テーブル30から取得し、アプリケーションに通知する。続いてステップS9で排他ロックを解除し、検索処理のトランザクションを終了する。
ステップS10はレコードの更新処理要求の有無をチェックしており、更新処理要求を判別すると、図9のステップS11で更新対象レコードを含むページに排他ロックを掛けた後、ステップS12でアプリケーションから更新対象レコードを含むページの検索時の版数を取得する。続いてステップS13で、版数管理テーブル30から更新対象レコードを含むページの現在の版数を取得する。
ステップS14では検索時の版数と現在の版数が一致するか否か比較判別し、一致していた場合にはステップS15で検索対象レコードを含むページに排他ロックを掛けてレコードを更新する。そしてステップS17で更新完了を判別すると、ステップS18で排他ロックを解除してレコード更新を終了する。
一方、ステップS14で検索時の版数と現在の版数が不一致であった場合には、ステップS16に進み、更新要求をキャンセルし、検索処理からのリトライを要求するエラー通知をアプリケーションに対し行い、ステップS18で排他ロックを解除して一連の処理を終了する。
また本発明は、図1のホスト10に設けたデータベース管理部18として機能するデータベース管理プログラムを提供するものであり、このデータベース管理プログラムは図8及び図9のフローチャートに示した手順をプログラム内容として備えている。
また本発明のデータベース管理プログラムは、ホスト10を構成するコンピュータのハードウェア環境で実行される。図1のホスト10を構成するコンピュータは、CPUのバスにRAM、ハードディスクコントローラ(ソフト)、フロッピィディスクドライバ(ソフト)、CD−ROMドライバ(ソフト)、マウスコントローラ、キーボードコントローラ、ディスプレイコントローラ、通信用ボードが接続されている。
ハードディスクコントローラはハードディスクドライブを接続し、本発明のデータベース管理処理を実行するプログラムをローディングしており、コンピュータの起動時にハードディスクドライブから必要なプログラムを呼び出してRAM上に展開し、CPUにより実行する。
なお上記の実施形態にあっては、複数ページに含まれる複数のレコードを更新対象とした場合、現在の版数と検索時の版数が一致したページにつき更新し、版数が不一致となったページについてはエラー通知を行っているが、一部の更新対象ページの版数が不一致となった場合に全ての更新対象ページにつき更新を行うことなくエラーを通知し、検索からのリトライ処理を行うようにしてもよい。
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
(付記)
(付記1)
データベースを管理するホストコンピュータに、
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を実行させることを特徴とするデータベース管理プログラム。(1)
(付記2)
付記1記載のデータベース管理プログラムに於いて、
前記データベースを排他制御する最小単位は、複数のレコードを含むページ単位であり、
前記版数管理ステップは、データベースを排他制御するページ毎に版数を登録して管理し、前記ページ内でのレコードの更新処理に伴い対応する版数を更新し、
前記検索ステップは、前記データベースのレコード検索要求を受信した際にデータベースの検索処理を実行し、検索レコードを前記要求元に通知すると共に、前記検索レコードに対応したページの版数を検索要求元に通知して保存させ、
前記更新ステップは、前記検索レコードの通知に基づいてレコード更新要求を受信した際に、前記更新要求元から取得した検索時の版数と前記版数管理ステップで管理していることを特徴とするデータベース管理プログラム。(2)
(付記3)
付記1記載のデータベース管理プログラムに於いて、
前記検索ステップは、検索開始時に前記排他制御の最小単位で指定されるデータベースの検索対象領域に排他ロックを設定し、検索終了時に前記排他ロックを解除し、
前記更新ステップは、更新開始時に更新対象データを含む前記排他制御の最小単位となるデータベースの更新対象領域に排他ロックを設定し、更新終了時に前記排他ロックを解除することを特徴とするデータベース管理プログラム。(3)
(付記4)
付記1記載のデータベース管理プログラムに於いて、前記更新ステップは、前記検索結果の通知から人的操作のタイムラグを経てデータベース更新処理要求を受信することを特徴とするデータベース管理プログラム。
(付記5)
付記1記載のプログラムに於いて、前記版数管理ステップは、運用開始時に、検索要求元に割当られたデータベース領域を対象に排他制御する最小単位毎に版数の初期値を設定し、更新処理毎に前記版数を1つずつ増加させることを特徴とするプログラム。
(付記6)
付記1記載のデータベース管理プログラムに於いて、前記検索ステップは、前記エラー通知として、検索処理からのリトライ要求を通知することを特徴とするデータベース管理プログラム。
(付記7)
付記1記載のデータベース管理プログラムに於いて、前記データベースは、ホストの基幹データベースであり、前記検索処理及び更新処理の要求元はサーバ上のアプリケーションであることを特徴とするデータベース管理プログラム。
(付記8)
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を備えたことを特徴とするデータベース管理方法。(4)
(付記9)
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理部と、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索部と、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理部で管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新部と、
を備えたことを特徴とするデータベース管理装置。(5)
(付記10)
データベースを管理するコンピュータに、
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を実行させることを特徴とするデータベース管理プログラムを格納したコンピュータが読み取り可能な記録媒体。
本発明のデータベース管理処理の機能構成のブロック図 図1の基幹データベースにおけるページ構成の説明図 図1の版数管理テーブルの説明図 図1の排他ロック制御で使用する排他管理テーブルの説明図 本発明におけるホストとサーバにおける版数管理を伴うデータベース管理処理のタイムチャート 図5に続くデータベース管理処理のタイムチャート サーバ側の版数保存テーブルと更新時のホスト側の版数管理テーブルの具体例の説明図 本発明によるデータベース管理処理のフローチャート 図8に続くデータベース管理処理のフローチャート
符号の説明
10:ホスト
12:ネットワーク
14−1〜14−3:AIサーバ
16,34:アダプタ
18:データベース管理部
20:基幹データベース
22−1〜22−n:ページ
24:版数管理部
26:検索処理部
28:更新処理部
30:版数管理テーブル
32:排他ロック管理テーブル
36:アプリケーション
38:検索要求部
40:更新要求部
42:版数保存テーブル

Claims (5)

  1. データベースを管理するホストコンピュータに、
    データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
    前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
    前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
    を実行させることを特徴とするデータベース管理プログラム。
  2. 請求項1記載のデータベース管理プログラムに於いて、
    前記データベースを排他制御する最小単位は、複数のレコードを含むページ単位であり、
    前記版数管理ステップは、データベースを排他制御するページ毎に版数を登録して管理し、前記ページ内でのレコードの更新処理に伴い対応する版数を更新し、
    前記検索ステップは、前記データベースのレコード検索要求を受信した際にデータベースの検索処理を実行し、検索レコードを前記要求元に通知すると共に、前記検索レコードに対応したページの版数を検索要求元に通知して保存させ、
    前記更新ステップは、前記検索レコードの通知に基づいてレコード更新要求を受信した際に、前記更新要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記ページ内のレコード更新し、不一致の場合はレコード更新不可をエラー通知することを特徴とするデータベース管理プログラム。
  3. 請求項1記載のデータベース管理プログラムに於いて、
    前記検索ステップは、検索開始時に前記排他制御の最小単位で指定されるデータベースの検索対象領域に排他ロックを設定し、検索終了時に前記排他ロックを解除し、
    前記更新ステップは、更新開始時に更新対象データを含む前記排他制御の最小単位となるデータベースの更新対象領域に排他ロックを設定し、更新終了時に前記排他ロックを解除することを特徴とするデータベース管理プログラム。
  4. データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
    前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
    前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
    を備えたことを特徴とするデータベース管理方法。
  5. データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理部と、
    前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索部と、
    前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理部で管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新部と、
    を備えたことを特徴とするデータベース管理装置。
JP2004271074A 2004-09-17 2004-09-17 データベース管理プログラム、方法、装置及び記録媒体 Pending JP2006085539A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004271074A JP2006085539A (ja) 2004-09-17 2004-09-17 データベース管理プログラム、方法、装置及び記録媒体
US11/062,477 US20060064408A1 (en) 2004-09-17 2005-02-22 Program, method and apparatus for database management, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004271074A JP2006085539A (ja) 2004-09-17 2004-09-17 データベース管理プログラム、方法、装置及び記録媒体

Publications (1)

Publication Number Publication Date
JP2006085539A true JP2006085539A (ja) 2006-03-30

Family

ID=36075241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004271074A Pending JP2006085539A (ja) 2004-09-17 2004-09-17 データベース管理プログラム、方法、装置及び記録媒体

Country Status (2)

Country Link
US (1) US20060064408A1 (ja)
JP (1) JP2006085539A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012511197A (ja) * 2008-12-05 2012-05-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数世代データベース内のデータに対するアクセス
JP2015118431A (ja) * 2013-12-17 2015-06-25 日本電気株式会社 トランザクション処理システム
JP2016066333A (ja) * 2014-09-26 2016-04-28 株式会社野村総合研究所 データベースのロック制御システム及び方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853585B2 (en) * 2005-03-17 2010-12-14 International Business Machines Corporation Monitoring performance of a data processing system
US7958406B2 (en) * 2006-10-03 2011-06-07 International Business Machines Corporation Verifying a record as part of an operation to modify the record
US8661033B2 (en) * 2009-03-31 2014-02-25 Innography, Inc. System to provide search results via a user-configurable table
US9002908B2 (en) * 2011-06-14 2015-04-07 Ca, Inc. System and method for automatically routing and managing stored documents based on document content
CN104079540A (zh) * 2013-03-28 2014-10-01 中兴通讯股份有限公司 应用更新方法、装置及系统、用户设备
US11042527B2 (en) * 2018-05-15 2021-06-22 Sap Se Savepoint critical phase lock job inhibitor
US10897402B2 (en) * 2019-01-08 2021-01-19 Hewlett Packard Enterprise Development Lp Statistics increment for multiple publishers
US11914617B2 (en) * 2021-04-19 2024-02-27 Wealthfront Corporation Executing updates of records in a distributed database system
CN114598559B (zh) * 2021-07-22 2024-06-07 湖南亚信软件有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN113656110B (zh) * 2021-09-02 2024-03-29 武汉众邦银行股份有限公司 一种前端升级后免清缓存的页面加载方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247672A (en) * 1990-02-15 1993-09-21 International Business Machines Corporation Transaction processing system and method with reduced locking
US5301290A (en) * 1990-03-14 1994-04-05 International Business Machines Corporation Method for minimizing lock processing while ensuring consistency among pages common to local processor caches and a shared external store
JP2575543B2 (ja) * 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法
US5317731A (en) * 1991-02-25 1994-05-31 International Business Machines Corporation Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor
US5280612A (en) * 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
US5758149A (en) * 1995-03-17 1998-05-26 Unisys Corporation System for optimally processing a transaction and a query to the same database concurrently
US7707195B2 (en) * 2004-06-29 2010-04-27 Microsoft Corporation Allocation locks and their use

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012511197A (ja) * 2008-12-05 2012-05-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数世代データベース内のデータに対するアクセス
JP2015118431A (ja) * 2013-12-17 2015-06-25 日本電気株式会社 トランザクション処理システム
JP2016066333A (ja) * 2014-09-26 2016-04-28 株式会社野村総合研究所 データベースのロック制御システム及び方法

Also Published As

Publication number Publication date
US20060064408A1 (en) 2006-03-23

Similar Documents

Publication Publication Date Title
US20060064408A1 (en) Program, method and apparatus for database management, and recording medium
US5465329A (en) Method and apparatus for using intercepted operator messages to control robotics
JP4855714B2 (ja) コンピュータオペレーティングシステムに渡ってコンピュータファイルへのアクセスを行うシステムおよび方法
US8560496B2 (en) Database query across processes with change notification
WO2005114487A2 (en) Method and apparatus for updating a database using table staging and queued relocation and deletion
JP2009064120A (ja) 検索システム
US11429311B1 (en) Method and system for managing requests in a distributed system
KR20100076874A (ko) 회신 메일의 작성을 지원하는 장치, 방법 및 컴퓨터 프로그램
JP2006227916A (ja) 情報処理装置、情報検索方法、プログラム及び記憶媒体
US7231515B2 (en) Method and system for maintaining the boot order of mass storage devices in a computer system
JP3984208B2 (ja) 検索サーバ及び検索プログラム
JP2005267501A (ja) ストレージ管理方法及びシステム
US11816088B2 (en) Method and system for managing cross data source data access requests
JP2006040065A (ja) データ記憶装置およびデータ記憶方法
JP2924786B2 (ja) 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体
JP3425355B2 (ja) 多重書き込み記憶装置
US11748329B2 (en) Updating a multi-tenant database concurrent with tenant cloning
JP2005173823A (ja) Webアプリケーション及びそのデータ共有方法、並びにプログラム
US20030126157A1 (en) Method for automatically organizing template files in a web-based file retrieval sytstem
JPH10312331A (ja) データベースの動的アクセス方法
JP2000172678A (ja) 文書登録装置及び文書登録方法
JP4682563B2 (ja) 文書管理システム、文書管理方法および文書管理プログラム
JP3232633B2 (ja) データ格納ボリューム管理処理方法
JPH05324734A (ja) 電子ファイリング装置
CN115826880A (zh) 对象存储系统的本地缓存方法、装置、系统、介质及设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100216