(57)【要約】【課題】    本発明によれば、データベースサーバ及びデータベースクライアントを効率的に動作させることができるデータベースシステムを提供することができる。【解決手段】  本発明はデータベースサーバとデータベースクライアントを有するデータベースシステムに関する。そして、データベースサーバは、データベース処理部が行っているデータベース処理の処理量を、データベースクライアントごとに集計して取得する手段と、データベース処理部の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えたデータベースクライアントにデータベース処理の規制を通知する手段を有することを特徴とする、そして、データベースクライアントは、データベースサーバから、規制通知を受信した場合、その規制通知に基づきデータベース処理の要求を規制することを特徴とする【選択図】      図１
2015191533.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースクライアントと、上記データベースクライアントのそれぞれからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバとを備えるデータベースシステムにおいて、
上記データベースサーバは、
上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、
上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、
上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段とを有し。
それぞれの上記データベースクライアントは、
上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、
上記データベースサーバから、上記トランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段とを有する
ことを特徴とするデータベースシステム。
【請求項２】
上記サーバ側閾値は、単位時間あたりに上記データベース処理部が実行するデータベース処理の件数の上限であり、
上記クライアント側閾値は、単位時間あたりに上記データベース処理要求手段が、上記データベースサーバにデータベース処理の要求を行う要求件数の上限である
ことを特徴とする請求項１に記載のデータベースシステム。
【請求項３】
上記サーバ側閾値は、上記データベースサーバ上で、上記データベース処理部が使用するＣＰＵ使用率の上限であり、
上記クライアント側閾値は、上記データベースクライアント上で、上記データベース処理要求手段が使用するＣＰＵ使用率の上限であること
ことを特徴とする請求項１に記載のデータベースシステム。
【請求項４】
複数のデータベースクライアントからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバにおいて、
上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、
上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、
上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段と
を有することを特徴とするデータベースサーバ。
【請求項５】
データベースサーバに、データベース処理要求を送信するデータベースクライアントにおいて、
上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、
上記データベースサーバから、データベース処理の要求を規制する旨のトランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段と
を有することを特徴とするデータベースクライアント。
【請求項６】
複数のデータベースクライアントからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバプログラムにおいて、
コンピュータを、
上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、
上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、
上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段と
して機能させることを特徴とするデータベースサーバプログラム。
【請求項７】
データベースサーバに、データベース処理要求を送信するデータベースクライアントプログラムにおいて、
コンピュータを、
上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、
上記データベースサーバから、データベース処理の要求を規制する旨のトランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段と
して機能させることを特徴とするデータベースクライアントプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムに関し、例えば、データベースシステムにおけるトランザクション流量制御（輻輳制御）に適用し得る。
【背景技術】
【０００２】
一般に、データベースサーバ・クライアントシステム（以下、「ＤＢ−Ｓ／Ｃシステム」と呼ぶ）では、データベースクライアント（以下、「ＤＢクライアント」と呼ぶ）からデータベースサーバ（以下、「ＤＢサーバ」と呼ぶ）に対して接続セッションを生成し、データ検索要求や更新要求、すなわち、トランザクションを送信し、結果を受信する。
【０００３】
ＤＢクライアントにおいて生成する接続セッションは、複数生成することにより並列度が増す。つまり、生成する接続セッション数により、ＤＢクライアントの最大スループットが増加することになる。
【０００４】
しかし、これは、ＤＢサーバから見れば複数の接続セッションから、トランザクションを並列に受信、処理するため、サーバ負荷が増加することを意味する。
【０００５】
また、ＤＢクライアントが複数台接続される構成の場合、各ＤＢクライアントは全ＤＢクライアントからどのくらいのトランザクションが送信されていて、ＤＢサーバの負荷状態がどうなっているかを知る手段を持ち合わせていない。
【０００６】
従来、ＤＢサーバの負荷を制御する技術として特許文献１の記載技術がある。
【０００７】
特許文献１には、複数の端末とゲートウェイとＤＢサーバとからなるシステムについて記載されている。そして、特許文献１に記載されたシステムでは、ＤＢサーバへの通信要求メッセージ数が所定の数を超えた端末（ＤＢクラアント）に対し、ゲートウェイが当該端末からの呼を破棄することについて記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−２４３４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、従来のＤＢ−Ｓ／Ｃシステムにおいて、ＤＢクライアントは、サービスを提供するアプリケーション（以下、「ＡＰＬ」と呼ぶ）プロセスを用いて接続セッションを生成し、ＤＢサーバにアクセスする構成がある。
【００１０】
接続セッション上のトランザクションは、ＤＢクライアントからの要求に対して、ＤＢサーバから応答を受信する事で完結し、次の要求を送信できる。つまり、接続セッション上の送受信は、シーケンシャルとなるため、ハードウェア性能、ソフトウェア性能、ネットワーク性能等から、スループットが算出されることになる。
【００１１】
例えば、ＤＢサーバのトランザクション処理性能が１００件／秒であり、接続セッション１本あたりのスループットが５件／秒の時、４台のＤＢクライアントから計１０本の接続セッションによるトランザクション送受信を行うとすれば、ＤＢサーバの負荷は、データベースアクセス性能の５０％程度であると言える。
【００１２】
以上のように、従来のＤＢ−Ｓ／Ｃシステムでは、ＤＢクライアントの処理性能が接続セッション数により制限されることから、システム性能を十分に発揮できない場合があるという課題がある。
【００１３】
例えば、上述のＤＢ−Ｓ／Ｃシステムの例では、ＤＢサーバの性能１００件／秒に対し、接続ＤＢクライアント数４台であるため、ＤＢサーバ性能を各ＤＢクライアントに均等分配すると、２５件／秒、つまり、接続可能なセッション数はそれぞれ５本、ということになり、ＤＢクライアント視点では、ＤＢクライアント装置の性能を十分に利用できないということになる。これは、ＤＢクライアントからのトランザクション量が常に一定で、且つ、最大スループットである、という可能性は低いと考えられるからである。
【００１４】
そのため、データベースサーバ及びデータベースクライアントを効率的に動作させることができるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムが望まれている。
【課題を解決するための手段】
【００１５】
第１の本発明は、複数のデータベースクライアントと、上記データベースクライアントのそれぞれからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバとを備えるデータベースシステムにおいて、（１）上記データベースサーバは、（１−１）上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、（１−２）上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、（１−３）上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段とを有し、（２）それぞれの上記データベースクライアントは、（２−１）上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、（２−２）上記データベースサーバから、上記トランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段とを有することを特徴とする。
【００１６】
第２の本発明は、複数のデータベースクライアントからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバにおいて、（１）上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、（２）上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、（３）上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段とを有することを特徴とする。
【００１７】
第３の本発明は、データベースサーバに、データベース処理要求を送信するデータベースクライアントにおいて、（１）上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、（２）上記データベースサーバから、データベース処理の要求を規制する旨のトランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段とを有することを特徴とする。
【００１８】
第４の本発明は、複数のデータベースクライアントからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバプログラムにおいて、コンピュータを、（１）上記データベースクライアントからのデータベース処理要求に応じてデータベース処理を実行するデータベース処理部と、（２）上記データベース処理部が行っているデータベース処理の処理量を、上記データベースクライアントごとに集計して取得する処理量取得手段と、（３）上記データベース処理部が行うデータベース処理を制御するものであって、上記データベース処理部の全体の処理量がサーバ側閾値を超えた場合に、処理量がクライアント側閾値を超えている上記データベースクライアントの有無を確認し、該当する上記データベースクライアントがあった場合に、当該データベースクライアントに対して、データベース処理の要求量がクライアント側閾値以下となるように規制を要求するためのトランザクション規制通知を送信するトランザクション処理制御手段として機能させることを特徴とする。
【００１９】
第５の本発明は、データベースサーバに、データベース処理要求を送信するデータベースクライアントプログラムにおいて、コンピュータを、（１）上記データベースサーバにデータベース処理の要求を送信するデータベース処理要求手段と、（２）上記データベースサーバから、データベース処理の要求を規制する旨のトランザクション規制通知を受信した場合、上記トランザクション規制通知に基づき、上記データベース処理要求手段が要求するデータベース処理の処理量を制限する制御を行うデータベース処理要求制御手段として機能させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、データベースサーバ及びデータベースクライアントを効率的に動作させるデータベースシステムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】実施形態に係るデータベースシステムの全体構成について示したブロック図である。
【図２】実施形態に係るデータベースサーバで保持される規制条件情報の例（その１）である。
【図３】実施形態に係るデータベースサーバで保持される規制条件情報の例（その２）である。
【図４】実施形態に係るデータベースサーバの動作について示したフローチャート（その１）である。
【図５】実施形態に係るデータベースサーバの動作について示したフローチャート（その２）である。
【図６】実施形態に係るデータベースクライアントの動作について示したフローチャートである。
【発明を実施するための形態】
【００２２】
（Ａ）主たる実施形態
以下、本発明によるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント及びデータベースクライアントプログラムの一実施形態を、図面を参照しながら詳述する。以下では、本発明のデータベースシステムを、ＤＢ−Ｓ／Ｃシステム１に適用した場合について説明する。
【００２３】
（Ａ−１）実施形態の構成
図１は、この実施形態のＤＢ−Ｓ／Ｃシステム１の全体構成を示すブロック図である。
【００２４】
ＤＢ−Ｓ／Ｃシステム１は、ＤＢサーバ１０と、４台のＤＢクライアント２０（２０−１〜２０−４）を有している。なお、ＤＢ−Ｓ／Ｃシステム１において配置されるＤＢサーバ１０及びＤＢクライアント２０の数は限定されないものである。
【００２５】
ＤＢサーバ１０は、例えば、ＣＰＵやメモリ等を有するコンピュータに、データベースサーバプログラムを含むプログラムをインストールすることにより構築することができる。また、各ＤＢクライアント２０についても同様にコンピュータにデータベースクライアントプログラムを含むプログラムをインストールすることにより構築することができる。
【００２６】
ＤＢサーバ１０は、データベースのデータを記憶するためのＤＢファイルシステム１３、各ＤＢクライアント２０にＤＢファイルシステム１３に記憶されたデータベースを利用したサービスを提供（トランザクションの処理を実行）するサーバプロセス１１、及び、ＤＢサーバ１０と各ＤＢクライアント２０との間のトランザクション処理の流量制御（輻輳制御）を行うトランザクショントラヒック管理部１２を有している。
【００２７】
トランザクショントラヒック管理部１２は、サーバプロセス１１の動作状態を監視する。具体的には、トランザクショントラヒック管理部１２は、ＤＢクライアント２０毎の処理量（例えば、処理されるトランザクションの単位時間あたりの処理件数やＣＰＵ使用率等）を監視（集計）することにより、サーバプロセス１１による処理負荷の総量（負荷状態）も監視する。また、トランザクショントラヒック管理部１２は、サーバプロセス１１が輻輳状態となった場合に、各ＤＢクライアント２０を制御して、サーバプロセス１１が安定的に動作するようにする。
【００２８】
例えば、トランザクショントラヒック管理部１２は、サーバプロセス１１の処理量に応じて、サーバプロセス１１が輻輳状態であるか否かを判定し、輻輳状態と判定した場合には、トランザクション処理規制の発動を各ＤＢクライアント２０に通知（以下、「輻輳規制通知」と呼ぶ）する。輻輳規制通知を受信した各ＤＢクライアント２０は、その輻輳規制通知に基づき、必要に応じて、トランザクション処理要求の規制（抑制）を実行する。また、サーバプロセス１１は、その後サーバプロセス１１の動作状態に応じて、トランザクション処理規制を解除した旨を各ＤＢクライアント２０に通知（以下、「輻輳規制解除通知」と呼ぶ）する。輻輳規制解除通知を受信した各ＤＢクライアント２０は、トランザクション処理要求の規制を行っていた場合、その規制を中止する。
【００２９】
ＤＢ−Ｓ／Ｃシステム１では、以上のような制御処理（以下、「トランザクション制御処理」と呼ぶ）が行われる。トランザクショントラヒック制御の詳細については後述する。  
ＤＢクライアント２０には、ＤＢサーバ１０のデータベースにアクセスするＡＰＬプロセス２１、及びＡＰＬプロセス２１を介してＤＢサーバ１０のデータベースを利用するアプリケーション（ＡＰＬプロセス２１の上位層に位置するアプリケーション）であるＡＰＬ上位層２３を有している。ＡＰＬ上位層２３の構成については限定されないものであり、種々のアプリケーションプログラムを適用することができる。
【００３０】
ＡＰＬプロセス２１には、自身のトランザクション要求を制御するトランザクション制御部２２が搭載されている。トランザクション制御部２２は、ＤＢサーバ１０から通知される輻輳規制通知及び輻輳規制解除通知に応じて、ＡＰＬプロセス２１のトランザクション要求の量（トランザクション送信量）の規制及び規制解除を行う。
【００３１】
トランザクション制御部２２は、ＡＰＬ上位層２３（例えば、ＤＢサーバ１０のデータベースのデータを利用する上位アプリケーション）からのデータベースアクセス要求受付時（トランザクション実行受付時）に、ＤＢサーバ１０ヘのトランザクションの送信可否を判断し、当該トランザクション送信ができない状況である場合ＡＰＬ上位層２３へその旨を通知したり、当該トランザクションを待ち行列等で管理する等の処理を行う。
【００３２】
次に、ＤＢサーバ１０のトランザクショントラヒック管理部１２、及びＤＢクライアント２０のトランザクション制御部２２が行うトランザクショントラヒック制御について説明する。
【００３３】
ＤＢ−Ｓ／Ｃシステム１では、ＤＢサーバ１０（サーバプロセス１１）のトランザクション処理に係る処理量、及び各ＤＢクライアント２０のトランザクション処理に係る処理量に基づいて、トランザクショントラヒック制御（トランザクション処理の規制制御等）を行う。具体的には、ＤＢ−Ｓ／Ｃシステム１では、各装置のトランザクション処理の処理量と、所定の閾値（以下、「流量規制閾値」と呼ぶ）との比較結果に応じて、トランザクション処理の規制開始や規制解除を実行する。
【００３４】
上述の通り、ＤＢサーバ１０のトランザクショントラヒック管理部１２では、サーバプロセス１１でのトランザクションの処理量を監視・集計し、その処理量がＤＢサーバ１０側の流量規制閾値（以下、「ＤＢサーバ閾値」と呼ぶ）を超えた場合に、ＤＢサーバ１０が輻輳状態になったと判断し、トランザクション処理の規制を開始する。このとき、トランザクショントラヒック管理部１２は、各ＤＢクライアント２０に輻輳規制通知を通知する処理等により、各ＤＢクライアント２０にからＤＢサーバ１０（サーバプロセス１１）へのトランザクション要求の量がＤＢクライアント２０側の流量規制閾値（以下、「ＤＢクライアント閾値」と呼ぶ）を超えないように規制する制御を行う。そして、トランザクショントラヒック管理部１２は、サーバプロセス１１でのトランザクションの処理量がＤＢサーバ閾値を下回るようになった場合に、ＤＢサーバ１０が輻輳状態でなくなったと判断し、トランザクション処理の規制を解除する処理を開始する。このとき、トランザクショントラヒック管理部１２は、各ＤＢクライアント２０に輻輳規制解除通知を通知する処理等により、各ＤＢクライアント２０からＤＢサーバ１０（サーバプロセス１１）へのトランザクション要求の規制を解除する。
【００３５】
ＤＢ−Ｓ／Ｃシステム１において、流量規制閾値（ＤＢクライアント閾値及びＤＢサーバ閾値）に用いるパラメータ（トランザクショントラヒック管理部１２が集計、管理するデータの種類）については限定されないものであるが、例えば、単位時間あたりのトランザクション処理量（処理件数）を用いるようにしてもよい。
【００３６】
例えば、ＤＢサーバ１０のトランザクショントラヒック管理部１２において、サーバプロセス１１と接続しているＤＢクライアント２０（データベース処理の通信セッションが確立しているＤＢクライアント２０）ごとに、実行中のトランザクションを定周期で集計（監視）し、その結果から、ＤＢクライアント２０毎のトランザクション量、つまり、各ＤＢクライアント２０のＤＢサーバ１０へ負荷、及び、全ＤＢクライアント２０の負荷を元に、ＤＢサーバ１０全体の負荷状況を計算することができる。
【００３７】
ここでは、ＤＢサーバ１０は、１秒あたり１００件のトランザクションを実行可能（１００件／秒）であるものとする。また、以下では、ＤＢクライアント２０から同時に２０セッションの接続を可能（同時に２０個のトランザクションを並行処理可能）とするものとする。さらに、ＤＢサーバ１０において、１本のセッションで１秒間に処理可能なトランザクション数は５件（５件／秒）であるものとする。したがって、ＤＢサーバ１０が同時に２０本のセッションでトランザクション処理を受付けた場合、性能の１００％の使用率となり、それ以上のトランザクション要求を受けると輻輳状態となる。また、これにより、ＤＢクライアント２０からの最大スループットを、１００件／秒とすることも可能となり、ＤＢクライアント２０性能の１００％を利用可能とする。
【００３８】
この実施形態において、トランザクショントラヒック管理部１２には、トランザクション処理の規制を行う際の流量規制閾値について定義した情報として、規制条件情報１２ａを保持している。そして、トランザクショントラヒック管理部１２は、起動時にこの規制条件情報１２ａを読み込んでトランザクション処理の制御（トランザクション処理の規制等）を行う。
【００３９】
トランザクショントラヒック管理部１２は、規制条件情報１２ａで定義された流量規制閾値（ＤＢクライアント閾値及びＤＢサーバ閾値）に基づいて、各ＤＢクライアント２０からのトランザクション量の変動、つまり、閾値未満から閾値超過に、または、闘値以上から閾値未満に変換が無いかをチェックし、その結果により、トランザクション処理の規制または、解除が必要となるＤＢクライアント２０に対して、その旨（輻輳規制通知又は輻輳規制解除通知）を通知する。
【００４０】
図２は、規制条件情報１２ａの構成例について示している。
【００４１】
図２に示す規制条件情報１２ａでは、ＤＢクライアント閾値として２６件／秒、ＤＢサーバ閾値として９６件／秒が設定されている。
【００４２】
ここでは、ＤＢサーバ閾値として、ＤＢサーバ１０の性能を１００％使い切らない程度の閾値として９６件／秒が設定されているものとする。なお、ＤＢサーバ１０の性能を１００％使い切る場合には、ＤＢサーバ閾値は１００件／秒となる。そして、ここでは、ＤＢサーバ閾値（９６件／秒）を４台のＤＢクライアント２０で等分した２４件／秒（ＤＢサーバ閾値をＤＢクライアント２０の台数で割った値）が、ＤＢクライアント閾値に設定されているものとする。
【００４３】
規制条件情報１２ａの内容が図２のように設定されている場合、ＤＢサーバ１０の負荷状況に応じて、ＤＢクライアント２０はＤＢサーバ１０性能を最大９６％まで利用できることになる。また、全ＤＢクライアント２０から負荷が高い場合は、ＤＢサーバ１０の性能を２４％（９６／４＝２４％）でシェアする条件まで規制することができる。
【００４４】
また、この実施形態のＤＢ−Ｓ／Ｃシステム１において、流量規制閾値に用いるパラメータは、トランザクションの処理件数に限定されず、各装置（ＤＢサーバ１０及びＤＢクライアント２０）を構成するコンピュータのＣＰＵ使用率に換算した値（例えば、トランザクション毎にＣＰＵ使用率に変換した値）としてもよい。
【００４５】
流量規制閾値に用いるパラメータとしてＣＰＵ使用率を適用した場合、トランザクショントラヒック監視処理が保持する規制条件情報１２ａの内容は、例えば、図３の内容となる。
【００４６】
図３に示す規制条件情報１２ａの内容は、図２に示す規制条件情報１２ａのトランザクション件数をＣＰＵ使用率に換算した場合の内容となっている。そのため、図３に示す規制条件情報１２ａでは、ＤＢクライアント閾値としてＣＰＵ使用率２６％、ＤＢサーバ閾値としてＣＰＵ使用率９６％が設定されている。なお、ここでは、ＤＢクライアント２０側で１秒間に１件のトランザクション処理を要求する場合のＣＰＵ使用率は１％であるものとする。また、ＤＢサーバ１０側で１秒間に１件のトランザクション処理を実行する場合のＣＰＵ使用率も１％であるものとする。
【００４７】
規制条件情報１２ａの内容が図３のように設定されている場合も、上述の図２の場合と同様に、ＤＢサーバ１０の動作状況（負荷状況）に応じて、ＤＢクライアント２０はＤＢサーバ１０性能を最大９６％まで利用できることになる。また、全ＤＢクライアント２０から負荷が高い場合も、上述の図２の場合と同様に、ＤＢサーバ１０の性能を２４％（９６／４＝２４％）でシェアする条件まで規制することができる。
【００４８】
なお、トランザクショントラヒック管理部１２は、各ＤＢクライアント２０のトランザクション処理に係る処理量については、サーバプロセス１１でのトランザクションの受付け状況から取得するようにしてもよいし、各ＤＢクライアント２０（トランザクション制御部２２）から直接取得するようにしてもよい
（Ａ−２）実施形態の動作
次に、以上のような構成を有するこの実施形態のＤＢ−Ｓ／Ｃシステム１の動作を説明する。
【００４９】
以下では、ＤＢ−Ｓ／Ｃシステム１において、流量規制閾値のパラメータとしてトランザクションの処理件数が適用される場合（規制条件情報１２ａとして上述の図２の内容が適用される場合）と、流量規制閾値のパラメータとしてＣＰＵ使用率が適用される場合（規制条件情報１２ａとして上述の図３の内容が適用される場合）について説明する。
【００５０】
まず、ＤＢサーバ１０（トランザクショントラヒック管理部１２）の動作について、図４、図５のフローチャートを用いて説明する。
【００５１】
ＤＢサーバ１０のトランザクショントラヒック管理部１２は、起動時に規制条件情報１２ａからトランザクショントラヒック制御に用いる流量規制閾値（ＤＢクライアント閾値及びＤＢサーバ閾値）を読込む（Ｓ１０１）。
【００５２】
そして、トランザクショントラヒック管理部１２は、サーバプロセス１１で接続中のセッション及びトランザクションの実行状況をチェック（トランザクション処理量をチェック）し（Ｓ１０２）、流量規制閾値（ＤＢサーバ閾値、及びＤＢクライアント閾値）との比較結果に基づくトランザクション処理の規制要否の判定を行う（Ｓ１０３）。
【００５３】
そして、トランザクショントラヒック管理部１２は、規制要否の判断結果を確認し（Ｓ１０４）、規制要という判断だった場合後述するステップＳ１０５から動作し、規制不要という判断結果だった場合は後述するステップＳ１０７から動作する。
【００５４】
トランザクション処理の規制要という判断だった場合、トランザクショントラヒック管理部１２は、現在トランザクション処理の規制中であるか非規制中であるかを確認し（Ｓ１０５）、トランザクション処理の非規制中だった場合、各ＤＢクライアント２０に輻輳規制通知を通知し（Ｓ１０６）、上述のステップＳ１０２の処理に戻って動作する。
【００５５】
一方、上述のステップＳ１０５で、トランザクション処理の規制中と確認された場合には、トランザクショントラヒック管理部１２は、上述のステップＳ１０２に戻って動作する。
【００５６】
一方、上述のステップＳ１０４で、トランザクション処理の規制不要と確認された場合、トランザクショントラヒック管理部１２は、現在トランザクション処理の規制中であるか非規制中であるかを確認し（Ｓ１０７）、トランザクション処理の規制中だった場合、各ＤＢクライアント２０に輻輳規制解除通知を通知し（Ｓ１０８）上述のステップＳ１０２の処理に戻って動作する。
【００５７】
一方、上述のステップＳ１０７で、トランザクション処理の非規制中と確認された場合には、トランザクショントラヒック管理部１２は、上述のステップＳ１０２に戻って動作する。
【００５８】
次に、トランザクショントラヒック管理部１２が、流量規制閾値に基づいてトランザクション処理の規制の要否を判定する処理（上述のステップＳ１０２、Ｓ１０３の処理）を行う際の詳細について図４のフローチャートを用いて説明する。
【００５９】
まず、トランザクショントラヒック管理部１２が、サーバプロセス１１の動作状況をチェックし、各ＤＢクライアント２０に係るトランザクション処理の処理量を集計する（Ｓ２０１）。
【００６０】
そして、トランザクショントラヒック管理部１２は、トランザクションの処理量がＤＢクライアント閾値を超えるＤＢクライアント２０が存在するか否かを確認し（Ｓ２０２）、該当するＤＢクライアント２０が存在する場合には後述するステップＳ２０３から動作し、該当するＤＢクライアント２０が存在しない場合には、ステップＳ２０４に移行して規制不要と判断する。
【００６１】
上述のステップＳ２０２で、トランザクションの処理量がＤＢクライアント閾値を超えるＤＢクライアント２０が存在すると判定された場合、トランザクショントラヒック管理部１２は、サーバプロセス１１全体の処理量がＤＢサーバ閾値を超えるか否かを確認する（Ｓ２０３）。このとき、トランザクショントラヒック管理部１２は、ＤＢサーバ閾値を超えると判定した場合には、ステップＳ２０５に移行してトランザクション処理の規制要と判断し、そうでないと判定した場合にはステップＳ２０４に移行してトランザクションの規制不要と判定する。
【００６２】
ＤＢ−Ｓ／Ｃシステム１において、流量規制閾値のパラメータとしてトランザクションの処理件数が適用される場合（規制条件情報１２ａとして上述の図２の内容が適用される場合）、上述のステップＳ２０１で、トランザクショントラヒック管理部１２は、ＤＢクライアント２０ごとのトランザクション処理件数（件／秒）を集計し、さらに、サーバプロセス１１全体のトランザクション処理件数（件／秒）も把握する。そして、トランザクショントラヒック管理部１２は、上述のステップＳ２０２で、ＤＢクライアント閾値（２４件／秒）を超えるＤＢクライアント２０の有無を確認し、上述のステップＳ２０３でサーバプロセス１１のトランザクション処理件数がＤＢサーバ閾値（９６件／秒）を超えているか否かを確認する。したがって、この場合、トランザクショントラヒック管理部１２は、ＤＢクライアント閾値（２４件／秒）を超えるＤＢクライアント２０があり、さらに、サーバプロセス１１のトランザクション処理件数がＤＢサーバ閾値（９６件／秒）を超えている場合に規制要と判断する。なお、トランザクショントラヒック管理部１２は、ＤＢクライアント閾値（２４件／秒）を超えるＤＢクライアント２０があっても、サーバプロセス１１のトランザクション処理件数がＤＢサーバ閾値（９６件／秒）を超えていない場合は規制不要と判断（２４件／秒を超えるＤＢクライアント２０を許容すると判断）する。
【００６３】
ＤＢ−Ｓ／Ｃシステム１において、流量規制閾値のパラメータとしてＣＰＵ使用率が適用される場合（規制条件情報１２ａとして上述の図３の内容が適用される場合）、上述のステップＳ２０１で、トランザクショントラヒック管理部１２は、ＤＢクライアント２０ごとのＣＰＵ使用率（％）を集計し、さらに、サーバプロセス１１全体のＣＰＵ使用率（％）も把握する。そして、トランザクショントラヒック管理部１２は、上述のステップＳ２０２で、ＤＢクライアント閾値（ＣＰＵ使用率２４％）を超えるＤＢクライアント２０の有無を確認し、上述のステップＳ２０３でサーバプロセス１１のトランザクション処理件数がＤＢサーバ閾値（ＣＰＵ使用率９６％）を超えているか否かを確認する。したがって、この場合、トランザクショントラヒック管理部１２は、ＤＢクライアント閾値（ＣＰＵ使用率２４％）を超えるＤＢクライアント２０があり、さらに、サーバプロセス１１のトランザクション処理件数がＤＢサーバ閾値（ＣＰＵ使用率９６％）を超えている場合に規制要と判断する。なお、トランザクショントラヒック管理部１２は、ＤＢクライアント閾値（ＣＰＵ使用率２４％）を超えるＤＢクライアント２０があっても、サーバプロセス１１のトランザクション処理件数がＤＢサーバ閾値（ＣＰＵ利用率９６％）を超えていない場合は規制不要と判断（ＣＰＵ使用率２４％を超えるＤＢクライアント２０を許容すると判断）する。
【００６４】
次に、ＤＢクライアント２０（トランザクション制御部２２）の動作について説明する。
【００６５】
ＤＢクライアント２０（トランザクション制御部２２）は、ＤＢサーバ１０からの輻輳規制通知を受信した場合には、輻輳規制解除通知を受けるまで、ＡＰＬ上位層２３からのＤＢアクセス要求に対して、トランザクションの規制中の動作条件に基づいて処理を実施する。
【００６６】
ここでは、ＤＢサーバ１０からの輻輳規制通知の内容には、トランザクションの規制の内容（ＤＢクライアント閾値）も含まれているものとする。すなわち、ＤＢクライアント２０（トランザクション制御部２２）は、輻輳規制通知に含まれるＤＢクライアント閾値を受信することにより、トランザクション要求をどのくらい規制すれば良いかを判断することができる。
【００６７】
ＤＢクライアント２０（トランザクション制御部２２）では、接続セッションの利用状況、つまり、現在のトランザクション要求の送信量を把握できるため、輻輳規制通知（ＤＢクライアント閾値）に合致するトランザクション量まで制限する事が可能となる。ＤＢクライアント２０（トランザクション制御部２２）がトランザクション処理の規制中に、ＡＰＬ上位層２３からＤＢアクセスの要求を受付け、当該ＤＢアクセスの要求を受付けることができない場合には、例えば、ＡＰＬ上位層２３へエラーを返却（ＤＢアクセスが不可である旨のエラー通知）する処理や、規制解除まで当該ＤＢアクセスの要求を、キュー（待ち行列）に蓄積して、ＤＢクライアント閾値の範囲内でＤＢサーバ１０に送信する等の構成を適用することができる。
【００６８】
また、ＤＢクライアント２０（トランザクション制御部２２）は、ＤＢアクセス要求の種別毎に、規制条件を付与し、優先制御する事も可能である。例えば、ＤＢクライアント２０（トランザクション制御部２２）は、トランザクション処理の規制中状態であっても（最低２４件／秒のＤＢサーバ１０利用は可能であるわけだから）あるサービスによるＤＢアクセスは優先的にトランザクション要求を送信し、それ以外のＤＢアクセス要求は規制対象とすることも可能である。
【００６９】
上述のようなＤＢクライアント２０（トランザクション制御部２２）の処理をフローチャートで示すと図５のようになる。
【００７０】
図５のフローチャートは、ＤＢクライアント２０において、ＡＰＬプロセス２１がＡＰＬ上位層２３からＤＢアクセス要求を受付けた場合の処理について示している。
【００７１】
トランザクション制御部２２は、ＡＰＬプロセス２１が、ＡＰＬ上位層２３からＤＢアクセスの要求を受付けたことを確認すると（Ｓ３０１）、輻輳規制中（輻輳規制通知が通知された後輻輳規制解除通知が通知されていない状態）であるか否かを確認する（Ｓ３０２）。そして、トランザクション制御部２２は、輻輳規制中と判断した場合には後述するステップＳ３０３から動作し、輻輳規制中でないと確認された場合には、後述するステップＳ３０５から動作する。
【００７２】
輻輳規制中であると確認された場合、トランザクション制御部２２は、現在のＡＰＬプロセス２１によるトランザクションの要求状況を確認する（Ｓ３０３）。
【００７３】
次に、トランザクション制御部２２は、ＤＢサーバ１０から通知された輻輳規制通知に含まれるＤＢクライアント閾値と、上述のステップＳ３０３で確認した要求状況とに基づいて、今回ＡＰＬ上位層２３から要求されたＤＢアクセス要求に基づくトランザクション要求の規制の要否を判定する（Ｓ３０４）。
【００７４】
この場合、トランザクション制御部２２は、ステップＳ３０３で確認した値が、ＤＢクライアント閾値を超えていない場合には、トランザクション要求の規制不要と判断して、ＡＰＬプロセス２１に今回のトランザクション要求を送信させ（Ｓ３０５）処理を終了する。一方、ステップＳ３０３で確認した値が、ＤＢクライアント閾値を超える場合に、トランザクション制御部２２は、ＡＰＬプロセス２１に今回のトランザクション要求を規制する処理（例えば、上述のＡＰＬ上位層２３へエラーを返却する処理等）を行う（Ｓ３０６）。
【００７５】
ＤＢ−Ｓ／Ｃシステム１において、流量規制閾値のパラメータとしてトランザクションの処理件数（件／秒）が適用される場合（規制条件情報１２ａとして上述の図２の内容が適用される場合）、上述のステップＳ３０３で、トランザクション制御部２２は、自装置のトランザクション処理件数（件／秒）を確認し、上述のステップＳ３０４で輻輳規制通知で指定されたＤＢクライアント閾値（２４件／秒）と比較する。そして、トランザクション制御部２２は、自装置のトランザクション処理件数（件／秒）がＤＢクライアント閾値（２４件／秒）を超える場合、トランザクション処理要求の規制が必要と判断し、上述のステップＳ３０６で、今回のトランザクション要求を規制する処理を行う。また、トランザクション制御部２２は、自装置のトランザクション処理件数（件／秒）がＤＢクライアント閾値（２４件／秒）を超えない場合、トランザクション処理要求の規制は不要と判断し、ステップＳ３０５で今回のトランザクション処理要求を送信する。
【００７６】
一方、  ＤＢ−Ｓ／Ｃシステム１において、流量規制閾値のパラメータとしてＣＰＵ使用率（％）が適用される場合（規制条件情報１２ａとして上述の図３の内容が適用される場合）、上述のステップＳ３０３で、トランザクション制御部２２は、ＡＰＬプロセス２１のトランザクション要求処理によるＣＰＵ使用率（％）を確認し、上述のステップＳ３０４で輻輳規制通知で指定されたＤＢクライアント閾値（ＣＰＵ使用率２４％）と比較する。そして、トランザクション制御部２２は、確認したＣＰＵ使用率（％）がＤＢクライアント閾値（ＣＰＵ使用率２４％）を超える場合、トランザクション処理要求の規制が必要と判断し、上述のステップＳ３０６で、今回のトランザクション要求を規制する処理を行う。また、トランザクション制御部２２は、ＡＰＬプロセス２１のトランザクション要求処理によるＣＰＵ使用率（％）がＤＢクライアント閾値（２４件／秒）を超えない場合、トランザクション処理要求の規制は不要と判断し、ステップＳ３０５で今回のトランザクション処理要求を送信する。
【００７７】
（Ａ−３）実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
【００７８】
ＤＢ−Ｓ／Ｃシステム１では、ＤＢサーバ１０の負荷状況をモニタし、各ＤＢクライアント２０への輻輳規制通知を実施することで、ＤＢクライアント２０からＤＢサーバ１０の性能を超えるトランザクション要求送信が発生することなく、ＤＢクライアント２０はＤＢサーバ１０の輻輳規制を受信することで、ＤＢサーバ１０の輻輳をＡＰＬ上位層２３（例えば、ＡＰＬ上位層２３を利用するユーザ）に通知することができる。
【００７９】
また、ＤＢサーバ１０の負荷が小さい時には、1台のＤＢクライアント２０が、ＤＢサーバ１０性能を最大限まで利用することができる。
【００８０】
（Ｂ）他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【００８１】
（Ｂ−１）上記の実施形態では、トランザクショントラヒック管理部１２が使用する流量規制閾値（規制条件情報１２ａ）は固定値であるものとして説明したが動的な値としてもよい。例えば、トランザクショントラヒック管理部１２は、時間帯に応じて適用する流量規制閾値（規制条件情報１２ａ）を変更するようにしてもよい。例えば、ＤＢサーバ１０上で、ある時間帯に夜間バッチ処理が実施される場合は、その時間帯に限定して、接続してくるＤＢクライアント２０からのトランザクション流量を規制することも可能となる。
【００８２】
また、トランザクショントラヒック管理部１２において、ＤＢクライアント２０毎に適用する閾値を変更可能としてもよい。例えば、ＤＢクライアント２０毎に提供するサービスが異なり、それに伴い、ＤＢアクセスの発生量にも差がある場合には、閾値を各々定義することで、効率よくＤＢサーバ１０を利用し、輻輳規制の条件についても、適正値を用いることが可能となる。
【００８３】
さらにまた、トランザクショントラヒック管理部１２において、現在サーバプロセス１１にセッション接続中のＤＢクライアント２０の数に応じて、ＤＢクライアント閾値を変更するようにしてもよい。例えば、上記の実施形態では、説明を簡易とするため、４台のＤＢクライアント２０−１〜２０−４がＤＢサーバ１０に接続する構成として説明したが、多数のＤＢクライアント２０が存在し、そのうち同時にＤＢサーバ１０に接続するＤＢクライアント２０の数が時間帯による変動する構成としてもよい。この場合、トランザクショントラヒック管理部１２が、サーバプロセス１１にセッション接続中のＤＢクライアント２０の数Ｍを確認し、ＤＢクライアント閾値をセッション数Ｍで割った値をＤＢクライアント閾値（ＤＢクライアント閾値＝ＤＢサーバ閾値／Ｍ）としてもよい。
【００８４】
（Ｂ−２）上記の実施形態では、ＤＢサーバ１０とＤＢクライアント２０との間の規制通知（輻輳規制通知及び輻輳規制解除通知の通知方式）については、規制または解除発生時にＤＢサーバ１０から通知する「通知型」だったが、これは、例えば、ＤＢクライアント２０から定期的にＤＢサーバ１０に規制状態を確認する「ポーリング型」でも良い。
【符号の説明】
【００８５】
１…ＤＢ−Ｓ／Ｃシステム、１０…ＤＢサーバ、１１…サーバプロセス、１２…トランザクショントラヒック管理部、１２ａ…規制条件情報、１３…ＤＢファイルシステム
２０、２０−１〜２０−４…ＤＢクライアント、２１…ＡＰＬプロセス、２２…トランザクション制御部、２３…ＡＰＬ上位層。
【図１】
2015191533.tif 000003
【図２】
2015191533.tif 000004
【図３】
2015191533.tif 000005
【図４】
2015191533.tif 000006
【図５】
2015191533.tif 000007
【図６】
2015191533.tif 000008