(57)【要約】【課題】本発明は、データベース管理装置を提供する。【解決手段】データベース管理装置１０は、各セッション処理部３０―ｎと対応して配列された各第１配列要素の取り出し及び返却にかかる配列移動を第１制御形式にて管理すると共に第１の要求が到来すると未使用の一のセッション処理部に対応する一の第１配列要素を第１制御形式に従った配列移動により取り出して死活監視手段１１に割り当てる第１の管理手段５０、各セッション処理部３０―ｎと対応して配列された各第２配列要素の取り出し及び返却にかかる配列移動を第２制御形式にて管理すると共に第２の要求が到来すると未使用の他のセッション処理部に対応する一の第２配列要素を第２制御形式に従った配列移動により取り出しアプリケーション実行手段１２に割り当てる第２の管理手段６０を含む。【選択図】図１
2010218414.tif 000002
【特許請求の範囲】
【請求項１】
データベースに接続してデータを参照又は更新するための２以上のセッション処理部を各々保持するセッション保持手段と、
保持されている前記各セッション処理部の稼働状態を確認するための稼働状態確認処理を実行する死活監視手段と、
保持されている前記各セッション処理部を使用してアプリケーション処理を実行するアプリケーション実行手段と、
前記各セッション処理部と対応して配列された各第１配列要素の取り出し及び返却にかかる配列移動を予め特定した第１制御形式にて管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記稼働状態確認処理を実行するために割り当てを要求する第１の要求が前記死活監視手段より到来した場合に未使用のセッション処理部を検索しこれによって特定された一のセッション処理部に対応する一の第１配列要素を前記第１制御形式に従った配列移動により取り出して前記死活監視手段に割り当てる第１の管理手段と、
前記各セッション処理部と対応して配列された各第２配列要素の取り出し及び返却にかかる配列移動を前記第１制御形式と異なる予め特定した第２制御形式にて管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記アプリケーション処理を実行するために割り当てを要求する第２の要求が前記アプリケーション実行手段より到来した場合に未使用のセッション処理部を検索しこれによって特定された他のセッション処理部に対応する一の第２配列要素を前記第２制御形式に従った配列移動により取り出して前記アプリケーション実行手段に割り当てる第２の管理手段と、
を備えたことを特徴とするデータベース管理装置。
【請求項２】
請求項１に記載のデータベース管理装置において、
前記第１の管理手段は、
前記稼働状態確認処理による前記一のセッション処理部の使用後に、前記第１制御形式に従って前記一の第１配列要素を返却して配列移動する機能を備え、
前記第２の管理手段は、
前記アプリケーション処理による前記他のセッション処理部の使用後に、前記第２制御形式に従って前記一の第２配列要素を返却して配列移動する機能を備えている、
ことを特徴とするデータベース管理装置。  
【請求項３】
請求項２に記載のデータベース管理装置において、
前記第１の管理手段は、
前記各第１配列要素を各第１セッションポインタとして格納するとともに配列方向一端部に取り出し口が他端部に格納口が形成された第１セッションポインタ格納部と、
前記割り当てによる取り出し及び使用後の返却にかかる前記各第１セッションポインタの配列移動を先入れ先出し型のキュー制御形式で管理する第１のセッション管理部と、
を備えていることを特徴とするデータベース管理装置。
【請求項４】
請求項３に記載のデータベース管理装置において、
前記第２の管理手段は、
前記各第２配列要素を各第２セッションポインタとして格納するとともに配列方向一端部に格納口及び取り出し口を兼ねた一開口が形成された第２セッションポインタ格納部と、
前記割り当てによる取り出し及び使用後の返却にかかる前記各第２セッションポインタの配列移動を後入れ先出し型のスタック制御形式で管理する第２のセッション管理部と、
を備えていることを特徴とするデータベース管理装置。
【請求項５】
請求項４に記載のデータベース管理装置において、
前記セッション処理部には、
前記データベースとの間の通信を行う通信機能と、
当該通信機能が使用中であるか未使用であるかどうかを判断するとともにこの判断情報を格納している使用判断機能を予め備えており、
前記第１のセッション管理部が、
前記第１セッションポインタに対応する前記セッション処理部にかかる前記使用判断機能に前記判断情報を問い合わせ、未使用となっている場合には当該セッション処理部を前記死活監視手段に対して割り当てるとともに前記使用判断機能における判断情報を使用中に変更する機能を備えたことを特徴とするデータベース管理装置。
【請求項６】
請求項５に記載のデータベース管理装置において、
前記第２のセッション管理部が、
前記第２セッションポインタに対応する前記セッション処理部にかかる前記使用判断機能に問い合わせ、未使用となっている場合には当該セッション処理部を前記アプリケーション実行手段に対して割り当てるとともに前記使用判断機能における判断情報を使用中に変更する機能を備えたことを特徴とするデータベース管理装置。
【請求項７】
請求項６に記載のデータベース管理装置において、
前記第１のセッション管理部は、
前記使用判断機能が使用中となっている場合には前記第１セッションポインタ格納部で次の優先順位の前記第１セッションポインタに対応する前記セッション処理部にかかる前記使用判断機能に前記判断情報を問い合わせる機能を備えていることを特徴とするデータベース管理装置。
【請求項８】
請求項７に記載のデータベース管理装置において、
前記第２のセッション管理部は、
前記使用判断機能が使用中となっている場合には前記第２セッションポインタ格納部で次の優先順位の前記第２セッションポインタに対応する前記セッション処理部にかかる前記使用判断機能に前記判断情報を問い合わせる機能を備えていることを特徴とするデータベース管理装置。
【請求項９】
請求項８に記載のデータベース管理装置において、
前記死活監視手段は、
前記第１のセッション管理部から前記セッション処理部を割り当てられた場合に、当該割り当てられたセッション処理部にかかる前記通信機能を用いて前記データベースとの通信可否の確認を行い、死活監視処理が完了したら当該セッション処理部を返却する旨の通知を前記第１のセッション管理部に対して行う機能を備えていることを特徴とするデータベース管理装置。
【請求項１０】
請求項９に記載のデータベース管理装置において、
前記第１のセッション管理部は、
前記死活監視手段より返却する旨の通知を受信すると、使用が完了した前記セッション処理部にかかる前記使用判断機能を参照して判断情報を使用中から未使用に変更するとともに、前記第１セッションポインタ格納部でキューの最下位の優先順位の前記第１セッションポインタに前記使用が完了したセッション処理部を対応づけることにより前記使用が完了したセッション処理部の返却を行う機能を備えていることを特徴とするデータベース管理装置。
【請求項１１】
請求項１０に記載のデータベース管理装置において、
前記アプリケーション実行手段は、
前記第２のセッション管理部から前記セッション処理部を割り当てられた場合に、当該割り当てられたセッション処理部にかかる前記通信機能を用いて前記データベースとの通信可否の確認を行い、アプリケーション実行処理が完了したら当該セッション処理部を返却する旨の通知を前記第２のセッション管理部に対して行う機能を備えていることを特徴とするデータベース管理装置。
【請求項１２】
請求項１１に記載のデータベース管理装置において、
前記第２のセッション管理部は、
前記アプリケーション実行手段より返却する旨の通知を受信すると、使用が完了した前記セッション処理部にかかる前記使用判断機能を参照して判断情報を使用中から未使用に変更するとともに、前記第２セッションポインタ格納部でスタックの最上位の優先順位の前記第２セッションポインタに前記使用が完了したセッション処理部を対応づけることにより前記使用が完了したセッション処理部の返却を行う機能を備えていることを特徴とするデータベース管理装置。
【請求項１３】
請求項１２に記載のデータベース管理装置において、
少なくとも一つのプロセスを処理するプロセス処理手段をさらに備え、
前記プロセス処理手段が、前記セッション保持手段、前記死活監視手段、前記アプリケーション実行手段、前記第１の管理手段、及び前記第２の管理手段を装備することを特徴とするデータベース管理装置。  
【請求項１４】
データベースに接続してデータを参照又は更新するための２以上のセッション処理部をセッション保持手段が各々保持し、
前記各セッション処理部と対応して配列された各第１配列要素の取り出し及び返却にかかる配列移動を予め特定した第１制御形式にて第１の管理手段が管理すると共に、前記各セッション処理部のうちのいずれかを使用して稼働状態確認処理を実行するために割り当てを要求する第１の要求が死活監視手段より到来した場合に未使用のセッション処理部を検索しこれによって特定された一のセッション処理部に対応する一の第１配列要素を前記第１制御形式に従った配列移動により取り出して前記第１の管理手段が前記死活監視手段にこれの割り当てをし、
前記各セッション処理部と対応して配列された各第２配列要素の取り出し及び返却にかかる配列移動を前記第１制御形式と異なる予め特定した第２制御形式にて第２の管理手段が管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記アプリケーション処理を実行するために割り当てを要求する第２の要求が前記アプリケーション実行手段より到来した場合に未使用のセッション処理部を検索しこれによって特定された他のセッション処理部に対応する一の第２配列要素を前記第２制御形式に従った配列移動により取り出して前記第２の管理手段が前記アプリケーション実行手段にこれの割り当てをし、
割り当てられた前記一のセッション処理部の稼働状態を確認するための前記稼働状態確認処理を死活監視手段が実行し、
割り当てられた前記他のセッション処理部を使用してアプリケーション処理をアプリケーション実行手段が実行する、
ことを特徴とするデータベース管理装置の動作制御方法。  
【請求項１５】
請求項１４に記載のデータベース管理装置の動作制御方法において、
前記稼働状態確認処理による前記一のセッション処理部の使用後に、前記第１制御形式に従って前記一の第１配列要素を返却して配列移動し、
前記アプリケーション処理による前記他のセッション処理部の使用後に、前記第２制御形式に従って前記一の第２配列要素を返却して配列移動する、
ことを特徴とするデータベース管理装置の動作制御方法。  
【請求項１６】
データベースを管理するためのデータベース管理装置が備えたコンピュータに、
前記データベースに接続してデータを参照又は更新するための２以上のセッション処理部を各々保持するセッション保持機能と、
保持されている前記各セッション処理部の稼働状態を確認するための稼働状態確認処理を実行する死活監視機能と、
保持されている前記各セッション処理部を使用してアプリケーション処理を実行するアプリケーション実行機能と、
前記各セッション処理部と対応して配列された各第１配列要素の取り出し及び返却にかかる配列移動を予め特定した第１制御形式にて管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記稼働状態確認処理を実行するために割り当てを要求する第１の要求が死活監視機能より到来した場合に未使用のセッション処理部を検索しこれによって特定された一のセッション処理部に対応する一の第１配列要素を前記第１制御形式に従った配列移動により取り出して前記死活監視機能に割り当てる第１の管理機能と、
前記各セッション処理部と対応して配列された各第２配列要素の取り出し及び返却にかかる配列移動を前記第１制御形式と異なる予め特定した第２制御形式にて管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記アプリケーション処理を実行するために割り当てを要求する第２の要求が前記アプリケーション実行機能より到来した場合に未使用のセッション処理部を検索しこれによって特定された他のセッション処理部に対応する一の第２配列要素を前記第２制御形式に従った配列移動により取り出して前記アプリケーション実行機能に割り当てる第２の管理機能と、
を実現させることを特徴とするデータベース管理装置用プログラム。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理装置、データベース管理装置の動作制御方法、及びデータベース管理装置用プログラムに関し、特にセッションの状態確認処理とアプリケーション処理との双方をセッションを用いて実行するためのデータベース管理装置、データベース管理装置の動作制御方法、及びデータベース管理装置用プログラムに関する。
【背景技術】
【０００２】
計算機による業務処理では、データベース（ＤＢ）にアクセスして処理が行われることが一般的である。このデータベースにアクセスするためのＳＱＬサーバなどのデータベース管理装置の構成例として特許文献１が挙げられる。
ここで、ＳＱＬとは、Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ（構造化問い合わせ言語）のことで、データベースの定義や操作などを実現するためのデータベース言語の一つである。このＳＱＬをデータベース言語として実装しているデータベース管理装置をＳＱＬサーバという。
【０００３】
特許文献１のデータベース管理装置は、サーバ等の業務処理プロセスにおいて実現され、業務処理プロセスは、クライアントＡＰ（アプリケーション）からの処理要求（トランザクション要求）によって、データベースに対し参照あるいは更新を行いながら、所望の処理を実行する。
【０００４】
クライアントＡＰ（利用者端末）は、業務処理プロセスに対し処理要求を行う。処理要求がなされた業務処理プロセスは、プロセス内にある業務スレッドに対し要求された処理を実行させる。
業務処理プロセスは、起動する際に初期接続数によって予め定めた数分の各ＤＢセッションをデータベースと接続し、ＤＢセッションプールとして作成する。
ＤＢセッションプールは、２以上のＤＢセッション、追加されるＤＢセッションを含む。それぞれのＤＢセッションは、データベースと接続され、業務スレッドからの要求に応じて払い出され、業務スレッドによってアクセスのあった最終使用時刻が記載される。
このようにして、クライアントは、１つのプロセスに存在する複数のＤＢセッション（又は、単に「セッション」ともいう）を通じてデータベースを参照もしくは更新する。
【０００５】
更に、特許文献２では、ＦＩＦＯ型キュー（待ち行列）を、プロセッサにかかるジョブ処理に利用した例が開示されている。
ここで、一般的なＦＩＦＯ型キューとは、データを先入れ先出し（ＦＩＦＯ：Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）のリスト構造で保持し、キューからデータを取り出すときには、先に入れられたデータから順に取り出される仕組みのデータ構造をいう。
特許文献２では、このような仕組みを、実行するジョブをスケジュールに入れる場合に利用することで、最も古いジョブが最初に撤収されるようにしている。換言すると、ジョブ待ち行列内に実行すべきジョブの待ち行列が存在すると、それらのジョブがジョブ待ち行列に入った順番と同じ順番で実行するように分配される。ジョブ待ち行列はＦＩＦＯ待ち行列なので、コミットの順番は、待ち行列内のジョブの順番で決定される。ポインタは、コミットの順番と関連し、ジョブ待ち行列内の最も古いジョブを指示する。指示されたジョブが撤収すると、ポインタは、ジョブ待ち行列内で１ステップ上に移動して、撤収できる次のジョブを指示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１８６３５８号公報
【特許文献２】特表２００２−５３０７３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、このような特許文献１などの関連技術において、アプリケーションを実行するためのスレッドを複数持ち、データベースの参照もしくは更新を行うためのセッションを複数持つプロセスでは、セッションの使用可否状態を確認しようとした場合、全てのセッションの状態確認が必要となる。
【０００８】
このため、全てのセッションの状態確認を行おうとすると、これらのセッションの状態確認が全て完了するまで、アプリケーションのスレッドに対するセッションの割り当てを停止する必要があり、その間アプリケーション処理を実行できず、データベースのアクセスに処理時間がかかる、という不都合があった。
【０００９】
すなわち、関連技術のようなデータベース管理装置におけるＤＢセッションを、クライアントからの処理要求に応じて利用する際には、通常セッションの割り当てはＬＩＦＯ型のスタックで行うことが多い。
そのようなシステムにおいて全セッションの使用可否状態を確認するための死活監視を行おうとした場合、スタックの一番下にあるセッションを使用するには全てのセッションを取り出す必要がある。
このため、全てのセッションを取り出すにはアプリケーションへのセッションの割り当てをブロックしなければならないため、死活監視が完了するまでアプリケーションの動作を中断しなければならない、という不都合があった。
更に、死活監視の処理が終わった後にスタックに戻した時に、セッションの割り当て順番が死活監視を行う前と同一であることを保証できない、という不都合があった。
【００１０】
ここで、このような不都合に対して、１度に全セッションの確認を行わず、１回につき１セッションだけを確認するという手法が想定される。
しかし、そのような場合でセッションの割り当て手法が最後に使われたセッションを最初に割り当てる後入れ先出し型のスタックで管理している場合では、スタックの中で古いセッションについては確認が行われない可能性がある、という不都合があった。
【００１１】
一方、特許文献２のようなＦＩＦＯ型キューを前記特許文献１などのデータベース管理システムに仮にそのまま組み入れても、最後に使われたセッションを最後に割り当てる先入れ先出し型のキューで管理する手法では、セッションにキャッシュがある等で極力同じセッションをアプリケーションで使用したいというシステムには適していない、という不都合があった。
その理由は、使用頻度の低いセッションは破棄したいというシステムの場合においては、先入れ先出し型のキューでの管理では全てのセッションの使用率が等価となるからである。
【００１２】
このように、データベース管理装置に単にＬＩＦＯ型のスタックを組み入れたり、データベース管理装置に単にＦＩＦＯ型キューを組み入れただけでは、セッションの状態確認処理とアプリケーション処理との双方の要求がセッションに対してある場合に、いずれか一方によるセッションの動作処理が終了するのを待たなければならず、両立が困難となり、セッションの状態確認処理及びアプリケーション処理にそれぞれ処理時間がかかる、という不都合があった。
【００１３】
本発明の目的は、上述の関連技術の課題を解決することにあり、セッションの状態確認処理とアプリケーション処理との双方の要求がセッションに対してある場合にいずれか一方の動作処理の停止をすることなくデータベースアクセスを処理可能としたデータベース管理装置、データベース管理装置の動作制御方法、及びデータベース管理装置用プログラムを提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明のデータベース管理装置は、データベースに接続してデータを参照又は更新するための２以上のセッション処理部を各々保持するセッション保持手段と、保持されている前記各セッション処理部の稼働状態を確認するための稼働状態確認処理を実行する死活監視手段と、保持されている前記各セッション処理部を使用してアプリケーション処理を実行するアプリケーション実行手段と、前記各セッション処理部と対応して配列された各第１配列要素の取り出し及び返却にかかる配列移動を予め特定した第１制御形式にて管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記稼働状態確認処理を実行するために割り当てを要求する第１の要求が前記死活監視手段より到来した場合に未使用のセッション処理部を検索しこれによって特定された一のセッション処理部に対応する一の第１配列要素を前記第１制御形式に従った配列移動により取り出して前記死活監視手段に割り当てる第１の管理手段と、前記各セッション処理部と対応して配列された各第２配列要素の取り出し及び返却にかかる配列移動を前記第１制御形式と異なる予め特定した第２制御形式にて管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記アプリケーション処理を実行するために割り当てを要求する第２の要求が前記アプリケーション実行手段より到来した場合に未使用のセッション処理部を検索しこれによって特定された他のセッション処理部に対応する一の第２配列要素を前記第２制御形式に従った配列移動により取り出して前記アプリケーション実行手段に割り当てる第２の管理手段と、を備えたことを特徴としている。
【００１５】
上記目的を達成するため、本発明のデータベース管理装置の動作制御方法は、データベースに接続してデータを参照又は更新するための２以上のセッション処理部をセッション保持手段が各々保持し、前記各セッション処理部と対応して配列された各第１配列要素の取り出し及び返却にかかる配列移動を予め特定した第１制御形式にて第１の管理手段が管理すると共に、前記各セッション処理部のうちのいずれかを使用して稼働状態確認処理を実行するために割り当てを要求する第１の要求が死活監視手段より到来した場合に未使用のセッション処理部を検索しこれによって特定された一のセッション処理部に対応する一の第１配列要素を前記第１制御形式に従った配列移動により取り出して前記第１の管理手段が前記死活監視手段にこれの割り当てをし、前記各セッション処理部と対応して配列された各第２配列要素の取り出し及び返却にかかる配列移動を前記第１制御形式と異なる予め特定した第２制御形式にて第２の管理手段が管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記アプリケーション処理を実行するために割り当てを要求する第２の要求が前記アプリケーション実行手段より到来した場合に未使用のセッション処理部を検索しこれによって特定された他のセッション処理部に対応する一の第２配列要素を前記第２制御形式に従った配列移動により取り出して前記第２の管理手段が前記アプリケーション実行手段にこれの割り当てをし、割り当てられた前記一のセッション処理部の稼働状態を確認するための前記稼働状態確認処理を死活監視手段が実行し、割り当てられた前記他のセッション処理部を使用してアプリケーション処理をアプリケーション実行手段が実行する、ことを特徴としている。
【００１６】
上記目的を達成するため、本発明のデータベース管理装置用プログラムは、データベースを管理するためのデータベース管理装置が備えたコンピュータに、前記データベースに接続してデータを参照又は更新するための２以上のセッション処理部を各々保持するセッション保持機能と、保持されている前記各セッション処理部の稼働状態を確認するための稼働状態確認処理を実行する死活監視機能と、保持されている前記各セッション処理部を使用してアプリケーション処理を実行するアプリケーション実行機能と、前記各セッション処理部と対応して配列された各第１配列要素の取り出し及び返却にかかる配列移動を予め特定した第１制御形式にて管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記稼働状態確認処理を実行するために割り当てを要求する第１の要求が死活監視機能より到来した場合に未使用のセッション処理部を検索しこれによって特定された一のセッション処理部に対応する一の第１配列要素を前記第１制御形式に従った配列移動により取り出して前記死活監視機能に割り当てる第１の管理機能と、前記各セッション処理部と対応して配列された各第２配列要素の取り出し及び返却にかかる配列移動を前記第１制御形式と異なる予め特定した第２制御形式にて管理すると共に、前記各セッション処理部のうちのいずれかを使用して前記アプリケーション処理を実行するために割り当てを要求する第２の要求が前記アプリケーション実行機能より到来した場合に未使用のセッション処理部を検索しこれによって特定された他のセッション処理部に対応する一の第２配列要素を前記第２制御形式に従った配列移動により取り出して前記アプリケーション実行機能に割り当てる第２の管理機能と、を実現させることを特徴としている。
【発明の効果】
【００１７】
本発明によれば、各セッション処理部の状態確認処理とアプリケーションの処理との双方を並列的に実行でき、アプリケーション処理と全てのセッションの状態を確認する状態確認処理とが互いに待ち合わせが発生することなく共存を可能とし、アプリケーション処理への割り当て停止を発生させずに全セッションの状態確認処理が行えるので、データベースアクセスにかかる処理速度の向上が図れる、という関連技術にない優れたデータベース管理装置、データベース管理装置の動作制御方法、及びデータベース管理装置用プログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態によるデータベース管理システムの全体構成の一例を示すブロック図である。
【図２】本発明の一実施形態によるデータベース管理装置における全体の動作手順の一例を示すフローチャートである。
【図３】本発明の一実施形態によるデータベース管理装置における死活監視手段及びＦＩＦＯ型セッション管理部の連携動作手順の一例を示すフローチャートである。
【図４】本発明の一実施形態によるデータベース管理装置におけるアプリケーション実行手段及びＬＩＦＯ型セッション管理部の連携動作手順の一例を示すフローチャートである。
【図５】本発明の一実施形態によるデータベース管理装置における第１セッションポインタ格納部及び第２セッションポインタ格納部の動作概要の一例を説明するための説明図である。
【発明を実施するための形態】
【００１９】
以下、このような本発明の「データベース管理装置」を「データベース管理システム」に利用した実施の形態の一例について、図面を参照して具体的に説明する。
【００２０】
（データベース管理装置の基本的構成）
先ず、データベース管理装置の基本的構成について説明する。
データベース管理装置１０は、図１に示すように、データベース２０に接続してデータを参照又は更新するための２以上のセッション処理部３０―１、３０―２、・・・、３０―ｎを各々保持するセッション保持手段４０を備えている。
【００２１】
又、データベース管理装置１０は、保持されている前記各セッション処理部３０―１、３０―２、・・・、３０―ｎの稼働状態を確認するための稼働状態確認処理（死活監視処理）を実行する死活監視手段１１を備えている。
【００２２】
更に、データベース管理装置１０は、保持されている前記各セッション処理部３０―１、３０―２、・・・、３０―ｎを使用してアプリケーション処理を実行するアプリケーション実行手段１２を備えている。
【００２３】
又更に、データベース管理装置１０は、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎと対応して配列された各第１配列要素（例えばＦＩＦＯセッションポインタなど）の取り出し及び返却にかかる配列移動を予め特定した第１制御形式（例えば先入れ先出し（ＦＩＦＯ）型のキュー制御形式）にて管理すると共に、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎのうちのいずれかを使用して前記稼働状態確認処理を実行するために割り当てを要求する第１の要求が前記死活監視手段１１より到来した場合にセッション処理部３０―１、３０―２、・・・、３０―ｎのうち未使用のものを検索しこれによって特定された一のセッション処理部３０―ｍ（１≦ｍ≦ｎ）に対応する一の第１配列要素としてのＦＩＦＯセッションポインタ５２―ｍ（１≦ｍ≦ｎ）を前記第１制御形式に従った配列移動により取り出して前記死活監視手段１１に割り当てる第１の管理手段５０を備えている。
【００２４】
更に又、データベース管理装置１０は、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎと対応して配列された各第２配列要素（例えばＬＩＦＯセッションポインタなど）の取り出し及び返却にかかる配列移動を前記第１制御形式と異なる予め特定した第２制御形式（例えば後入れ先出し（ＬＩＦＯ）型のスタック制御形式）にて管理すると共に、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎのうちのいずれかを使用して前記アプリケーション処理を実行するために割り当てを要求する第２の要求が前記アプリケーション実行手段１２より到来した場合にセッション処理部３０―１、３０―２、・・・、３０―ｎのうち未使用のものを検索しこれによって特定された他のセッション処理部３０―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）に対応する一の第２配列要素としてのＬＩＦＯセッションポインタ６２―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）を前記第２制御形式に従った配列移動により取り出して前記アプリケーション実行手段１２に割り当てる第２の管理手段６０を備えている。
【００２５】
このようなデータベース管理装置１０の基本的構成によれば、稼働状態確認処理（死活監視処理）とアプリケーションの処理との双方を並列的に実行でき、アプリケーション処理と全てのセッションの状態を確認する死活管理処理とが互いに待ち合わせが発生することなく共存を可能とし、アプリケーション処理への割り当て停止を発生させずに全セッションの状態確認処理が行えるので、データベースアクセスにかかる処理速度の向上が図り得る。
すなわち、同一のセッション処理部群を第１の管理手段と第２の管理手段の両方で管理することで、利用者要求には第２の管理手段によるセッション処理部への割り当てを維持したまま、第１の管理手段により定期的な全セッション処理部の死活監視が可能となる。
【００２６】
（データベース管理システムの全体構成）
次に、本実施の形態のデータベース管理システムの具体的構成について、全体構成から説明し、続いて各部の詳細構成について説明することとする。図１は、本発明における第１実施の形態のデータベース管理装置の全体の概略構成の一例を示すブロック図である。
【００２７】
図１に示すように、本実施の形態のデータベース管理システム１は、データベース２０と、データベース２０に対するアクセスを管理するためのデータベース管理装置１０と、データベース管理装置１０と通信網を介して情報の授受を行うとともにデータベース２０にデータベース管理装置１０を介してアクセスするためのクライアント（利用者端末）７０と、を含む構成としている。
【００２８】
データベース管理装置１０は、プロセスを実行するプロセス処理手段１０Ａを備えている。
【００２９】
データベース管理装置１０におけるプロセス処理手段１０Ａは、データベース２０に接続してデータを参照又は更新するための２以上のセッション処理部３０―１、３０―２、・・・、３０―ｎを各々保持するセッション保持手段４０を備えている。
【００３０】
又、データベース管理装置１０におけるプロセス処理手段１０Ａは、保持されている前記各セッション処理部３０―１、３０―２、・・・、３０―ｎの稼働状態を確認するための死活監視処理を実行する死活監視手段１１を備えている。
【００３１】
更に、データベース管理装置１０におけるプロセス処理手段１０Ａは、保持されている前記各セッション処理部３０―１、３０―２、・・・、３０―ｎを使用してアプリケーション処理を実行するアプリケーション実行手段１２を備えている。
【００３２】
又更に、データベース管理装置１０におけるプロセス処理手段１０Ａは、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎと対応して配列された各第１配列要素（例えばＦＩＦＯセッションポインタなど）の取り出し及び返却にかかる配列移動を予め特定した第１制御形式にて管理すると共に、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎのうちのいずれかを使用して稼働状態確認処理を実行するために割り当てを要求する第１の要求が前記死活監視手段１１より到来した場合にセッション処理部３０―１、３０―２、・・・、３０―ｎのうち未使用のものを検索しこれによって特定された一のセッション処理部３０―ｍ（１≦ｍ≦ｎ）に対応する一の第１配列要素としてのＦＩＦＯセッションポインタ５２―ｍ（１≦ｍ≦ｎ）を前記第１制御形式に従った配列移動により取り出して前記死活監視手段１１に割り当てる第１の管理手段５０を備えている。
【００３３】
更に又、データベース管理装置１０におけるプロセス処理手段１０Ａは、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎと対応して配列された各第２配列要素の取り出し及び返却にかかる配列移動を前記第１制御形式と異なる予め特定した第２制御形式にて管理すると共に、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎのうちのいずれかを使用して前記アプリケーション処理を実行するために割り当てを要求する第２の要求が前記アプリケーション実行手段１２より到来した場合にセッション処理部３０―１、３０―２、・・・、３０―ｎのうち未使用のものを検索しこれによって特定された他のセッション処理部３０―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）に対応する一の第２配列要素としてのＬＩＦＯセッションポインタ６２―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）を前記第２制御形式に従った配列移動により取り出して前記アプリケーション実行手段１２に割り当てる第２の管理手段６０を備えている。
【００３４】
死活監視手段１１は、セッション処理部３０―１、３０―２、・・・、３０―ｎを利用して死活管理処理を実行する際に、セッション処理部の割り当てにかかる第１の要求を出力するＦＩＦＯセッション要求手段１１Ａを含む。  
【００３５】
アプリケーション実行手段１２は、セッション処理部３０―１、３０―２、・・・、３０―ｎを利用してアプリケーション処理を実行する際に、セッション処理部の割り当てにかかる第２の要求を出力するＬＩＦＯセッション要求手段１２Ａを含む。
【００３６】
セッション処理部３０―１、３０―２、・・・、３０―ｎは、それぞれ、通信機能３１―１、３１―２、・・・、３１―ｎと、使用判断機能３２―１、３２―２、・・・、３２―ｎを含む。
【００３７】
セッション保持手段４０は、プロセスで必要となる数だけセッション処理部３０―１、３０―２、・・・、３０―ｎを生成し、セッション保持手段４０がこれを保持する。
【００３８】
ここで、「セッション」とは、データベース（ＤＢ）セッションのことであり、このデータベース（ＤＢ）セッションは、１つの接続で１ユーザーのリクエストを処理し、クライアントに、単一のデータベース接続を提供可能とする。データべースをアクセスしたユーザがサーバなどデータベース管理装置内で行う一連の動作処理をまとめて１セッションという。
又、セッション保持手段４０は、共有オブジェクト・キャッシュや接続プールを含むセッション処理部としてもよい。
更に、アプリケーション実行手段１２は、実行時にセッション処理部を使用して永続データ操作（オブジェクトの作成、読取り、更新および削除）を実行してよい。
【００３９】
第１の管理手段５０は、ＦＩＦＯ型（先入れ先出し型）のキュー制御方式（第１制御形式）で死活監視手段１１に対するセッション処理部３０―１、３０―２、・・・、３０―ｎの割り当て及び返却を管理するものであり、第１セッション管理部としてのＦＩＦＯ型セッション管理部５１と、第１セッションポインタ格納部５３とを含む。
【００４０】
第１セッションポインタ格納部５３は、第１配列要素もしくは第１セッションポインタとしてのＦＩＦＯセッションポインタ５２―１、５２―２、・・・、５２―ｎを含む。
【００４１】
ＦＩＦＯ型セッション管理部５１は、セッション処理部３０―１、３０―２、・・・、３０―ｎと同じ数だけＦＩＦＯセッションポインタ５２―１、５２―２、・・・、５２―ｎを備えている。
ＦＩＦＯ型セッション管理部５１は、一つのＦＩＦＯセッションポインタ５２―１と一つのセッション処理部３０―１とが一対一の対応関係で関連付けられる（結び付けられる）ようにして配置された一つのＦＩＦＯセッションポインタ５２―１を備えている。
同様に、ＦＩＦＯ型セッション管理部５１は、一つのＦＩＦＯセッションポインタ５２―２と一つのセッション処理部３０―２とが一対一の対応関係で関連付けられる（結び付けられる）ようにして配置された一つのＦＩＦＯセッションポインタ５２―２と、・・・、一つのＦＩＦＯセッションポインタ５２―ｎと一つのセッション処理部３０―ｎとが一対一の対応関係で関連付けられる（結び付けられる）ようにして配置された一つのＦＩＦＯセッションポインタ５２―ｎとを備えている。
【００４２】
第２の管理手段６０は、ＬＩＦＯ型（後入れ先出し型）のスタック制御方式（第２制御形式）でアプリケーション実行手段１２に対するセッション処理部３０―１、３０―２、・・・、３０―ｎの割り当て及び返却を管理するものであり、第２セッション管理部としてのＬＩＦＯ型セッション管理部６１と、第２セッションポインタ格納部６３とを含む。
【００４３】
第２セッションポインタ格納部６３は、第２配列要素もしくは第２セッションポインタとしてのＬＩＦＯセッションポインタ６２―１、６２―２、・・・、６２―ｎを含む。
【００４４】
ＬＩＦＯ型セッション管理部６１は、セッション処理部３０―１、３０―２、・・・、３０―ｎと同じ数だけＬＩＦＯセッションポインタ６２―１、６２―２、・・・、６２―ｎを備えている。
ＬＩＦＯ型セッション管理部６１は、一つのＬＩＦＯセッションポインタ６２―１と一つのセッション処理部３０―１とが一対一の対応関係で関連付けられる（結び付けられる）ようにして配置された一つのＬＩＦＯセッションポインタ６２―１を備えている。
同様に、ＬＩＦＯ型セッション管理部６１は、一つのＬＩＦＯセッションポインタ６２―２と一つのセッション処理部３０―２とが一対一の対応関係で関連付けられる（結び付けられる）ようにして配置された一つのＬＩＦＯセッションポインタ６２―２と、・・・、一つのＬＩＦＯセッションポインタ６２―ｎと一つのセッション処理部３０―ｎとが一対一の対応関係で関連付けられる（結び付けられる）ようにして配置された一つのＬＩＦＯセッションポインタ６２―ｎとを備えている。
【００４５】
これにより、例えば一つのセッション処理部３０―１は、一つのＦＩＦＯセッションポインタ５２―１と一つのＬＩＦＯセッションポインタ６２―１との双方に関連付けられる。
【００４６】
又、第１の管理手段５０は、前記各第１配列要素を各第１セッションポインタとして格納するとともに配列方向一端部に取り出し口が他端部に格納口が形成された第１セッションポインタ格納部５３を備えている。
更に、第１の管理手段５０は、前記割り当てによる取り出し及び使用後の返却にかかる前記各第１セッションポインタの配列移動を先入れ先出し型のキュー制御形式で管理する第１のセッション管理部としてのＦＩＦＯ型セッション管理部５１を備えている。
【００４７】
又、第２の管理手段６０は、前記各第２配列要素を各第２セッションポインタとして格納するとともに配列方向一端部に格納口及び取り出し口を兼ねた一開口が形成された第２セッションポインタ格納部６３を備えている。
更に、第２の管理手段６０は、前記割り当てによる取り出し及び使用後の返却にかかる前記各第２セッションポインタの配列移動を後入れ先出し型のスタック制御形式で管理する第２のセッション管理部としてのＬＩＦＯ型セッション管理部６１を備えている。  
【００４８】
ここで、第１の管理手段５０におけるＦＩＦＯ型セッション管理部５１は、前記死活監視処理による前記一のセッション処理部の使用後に、前記第１制御形式に従って前記一の第１配列要素を返却して配列移動する機能を備えている。
【００４９】
一方、第２の管理手段６０におけるＬＩＦＯ型セッション管理部６１は、前記アプリケーション処理による前記他のセッション処理部の使用後に、前記第２制御形式に従って前記一の第２配列要素を返却して配列移動する機能を備えている。
【００５０】
セッション処理部３０―ｎには、前記データベースとの間の通信を行う通信機能３１―ｎと、当該通信機能３１―ｎが使用中であるか未使用であるかどうかを判断するとともにこの判断情報を格納している使用判断機能３２―ｎと、が予め装備される。
この場合、第１のセッション管理部としてのＦＩＦＯ型セッション管理部５１が、前記第１セッションポインタに対応する前記セッション処理部３０―ｎにかかる前記使用判断機能３２―ｎに前記判断情報を問い合わせ、未使用となっている場合には当該セッション処理部３０―ｎを前記死活監視手段１１に対して割り当てるとともに前記使用判断機能３２―ｎにおける判断情報を使用中に変更する機能を備えている。
【００５１】
第２のセッション管理部としてのＬＩＦＯ型セッション管理部６１が、前記第２セッションポインタに対応する前記セッション処理部３０―ｎにかかる前記使用判断機能３２―ｎに前記判断情報を問い合わせ、未使用となっている場合には当該セッション処理部３０―ｎを前記アプリケーション実行手段１２に対して割り当てるとともに前記使用判断機能３２―ｎにおける判断情報を使用中に変更する機能を備えている。
【００５２】
第１のセッション管理部としてのＦＩＦＯ型セッション管理部５１が、前記使用判断機能３２―ｎが使用中となっている場合には前記第１セッションポインタ格納部５３で次の優先順位の前記第１セッションポインタに対応する前記セッション処理部３０―ｎにかかる前記使用判断機能３２―ｎに前記判断情報を問い合わせる機能を備えている。
【００５３】
第２のセッション管理部としてのＬＩＦＯ型セッション管理部６１が、使用判断機能３２―ｎが使用中となっている場合には前記第２セッションポインタ格納部６３で次の優先順位の前記第２セッションポインタに対応する前記セッション処理部３０―ｎにかかる前記使用判断機能３２―ｎに前記判断情報を問い合わせる機能を備えている。
【００５４】
前記死活監視手段１１は、前記第１のセッション管理部から前記セッション処理部３０―ｎを割り当てられた場合に、当該割り当てられたセッション処理部３０―ｎにかかる前記通信機能３１−ｎを用いて前記データベース２０との通信可否の確認を行い、死活監視処理が完了したら当該セッション処理部３０―ｎを返却する旨の通知を前記第１のセッション管理部に対して行う機能を備えている。
【００５５】
前記第１のセッション管理部としてのＦＩＦＯ型セッション管理部５１は、前記死活監視手段１１より返却する旨の通知を受信すると、使用が完了した前記セッション処理部３０―ｎにかかる前記使用判断機能３２−ｎを参照して判断情報を使用中から未使用に変更するとともに、前記第１セッションポインタ格納部５３でキューの最下位の優先順位の前記第１セッションポインタに前記使用が完了したセッション処理部を対応づけることにより前記使用が完了したセッション処理部３０―ｎの返却を行う機能を備えている。
【００５６】
前記アプリケーション実行手段１２は、前記第２のセッション管理部から前記セッション処理部３０―ｎを割り当てられた場合に、当該割り当てられたセッション処理部３０―ｎにかかる前記通信機能３１−ｎを用いて前記データベースとの通信可否の確認を行い、アプリケーション実行処理が完了したら当該セッション処理部３０―ｎを返却する旨の通知を前記第２のセッション管理部に対して行う機能を備えている。
【００５７】
前記第２のセッション管理部としてのＬＩＦＯ型セッション管理部６１は、前記アプリケーション実行手段１２より返却する旨の通知を受信すると、使用が完了した前記セッション処理部３０―ｎにかかる前記使用判断機能３２―ｎを参照して判断情報を使用中から未使用に変更するとともに、前記第２セッションポインタ格納部６３でスタックの最上位の優先順位の前記第２セッションポインタに前記使用が完了したセッション処理部３０―ｎを対応づけることにより前記使用が完了したセッション処理部３０―ｎの返却を行う機能を備えている。
【００５８】
（動作手順について）
（全体の動作）
次に、上述のような構成を有するデータベース管理装置における全体の動作手順について、図２を参照しつつ説明する。図２は、本実施形態のデータベース管理装置における動作手順の一例を示すフローチャートである。
【００５９】
本実施の形態に係るデータベース管理装置における動作手順は、データベース管理装置１００が備えたコンピュータが行うものを対象とするものである。
【００６０】
基本的手順として、先ず、データベースに接続してデータを参照又は更新するための２以上のセッション処理部３０―１、３０―２、・・・、３０―ｎをセッション保持手段４０が各々保持する（図２に示すステップＳ１１）。
【００６１】
次に、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎと対応して配列された各第１配列要素としての各ＦＩＦＯセッションポインタ５２―１、５２―２、・・・、５２―ｎの取り出し及び返却にかかる配列移動を予め特定した第１制御形式にて第１の管理手段５０が管理すると共に、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎのうちのいずれかを使用して稼働状態確認処理を実行するために割り当てを要求する第１の要求が前記死活監視手段１１より到来した場合にセッション処理部３０―１、３０―２、・・・、３０―ｎのうち未使用のものを検索しこれによって特定された一のセッション処理部３０―ｍ（１≦ｍ≦ｎ）に対応する一の第１配列要素としてのＦＩＦＯセッションポインタ５２―ｍ（１≦ｍ≦ｎ）を前記第１制御形式に従った配列移動により取り出して前記第１の管理手段５０が前記死活監視手段１１にこれの割り当てをする（図２に示すステップＳ２１：第１の割り当て管理ステップ、第１の割り当て管理機能）。
【００６２】
一方、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎと対応して配列された各第２配列要素としての各ＬＩＦＯセッションポインタ６２―１、６２―２、・・・、６２―ｎの取り出し及び返却にかかる配列移動を前記第１制御形式と異なる予め特定した第２制御形式にて第２の管理手段６０が管理すると共に、前記各セッション処理部３０―１、３０―２、・・・、３０―ｎのうちのいずれかを使用して前記アプリケーション処理を実行するために割り当てを要求する第２の要求が前記アプリケーション実行手段１２より到来した場合にセッション処理部３０―１、３０―２、・・・、３０―ｎのうち未使用のものを検索しこれによって特定された他のセッション処理部３０―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）に対応する一の第２配列要素としてのＬＩＦＯセッションポインタ６２―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）を前記第２制御形式に従った配列移動により取り出して前記第２の管理手段１６０が前記アプリケーション実行手段１２にこれの割り当てをする（図２に示すステップＳ３１：第２の割り当て管理ステップ、第２の割り当て管理機能）。
【００６３】
続いて、割り当てられた前記一のセッション処理部３０―ｍ（１≦ｍ≦ｎ）の稼働状態を確認するための死活監視処理を死活監視手段１１が実行する（図２に示すステップＳ２２：死活監視処理実行ステップ、死活監視処理実行機能）。
【００６４】
一方、割り当てられた前記他のセッション処理部３０―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）を使用してアプリケーション処理をアプリケーション実行手段１２が実行する（図２に示すステップＳ３２：アプリケーション処理実行ステップ、アプリケーション処理実行機能）。
【００６５】
更に、この動作手順では、前記死活監視処理による前記一のセッション処理部３０―ｍ（１≦ｍ≦ｎ）の使用後に、前記第１制御形式に従って前記一の第１配列要素としてのＦＩＦＯセッションポインタ５２―ｍ（１≦ｍ≦ｎ）を返却して配列移動する（図２に示すステップＳ２３：第１の返却管理ステップ、第１の返却管理機能）。
【００６６】
一方、前記アプリケーション処理による前記他のセッション処理部３０―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）の使用後に、前記第２制御形式に従って前記一の第２配列要素としてのＬＩＦＯセッションポインタ６２―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）を返却して配列移動する（図２に示すＳ３３：第２の返却管理ステップ、第１の返却管理機能）。
【００６７】
（詳細動作）
以下、これを詳述する。
図３に示す死活監視動作フローと図４に示すアプリケーション動作フローを参照し本実施形態の詳細動作について詳細に説明する。
【００６８】
死活監視手段１１は、プロセス処理手段１０Ａによるプロセスの稼働開始時に作成され、死活監視手段１１は、セッション処理部３０―１、３０―２、・・・、３０―ｎに対して死活監視処理を実行する（図３）。
【００６９】
一方、アプリケーション実行手段１２は、プロセス処理手段１０Ａによるプロセスの稼働開始時に作成され、アプリケーション実行手段１２は、アプリケーションの処理を実行する（図４）。  
【００７０】
ここで、これらの処理を実行する前処理として、以下の処理を予め行っておく。すなわち、先ず、セッション処理部３０―１、３０―２、・・・、３０―ｎは、プロセス処理手段１０Ａによるプロセスの稼働開始時に、アプリケーション実行手段１２で必要となる数だけ作成される。
更に、各セッション処理部３０―１、３０―２、・・・、３０―ｎが各々装備している各通信機能３１―１、３１―２、・・・、３１―ｎは、データベース２０と通信接続する。
【００７１】
そして、第１の管理手段５０は、プロセス処理手段１０Ａによるプロセスの稼働開始時に作成され、セッション処理部３０―１、３０―２、・・・、３０―ｎと同じ数のＦＩＦＯセッションポインタ５２―１、５２―２、・・・、５２―ｎを作成する。
【００７２】
ここで、一つのＦＩＦＯセッションポインタ５２―１は、一つのセッション処理部３０―１と結び付けられ、一つのセッション処理部３０―１には一つのＦＩＦＯセッションポインタ５２―１としか結び付けられない。
この際、ＦＩＦＯ型セッション管理部５１は、ＦＩＦＯセッションポインタ５２―１、５２―２、・・・、５２―ｎの全てを一つの先入れ先出し型のキュー状にリストし、第１セッションポインタ格納部５３に格納する。
【００７３】
次に、第２の管理手段６０は、プロセス処理手段１０Ａによるプロセスの稼働開始時に作成され、セッション処理部３０―１、３０―２、・・・、３０―ｎと同じ数のＬＩＦＯセッションポインタ６２―１、６２―２、・・・、６２―ｎを作成する。
【００７４】
ここで、一つのＬＩＦＯセッションポインタ６２―１は、一つのセッション処理部３０―１と結び付けられ、一つのセッション処理部３０―１には一つのＬＩＦＯセッションポインタ６２―１としか結び付けられない。
この際、ＬＩＦＯ型セッション管理部６１は、ＬＩＦＯセッションポインタ６２―１、６２―２、・・・、６２―ｎの全てを一つの後入れ先出し型のスタック状にリストし、第２セッションポインタ格納部６３に格納する。
【００７５】
（死活監視処理）
死活監視手段１１は、定期的に全てのセッション処理部３０―１〜３０―ｎの通信機能３１―１〜３１―ｎが、データベース２０を参照又は更新が可能であるか、セッション処理部３０―１〜３０―ｎが使用可能であるかどうかを監視する。
【００７６】
すなわち、先ず、死活監視手段１１は、死活監視の実行を開始すると（図３に示すステップS１０１）、ＦＩＦＯ型セッション管理部５１に第１のセッション割当要求（第１の要求）を送信する（図３に示すステップＳ１０２：第１の要求送信ステップ、第１の要求送信機能）。
【００７７】
続いて、ＦＩＦＯ型セッション管理部５１は、第１のセッション割当要求が発生すると、第１の管理手段５０における第１セッションポインタ格納部５３内でキュー状のリストとなっているＦＩＦＯセッションポインタ５２―１、５２―２、・・・、５２―ｎの中から先頭のＦＩＦＯセッションポインタ５２―１に使用の可否を問い合わせる（図３に示すステップＳ２０１：先頭第１セッションポインタ選択ステップ、先頭第１セッションポインタ選択機能）。
【００７８】
さらに、ＦＩＦＯ型セッション管理部５１は、使用可否を問い合わせられた先頭のＦＩＦＯセッションポインタ５２―１を選択指定すると、これに対応して結び付けられている先頭のセッション処理部３０―１における使用判断機能３２−１の内部情報を調査確認する。
すなわち、ＦＩＦＯ型セッション管理部５１は、使用判断機能３２−１の内部情報が使用中となっているか未使用となっているかを確認する（図３に示すステップＳ２０２：使用判断機能調査ステップ、使用判断機能調査機能）。
【００７９】
このステップＳ２０２において、使用判断機能３２−１が未使用であると判定された場合（図３に示すステップＳ２０２の「未使用」）、ＦＩＦＯ型セッション管理部５１は、使用判断機能３２―１を使用中に変更する（図３に示すステップＳ２０５）。
【００８０】
そして、ＦＩＦＯ型セッション管理部５１は、第１セッションポインタ格納部５３においてＦＩＦＯ型キューのリストから取り出して、要求元の死活監視手段１１に先頭のＦＩＦＯセッションポインタ５２―１を渡すことによりセッション処理部３０―１を割り当てる（図３に示すＳ２０６）。
【００８１】
一方、このステップＳ２０２において、使用判断機能３２−１が使用中であると判定された場合（図３に示すステップＳ２０２の「使用中」）、ＦＩＦＯ型セッション管理部５１は、第１セッションポインタ格納部５３にキュー状にリストされている先頭のＦＩＦＯセッションポインタ５２―１の次のＦＩＦＯセッションポインタ５２―２に使用可否の問い合わせを行うようにする（図３に示すステップＳ２０３）。
【００８２】
そして、ＦＩＦＯ型セッション管理部５１は、使用可否を問い合わせられた次のＦＩＦＯセッションポインタ５２―２を選択指定すると、これに対応して結び付けられている次のセッション処理部３０―２における次の使用判断機能３２−２の内部情報を調査確認する。
すなわち、ＦＩＦＯ型セッション管理部５１は、次の使用判断機能３２−２の内部情報が使用中となっているか未使用となっているかを確認する（図３に示すステップＳ２０４：使用判断機能調査ステップ、使用判断機能調査機能）。
【００８３】
このステップＳ２０４において、次の使用判断機能３２−２が使用中であると判定された場合（図３に示すステップＳ２０４の「使用中」）、ＦＩＦＯ型セッション管理部５１は、第１セッションポインタ格納部５３にキュー状にリストされている次のＦＩＦＯセッションポインタ５２―２のさらに次のＦＩＦＯセッションポインタ５２―３に使用可否の問い合わせを行うようし、使用判断機能が未使用であるセッション処理部が見つかるまでステップＳ２０３、ステップＳ２０４を繰り返す。
【００８４】
そして、ステップＳ２０３、ステップＳ２０４を繰り返すことによる各セッション処理部を検索する過程で、このステップＳ２０４において、使用判断機能１３２−ｍが未使用であると判定され（図３に示すステップＳ２０４の「未使用」）、使用判断機能が未使用のセッション処理部が見つかり特定された場合、ＦＩＦＯ型セッション管理部５１は、当該特定されたセッション処理部３０―ｍ（１≦ｍ≦ｎ）の使用判断機能３２―ｍを使用中に変更する（図３に示すステップＳ２０５）。
【００８５】
そして、ＦＩＦＯ型セッション管理部５１は、第１セッションポインタ格納部５３においてＦＩＦＯ型キューのリストから取り出して、要求元の死活監視手段１１にｍ番目のＦＩＦＯセッションポインタ５２―ｍを渡すことによりセッション処理部３０―ｍを割り当てる（図３に示すＳ２０６：第１の割り当てステップ、第１の割り当て機能）。
ここで、これらのステップＳ１０２、ステップＳ２０１〜ステップＳ２０６は、図２に示すステップＳ２１に含まれる。
【００８６】
セッション処理部３０―ｍの割り当てを受けた死活監視手段１１は、割り当てられたセッション処理部３０―ｍの通信機能３１―ｍを用いてデータベース２０との通信可否の確認を行い、死活監視処理を実行する（図３に示すステップＳ１０３：死活監視処理実行ステップ、死活監視処理実行機能）。
このステップＳ１０３は、図２に示すステップＳ２２に相当する。
【００８７】
その後、死活監視処理が完了したら、死活監視手段１１は、ｍ番目のＦＩＦＯセッションポインタ５２―ｍを第１の管理手段５０のＦＩＦＯ型セッション管理部５１に返すことによりセッション処理部３０―ｍを返却する（図３に示すステップＳ１０４）。
【００８８】
ＦＩＦＯ型セッション管理部５１は、セッション処理部３０―ｍが返却されると、セッション処理部３０―ｍの使用判断機能３２―ｍを未使用に変更し、ＦＩＦＯセッションポインタ５２―ｍを第１セッションポインタ格納部５３におけるＦＩＦＯ型キューのリストの最後尾に返却する（図３に示すステップＳ２０７）。
このステップＳ１０４及びステップＳ２０７は、図２に示すステップＳ２３に含まれる。
【００８９】
死活監視手段１１は、セッション処理部３０―ｍを返却すると、一定時間待機し、その後再び死活監視処理を実行する（図３に示すステップＳ１０１)。死活監視処理の一連の流れはプロセス処理手段１０Ａによるプロセスが終了するまで繰り返す。
【００９０】
死活監視処理を実行する間隔、および実行後に待機する時間は、管理者が操作入力部及び表示部を利用して任意に設定可能であるとする（死活監視処理実行間隔設定機能、待機時間設定機能）。
【００９１】
更に、死活監視処理の結果、セッション処理部３０―ｍとデータベース２０との通信が不可能であった場合の処理は、管理者が操作入力部及び表示部を利用して任意に設定可能であるとする。
【００９２】
（アプリケーション実行処理）
一方、アプリケーション実行手段１２は、クライアント（利用者端末）７０が実行要求することによってアプリケーション処理の実行を行う。
【００９３】
次に、アプリケーション実行手段１２は、アプリケーション処理の実行を開始すると（図４に示すＳ３０１）、ＬＩＦＯ型セッション管理部６１に第２のセッション割当要求を送信する（図４に示すＳ３０２）。
【００９４】
続いて、ＬＩＦＯ型セッション管理部６１は、第２セッション割当要求が発生すると、第２の管理手段６０における第２セッションポインタ格納部６３内でスタック状のリストとなっているＬＩＦＯセッションポインタ６２―１、６２―２、・・・、６２―ｎの中から先頭のＬＩＦＯセッションポインタ６２―１に使用の可否を問い合わせる（図４に示すＳ４０１：先頭第２セッションポインタ選択ステップ、先頭第２セッションポインタ選択機能）。
【００９５】
さらに、ＬＩＦＯ型セッション管理部６１は、使用可否を問い合わせられた先頭のＬＩＦＯセッションポインタ６２―１を選択指定すると、これに対応して結び付けられている先頭のセッション処理部３０―１における使用判断機能３２−１の内部情報を調査確認する。
すなわち、ＬＩＦＯ型セッション管理部６１は、使用判断機能３２−１の内部情報が使用中となっているか未使用となっているかを確認する（図４に示すステップＳ４０２：使用判断機能調査ステップ、使用判断機能調査機能）。
【００９６】
このステップＳ４０２において、使用判断機能３２−１が未使用であると判定された場合（図４に示すステップＳ４０２の「未使用」）、ＬＩＦＯ型セッション管理部６１は、使用判断機能３２―１を使用中に変更する（図４に示すステップＳ４０５）。
【００９７】
そして、ＬＩＦＯ型セッション管理部６１は、第２セッションポインタ格納部６３においてＬＩＦＯ型スタックのリストから取り出して、要求元のアプリケーション実行手段１２に先頭のＬＩＦＯセッションポインタ６２―１を渡すことによりセッション処理部３０―１を割り当てる（図４に示すＳ４０６）。
【００９８】
一方、このステップＳ４０２において、使用判断機能３２−１が使用中であると判定された場合（図４に示すステップＳ４０２の「使用中」）、ＬＩＦＯ型セッション管理部６１は、第２セッションポインタ格納部６３にスタック状にリストされている先頭のＬＩＦＯセッションポインタ６２―１の次のＬＩＦＯセッションポインタ６２―２に使用可否の問い合わせを行うようにする（図４に示すステップＳ４０３）。
【００９９】
そして、ＬＩＦＯ型セッション管理部６１は、使用可否を問い合わせられた次のＬＩＦＯセッションポインタ６２―２を選択指定すると、これに対応して結び付けられている次のセッション処理部３０―２における次の使用判断機能３２−２の内部情報を調査確認する。
すなわち、ＬＩＦＯ型セッション管理部６１は、次の使用判断機能３２−２の内部情報が使用中となっているか未使用となっているかを確認する（図４に示すステップＳ４０４：使用判断機能調査ステップ、使用判断機能調査機能）。
【０１００】
このステップＳ４０４において、次の使用判断機能３２−２が使用中であると判定された場合（図４に示すステップＳ４０４の「使用中」）、ＬＩＦＯ型セッション管理部６１は、第２セッションポインタ格納部６３にスタック状にリストされている次のＬＩＦＯセッションポインタ６２―２のさらに次のＬＩＦＯセッションポインタ６２―３に使用可否の問い合わせを行うようし、使用判断機能が未使用であるセッション処理部が見つかるまでステップＳ４０３、ステップＳ４０４を繰り返す。
【０１０１】
そして、ステップＳ４０３、ステップＳ４０４を繰り返すことによる各セッション処理部を検索する過程で、このステップＳ４０４において、使用判断機能３２−ｋが未使用であると判定され（図４に示すステップＳ４０４の「未使用」）、使用判断機能が未使用のセッション処理部が見つかり特定された場合、ＬＩＦＯ型セッション管理部６１は、当該特定されたセッション処理部３０―ｋ（１≦ｋ≦ｎ、ｋ≠ｍ）の使用判断機能３２―ｋを使用中に変更する（図４に示すステップＳ４０５）。
【０１０２】
そして、ＬＩＦＯ型セッション管理部６１は、第２セッションポインタ格納部６３においてＬＩＦＯ型スタック形式のリストから取り出して、要求元のアプリケーション実行手段１２にｋ番目のＬＩＦＯセッションポインタ６２―ｋを渡すことによりセッション処理部３０―ｋを割り当てる（図４に示すステップＳ４０６：第２の割り当てステップ、第２の割り当て機能）。
ここで、これらのステップＳ３０２、ステップＳ４０１〜ステップＳ４０６は、図２に示すステップＳ３１に含まれる。
【０１０３】
セッション処理部３０―ｋの割り当てを受けたアプリケーション実行手段２０は、割り当てられたセッション処理部３０―ｋの通信機能３１―ｋを用いてデータベース２０との通信可否の確認を行い、アプリケーション処理を実行する（図４に示すステップＳ３０３：アプリケーション処理実行ステップ、アプリケーション処理実行機能）。
このステップＳ３０３は、図２に示すステップＳ３２に相当する。
【０１０４】
その後、アプリケーション処理が完了したら、アプリケーション実行手段１２は、ｋ番目のＬＩＦＯセッションポインタ６２―ｋを第２の管理手段６０のＬＩＦＯ型セッション管理部６１に返すことによりセッション処理部３０―ｋを返却する（図４に示すステップＳ３０４）。
【０１０５】
ＬＩＦＯ型セッション管理部６１は、セッション処理部３０―ｋが返却されると、セッション処理部３０―ｋの使用判断機能３２―ｋを未使用に変更し、ＬＩＦＯセッションポインタ６２―ｋを第２セッションポインタ格納部６３におけるＬＩＦＯ型スタックのリストの先頭に返却する（図４に示すステップＳ４０７）。
このステップＳ３０４及びステップＳ４０７は、図２に示すステップＳ３３に含まれる。
【０１０６】
アプリケーション実行手段１２は、セッション処理部３０―ｋを返却すると、処理を終了する（図４に示すステップＳ３０５)。
【０１０７】
このように、データベース管理装置１０では、セッション処理部３０―１、３０―２、・・・、３０―ｎに関する使用要求があった時にセッションを割り当てる手段として、先入れ先出し型のキューと後入れ先出し型のスタックを作成し、全てのセッション処理部３０―１、３０―２、・・・、３０―ｎを先入れ先出し型のキューと後入れ先出し型のスタックの両方に結びつける。
【０１０８】
アプリケーション処理では、後入れ先出し型のスタックを用いてセッション処理部３０―１、３０―２、・・・、３０―ｎのうちのいずれか１つの割り当てを行い、後入れ先出し型スタックから割り当てたセッション処理部３０―ｋを取り除くという処理を行う。
【０１０９】
状態確認を行う処理では、先入れ先出し型のキューを用いてセッション処理部３０―１、３０―２、・・・、３０―ｎのうちのいずれか１つの割り当てを行い、先入れ先出し型キューから割り当てたセッション処理部３０―ｍを取り除くという処理を行う
【０１１０】
セッション処理部３０―１、３０―２、・・・、３０―ｎに関する割り当て要求が発生しセッション処理部３０―１、３０―２、・・・、３０―ｎのうちのいずれか１つの割り当て処理を行った時、先入れ先出し型のキューと後入れ先出し型のスタックのいずれの場合でも、割り当てたセッション処理部３０―ｍの使用判断機能３２―ｍを未使用から使用中と変更する。
【０１１１】
セッション処理部３０―１、３０―２、・・・、３０―ｎに関する割り当て要求が発生しセッション割り当て処理を行う時に、第１の管理手段５０による先入れ先出し型のキュー制御形式では、割り当てようとしたセッション処理部３０―ｍの使用判断機能３２―ｍが使用中となっていた場合は、使用中となっているセッション処理部３０―ｍを割り当てることは行わず、キュー内で次の優先順位のセッション処理部３０―（ｍ＋１）を割り当てる。
次の優先順位のセッション処理部３０―（ｍ＋１）でもセッション処理部３０―（ｍ＋１）の使用判断機能３２―（ｍ＋１）が使用中になっていた場合は、キュー内でさらにその次の優先順位のセッション処理部３０―（ｍ＋２）を割り当てる。
【０１１２】
一方、セッション処理部３０―１、３０―２、・・・、３０―ｎに関する割り当て要求が発生しセッション割り当て処理を行う時に、第２の管理手段６０による後入れ先出し型のスタック制御形式では、割り当てようとしたセッション処理部３０―ｋの使用判断機能３２―ｋが使用中となっていた場合は、使用中となっているセッション処理部３０―ｋを割り当てることは行わず、スタック内で次の優先順位のセッション処理部３０―（ｋ―１）を割り当てる。
次の優先順位のセッション処理部３０―（ｋ―１）でもセッション処理部３０―（ｋ―１）の使用判断機能３２―（ｋ―１）が使用中になっていた場合は、スタック内でさらにその次の優先順位のセッション処理部３０―（ｋ―１）を割り当てる。
【０１１３】
先入れ先出し型のキュー制御形式による第１の管理手段５０から割り当てられたセッション処理部３０―ｍの使用が終了した時、セッション処理部３０―ｍを先入れ先出し型キューの最下位の優先順位に戻し、割り当てられていたセッション処理部３０―ｍの使用判断機能３２―ｍを使用中から未使用に変更する。
【０１１４】
後入れ先出し型のスタック制御形式による第２の管理手段６０から割り当てられたセッション処理部３０―ｋの使用が終了した時、セッション処理部３０―ｋを後入れ先出し型スタックの最上位の優先順位に戻し、割り当てられていたセッション処理部３０―ｋの使用判断機能３２―ｋを使用中から未使用に変更する。
【０１１５】
第１の管理手段５０により先入れ先出し型のキュー制御形式でセッション処理部３０―ｍを使用した場合、第２の管理手段６０による後入れ先出し型のスタック制御形式では優先順位の変更を行わない。
【０１１６】
第２の管理手段６０により後入れ先出し型のスタック制御形式でセッション処理部３０―ｋを使用した場合、第１の管理手段５０による先入れ先出し型のキュー制御形式では優先順位の変更を行わない。
【０１１７】
このように、データベース２０との参照あるいは更新を行う複数のセッション処理部３０―１、３０―２、・・・、３０―ｎ群を、先入れ先出し（ＦＩＦＯ）型のキュー制御形式による第１の管理手段５０と後入れ先出し（ＬＩＦＯ）型のスタック制御形式による第２の管理手段６０との二つを並列的に使用することで、先入れ先出し型のキュー制御形式での使用が都合の良いアプリケーションと、全てのセッション処理部３０―１、３０―２、・・・、３０―ｎの状態を確認する処理とが、互いに待ち合わせが発生することなく共存が可能となる。
【０１１８】
すなわち、同一のセッション処理部３０―１、３０―２、・・・、３０―ｎ群をＦＩＦＯ型のキュー制御形式とＬＩＦＯ型のスタック制御形式の両方で管理することで、利用者要求にはスタック制御形式でのセッション処理部３０―ｋの割り当てを維持したまま、定期的な全セッション処理部３０―１、３０―２、・・・、３０―ｎの死活監視を可能とする。
【０１１９】
このようにして、アプリケーション処理では、後入れ先出し型のスタック制御形式によるセッション処理部３０―ｋを使用することを保ったまま、状態確認処理では、先入れ先出し型のキュー制御形式を併用することで、アプリケーション処理への割り当て停止を発生させずに全セッション処理部３０―１、３０―２、・・・、３０―ｎの状態確認処理を行うようにすることができる。  
【０１２０】
更に、このようにすることで、図５に示すように、スタック制御形式では、古いポインタほど移動しない傾向があり、奥部で滞留することが多い。このため、アプリケーションを実行するに際し、各セッション処理部３０―１、３０―２、・・・、３０―ｎを維持するのに都合がよい。
一方、キュー制御形式では、逐次移動する傾向があるため、各セッション処理部３０―１、３０―２、・・・、３０―ｎを１つづつ順次稼働しているか否かをチェックする死活監視に都合がよい。
【０１２１】
以上のように本実施形態によれば、データベース２０との通信を行うセッション処理部３０―１、３０―２、・・・、３０―ｎをＦＩＦＯ型キュー制御形式とＬＩＦＯ型スタック制御形式の両方で管理することで、全セッション処理部３０―１、３０―２、・・・、３０―ｎの監視を行うために先入れ先出し型のキュー制御形式でセッション処理部３０―１、３０―２、・・・、３０―ｎを管理していたプロセス処理であっても、後入れ先出し型のスタック制御形式でのセッション割り当てが都合の良いアプリケーション実行手段１２向けに後入れ先出し型の第２の管理手段６０を用意することが可能となる。
【０１２２】
このことにより、アプリケーション実行を阻害することのない死活監視手段１１と、後入れ先出し型のスタック制御形式でのセッション割り当てが都合の良いアプリケーション実行手段１２の両立を実現できる。
【０１２３】
ここで、各セッション処理部３０―１、３０―２、・・・、３０―ｎのうち未使用の箇所から逐次、死活監視処理を行い、各セッション処理部３０―１、３０―２、・・・、３０―ｎのうちアプリケーションを実行している箇所は、セッションの使用状態が維持される。
このため、一のセッションでは死活監視処理を行いつつ他のセッションではアプリケーションの実行を継続処理でき、死活監視処理とアプリケーション実行処理とを両立できる。
【０１２４】
又、関連技術では、ジョブをキューに収めるスケジューリングによって複数のジョブ処理順番を効率化するものであるのに対して、本実施形態では、ＤＢとの接続を行うためのセッションを一つ一つを複数種類のキューもしくはスタックに順序付けを行うことを特徴としており、処理待ちのジョブの順番がどのような順番であってもジョブに適したセッションを払いだすことができる。
【０１２５】
また、セッション数が多い場合、キューでは、移動速度が速くなる傾向があり、これを第１移動速度とすると、スタックでは、第１移動速度とことなる第２移動速度で頻繁に変化する領域と、第２移動速度より遅い第３移動速度で滞留する傾向のある領域（滞留時間の長い領域）とが形成される。この場合、第２の管理手段６０は、滞留時間の長い領域に対応するセッションでは、古い（時間的に以前から処理が継続している）アプリケーション処理が実行され、頻繁に変化する領域に対応するセッションでは、新しいアプリケーション処理が実行されるように管理する機能を備えてもよい。
【０１２６】
更に、第１の管理手段５０は、第１制御形式としてキュー制御形式の例を挙げたが、キューの亜種であるデキュー（ｄｅｑｕｅ：ｄｏｕｂｌｅ―ｅｎｄｅｄ−ｑｕｅｕｅ）や出力制限デキューを用いてもよい。
【０１２７】
ここで、図１に示すブロック図における一部の各ブロックは、コンピュータにより実行可能なプログラムにより機能化された状態を示すソフトウエアモジュール構成であってもよい。
【０１２８】
すなわち、物理的構成は例えば一又は複数のＣＰＵ（或いは一又は複数のＣＰＵと一又は複数のメモリ）等ではあるが、各部（回路・手段）によるソフトウエア構成は、プログラムの制御によってＣＰＵが発揮する複数の機能を、それぞれ複数の部（手段）による構成要素として表現したものである。
【０１２９】
以上に示した各部（手段）は、プログラムにより機能化されたコンピュータをプログラムの機能と共に実現し得るように構成しても、また、固有のハードウエアにより恒久的に機能化された複数の電子回路ブロックからなる装置で構成してもよい。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現でき、いずれかに限定されるものではない。
【０１３０】
上記の説明において、上述した各ステップの動作内容及び各部の構成要素並びにそれらによる各機能をプログラム化（ソフトウエアプログラム）し、コンピュータに実行させてもよい。
【産業上の利用可能性】
【０１３１】
本発明は、データベースを利用するコンピュータ全般に利用できる。
【符号の説明】
【０１３２】
１  データベース管理システム
１０  データベース管理装置
１０Ａ  プロセス処理手段
１１  死活監視手段
１１Ａ  ＦＩＦＯセッション要求手段
１２  アプリケーション実行手段
１２Ａ  ＬＩＦＯセッション要求手段
２０  データベース
３０―１、３０―２、・・・、３０―ｎ  セッション処理部
４０  セッション保持手段
５０  第１の管理手段
５１  ＦＩＦＯ型セッション管理部（第１セッション管理部）
５２―１、５２―２、・・・５２―ｎ  
ＦＩＦＯセッションポインタ（第１セッションポインタ：第１配列要素）
５３  第１セッションポインタ格納部
６０  第２の管理手段
６１  ＬＩＦＯ型セッション管理部（第２セッション管理部）
６２―１、６２―２、・・・６２―ｎ  
ＬＩＦＯセッションポインタ（第２セッションポインタ：第２配列要素）
６３  第２セッションポインタ格納部
７０  クライアント（利用者端末）  
【図１】
2010218414.tif 000003
【図２】
2010218414.tif 000004
【図３】
2010218414.tif 000005
【図４】
2010218414.tif 000006
【図５】
2010218414.tif 000007