JPH11306061A - データベース定義情報のプロセス間共有制御方式 - Google Patents
データベース定義情報のプロセス間共有制御方式Info
- Publication number
- JPH11306061A JPH11306061A JP10123984A JP12398498A JPH11306061A JP H11306061 A JPH11306061 A JP H11306061A JP 10123984 A JP10123984 A JP 10123984A JP 12398498 A JP12398498 A JP 12398498A JP H11306061 A JPH11306061 A JP H11306061A
- Authority
- JP
- Japan
- Prior art keywords
- information
- shared memory
- resource
- definition
- database
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】複数のプロセスからのデータベースのアクセス
に必要な定義情報を共有メモリで共有するシステムにお
いて定義情報の変更やROLLBACK命令実行によ
り、定義した情報が無効となる場合にも展開済みの共有
メモリの情報が不正とならないようにし定義情報データ
ベースへのアクセスを軽減するシステムの提供。 【解決手段】表を定義するSQL文が実行された場合共
有メモリ検索手段31が起動され、共有情報21から資
源名213をキーに検索し検索結果が見つからなければ
共有メモリ登録手段32、プロセス情報登録手段33が
起動され共有情報が登録され、表削除時には使用中のプ
ロセスの有無にて正常に実行させるかエラーするかを判
断し、表定義、削除後にCOMMIT命令を実行せずR
OLLBACK命令を実行した場合共有情報21にある
削除フラグ212をオン・オフすることにより、共有メ
モリに展開した情報が有効か無効かを判断する。
に必要な定義情報を共有メモリで共有するシステムにお
いて定義情報の変更やROLLBACK命令実行によ
り、定義した情報が無効となる場合にも展開済みの共有
メモリの情報が不正とならないようにし定義情報データ
ベースへのアクセスを軽減するシステムの提供。 【解決手段】表を定義するSQL文が実行された場合共
有メモリ検索手段31が起動され、共有情報21から資
源名213をキーに検索し検索結果が見つからなければ
共有メモリ登録手段32、プロセス情報登録手段33が
起動され共有情報が登録され、表削除時には使用中のプ
ロセスの有無にて正常に実行させるかエラーするかを判
断し、表定義、削除後にCOMMIT命令を実行せずR
OLLBACK命令を実行した場合共有情報21にある
削除フラグ212をオン・オフすることにより、共有メ
モリに展開した情報が有効か無効かを判断する。
Description
【0001】
【発明の属する技術分野】本発明は、データベース制御
システムに関し、特に複数プロセス間でデータベースの
定義情報を共有するシステムに関する。
システムに関し、特に複数プロセス間でデータベースの
定義情報を共有するシステムに関する。
【0002】
【従来の技術】従来より、この種の共有メモリを使用し
たデータベース制御システムは、共有によるメモリの削
減や性能向上を目的として用いられる。複数プロセス管
でデータベース操作を行う手続の共有を可能とすると共
にメモり使用効率を改善し、データベース手続きの展開
に要する時間の削減を図るデータベース制御システムと
して、例えば特開平9−319643号には、複数プロ
セスから同時に同じデータベース操作手続きの展開要求
があった際に、その展開要求を制御する手段と、複数プ
ロセスにてデータベース操作手続きを共有するための手
段と、複数プロセス間における共有メモリ空間にデータ
ベース操作手続きを展開する領域を管理する手段と、を
備えたシステムが提案されており、このシステムでは、
メモリ上に展開された情報をカウント制御する(オブジ
ェクトのIDと該オブジェクトを使用するプロセスの使
用カウントを共有制御表に持つ)ことにより、情報の共
有化を実現している。
たデータベース制御システムは、共有によるメモリの削
減や性能向上を目的として用いられる。複数プロセス管
でデータベース操作を行う手続の共有を可能とすると共
にメモり使用効率を改善し、データベース手続きの展開
に要する時間の削減を図るデータベース制御システムと
して、例えば特開平9−319643号には、複数プロ
セスから同時に同じデータベース操作手続きの展開要求
があった際に、その展開要求を制御する手段と、複数プ
ロセスにてデータベース操作手続きを共有するための手
段と、複数プロセス間における共有メモリ空間にデータ
ベース操作手続きを展開する領域を管理する手段と、を
備えたシステムが提案されており、このシステムでは、
メモリ上に展開された情報をカウント制御する(オブジ
ェクトのIDと該オブジェクトを使用するプロセスの使
用カウントを共有制御表に持つ)ことにより、情報の共
有化を実現している。
【0003】
【発明が解決しようとする課題】しかしながら、上記し
た従来のデータベース制御システムは、下記記載の問題
点を有している。
た従来のデータベース制御システムは、下記記載の問題
点を有している。
【0004】第1の問題点は、情報を共有して利用して
いる最中に、定義情報の変更があった場合、共有された
情報は不正な情報になってしまうが、従来のシステムで
は、これを感知することが出来ない、ということであ
る。
いる最中に、定義情報の変更があった場合、共有された
情報は不正な情報になってしまうが、従来のシステムで
は、これを感知することが出来ない、ということであ
る。
【0005】その理由は、現行トランザクションを異常
終了させこのトランザクションによりなされたすべての
更新を取り消すROLLBACK(ロールバック)命令
の実行により情報が無効になる状態を考慮していないた
めである。
終了させこのトランザクションによりなされたすべての
更新を取り消すROLLBACK(ロールバック)命令
の実行により情報が無効になる状態を考慮していないた
めである。
【0006】第2の問題点は、情報を共有して使用して
いる場合に、任意のタイミングにてその情報を無効化す
ることが出来ない、ということである。
いる場合に、任意のタイミングにてその情報を無効化す
ることが出来ない、ということである。
【0007】その理由は、共有している情報を管理する
だけで、その情報を共有している各プロセスの個別の情
報を持たないためである。
だけで、その情報を共有している各プロセスの個別の情
報を持たないためである。
【0008】第3の問題点は、共有しているプロセスが
なくなれば、メモリ中に展開した情報は無効となり、次
回同じ情報を参照しても有効とはならないので、性能向
上が望めない、ということである。
なくなれば、メモリ中に展開した情報は無効となり、次
回同じ情報を参照しても有効とはならないので、性能向
上が望めない、ということである。
【0009】その理由は、定義変更等に備えて、プロセ
スがいなくなれば、その情報を無効として再利用してい
ない、ためである。
スがいなくなれば、その情報を無効として再利用してい
ない、ためである。
【0010】したがって本発明は、上記問題点に鑑みて
なされたものであって、その目的は、情報を共有して性
能向上を図るとともに、更に信頼性、操作性を向上さ
せ、且つ高速化を図るシステムを提供することにある。
なされたものであって、その目的は、情報を共有して性
能向上を図るとともに、更に信頼性、操作性を向上さ
せ、且つ高速化を図るシステムを提供することにある。
【0011】
【課題を解決するための手段】前記目的を達成するため
本発明は、共有メモリから目的の情報を検索する共有メ
モリ検索手段と、共有メモリに情報を登録する共有メモ
リ登録手段と、プロセスの情報を登録するプロセス情報
登録手段と、を有する。
本発明は、共有メモリから目的の情報を検索する共有メ
モリ検索手段と、共有メモリに情報を登録する共有メモ
リ登録手段と、プロセスの情報を登録するプロセス情報
登録手段と、を有する。
【0012】本発明において、共有メモリには共有情報
として、好ましくは資源名と、定義情報と、定義プロセ
ス情報及び該資源をアクセスするプロセス情報と、前記
資源を使用中か否かを示す状態情報と、定義が削除され
たか否かを示すフラグ情報と、を含む。定義系のSQL
(Structured Query Language)文実行時には共有メ
モリ検索手段でこの情報を検索して利用する。また定義
系のSQL文実行時には、状態を変更することによっ
て、既に展開済みの共有情報が有効か無効か判断可能と
する。
として、好ましくは資源名と、定義情報と、定義プロセ
ス情報及び該資源をアクセスするプロセス情報と、前記
資源を使用中か否かを示す状態情報と、定義が削除され
たか否かを示すフラグ情報と、を含む。定義系のSQL
(Structured Query Language)文実行時には共有メ
モリ検索手段でこの情報を検索して利用する。また定義
系のSQL文実行時には、状態を変更することによっ
て、既に展開済みの共有情報が有効か無効か判断可能と
する。
【0013】本発明によれば、定義情報が変更された場
合にも、共有メモリを優先的に活用し、性能低下するこ
となく動作可能とし、他のプロセスが同一情報を使用し
ていても、変更したい場合に即時に制御可能とし、同一
の定義情報を参照する場合には、共有メモリを参照する
とこと高速化している。
合にも、共有メモリを優先的に活用し、性能低下するこ
となく動作可能とし、他のプロセスが同一情報を使用し
ていても、変更したい場合に即時に制御可能とし、同一
の定義情報を参照する場合には、共有メモリを参照する
とこと高速化している。
【0014】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。
て図面を参照して詳細に説明する。
【0015】図1は、本発明の実施の形態のシステム構
成を示す図である。図1を参照すると、本発明の実施の
形態は、プログラムA、Bを実行する際にプログラムが
展開されるユーザメモリ空間1に対して、特定の情報を
プロセス間で共有できる共有メモリ空間2を持ち合わせ
るシステムにおいて、共有メモリを操作する共有メモリ
操作手段3と、定義情報をあらかじめ登録しておく定義
情報データベース4と、実際のデータベースのデータを
保有するデータベース群5と、を備えている。
成を示す図である。図1を参照すると、本発明の実施の
形態は、プログラムA、Bを実行する際にプログラムが
展開されるユーザメモリ空間1に対して、特定の情報を
プロセス間で共有できる共有メモリ空間2を持ち合わせ
るシステムにおいて、共有メモリを操作する共有メモリ
操作手段3と、定義情報をあらかじめ登録しておく定義
情報データベース4と、実際のデータベースのデータを
保有するデータベース群5と、を備えている。
【0016】共有メモリ空間2の共有情報21は、状態
(使用、未使用)211、フラグ212、資源名21
3、定義情報214、定義プロセス番号215、プロセ
ス番号(プロセスID)216を一エントリとして含
み、管理番号(1〜nnnn)で管理される。
(使用、未使用)211、フラグ212、資源名21
3、定義情報214、定義プロセス番号215、プロセ
ス番号(プロセスID)216を一エントリとして含
み、管理番号(1〜nnnn)で管理される。
【0017】共有メモリ操作手段3は、共有メモリ検索
手段31と、共有メモリ登録手段32と、プロセス情報
登録手段33と、を備えている。
手段31と、共有メモリ登録手段32と、プロセス情報
登録手段33と、を備えている。
【0018】共有メモリ検索手段31は、与えられた資
源名をキーにして、共有メモリ空間2から、その定義情
報を得る。
源名をキーにして、共有メモリ空間2から、その定義情
報を得る。
【0019】共有メモリ登録手段32は、定義データベ
ース4から資源名をキーにして、定義情報を共有メモリ
空間2に展開する。
ース4から資源名をキーにして、定義情報を共有メモリ
空間2に展開する。
【0020】プロセス情報登録手段33は、各ユーザプ
ログラムが実行される際のユーザメモリ空間1に割り当
てられるプロセス情報を、使用している資源名をキーと
して、共有メモリ空間2へ登録し、COMMIT(コミ
ット)/ROLLBACK(ロールバック)命令や、資
源の定義情報の追加、削除、変更に応じて、共有メモリ
空間2に展開されている定義情報が有効であるどうかの
状態を更新させる。
ログラムが実行される際のユーザメモリ空間1に割り当
てられるプロセス情報を、使用している資源名をキーと
して、共有メモリ空間2へ登録し、COMMIT(コミ
ット)/ROLLBACK(ロールバック)命令や、資
源の定義情報の追加、削除、変更に応じて、共有メモリ
空間2に展開されている定義情報が有効であるどうかの
状態を更新させる。
【0021】これら共有メモリ検索手段31、共有メモ
リ登録手段32、プロセス情報登録手段33の各手段
は、データベースを管理するコンピュータ上で実行され
るプログラムでその機能が実現される。
リ登録手段32、プロセス情報登録手段33の各手段
は、データベースを管理するコンピュータ上で実行され
るプログラムでその機能が実現される。
【0022】図2は、本発明の実施の形態の処理フロー
を説明するための流れ図である。図1及び図2を参照し
て本実施の形態の動作について詳細に説明する。
を説明するための流れ図である。図1及び図2を参照し
て本実施の形態の動作について詳細に説明する。
【0023】ユーザプログラム1からある資源に対して
SQL(構造型問合せ言語)命令が実行され(ステップ
A1)、共有メモリ検索手段31が起動される(ステッ
プA2)。
SQL(構造型問合せ言語)命令が実行され(ステップ
A1)、共有メモリ検索手段31が起動される(ステッ
プA2)。
【0024】共有メモリ検索手段31では、ユーザプロ
グラム1が使用する資源名をキーとして、共有メモリ空
間2にある共有情報21の資源名213を検索する。
グラム1が使用する資源名をキーとして、共有メモリ空
間2にある共有情報21の資源名213を検索する。
【0025】検索の結果、該当する資源名が見つからな
ければ(ステップA3)、共有メモリ登録手段32を起
動する(ステップA5)。
ければ(ステップA3)、共有メモリ登録手段32を起
動する(ステップA5)。
【0026】共有メモリ登録手段32では、定義情報デ
ータベース4をアクセスし、指定された資源の定義情報
を、共有メモリ空間2にある共有情報21に新たに追加
して、プロセス情報登録手段33を起動する(ステップ
A6)。
ータベース4をアクセスし、指定された資源の定義情報
を、共有メモリ空間2にある共有情報21に新たに追加
して、プロセス情報登録手段33を起動する(ステップ
A6)。
【0027】一方、ステップA3において、共有メモリ
検索手段31での検索の結果、資源名が見つかれば、共
有情報21の該当する資源名と同一エントリの削除フラ
グ212を確認する(ステップA4)。
検索手段31での検索の結果、資源名が見つかれば、共
有情報21の該当する資源名と同一エントリの削除フラ
グ212を確認する(ステップA4)。
【0028】ステップA4において、削除フラグ212
がオフであれば、共有情報21にある状態211をチェ
ックし、「未使用」状態ならば、「使用中」とし、プロ
セス情報登録手段33を起動し(ステップA6)、「使
用中」ならば、そのままプロセス情報登録手段33を起
動する。
がオフであれば、共有情報21にある状態211をチェ
ックし、「未使用」状態ならば、「使用中」とし、プロ
セス情報登録手段33を起動し(ステップA6)、「使
用中」ならば、そのままプロセス情報登録手段33を起
動する。
【0029】一方、ステップA4において、削除フラグ
212がオンならば、別プロセスで既にその資源が解放
されているので、状態211をチェックする。状態21
1が「使用中」ならば、別プロセスで定義を削除し、静
止点が確立していない状態なので、実行できない状態で
あると判断し、エラー処理として、SQL命令を異常で
終わらせる(ステップA9)。
212がオンならば、別プロセスで既にその資源が解放
されているので、状態211をチェックする。状態21
1が「使用中」ならば、別プロセスで定義を削除し、静
止点が確立していない状態なので、実行できない状態で
あると判断し、エラー処理として、SQL命令を異常で
終わらせる(ステップA9)。
【0030】未使用ならば、別プロセスでの定義削除が
完了しているので、定義変更された可能性があると判断
し、共有メモリ登録手段32を起動する。
完了しているので、定義変更された可能性があると判断
し、共有メモリ登録手段32を起動する。
【0031】プロセス情報登録手段33では、共有情報
21のプロセス番号216に、該当プロセスのプロセス
番号を登録する。
21のプロセス番号216に、該当プロセスのプロセス
番号を登録する。
【0032】ユーザプログラム1は共有情報21に登録
されている定義情報214(構成する列の属性、長さ、
データベースの在処等)を参考にしてデータベース群5
にアクセスする。ユーザプログラム1の終了時には、プ
ロセス情報登録手段33が起動され、プロセス番号21
6に登録した該当プロセスのプロセス番号を削除し、全
てのプロセス情報が入っていなければ、状態211を未
使用に戻す。
されている定義情報214(構成する列の属性、長さ、
データベースの在処等)を参考にしてデータベース群5
にアクセスする。ユーザプログラム1の終了時には、プ
ロセス情報登録手段33が起動され、プロセス番号21
6に登録した該当プロセスのプロセス番号を削除し、全
てのプロセス情報が入っていなければ、状態211を未
使用に戻す。
【0033】これらの処理により、1度、定義情報デー
タベース4から、定義情報を取り出してしまえば、定義
情報を削除するまで、定義情報データベース4をアクセ
スすることはなく、共有メモリ空間2の共有情報を参照
して、データベース群5をアクセス可能となる。
タベース4から、定義情報を取り出してしまえば、定義
情報を削除するまで、定義情報データベース4をアクセ
スすることはなく、共有メモリ空間2の共有情報を参照
して、データベース群5をアクセス可能となる。
【0034】図3は、本発明の実施の形態の処理フロー
を説明するための流れ図であり、定義追加系のSQL命
令が実行された場合の処理フローについて示したもので
ある。図3を参照して、定義追加系のSQL命令が実行
された場合の動作について説明する。
を説明するための流れ図であり、定義追加系のSQL命
令が実行された場合の処理フローについて示したもので
ある。図3を参照して、定義追加系のSQL命令が実行
された場合の動作について説明する。
【0035】ユーザプログラム1からある資源を定義す
るSQL命令が実行される(ステップB1)と、共有メ
モリ検索手段31が起動され(ステップB2)、共有情
報21から定義する情報のキーとなる資源名が資源名2
13に登録されているか否かを検索し、検索の結果、登
録されていなければ(ステップB4)、共有メモリ登録
手段32を起動する(ステップB7)。
るSQL命令が実行される(ステップB1)と、共有メ
モリ検索手段31が起動され(ステップB2)、共有情
報21から定義する情報のキーとなる資源名が資源名2
13に登録されているか否かを検索し、検索の結果、登
録されていなければ(ステップB4)、共有メモリ登録
手段32を起動する(ステップB7)。
【0036】共有メモリ登録手段32は、定義情報デー
タベース4をアクセスし、定義情報とこの定義追加とが
矛盾しないか否かをチェックし(ステップB8)、矛盾
しなければプロセス情報登録手段33を起動する(ステ
ップB9)。
タベース4をアクセスし、定義情報とこの定義追加とが
矛盾しないか否かをチェックし(ステップB8)、矛盾
しなければプロセス情報登録手段33を起動する(ステ
ップB9)。
【0037】一方、ステップB8において、矛盾した場
合には、この定義追加命令は異常と判断し、エラー処理
を行う(ステップB11)。
合には、この定義追加命令は異常と判断し、エラー処理
を行う(ステップB11)。
【0038】一方、共有メモリ検索手段31で検索の結
果、見つかった場合には、共有情報21の状態211を
確認し、「使用中」の状態で有れば(ステップB4の
「使用中」分岐)、共有情報21の定義プロセス番号と
自プロセス番号とを比較し(ステップB5)、自プロセ
ス番号ならば、定義情報214と、今回行う定義情報の
追加が矛盾しないか否かを検証する(ステップB8)。
果、見つかった場合には、共有情報21の状態211を
確認し、「使用中」の状態で有れば(ステップB4の
「使用中」分岐)、共有情報21の定義プロセス番号と
自プロセス番号とを比較し(ステップB5)、自プロセ
ス番号ならば、定義情報214と、今回行う定義情報の
追加が矛盾しないか否かを検証する(ステップB8)。
【0039】ステップB5において、自プロセスでなけ
れば、他のプロセスでの動作に支障が生じるため、定義
追加系のSQL命令の実行を打ち切り、エラー処理を行
う(ステップB11)。
れば、他のプロセスでの動作に支障が生じるため、定義
追加系のSQL命令の実行を打ち切り、エラー処理を行
う(ステップB11)。
【0040】ステップB4において、状態211が「未
使用」であり、ステップB6において、削除フラグ21
2が設定されていなければ(ステップB6のNO分
岐)、ステップB8で定義情報の検証を行う。そして矛
盾がなければ、ステップB9でプロセス情報登録手段3
3を起動する。
使用」であり、ステップB6において、削除フラグ21
2が設定されていなければ(ステップB6のNO分
岐)、ステップB8で定義情報の検証を行う。そして矛
盾がなければ、ステップB9でプロセス情報登録手段3
3を起動する。
【0041】一方、ステップB4において状態211が
未使用であり、削除フラグ212が設定されていれば、
他のプロセスから定義が変更されたものと見なし、共有
メモリ登録手段32を起動する(ステップB7)。
未使用であり、削除フラグ212が設定されていれば、
他のプロセスから定義が変更されたものと見なし、共有
メモリ登録手段32を起動する(ステップB7)。
【0042】プロセス情報登録手段33では、共有情報
21の該当欄に、該プロセスの情報を登録すると共に、
本プロセスで定義したため、定義プロセス番号215に
も該当プロセスのプロセス番号を登録する。
21の該当欄に、該プロセスの情報を登録すると共に、
本プロセスで定義したため、定義プロセス番号215に
も該当プロセスのプロセス番号を登録する。
【0043】最後に、プログラム終了時には、共有情報
21に登録した該当プロセスのプロセス番号を削除し、
全てのプロセス情報が入っていなければ、状態を「未使
用」に戻す。
21に登録した該当プロセスのプロセス番号を削除し、
全てのプロセス情報が入っていなければ、状態を「未使
用」に戻す。
【0044】図4は、本発明の実施の形態の処理フロー
を説明するための流れ図であり、定義削除系のSQL命
令が実行された場合の処理フローについて示したもので
ある。図4を参照して、定義削除系のSQL命令が実行
された場合の動作について説明する。
を説明するための流れ図であり、定義削除系のSQL命
令が実行された場合の処理フローについて示したもので
ある。図4を参照して、定義削除系のSQL命令が実行
された場合の動作について説明する。
【0045】ユーザプログラム1からある資源を削除す
るSQL命令が実行される(ステップC1)と、共有メ
モリ検索手段31が起動され(ステップC2)、共有情
報21から削除する情報のキーとなる資源名が登録され
ているか検索し、検索の結果(ステップC3)、登録さ
れていなければ、直接定義情報データベース4をアクセ
スし結果を返却し、命令を終了させる。
るSQL命令が実行される(ステップC1)と、共有メ
モリ検索手段31が起動され(ステップC2)、共有情
報21から削除する情報のキーとなる資源名が登録され
ているか検索し、検索の結果(ステップC3)、登録さ
れていなければ、直接定義情報データベース4をアクセ
スし結果を返却し、命令を終了させる。
【0046】ステップC3において、検索の結果、削除
する情報のキーとなる資源名が見つかれば、状態212
を確認し、「使用中」であれば(ステップC4の「未使
用」分岐)、プロセス情報216を参照し、プロセス情
報216が自プロセスのプロセス番号だけならば(ステ
ップC6のYES分岐)、共有メモリ登録手段32を起
動する(ステップC6)。共有メモリ登録手段32で
は、定義情報データベース4をアクセスして、定義情報
を削除し、プロセス情報登録手段33を起動する(ステ
ップC7)。
する情報のキーとなる資源名が見つかれば、状態212
を確認し、「使用中」であれば(ステップC4の「未使
用」分岐)、プロセス情報216を参照し、プロセス情
報216が自プロセスのプロセス番号だけならば(ステ
ップC6のYES分岐)、共有メモリ登録手段32を起
動する(ステップC6)。共有メモリ登録手段32で
は、定義情報データベース4をアクセスして、定義情報
を削除し、プロセス情報登録手段33を起動する(ステ
ップC7)。
【0047】ステップC5において、他のプロセス情報
が登録されていれば、処理できないため、結果異常と判
断し、エラー処理に移行する(ステップC9)。
が登録されていれば、処理できないため、結果異常と判
断し、エラー処理に移行する(ステップC9)。
【0048】ステップC4において、状態212が「未
使用」であれば、共有メモリ登録手段21を起動する
(ステップC6)。プロセス情報登録手段33では、当
該プロセスの情報を登録し、削除系であるため共有情報
21の削除フラグ211をオンにする。
使用」であれば、共有メモリ登録手段21を起動する
(ステップC6)。プロセス情報登録手段33では、当
該プロセスの情報を登録し、削除系であるため共有情報
21の削除フラグ211をオンにする。
【0049】次に、プログラム終了時には、共有情報2
1に登録した該当プロセスのプロセス番号を削除し、全
てのプロセス情報が入っていなければ、状態を「未使
用」に戻す。
1に登録した該当プロセスのプロセス番号を削除し、全
てのプロセス情報が入っていなければ、状態を「未使
用」に戻す。
【0050】図5は、本発明の実施の形態において、C
OMMIT/ROLLBACK命令が実行された場合の
処理フローを説明するための流れ図である。図5を参照
して、本発明の実施の形態におけるCOMMIT/RO
LLBACK命令が実行された場合の動作について説明
する。
OMMIT/ROLLBACK命令が実行された場合の
処理フローを説明するための流れ図である。図5を参照
して、本発明の実施の形態におけるCOMMIT/RO
LLBACK命令が実行された場合の動作について説明
する。
【0051】図5を参照すると、現行トランザクション
を正常終了させ、このトランザクションによりなされた
すべての更新をたのトランザクションにより見えるよう
にする、COMMIT命令が実行された場合には(ステ
ップD3)、共有メモリ検索手段31が起動される(ス
テップD4)。共有メモリ検索手段31では該当プロセ
スのプロセス番号をキーとし共有情報21の定義プロセ
ス番号215を参照して、同一のプロセス番号が登録さ
れているか否かを確認する。同一プロセスの番号が登録
されていれば(ステップD5のYES)、プロセス情報
登録手段33を起動する(ステップD6)。プロセス情
報登録手段33では、定義プロセス番号215に登録し
た該当プロセスの定義番号を削除する。
を正常終了させ、このトランザクションによりなされた
すべての更新をたのトランザクションにより見えるよう
にする、COMMIT命令が実行された場合には(ステ
ップD3)、共有メモリ検索手段31が起動される(ス
テップD4)。共有メモリ検索手段31では該当プロセ
スのプロセス番号をキーとし共有情報21の定義プロセ
ス番号215を参照して、同一のプロセス番号が登録さ
れているか否かを確認する。同一プロセスの番号が登録
されていれば(ステップD5のYES)、プロセス情報
登録手段33を起動する(ステップD6)。プロセス情
報登録手段33では、定義プロセス番号215に登録し
た該当プロセスの定義番号を削除する。
【0052】またROLLBACK命令が実行された場
合には(ステップD3)、共有メモリ検索手段31が起
動される(ステップD4)。共有メモリ検索手段31で
は該当プロセスのプロセス番号をキーとして共有情報2
1の定義プロセス番号215を参照して、同一のプロセ
ス番号が登録されているか否かを確認する(ステップD
5)。同一プロセスの番号が登録されていれば、プロセ
ス情報登録手段33を起動する(ステップD6)。プロ
セス情報登録手段33では、定義プロセス番号215に
登録した該当プロセスのプロセス番号を削除し、削除フ
ラグ211がオンならばオフ、オフならばオンにする。
合には(ステップD3)、共有メモリ検索手段31が起
動される(ステップD4)。共有メモリ検索手段31で
は該当プロセスのプロセス番号をキーとして共有情報2
1の定義プロセス番号215を参照して、同一のプロセ
ス番号が登録されているか否かを確認する(ステップD
5)。同一プロセスの番号が登録されていれば、プロセ
ス情報登録手段33を起動する(ステップD6)。プロ
セス情報登録手段33では、定義プロセス番号215に
登録した該当プロセスのプロセス番号を削除し、削除フ
ラグ211がオンならばオフ、オフならばオンにする。
【0053】このことにより、定義変更したプロセスが
ROLLBACK(ロールバック)された場合、登録済
みの共有メモリ情報を不正に参照して誤動作することを
回避できる。
ROLLBACK(ロールバック)された場合、登録済
みの共有メモリ情報を不正に参照して誤動作することを
回避できる。
【0054】
【実施例】本発明の実施例について図面を参照して詳細
に説明する。図6は、本発明の一実施例を説明するため
の図である。
に説明する。図6は、本発明の一実施例を説明するため
の図である。
【0055】図6を参照すると、本発明の一実施例にお
いて、プログラムE1、E3、E4には、それぞれAB
C表を定義するSQL文と、その定義したABC表を使
用してデータベースを処理するSQL文、静止点を確立
するCOMMIT/ROLLBACK命令が含まれてい
る。
いて、プログラムE1、E3、E4には、それぞれAB
C表を定義するSQL文と、その定義したABC表を使
用してデータベースを処理するSQL文、静止点を確立
するCOMMIT/ROLLBACK命令が含まれてい
る。
【0056】共有情報2の中には、ABC表の定義情報
が含まれ、定義情報データベース5とつながっている。
が含まれ、定義情報データベース5とつながっている。
【0057】次に、本発明の一実施例について説明す
る。まずプログラムE1が起動され、表ABCを定義し
ようとすると、共有メモリ検索手段31が起動され、共
有情報E2にABCの情報が登録されていないので、共
有メモリ登録手段31が起動され、定義情報データベー
ス5から関連定義情報を読み出し、かつABC表の定義
情報を登録し、共有情報2に表ABCの定義内容が展開
される。
る。まずプログラムE1が起動され、表ABCを定義し
ようとすると、共有メモリ検索手段31が起動され、共
有情報E2にABCの情報が登録されていないので、共
有メモリ登録手段31が起動され、定義情報データベー
ス5から関連定義情報を読み出し、かつABC表の定義
情報を登録し、共有情報2に表ABCの定義内容が展開
される。
【0058】次に、プロセス情報定義手段33により、
共有情報2の定義プロセスとプロセス情報に該当プロセ
スのプロセス番号を登録する。
共有情報2の定義プロセスとプロセス情報に該当プロセ
スのプロセス番号を登録する。
【0059】次にプログラムE3からABC表の削除要
求がなされるが、登録済みの定義プロセス番号とプロセ
ス番号が異なるので、実行結果は異常となる。
求がなされるが、登録済みの定義プロセス番号とプロセ
ス番号が異なるので、実行結果は異常となる。
【0060】次にプログラムE3からABC表を利用し
てデータベースをアクセスする処理が動作した際に、プ
ロセス情報登録手段33により、プロセス情報が登録さ
れる。
てデータベースをアクセスする処理が動作した際に、プ
ロセス情報登録手段33により、プロセス情報が登録さ
れる。
【0061】プログラム1からABC表を削除しようと
したが、共有情報2のプロセス情報に自プロセス以外の
プロセス番号(ここではプログラムE3)が登録されて
いるので、実行結果は異常となる。プログラムE3が終
了した後、プログラムE4が起動されABC表を定義し
ようとするが、共有メモリ検索手段31で情報が見つか
り、定義プロセスが自プロセスでないので実行結果は異
常となる。
したが、共有情報2のプロセス情報に自プロセス以外の
プロセス番号(ここではプログラムE3)が登録されて
いるので、実行結果は異常となる。プログラムE3が終
了した後、プログラムE4が起動されABC表を定義し
ようとするが、共有メモリ検索手段31で情報が見つか
り、定義プロセスが自プロセスでないので実行結果は異
常となる。
【0062】プログラムE1では、COMMIT命令実
行後、ABC表を削除要求した際には、プログラムE3
が終了しているため、使用中のプロセスが自プロセスだ
けなので共有メモリ登録手段31を起動し、ABC表の
情報を定義情報データベース5から削除する。その後、
ABC表を使用すると既に共有情報2の削除フラグがオ
ンなので、削除済みと判断し、実行結果は異常となる。
行後、ABC表を削除要求した際には、プログラムE3
が終了しているため、使用中のプロセスが自プロセスだ
けなので共有メモリ登録手段31を起動し、ABC表の
情報を定義情報データベース5から削除する。その後、
ABC表を使用すると既に共有情報2の削除フラグがオ
ンなので、削除済みと判断し、実行結果は異常となる。
【0063】次にROLLBACK命令が実行されれ
ば、削除フラグがオフになり、プログラムE4からAB
C表の利用が可能になる。
ば、削除フラグがオフになり、プログラムE4からAB
C表の利用が可能になる。
【0064】[実施の形態2]次に、本発明の第2の実
施の形態について図面を参照して詳細に説明する。図7
は、本発明の第2の実施の形態の処理フローを説明する
ための図である。
施の形態について図面を参照して詳細に説明する。図7
は、本発明の第2の実施の形態の処理フローを説明する
ための図である。
【0065】図7を参照すると、本発明の第2の実施の
形態では、図4のフローチャートで示した定義系削除命
令実行のプロセスに、プロセス無効手段(ステップF
6)が追加されている。
形態では、図4のフローチャートで示した定義系削除命
令実行のプロセスに、プロセス無効手段(ステップF
6)が追加されている。
【0066】このプロセス無効手段(ステップF6)
は、共有メモリ検索手段31で検索した結果、複数のプ
ロセスが該当表を使用していた場合に起動される。プロ
セス無効手段では、自プロセス以外のプロセスに対し
て、強制的に資源を切り離すため、通知を送る。
は、共有メモリ検索手段31で検索した結果、複数のプ
ロセスが該当表を使用していた場合に起動される。プロ
セス無効手段では、自プロセス以外のプロセスに対し
て、強制的に資源を切り離すため、通知を送る。
【0067】ここでは、実行中のプログラムG1が通知
を受け取ったとする。通知を受け取った段階で、プログ
ラムG1が静止点を確立していれば、通知された資源に
対するクローズ処理を行う(ステップG5)。一方、ス
テップG3で、静止点が確立していなければ、COMM
IT命令ないしROLLBACK命令が実行されるまで
(ステップG4)、クローズ処理を遅延する。
を受け取ったとする。通知を受け取った段階で、プログ
ラムG1が静止点を確立していれば、通知された資源に
対するクローズ処理を行う(ステップG5)。一方、ス
テップG3で、静止点が確立していなければ、COMM
IT命令ないしROLLBACK命令が実行されるまで
(ステップG4)、クローズ処理を遅延する。
【0068】プロセス無効を通知した全プロセスのクロ
ーズ処理が完了すれば、共有情報21のプロセス情報2
16には、他のプロセスのプロセス番号がなくなる。
ーズ処理が完了すれば、共有情報21のプロセス情報2
16には、他のプロセスのプロセス番号がなくなる。
【0069】自プロセス以外の全てのプロセスが無くな
ったら、共有メモリ登録手段32を起動する。
ったら、共有メモリ登録手段32を起動する。
【0070】本発明の第2の実施の形態では、削除した
い資源を使用しているプロセスから強制的に資源を解放
させることにより、他のプロセスで使用中でも、任意の
タイミングで定義を削除することが出来る。
い資源を使用しているプロセスから強制的に資源を解放
させることにより、他のプロセスで使用中でも、任意の
タイミングで定義を削除することが出来る。
【0071】
【発明の効果】以上説明したように、本発明によれば下
記記載の効果を奏する。
記記載の効果を奏する。
【0072】本発明の第1の効果は、共有メモリに展開
した定義情報を共有することで、同一の資源を使用する
プログラム性能を向上することができる、ということで
ある。
した定義情報を共有することで、同一の資源を使用する
プログラム性能を向上することができる、ということで
ある。
【0073】その理由は、本発明においては、参照する
プロセスがなくなっても直ちに定義情報を共有メモリか
ら削除しないため、2回目以降に同一表を参照する際に
この定義情報を再利用することができ、このため定義情
報データベースをアクセスする必要がないためである。
プロセスがなくなっても直ちに定義情報を共有メモリか
ら削除しないため、2回目以降に同一表を参照する際に
この定義情報を再利用することができ、このため定義情
報データベースをアクセスする必要がないためである。
【0074】本発明の第2の効果は、表の定義情報を変
更しても感知することが出来、共有メモリ利用の有効性
を保ちながら、定義変更時にも、不正な情報を読んで誤
動作することがない、ということである。
更しても感知することが出来、共有メモリ利用の有効性
を保ちながら、定義変更時にも、不正な情報を読んで誤
動作することがない、ということである。
【0075】その理由は、本発明においては、COMM
IT、ROLLBACK命令実行時に、定義情報が有効
か無効かを識別可能としたためである。
IT、ROLLBACK命令実行時に、定義情報が有効
か無効かを識別可能としたためである。
【0076】本発明の第3の効果は、ある資源を共有利
用して使用している場合でも、任意のタイミングにて資
源の情報を削除することが出来る、ということである。
用して使用している場合でも、任意のタイミングにて資
源の情報を削除することが出来る、ということである。
【0077】その理由は、本発明においては、共有メモ
リにプロセスの情報を管理することで、各プロセスに資
源が使用できないことを通知可能としたためである。
リにプロセスの情報を管理することで、各プロセスに資
源が使用できないことを通知可能としたためである。
【図1】本発明の第一の実施の形態の構成を示すブロッ
ク図である。
ク図である。
【図2】本発明の第一の実施の形態の処理フローを示す
流れ図である。
流れ図である。
【図3】本発明の第一の実施の形態の処理フローを示す
流れ図である。
流れ図である。
【図4】本発明の第一の実施の形態の処理フローを示す
流れ図である。
流れ図である。
【図5】本発明の第一の実施の形態の処理フローを示す
流れ図である。
流れ図である。
【図6】本発明の第一の実施の形態を具体的に説明する
ための説明図である。
ための説明図である。
【図7】本発明の第二の実施の形態の処理フローを示す
流れ図である。
流れ図である。
1 プログラム 2 共有メモリ空間 3 共有メモリ操作手段 4 定義情報データベース 5 データベース群 21 共有情報 31 共有メモリ検索手段 32 共有メモリ登録手段 33 プロセス情報登録手段 211 状態 212 削除フラグ 213 資源名 214 定義情報 215 該当表を定義したプロセス番号 216 該当表を使用しているプロセス番号(繰り返
し)
し)
Claims (8)
- 【請求項1】複数のプロセス間でデータベースの定義情
報を共有するデータベース制御システムにおいて、 前記データベースを処理する際に必要とされ共有可能な
情報を格納するための共有メモリを備え、 前記データベース内の表などの資源のうち指定された資
源について、データ項目の属性、長さ、データベースの
在処等の定義情報が予め格納されている定義情報データ
ベースから定義情報を、前記共有メモリに設定登録する
共有メモリ登録手段と、 前記複数のプロセスから前記データベースをアクセスす
る為に、前記共有メモリから資源名をキーとして目的の
定義情報を検索する共有メモリ検索手段と、 前記データベースにアクセスするプロセスの情報を前記
共有メモリに登録するプロセス情報登録手段と、 を備えたことを特徴とするデータベース制御システム。 - 【請求項2】前記共有メモリには共有情報として、資源
名と、定義情報と、定義プロセス及び該資源をアクセス
するプロセスの情報と、前記資源を使用中か否かを示す
状態情報と、定義が削除されたか否かを示すフラグ情報
と、を含む、ことを特徴とする請求項1記載のデータベ
ース制御システム。 - 【請求項3】前記共有メモリ内に登録されている資源の
定義情報を変更する際に、該当する資源を使用中のプロ
セスが他にあった場合に、前記他のプロセスの処理を強
制的に打ち切るプロセス無効化手段を備えたことを特徴
とする請求項1記載のデータベース制御システム。 - 【請求項4】複数のユーザプロセスからのデータベース
のアクセスに必要な定義情報を共有メモリに格納して複
数のユーザプロセス間で共有するデータベース制御シス
テムであって、 前記共有メモリは、共有情報として、前記データベース
内の表等の資源名と、該資源に関する列の属性、長さ、
データベースの在処等の定義情報と、定義プロセス及び
該資源をアクセスするプロセスの情報と、及び前記資源
を使用中か否かを示す状態情報、定義が削除されたか否
かを示す削除フラグ情報と、を含み、 ユーザプロセスで資源を定義する命令が実行された場
合、前記共有メモリを、資源名をキーとし検索し、前記
資源に関する定義情報を取得する共有メモリ検索手段
と、 前記共有メモリ検索手段での検索の結果前記資源名が見
つからない場合、定義情報を予め登録した定義情報デー
タベースから前記資源名をキーとして定義情報を読み出
し、前記共有メモリに展開して登録する共有メモリ登録
手段と、 前記ユーザプロセスのプロセス情報を、前記資源名をキ
ーとして前記共有メモリに登録するプロセス情報登録手
段と、 を備えたことを特徴とする、データベース制御システ
ム。 - 【請求項5】前記共有メモリ検索手段での検索の結果前
記資源名が見つかった場合、該資源名に対応する前記削
除フラグがオフの場合には、前記プロセス情報登録手段
にてプロセス情報を登録し、 該資源名に対応する前記削除フラグがオンである場合で
あって、該資源名に対応する前記状態情報が未使用中で
ある場合、前記共有メモリ登録手段により定義情報を新
たに前記共有メモリに登録し、一方、該資源名に対応す
る前記状態情報が使用中である場合には、エラー処理を
行う、ことを特徴とする、請求項4記載のデータベース
制御システム。 - 【請求項6】ユーザプロセスで資源定義を削除する命令
が実行された場合、前記共有メモリ検索手段が前記共有
メモリを資源名をキーとし検索し、検索の結果見つかっ
た場合、前記資源が使用中か否かを判断し、該資源を自
プロセスで使用中の場合には、前記定義情報を削除し該
定義情報に対応する削除フラグをオンとし、且つプロセ
ス情報を削除する、ことを特徴とする、請求項4記載の
データベース制御システム。 - 【請求項7】ユーザプロセスで資源定義を削除する命令
が実行された場合、前記共有メモリ検索手段が前記共有
メモリを資源名をキーとし検索し、検索の結果見つかっ
た場合、前記資源が使用中か否かを判断し、該資源を自
プロセスで使用中の場合であって、さらに他のプロセス
が前記資源を使用中である場合には、前記他のプロセス
に対して強制的に前記資源を切り離すように制御する無
効化手段を備え、 前記他のプロセスの処理を強制的に打ち切った後、前記
定義情報を削除し該定義情報に対応する削除フラグをオ
ンとし、且つプロセス情報を削除する、ことを特徴とす
る、請求項4記載のデータベース制御システム。 - 【請求項8】複数のユーザプロセスからのデータベース
のアクセスに必要な定義情報を共有メモリに格納して複
数のユーザプロセス間で共有するデータベース制御シス
テムにおいて、 前記共有メモリは、共有情報として、前記データベース
内の表等の資源名と、該資源に関する列の属性、長さ、
データベースの在処等の定義情報と、定義プロセス及び
該資源をアクセスするプロセスの情報と、及び前記資源
を使用中か否かを示す状態情報と、定義が削除されたか
否かを示す削除フラグ情報と、を含み、 (a)ユーザプロセスで資源を定義する命令が実行され
た場合、前記共有メモリを資源名をキーとし検索し前記
資源に関する定義情報を取得する共有メモリ検索処理、 (b)前記共有メモリ手段での検索の結果前記資源名が
見つからない場合、定義情報を予め登録した定義情報デ
ータベースから前記資源名をキーとして定義情報を読み
出し、前記共有メモリに展開する共有メモリ登録処理、
及び、 (c)前記ユーザプロセスのプロセス情報を、前記資源
名をキーとして前記共有メモリに登録するプロセス情報
登録処理、 の上記各手段(a)〜(c)をコンピュータ上で実行さ
せるためのプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12398498A JP3475783B2 (ja) | 1998-04-17 | 1998-04-17 | データベース定義情報のプロセス間共有制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12398498A JP3475783B2 (ja) | 1998-04-17 | 1998-04-17 | データベース定義情報のプロセス間共有制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11306061A true JPH11306061A (ja) | 1999-11-05 |
JP3475783B2 JP3475783B2 (ja) | 2003-12-08 |
Family
ID=14874172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12398498A Expired - Fee Related JP3475783B2 (ja) | 1998-04-17 | 1998-04-17 | データベース定義情報のプロセス間共有制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3475783B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007501468A (ja) * | 2003-08-06 | 2007-01-25 | オラクル・インターナショナル・コーポレイション | 効率的なバージョン制御を有するデータベース管理システム |
-
1998
- 1998-04-17 JP JP12398498A patent/JP3475783B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007501468A (ja) * | 2003-08-06 | 2007-01-25 | オラクル・インターナショナル・コーポレイション | 効率的なバージョン制御を有するデータベース管理システム |
Also Published As
Publication number | Publication date |
---|---|
JP3475783B2 (ja) | 2003-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4237354B2 (ja) | トランザクション処理方法及びトランザクション処理システム | |
US6772155B1 (en) | Looking data in a database system | |
US20040199540A1 (en) | Database-file link system and method therefor | |
US7865912B2 (en) | Method and system for managing tables that are used by network processors to control traffic through a network | |
JP2001527242A (ja) | ロックグループを用いた楽観的並行処理制御のためのきめ細やかな整合性をもたらす仕組み | |
CA2422161C (en) | Decoupled object identification for object switching in database systems | |
US6480849B1 (en) | Efficient concurrency control method for high dimensional index structures | |
US20080270407A1 (en) | System for ensuring referential integrity in highly concurrent database environments | |
US6571250B1 (en) | Method and system for processing queries in a data processing system using index | |
JPH11306061A (ja) | データベース定義情報のプロセス間共有制御方式 | |
JPH05307478A (ja) | データベース管理システムの構成法 | |
JP3769775B2 (ja) | 分散リンク情報維持方法 | |
JP4393498B2 (ja) | 構造化文書管理システム及びプログラム | |
JP3330006B2 (ja) | 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに | |
JP3970524B2 (ja) | 複数オペレーション間の排他制御方法 | |
JP4047557B2 (ja) | データベース管理システム,データベース管理処理方法,データベース管理システム用のプログラムおよびその記録媒体 | |
JP3005476B2 (ja) | ハッシュテーブルの動的変更システム | |
JPH09293055A (ja) | 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体 | |
JP2000148552A (ja) | データベース−ファイル連携方法及びその実施システム並びにその処理プログラムを記録した媒体 | |
JP2980610B2 (ja) | トランザクション管理装置 | |
JP4139632B2 (ja) | データベース管理方法およびシステム | |
JP2000066933A (ja) | 時系列データ管理方式 | |
JPH09179765A (ja) | データベース検索システム | |
JPH11353212A (ja) | 領域共用ファイル内のメンバ管理方法および装置 | |
JP2003271626A (ja) | 検索機能付きストレージデバイス |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20030826 |
|
LAPS | Cancellation because of no payment of annual fees |