説明

コネクション割り当て方法、装置及びプログラム

【課題】 コネクションのプールでキャッシュしているオブジェクトの再利用率を高め、コンパイル処理を省略し、データ処理のアクセス性能及びシステム全体の性能の向上を図ることが可能な技術を提供する。
【解決手段】 コネクションプールに蓄積しているコネクションの割り当て制御を行うコネクション割り当て方法において、コネクションの確立要求を行ったプログラムの情報とそれ以前にコネクションを利用したプログラムの情報を示す履歴情報とを比較し、コネクションの確立要求を行ったプログラムの情報に一致する履歴情報の未使用コネクションを、当該コネクションの確立要求を行ったプログラムへ通信装置により渡すステップと、前記プログラムへ渡したコネクションの履歴情報に当該プログラムの情報を記憶装置により格納して履歴情報を更新するステップとを有するものである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はコネクションプールに蓄積しているコネクションの割り当て制御を行うコネクション割り当て技術に関するものである。
【背景技術】
【0002】
データベース管理システムとアプリケーションサーバが連携して処理を行うとき、まずコネクションを確立する必要があるが、そのコネクションの確立には時間がかかる。そこで、予めコネクションを確立し、その確立済みのコネクションをアプリケーションサーバのコネクションプールで蓄積する技術がある。
【0003】
アプリケーションを実行する時には、アプリケーションサーバのコネクションプールに蓄積されている未使用コネクションがあれば、その未使用コネクションをアプリケーションへ渡し、アプリケーションはこの渡された未使用コネクションを使ってデータベース管理システムにアクセスしながら処理を実行する流れになる。
【0004】
このコネクションプールで蓄積しているコネクションを利用するのに先立ち、コネクションが正常に動作するのかを確認する技術が特許文献1で紹介されている。この従来技術である特許文献1に記載の技術はコネクションプールに蓄積しているコネクションが有効である確率を高める技術である。すなわち、データベース管理システムとのコネクションを確立する時の性能劣化の改善に着目した技術である。
【0005】
このコネクションプールに蓄積している各コネクションには、SQL文をコンパイルしたSQLオブジェクトをキャッシュするステートメントプールが用意されている。このステートメントプールは、各コネクションで専用のため、他のコネクションと共用できない。アプリケーションへ割り当てたコネクションに用意されているステートメントプールでキャッシュされているSQLオブジェクトに、実行したいアプリケーションのSQL文と一致するSQLオブジェクトがキャッシュされていれば、その一致したSQLオブジェクトを再利用できる。SQLオブジェクトの再利用ができれば、コンパイル処理は不要となるため、データベースのアクセス性能及びシステム全体の性能が向上する。
【0006】
また、このステートメントプールのキャッシュ領域は有限のため、キャッシュできるSQLオブジェクトは上限があり、上限を超えてキャッシュしようとすると、代わりに既にキャッシュ済みのSQLオブジェクトを破棄することになる。SQLオブジェクトを破棄した後、破棄したSQLオブジェクトと同一の要求があると再度コンパイル処理を行うことになるため、コンパイルしたSQLオブジェクトを破棄することは好ましくない。
【0007】
【特許文献1】特開2003−216477号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
前記従来技術においてアプリケーション(プログラムやオブジェクト、スレッド、プロセスでも良い)を実行する際に、アプリケーションサーバのコネクションプールに蓄積されている任意の未使用コネクションを使ってデータベースへのアクセスを実行した場合、その未使用コネクションのステートメントプールに当該アプリケーションで使用するSQLオブジェクトがキャッシュされているとは限らない為、そのステートメントプールにキャッシュしているSQLオブジェクトを再利用する確率が下がり、データベースのアクセス性能及びシステム全体の性能が低下するという問題がある。
【0009】
本発明の目的は上記問題を解決し、コネクションのプール(コネクションの管理手段)でキャッシュしているオブジェクトの再利用率を高め、コンパイル処理を省略し、データ処理のアクセス性能及びシステム全体の性能の向上を図ることが可能な技術を提供することにある。
【課題を解決するための手段】
【0010】
本発明は、アプリケーションサーバのコネクションプールに蓄積している各コネクションを識別する為の履歴情報を付けたものであり、この履歴情報を活用して、アプリケーションサーバのコネクションプールに蓄積されているコネクションの中から最適な未使用コネクションを選択してアプリケーションへ渡す様にしたものである。
【0011】
本発明のアプリケーションサーバは、クライアントマシンよりコネクションの確立要求を受け取ると、そのコネクションの確立要求を行ったアプリケーションプログラムの情報を通信装置によりクライアントマシンから取得する。
【0012】
次にアプリケーションサーバは、コネクションプールに存在する未使用コネクションの履歴情報を記憶装置から取得した後、前記取得したアプリケーションプログラムの情報と前記履歴情報中の情報とを比較して、前記取得したプログラムの情報に一致する履歴情報の未使用コネクションを選択し、その選択したコネクションを前記コネクションの確立要求を行ったアプリケーションプログラムへ渡す。そして、そのアプリケーションプログラムへ渡したコネクションの履歴情報に当該アプリケーションプログラムの情報を記憶装置により格納して履歴情報を更新する。
【発明の効果】
【0013】
本発明によれば、コネクションのプールでキャッシュしているオブジェクトの再利用率を高め、データ処理のアクセス性能の向上を図ることが可能である。
【発明を実施するための最良の形態】
【0014】
以下にコネクションプールに蓄積しているコネクションの割り当て制御を行う一実施形態のコネクション割り当て装置について説明する。
【0015】
図1は本実施形態のデータ通信システムのシステム全体の構成を示す図である。クライアントマシン101とアプリケーションサーバ102とデータベースサーバ103はそれぞれに主記憶装置104とCPU105を持ち、ネットワーク110で繋がっている。クライアントマシン101の主記憶装置104で、アプリケーションプログラムA106やアプリケーションプログラムB107を実行し、アプリケーションサーバ102の主記憶装置104で、本実施形態で検討するコネクションプールプログラム108を実行する。またデータベースサーバ103の主記憶装置104では、データベースマネージメントシステム109を実行する。ここで、クライアントマシン101、アプリケーションサーバ102やデータベースサーバ103は、計算機や情報処理装置であるものとするが、その様な処理を実施するプログラムやオブジェクトでも良い。
【0016】
図2は本実施形態のコネクションプールプログラム108を詳細化したプログラム構成の一例を示す図である。図2に示す様に本実施形態のアプリケーションサーバ202は、コネクション割り当て制御部207と、履歴情報制御部209とを有している。
【0017】
コネクション割り当て制御部207は、コネクションの確立要求を行ったアプリケーションプログラムの情報とそれ以前にコネクションを利用したアプリケーションプログラムの情報を示す履歴情報とを比較し、コネクションの確立要求を行ったアプリケーションプログラムの情報に一致する履歴情報の未使用コネクションを、当該コネクションの確立要求を行ったアプリケーションプログラムへ通信装置により渡す処理部である。
【0018】
履歴情報制御部209は、前記履歴情報へのアクセスを制御し、前記アプリケーションプログラムへ渡したコネクションの履歴情報に当該アプリケーションプログラムの情報を記憶装置により格納してその履歴情報を更新する処理部である。
【0019】
アプリケーションサーバ202をコネクション割り当て制御部207及び履歴情報制御部209として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【0020】
図1で説明した通り、アプリケーションサーバ202でコネクションプールプログラム206が実行される。
【0021】
コネクションプールプログラム206は、コネクション210を蓄積するプール208の他に、クライアントマシン201のアプリケーションプログラムA204やアプリケーションプログラムB205を実行時に、プール208で蓄積している未使用コネクション210をクライアントマシン201のアプリケーションプログラムA204やアプリケーションプログラムB205へ渡す処理を行うコネクション割り当て制御部207からなる。
【0022】
プール208に蓄積している、データベースサーバ203のデータベースマネージメントシステム212との接続を確立する為の情報であるコネクション210には、ステートメントプール211が用意されていて、このステートメントプール211はSQLオブジェクトをキャッシュする。本例の各サーバは、計算や仮想計算機、論理サーバでも実現可能である。
【0023】
クライアントマシン201のアプリケーションプログラムA204やアプリケーションプログラムB205を実行時にプール208の未使用コネクション210を渡すときは、ステートメントプール211も一緒にクライアントマシン201のアプリケーションプログラムA204やアプリケーションプログラムB205に渡される。そのため、クライアントマシン201のアプリケーションプログラムA204やアプリケーションプログラムB205でSQL文を実行するのに必要なオブジェクトが、渡された未使用コネクション210に用意されているステートメントプール211にキャッシュしているSQLオブジェクトと一致して再利用できれば、データベースサーバ203のデータベースマネージメントシステム212でコンパイルしなくてもSQLオブジェクトが得られるため性能が向上する。
【0024】
このSQLオブジェクトの再利用率を高める為に、プール208に蓄積している複数のコネクション210の中から、個々のコネクション210を識別する為の履歴情報を付ける。コネクション割り当て制御部207は、履歴情報制御部209でこの履歴情報を活用し、クライアントマシン201のアプリケーションプログラムA204やアプリケーションプログラムB205で実行するSQL文が多く再利用できる確率の高いSQLオブジェクトをステートメントプール211にキャッシュした未使用コネクション210を選択する。その選択した未使用コネクション210をクライアントマシン201のアプリケーションプログラムA204やアプリケーションプログラムB205に渡すことで、SQLオブジェクトの再利用率を高め性能も向上させる。本例の各プログラムや各処理部は、ハードウェアやオブジェクト、スレッド、プロセスで実現することが可能である。各処理部は、プログラムで実現することが可能である。
【0025】
図3は本実施形態の図2で示したプログラム構成の各要素の役割を示す図である。クライアントマシン301のアプリケーションプログラム304は、アプリケーションサーバ302のコネクションプールプログラム305にあるコネクション割り当て制御部306に対して、アプリケーションサーバ302のコネクションプールプログラム305とデータベースサーバ303のデータベースマネージメントシステム311間のコネクション接続要求を行う。
【0026】
コネクション割り当て制御部306は、履歴情報制御部308で履歴情報を活用し、プール307で蓄積しているコネクション309に用意されているステートメントプール310でキャッシュしているSQLオブジェクトが再利用される確率の高い未使用コネクション309を選択する。
【0027】
プール307に蓄積している全コネクション309が使用中の場合には、プール307からデータベースサーバ303のデータベースマネージメントシステム311へコネクション309の確立要求を行う。データベースサーバ303のデータベースマネージメントシステム311とのコネクション309が確立できたらプール307へ蓄積するが、そのときのコネクション309に用意されているステートメントプール310にはSQLオブジェクトは何もキャッシュされていない。そのため、クライアントマシン301のアプリケーションプログラム304にあるSQL文を実行時に、データベースサーバ303のデータベースマネージメントシステム311でSQL文をコンパイルしてSQLオブジェクトを得てから、コネクション309に用意されているステートメントプール310にキャッシュすることになる。
【0028】
プール307から取り出す未使用コネクション309を決定できたのでコネクション割り当て制御部306は、この決定した未使用コネクション309をプール307から取り出してクライアントマシン301のアプリケーションプログラム304へ渡す。
【0029】
図4は本実施形態の図3のコネクション割り当て制御部306による未使用コネクション309の割り当て処理の処理手順を示すフローチャートである。まずコネクション割り当て制御部306は、実行するクライアントマシン301のアプリケーションプログラム304の情報を通信装置によりクライアントマシン301から取得する(ステップ401)。このときに取得する情報は、クライアントマシン301はどのアプリケーションプログラム304を実行するのかという情報である。
【0030】
次にコネクション割り当て制御部306は、プール307中のコネクション309の使用状態を示す情報を参照し、プール307に未使用コネクション309が1つでも存在するかを確認する(ステップ402)。プール307に未使用コネクション309が1つでも存在する場合は、プール307に存在する全未使用コネクション309の履歴情報を取得する(ステップ403)。
【0031】
ステップ403でプール307に存在する全未使用コネクション309の履歴情報を取得後は、その取得した履歴情報とステップ401で取得した実行するクライアントマシン301のアプリケーションプログラム304の情報とを比較し、それらの情報が一致する未使用コネクション309が1つでも存在するか確認する(ステップ404)。
【0032】
ステップ404で比較した結果、前記の情報が一致する未使用コネクション309がプール307に1つでも存在する場合は、その一致する全未使用コネクション309だけを選択候補とする(ステップ405)。もし、この選択候補の未使用コネクション309が1つだけしか存在しない場合は、それがクライアントマシン301のアプリケーションプログラム304に渡す未使用コネクション309となる。または、この選択候補の未使用コネクション309が複数ある場合は、この選択候補の全未使用コネクション309から任意の1つを選択する(ステップ406)。
【0033】
この選択した1つの未使用コネクション309をクライアントマシン301のアプリケーションプログラム304に渡すことを決定する(ステップ407)。この決定した未使用コネクション309の履歴情報を、ステップ401で取得したクライアントマシン301のアプリケーションプログラム304の情報を用いて更新する(ステップ408)。そして、その履歴情報が更新済みの未使用コネクション309を、クライアントマシン301のアプリケーションプログラム304に渡す(ステップ409)。
【0034】
また、ステップ404でクライアントマシン301のアプリケーションプログラム304の情報とプール307に存在する全未使用コネクション309の履歴情報を比較した結果、一致する未使用コネクション309が1つも存在しない場合は、比較した全未使用コネクション309を選択範囲とし、その選択範囲から任意の1つを選択する(ステップ406)。そして、その選択した未使用コネクション309をクライアントマシン301のアプリケーションプログラム304へ渡すことを決定する(ステップ407)。あとは同様に、この決定した未使用コネクション309の履歴情報をステップ401で得たクライアントマシン301のアプリケーションプログラム304の情報を用いて更新し(ステップ408)、この履歴情報を更新済みの未使用コネクション309をクライアントマシン301のアプリケーションプログラム304へ渡す(ステップ409)。
【0035】
また、ステップ402でプール307に未使用コネクション309が1つも存在しない場合は、コネクション309を1つ作成する(ステップ410)。その作成したコネクション309をクライアントマシン301のアプリケーションプログラム304へ渡すことを決定する(ステップ407)。あとは同様に、この決定した未使用コネクション309の履歴情報をステップ401で得たクライアントマシン301のアプリケーションプログラム304の情報を用いて更新(ステップ408)し、この履歴情報を更新済みの未使用コネクション309をクライアントマシン301のアプリケーションプログラム304へ渡す(ステップ409)。
【0036】
上記の処理により、割り当て処理が完結する。複数のクライアントマシン301のアプリケーションプログラム304を実行する場合は、この割り当て処理を繰り返す。
【0037】
図5は本実施形態の図3の履歴情報制御部308で活用する履歴情報を管理するテーブルの第1の例を示す図である。図4のステップ408でクライアントマシン301のアプリケーションプログラム304へ渡すことを決定した未使用コネクション309の履歴情報の更新を実行するたび、この履歴情報を管理するテーブルの更新を行う。
【0038】
この履歴情報を管理するテーブルは、プール307に存在する各コネクション309を識別する為のコネクション名501と、そのコネクション309の履歴情報(最後に当該コネクションを利用したアプリケーション名)502でペアになり1つの要素を形成する。
【0039】
ステップ410でコネクション309を1つ作成すると、この履歴情報を管理するテーブルに新たな要素が追加され、そのコネクション名501にはユニークな名前が付与されるが、対応する履歴情報(最後に当該コネクションを利用したアプリケーション名)502の値は無くnullになる。この履歴情報(最後に当該コネクションを利用したアプリケーション名)502の値が更新されるのは、ステップ408でクライアントマシン301のアプリケーションプログラム304へ渡すことを決定した未使用コネクション309の履歴情報の更新を実行するときである。
【0040】
ステップ410でコネクション309を1つ作成した後は、ステップ407の実行でこの作成したコネクション309をクライアントマシン301のアプリケーションプログラム304へ渡すことを決定し、ステップ408の実行でこの決定した未使用コネクション309の履歴情報を更新するときに初めて履歴情報(最後に当該コネクションを利用したアプリケーション名)502に値が入る。
【0041】
また、ステップ403ではプール307に存在する未使用コネクション309の要素だけのテーブルを取得する。ステップ404ではこの取得したテーブルとステップ401で得たクライアントマシン301のアプリケーションプログラム304の情報とを比較して、一致する履歴情報(最後に当該コネクションを利用したアプリケーション名)502があるかを確認する。一致する履歴情報(最後に当該コネクションを利用したアプリケーション名)502があれば、この履歴情報を管理するテーブルで対応する要素のコネクション名501を取得する。この取得したコネクション名501に対応するプール307に蓄積している未使用コネクション309が、クライアントマシン301のアプリケーションプログラム304へ渡す候補として選択される。
【0042】
図6は本実施形態の図3の履歴情報制御部308で活用する履歴情報を管理するテーブルの第2の例を示す図である。図5と同様に、コネクション名601と履歴情報(当該コネクションを利用したアプリケーション名)602でペアになり1つの要素を形成する。
【0043】
図5と違う点は、プール307に蓄積しているコネクション309の履歴情報(当該コネクションを利用したアプリケーション名)602を、最後に利用したアプリケーション名だけでなく、過去複数回前以降に利用したアプリケーション名を履歴情報として管理していることである。
【0044】
この履歴情報を管理するテーブルの要素である履歴情報(当該コネクションを利用したアプリケーション名)602は、最後に利用したアプリケーション名603、最後から2番目に利用したアプリケーション名604、・・・、最後からn番目に利用したアプリケーション名の様に、過去n回分の履歴情報を要素として管理している。
【0045】
そして、図4のステップ408を実行するときにこのテーブルの更新を行うが、その際には過去n回分の利用履歴情報の更新を行う。また、ステップ403ではプール307に存在する未使用コネクション309の情報だけを抽出してテーブルを作成する。
【0046】
この抽出したテーブルとステップ401で得たクライアントマシン301のアプリケーションプログラム304の情報とを比較するステップ404では、この抽出したテーブルの履歴情報(当該コネクションを利用したアプリケーション名)602の要素の最後に利用したアプリケーション名603で一致する未使用コネクション309がなくても、最後から2番目に利用したアプリケーション名604、・・・、最後からn番目の様に、最大n回の比較を行う。
【0047】
最大n回の比較を行うことで各未使用コネクション309を識別する特徴が増え、より厳密にクライアントマシン301のアプリケーションプログラム304へ渡す未使用コネクション309の選択が可能になる。
【0048】
n回の比較を行うときは、図4のステップ404とステップ405をn回繰り返す。その繰り返しのたびに履歴情報を管理するテーブルで活用する要素を変えるため、ステップ404で比較する未使用コネクション309の履歴情報は変わる。すなわちn回目の繰り返しで実行するステップ404で活用する未使用コネクション309の履歴情報は、履歴情報を管理するテーブルの履歴情報(当該コネクションを利用したアプリケーション名)602の要素である最後からn番目に利用したアプリケーション名の値になる。
【0049】
ステップ404では、この繰り返しのたびに変わる未使用コネクション309の履歴情報と、不変であるクライアントマシン301のアプリケーションプログラム304の情報とを比較する。この繰り返しの最大値であるnの値は、テーブルの履歴情報(当該コネクションを利用したアプリケーション名)602で過去何回分の履歴情報を管理しているかに依存し、テーブルで管理している回数分以下の値である必要がある。
【0050】
また、最大であるn回分の履歴情報まで比較しても一致する未使用コネクション309が存在しないときは、あまり適切でない未使用コネクション309をクライアントマシン301のアプリケーションプログラム304に渡すことになる。これは、クライアントマシン301のアプリケーションプログラム304が実行すると思われるSQL文に対応するSQLオブジェクトをステートメントプール310に多くキャッシュしている可能性が高い未使用コネクション309がプール307に存在しないためであり、どの未使用コネクション309をクライアントマシン301のアプリケーションプログラム304に渡しても性能向上があまり見込めないケースである。
【0051】
また、ステップ404での履歴情報の最後に利用したアプリケーション名603で比較した結果、複数の未使用コネクション309が一致した場合は、ステップ405でその一致した未使用コネクション309のみを選択候補に絞る。更にステップ404を繰り返し、この絞った未使用コネクション309のみに対し今度は履歴情報の最後から2番目に利用したアプリケーション名604で比較する。もし、履歴情報の最後から2番目に利用したアプリケーション名604で比較しても複数の未使用コネクション309が一致した場合は、その一致した未使用コネクション309のみに対し今度は履歴情報の最後から3番目に利用したアプリケーション名と比較する。この繰り返しを最大n回、すなわち過去n回分の履歴情報を活用して行う。
【0052】
最大n回までの比較の過程で一致する未使用コネクション309が1つだけになれば、その未使用コネクション309をクライアントマシン301のアプリケーションプログラム304へ渡す。未使用コネクション309を1つに絞れなくても、一致する未使用コネクション309が無くなる繰り返しの1回手前の繰り返しで選択候補になっている未使用コネクション309の中から任意の1つを選択することで、最適に近い未使用コネクション309をクライアントマシン301のアプリケーションプログラム304へ渡せる。
【0053】
この様に、履歴情報を管理するテーブルの履歴情報(当該コネクションを利用したアプリケーション名)602で過去n回前以降の履歴情報を活用して比較した場合は、最大n回の比較により絞りこむため、最適な未使用コネクション309をクライアントマシン301のアプリケーションプログラム304へ渡す確率を高くすることができる。
【0054】
前記の様に本実施形態では、アプリケーションを実行する時に渡す未使用コネクションとして、ステートメントプールにキャッシュしているSQLオブジェクトを再利用する確率が高い未使用コネクションを割り当てており、この割り当てを繰り返すことで、更にSQLオブジェクトを再利用する確率を高め、SQL文のコンパイル処理を省くことにより、データベースのアクセス性能及びシステム全体の性能を向上させることが可能という利点がある。
【0055】
以上説明した様に本実施形態のコネクション割り当て装置によれば、コネクションの確立要求を行ったプログラムの情報に一致する履歴情報の未使用コネクションを当該プログラムへ渡すので、コネクションのプールでキャッシュしているオブジェクトの再利用率を高め、コンパイル処理を省略し、データ処理のアクセス性能及びシステム全体の性能の向上を図ることが可能である。
【図面の簡単な説明】
【0056】
【図1】本実施形態のデータ通信システムのシステム全体の構成を示す図である。
【図2】本実施形態のコネクションプールプログラム108を詳細化したプログラム構成の一例を示す図である。
【図3】本実施形態の図2で示したプログラム構成の各要素の役割を示す図である。
【図4】本実施形態の図3のコネクション割り当て制御部306による未使用コネクション309の割り当て処理の処理手順を示すフローチャートである。
【図5】本実施形態の図3の履歴情報制御部308で活用する履歴情報を管理するテーブルの第1の例を示す図である。
【図6】本実施形態の図3の履歴情報制御部308で活用する履歴情報を管理するテーブルの第2の例を示す図である。
【符号の説明】
【0057】
101…クライアントマシン、102…アプリケーションサーバ、103…データベースサーバ、104…主記憶装置、105…CPU、106…アプリケーションプログラムA、107…アプリケーションプログラムB、108…コネクションプールプログラム、109…データベースマネージメントシステム、110…ネットワーク、201…クライアントマシン、202…アプリケーションサーバ、203…データベースサーバ、204…アプリケーションプログラムA、205…アプリケーションプログラムB、206…コネクションプールプログラム、207…コネクション割り当て制御部、208…プール、209…履歴情報制御部、210…コネクション、211…ステートメントプール、212…データベースマネージメントシステム、213…ネットワーク、301…クライアントマシン、302…アプリケーションサーバ、303…データベースサーバ、304…アプリケーションプログラム、305…コネクションプールプログラム、306…コネクション割り当て制御部、307…プール、308…履歴情報制御部、309…コネクション、310…ステートメントプール、311…データベースマネージメントシステム、501…コネクション名、502…履歴情報(最後に当該コネクションを利用したアプリケーション名)、601…コネクション名、602…履歴情報(当該コネクションを利用したアプリケーション名)、603…最後に利用したアプリケーション名、604…最後から2番目に利用したアプリケーション名。

【特許請求の範囲】
【請求項1】
コネクションプールに蓄積しているコネクションの割り当て制御を行うコネクション割り当て方法において、
コネクションの確立要求を行ったプログラムの情報とそれ以前にコネクションを利用したプログラムの情報を示す履歴情報とを比較し、コネクションの確立要求を行ったプログラムの情報に一致する履歴情報の未使用コネクションを、当該コネクションの確立要求を行ったプログラムへ通信装置により渡すステップと、前記プログラムへ渡したコネクションの履歴情報に当該プログラムの情報を記憶装置により格納して履歴情報を更新するステップとを有することを特徴とするコネクション割り当て方法。
【請求項2】
前記プログラムの情報に一致する履歴情報の未使用コネクションが複数存在する場合に、その内の任意の1つを選択して前記プログラムへ渡すことを特徴とする請求項1に記載されたコネクション割り当て方法。
【請求項3】
前記プログラムの情報に一致する履歴情報の未使用コネクションが存在しない場合に、全未使用コネクションの任意の1つを選択して前記プログラムへ渡すことを特徴とする請求項1または請求項2のいずれかに記載されたコネクション割り当て方法。
【請求項4】
コネクションプールに未使用コネクションが存在しない場合に、新規のコネクションを記憶装置上に作成し、その作成したコネクションを前記プログラムへ渡すことを特徴とする請求項1乃至請求項3のいずれか1項に記載されたコネクション割り当て方法。
【請求項5】
コネクションの確立要求を行ったプログラムの情報と、履歴情報中の最後にコネクションを利用したプログラムの情報とが一致する場合に、そのコネクションを前記プログラムへ渡すことを特徴とする請求項1乃至請求項4のいずれか1項に記載されたコネクション割り当て方法。
【請求項6】
コネクションの確立要求を行ったプログラムの情報と、履歴情報中の最後から2番目以前にコネクションを利用したプログラムの情報とが一致する場合に、そのコネクションを前記プログラムへ渡すことを特徴とする請求項1乃至請求項5のいずれか1項に記載されたコネクション割り当て方法。
【請求項7】
コネクションの確立要求を行ったプログラムの情報と、履歴情報中の最後にコネクションを利用したプログラムの情報とが一致するものが複数存在する場合に、履歴情報中の最後から2番目以前にコネクションを利用したプログラムの情報との一致を調べることにより、前記プログラムへ渡すコネクションの絞り込みを行うことを特徴とする請求項1乃至請求項6のいずれか1項に記載されたコネクション割り当て方法。
【請求項8】
コネクションをプログラムへ渡す際に、当該コネクションを利用したプログラムの情報としてそのプログラムの名称を当該コネクションの履歴情報へ格納して履歴情報の更新を行うことを特徴とする請求項1乃至請求項7のいずれか1項に記載されたコネクション割り当て方法。
【請求項9】
コネクションプールに蓄積しているコネクションの割り当て制御を行う情報処理装置において、
コネクションの確立要求を行ったプログラムの情報とそれ以前にコネクションを利用したプログラムの情報を示す履歴情報とを比較し、コネクションの確立要求を行ったプログラムの情報に一致する履歴情報の未使用コネクションを、当該コネクションの確立要求を行ったプログラムへ通信装置により渡すコネクション割り当て制御部と、前記プログラムへ渡したコネクションの履歴情報に当該プログラムの情報を記憶装置により格納して履歴情報を更新する履歴情報制御部とを備えることを特徴とする情報処理装置。
【請求項10】
コネクションプールに蓄積しているコネクションの割り当て制御を行うコネクション割り当て方法をコンピュータに実行させる為のプログラムにおいて、
コネクションの確立要求を行ったプログラムの情報とそれ以前にコネクションを利用したプログラムの情報を示す履歴情報とを比較し、コネクションの確立要求を行ったプログラムの情報に一致する履歴情報の未使用コネクションを、当該コネクションの確立要求を行ったプログラムへ通信装置により渡すステップと、前記プログラムへ渡したコネクションの履歴情報に当該プログラムの情報を記憶装置により格納して履歴情報を更新するステップとをコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−127362(P2006−127362A)
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願番号】特願2004−317808(P2004−317808)
【出願日】平成16年11月1日(2004.11.1)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】