(57)【特許請求の範囲】
【請求項１】
データベースサーバと、データベースマネージメントシステム及びデータベース（以下、データベースという）と、該データベースサーバとデータベースとに接続される、メモリ資源及びデータベース処理タスク資源を有するデータベース資源とを備えるデータベースシステムにおけるデータベースサーバ処理方法であって、
前記データベースサーバは、１以上のデータベース処理要求者（以下、ユーザという）からのデータベース接続処理要求に応じて各ユーザの接続要求を記憶し、ユーザからのトランザクション実行要求に従い、データベース処理の整合性が保証できる最小の単位のトランザクション単位で該ユーザにデータベースシステムのデータベース資源を占有させ、該データベース資源により前記データベースに該トランザクションの処理を実行させることにより、データベース資源の占有時間を短縮しデータベース資源の使用効率を上げることを特徴とするデータベースサーバ処理方法。
【請求項２】
請求項１記載のデータベースサーバ処理方法において、
同じデータベースアクセス権限を持った複数のユーザのそれぞれの認証情報をユーザ名と該ユーザが接続要求するデータベースとの関係で予め割り当てられたユーザの認証情報に置き換え、
ユーザの認証情報により前記データベース資源とデータベースとの接続が行われているとき、次に実行しようとするトランザクションに係わるユーザの認証情報が、前記接続が行われているユーザの認証情報と同じである場合、データベースに対するデータベース接続処理及びデータベース切断処理を行うことなく、次のトランザクションの実行を行うことを特徴とするデータベースサーバ処理方法。
【請求項３】
請求項１記載のデータベースサーバ処理方法において、
各ユーザからのトランザクション処理情報を蓄積し、データベース資源に格納できる上限値を超えたトランザクション処理要求を受け付けた際にトランザクション処理待ち行列を作成し、
ユーザ毎に用意された蓄積ユーザ情報及び優先度定義情報を参照して、該作成したトランザクション処理待ち行列におけるデータベース資源割り当て順序を決定し、ユーザに対する処理応答を効率化することを特徴とするデータベースサーバ処理方法。
【請求項４】
データベースサーバにおいて実行されるデータベースサーバ処理プログラムであって、データベースサーバに、
１以上のデータベース処理要求者（以下、ユーザという）からのデータベース接続処理要求に応じて各ユーザの接続要求を記憶する手順と、
ユーザからのトランザクション実行要求に従い、データベース処理の整合性が保証できる最小の単位のトランザクション対応に該ユーザにデータベースシステムのメモリ資源およびデータベース処理タスク資源を有するデータベース資源を占有させる手順と、
同じデータベースアクセス権限を持った複数のユーザのそれぞれの認証情報をユーザ名と該ユーザが接続要求するデータベースとの関係で予め割り当てられたユーザの認証情報に置き換える手順と、
ユーザの認証情報により前記データベース資源とデータベースとの接続が行われているとき、次に実行しようとするトランザクションに係わるユーザの認証情報が、前記接続が行われているユーザの認証情報と同じである場合、データベースに対するデータベース接続処理及びデータベース切断処理を行うことなく、次のトランザクションの実行を行う手順を実行させるためのプログラム、を記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースサーバに係わり、データベース資源の使用効率の向上を図るデータベースサーバ処理方法に関する。
【０００２】
【従来の技術】
従来のデータベース処理システムでは、データベースユーザからのデータベース接続要求からデータベース切断要求までの間、メモリ資源、データベース処理タスク資源などのデータベース資源を占有する。
オンラインからのデータベースアクセス業務などにおいては、実際にデータアクセスを行なわない期間においてもデータベース接続されたままで運用されることが多く、この間データベース資源が占有されるため、同時にデータアクセスを行うことがなくても、同時に接続するユーザの数のデータベース資源を準備しておく必要がある。
このような大規模なユーザとの接続を可能とする方式としては、特開平９−３２５９０６のように、主記憶装置から補助記憶装置へメモリ内容を待避させることによりメモリ使用効率を上げる方式がある。
【０００３】
【発明が解決しようとする課題】
同時にデータアクセスを行わないユーザに対してもメモリ資源等のデータベース資源を割り当てるため、メモリ容量などの制約により同時にデータベース接続できるユーザの数が制限されるという問題がある。
また、データベース利用者の数が飛躍的に増大し、１つのデータベースサーバの利用者が数万人規模となるような大規模なデータベースシステムを考えた場合、極めて大きなメモリ資源等のデータベース処理資源が必要となる問題がある。
本発明の目的は、このような大規模なデータベースサーバシステムにおいて、限られたデータベース資源の中で、より多くのユーザからの利用を効率的に行うことを可能とすることにある。
【０００４】
【課題を解決するための手段】
上記目的を達成するため、本発明は、
データベースサーバ処理方法であり、１以上のデータベース処理要求者からのデータベース接続処理要求に応じて各ユーザの接続要求を記憶し、ユーザからのトランザクション実行要求に従い、データベース処理の整合性が保証できる最小の単位のトランザクション単位で該ユーザにデータベースシステムのデータベース資源を占有させ、該データベース資源に格納されたトランザクションを実行することにより、データベース資源の占有時間を短縮しデータベース資源の使用効率を上げるようにしている。
また、複数の同じレベルのデータベースアクセス権限を持ったデータベース処理要求者の認証情報を１つの認証情報に置き換え、該１つの認証情報で前記データベース資源とデータベースとの接続が行われているとき、実行しようとするトランザクションに係わる認証情報が該１つの認証情報と同じである場合、データベースに対するデータベース接続処理及びデータベース切断処理を行うことなく、トランザクションの実行を行うようにしている。
また、各データベース処理要求者からのトランザクション処理情報を蓄積し、データベース資源に格納できる上限値を超えたトランザクション処理要求を受け付けた際にトランザクション処理待ち行列を作成し、
データベース処理要求者毎に用意された蓄積ユーザ情報及び優先度定義情報を参照して、該作成したトランザクション処理待ち行列におけるデータベース資源割り当て順序を決定し、データベース処理要求者に対する処理応答を効率化するようにしている。
また、データベースサーバ処理プログラムを記録したコンピュータ読み取り可能な記録媒体であり、
該データベースサーバ処理プログラムは、１以上のデータベース処理要求者からのデータベース接続処理要求に応じて各ユーザの接続要求を記憶する手順と、ユーザからのトランザクション実行要求に従い、データベース処理の整合性が保証できる最小の単位のトランザクション単位で該ユーザにデータベースシステムのデータベース資源を占有させる手順と、複数の同じレベルのデータベースアクセス権限を持ったデータベース処理要求者の認証情報を１つの認証情報に置き換える手順と、該１つの認証情報で前記データベース資源とデータベースとの接続が行われているとき、実行しようとするトランザクションに係わる認証情報が該１つの認証情報と同じである場合、データベースに対するデータベース接続処理及びデータベース切断処理を行なわずに、前記データベース資源に格納されたトランザクションを実行する手順を有するようにしている。
【０００５】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて詳細に説明する。
図１は複数のユーザからのデータベース処理要求を、１つのデータベース資源により処理するデータベースサーバの構成の一実施例である。
図２、図３はデータベースサーバ処理の実施例のフローチャートを示す。
図４は認証情報変換情報の例を示す。
この例では、ユーザ１（４０１）の認証情報はＤＢ１（４１０）に対してユーザ１１（４１１）の認証情報に変換することを示し、ＤＢ２（４２０）、ＤＢｍ（４３０）に対してはそれぞれユーザ２１（４２１）の認証情報、ユーザ３１（４３１）の認証情報に変換することを示す。
同様にユーザ２（４０２）の認証情報はＤＢ１（４１０）、ＤＢ２（４２０）、ＤＢｍ（４３０）に対してユーザ１２（４１２）の認証情報、ユーザ２１（４２２）の認証情報、ユーザ３２（４３２）の認証情報に、ユーザ３（４０３）の認証情報はユーザ１２（４１３）の認証情報、ユーザ２１（４２３）の認証情報、ユーザ３３（４３３）の認証情報に変換することを示す。
また、ユーザｎ（４０４）の認証情報はＤＢ１（４１０）、ＤＢ２（４２０）に対してユーザ１３（４１４）の認証情報、ユーザ２１（４２４）の認証情報に変換するが、ＤＢｍ（４３０）に対してはアクセス権限なし（４３４）を示している。
認証情報の変換においては、データベースに対して同じデータベースアクセス権限を持ったユーザの認証情報は１つの認証情報に置き換えられる。
【０００６】
図５は優先度定義情報の例である。
この例では定義情報の値が大きいほど優先度が高いものとし、ユーザ１（５０１）は優先度５０（５１１）、ユーザ２（５０２）は優先度１０（５１２）、ユーザ３（５０３）は優先度５０（５１３）、ユーザｎ（５０４）は優先度１０（５１４）であることを示す。
図６は蓄積ユーザ情報の例である。
この例は、過去に行った各ユーザ処理の平均処理時間を蓄積した例であり、ユーザ１（６０１）の平均処理時間が３０ｍｓ（６１１）、ユーザ２（６０２）が１００ｍｓ（６１２）、ユーザ３（６０３）が５０ｍｓ（６１３）、ユーザｎ（６０４）が２０ｍｓ（６１４）であったことを示している。
【０００７】
図７は、それぞれが複数のデータベース資源を持つ複数のデータベースシステムにより処理を行う一実施例である。
図１において、１０２はデータベース資源割り当て装置、１０３は認証情報変換装置、１０４は認証情報変換情報、１０５は待ち行列管理装置、１０６は優先度定義情報、１０７はユーザ情報蓄積装置、１０８は蓄積ユーザ情報、１０９は接続ユーザ情報であり、１０２から１０９はシステムＡ（１０１）に含まれる。
１１０はシステムＡからアクセスされるデータベース（ＤＢ１）、１１１はＤＢ１を管理するデータベースマネージメントシステム（ＤＢＭＳ１）、１１２はＤＢ１およびＤＢＭＳ１により同時に１つのデータベース処理を行うために必要なデータベース資源である。
ＤＢ１やＤＢＭＳ１はシステムＡと同じコンピュータ上にあってもよいし、別のコンピュータ上にあってもよい。
１１３、１１４、１１５はシステムＡを介してＤＢＭＳ１にデータベース処理要求を行うユーザである。
【０００８】
次に、図２を参照して、本発明によるデータベースサーバ処理方法を１つのデータベース資源を使って３つのユーザから要求される処理を行う業務例を説明する。
第一に待ちの生じない場合を例として説明する。
ユーザ１、ユーザ２、ユーザ３からのデータベース接続要求に対して、データベース資源割り当て装置は接続ユーザ情報に接続情報を格納し（２０３）、実際のデータベース処理は行わない。
【０００９】
次にユーザ１からトランザクションの実行要求を受けた場合、データベース資源はまだ使用されていないため（２０５）、データベース資源割り当て装置によりデータベース資源はユーザ１に割り当てられる（２０６）。
この場合、データベース処理の整合性が保証できる最小の単位のトランザクション単位でユーザ１にデータベース資源を占有させる。
認証情報変換装置で図４の認証情報変換情報に基づきユーザ１（４０１）の認証情報はＤＢ１（４１０）に対してはユーザ１１（４１１）の認証情報に変換され（２０７）、ＤＢ１に対してはユーザ１１の認証情報で接続し、トランザクションを実行する（２１０）。
【００１０】
次にユーザ１からの要求によるトランザクションが終了した後、ユーザ２からのトランザクション実行要求を受けた場合、データベース資源はユーザ２に割り当てられる。
認証情報変換装置によりユーザ２（４０２）の認証情報はＤＢ１（４１０）に対してはユーザ１２（４１２）の認証情報に変換されるが、データベース資源がすでにユーザ１１の認証情報でＤＢと接続しているため、ユーザ１２の認証情報で接続し直した後（２０９）、トランザクションを実行する。
さらにユーザ２からの要求によるトランザクションが終了した後、ユーザ３からのトランザクション実行要求を受けた場合、データベース資源はユーザ３に割り当てられる。
認証情報変換装置によりユーザ３（４０３）の認証情報はＤＢ１（４１０）に対してはユーザ１２（４１３）の認証情報に変換される。
データベース資源はすでにユーザ１２の認証情報でＤＢと接続しているため、接続のし直しは行わずにトランザクションを実行する。
ユーザからのデータベース切断要求に対しては、データベース資源割り当て装置は接続ユーザ情報から接続情報を削除する（２０４）。
【００１１】
次に、図２、図３を参照して、第二に待ちの生じる場合を例として説明する。
使用可能なデータベース資源がない状態でユーザ１からのトランザクション実行要求を受けた場合、ユーザ１は待ち行列に追加され（２１１）、待ち状態となる。
使用可能なデータベース資源ができた場合、待ち行列管理装置により待ち状態にあるユーザに対するトランザクションの実行要求が行われる（３０１）。
待ち行列中のユーザが１つの場合は、そのユーザを実行ユーザとして（３０３）データベース資源を割り当てる（３０５）。
待ち行列中に複数のユーザがある場合、図５に示す優先度定義情報や、過去の各ユーザのトランザクション処理に関する情報をユーザ情報蓄積装置によって蓄積した図６に示す蓄積ユーザ情報を基に実行ユーザを決定する（３０４）。
【００１２】
ユーザ１とユーザ２が待ち行列にある状態で使用可能なデータベース資源ができた場合、優先度定義情報（図５）を参照すると、ユーザ１（５０１）の優先度は５０（５１１）、ユーザ２（５０２）の優先度は１０（５１２）であるから、優先度の高いユーザ１を先に実行させる。
ユーザ１とユーザ３が待ち行列にある状態で使用可能なデータベース資源ができた場合、優先度定義情報（図５）を参照すると、いずれも優先度が５０（５１１，５１３）で優先度が同じであるため、蓄積ユーザ情報（図６）を参照する。
ユーザ１（６０１）の平均処理時間は３０ｍｓ（６１１）、ユーザ３（６０３）の平均処理時間は５０ｍｓ（６１３）であるから、平均処理時間の短いユーザ１を先に実行させる。
【００１３】
図７は、以上に示した図１のデータベースサーバを、それぞれが複数のデータベース資源を持つ複数のデータベースシステムに対するデータベースサーバシステムとして適用したものである。
第三の例として、図７において、 ＤＢ１（７１４）、ＤＢ２（７１５）のそれぞれに対して、まずユーザ１（７１０）がデータベースに接続しトランザクションを実行、終了した後、ユーザ２（７１１）が同じデータベースに接続する例について説明する。
【００１４】
この例では、図４の認証情報変換情報に基づきユーザ１（４０１）はＤＢ１（４１０）に対してはユーザ１１（４１１）という認証情報で接続し、ＤＢ２（４２０）に対してはユーザ２１（４２１）という認証情報で接続する。
ユーザ２（４０２）はＤＢ１に対してはユーザ１２（４１２）という認証情報で接続し、ＤＢ２に対してはユーザ２１（４２２）という認証情報で接続する。
このため複数の空きデータベース資源がある状態で、ユーザ１から要求を受けたトランザクションを実行し、これが終了した後、ユーザ２からのトランザクションの実行要求を受ける例では、ＤＢ１ではユーザ１からの要求はユーザ１１の認証情報で接続しトランザクションの実行を行い、ユーザ２からの要求は別の空きデータベース資源を使用してユーザ１２の認証情報で接続し、トランザクションの実行を行う。
これに対して、ＤＢ２ではユーザ１からの要求はユーザ２１の認証情報で接続しトランザクションの実行を行い、ユーザ２からの要求は既にユーザ１からの要求によりユーザ２１の認証情報を使用して接続した状態にあるデータベース資源を利用してトランザクションの実行を行うことになる。
【００１５】
以上説明したように、本実施例によれば、データベースユーザによるデータベース資源の占有期間を短縮することにより、効率的なデータベース資源の活用ができるようになり、データベースサーバに対して同時に接続できるユーザ数を増やすことができる。
また、データベースに対するアクセス権限が同じユーザをデータベースに対して同一のユーザとみせかけることでデータベース接続・切断処理を省くことができる。
また、処理待ち状態にあるユーザの実行優先順位を過去のデータベースアクセスの蓄積情報により決定し処理効率を向上させることで、データベースユーザへの応答時間が短縮できる。
【００１６】
【発明の効果】
本発明によれば、データベースユーザによるデータベース資源の占有期間を短縮することにより、効率的なデータベース資源の活用ができるようになり、データベースサーバに対して同時に接続できるユーザ数を増やすことができる。
【図面の簡単な説明】
【図１】本発明におけるデータベースサーバの構成の一実施例を示す図である。
【図２】データベースサーバ処理の実施例のフローチャートを示す図である。
【図３】待ち行列がある場合のデータベースサーバ処理の実施例のフローチャートを示す図である。
【図４】認証情報変換情報の例を示す図である。
【図５】優先度定義情報の例を示す図である。
【図６】蓄積ユーザ情報の例を示す図である。
【図７】それぞれが複数のデータベース資源を持つ複数のデータベースシステムを備えるデータベースサーバの構成の一実施例を示す図である。
【符号の説明】
１０１  システムＡ
１０２  データベース資源割り当て装置
１０３  認証情報変換装置
１０４  認証情報変換情報
１０５  待ち行列管理装置
１０６  優先度定義情報
１０７  ユーザ情報蓄積装置
１０８  蓄積ユーザ情報
１０９  接続ユーザ情報
１１０  データベース
１１１  データベースマネージメントシステム
１１２  データベース資源
１１３〜１１５  データベースユーザ
【図１】
0003844933.tif 000002
【図２】
0003844933.tif 000003
【図３】
0003844933.tif 000004
【図４】
0003844933.tif 000005
【図５】
0003844933.tif 000006
【図６】
0003844933.tif 000007
【図７】
0003844933.tif 000008