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

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

Info

Publication number
JP2006127362A
JP2006127362A JP2004317808A JP2004317808A JP2006127362A JP 2006127362 A JP2006127362 A JP 2006127362A JP 2004317808 A JP2004317808 A JP 2004317808A JP 2004317808 A JP2004317808 A JP 2004317808A JP 2006127362 A JP2006127362 A JP 2006127362A
Authority
JP
Japan
Prior art keywords
connection
program
information
history information
unused
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
Application number
JP2004317808A
Other languages
English (en)
Other versions
JP4347196B2 (ja
Inventor
Tomokazu Taki
友和 瀧
Kazunori Mizushima
和憲 水島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004317808A priority Critical patent/JP4347196B2/ja
Publication of JP2006127362A publication Critical patent/JP2006127362A/ja
Application granted granted Critical
Publication of JP4347196B2 publication Critical patent/JP4347196B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

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

Claims (10)

  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. コネクションプールに蓄積しているコネクションの割り当て制御を行うコネクション割り当て方法をコンピュータに実行させる為のプログラムにおいて、
    コネクションの確立要求を行ったプログラムの情報とそれ以前にコネクションを利用したプログラムの情報を示す履歴情報とを比較し、コネクションの確立要求を行ったプログラムの情報に一致する履歴情報の未使用コネクションを、当該コネクションの確立要求を行ったプログラムへ通信装置により渡すステップと、前記プログラムへ渡したコネクションの履歴情報に当該プログラムの情報を記憶装置により格納して履歴情報を更新するステップとをコンピュータに実行させることを特徴とするプログラム。
JP2004317808A 2004-11-01 2004-11-01 コネクション割り当て方法、装置及びプログラム Expired - Fee Related JP4347196B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004317808A JP4347196B2 (ja) 2004-11-01 2004-11-01 コネクション割り当て方法、装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004317808A JP4347196B2 (ja) 2004-11-01 2004-11-01 コネクション割り当て方法、装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2006127362A true JP2006127362A (ja) 2006-05-18
JP4347196B2 JP4347196B2 (ja) 2009-10-21

Family

ID=36722030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004317808A Expired - Fee Related JP4347196B2 (ja) 2004-11-01 2004-11-01 コネクション割り当て方法、装置及びプログラム

Country Status (1)

Country Link
JP (1) JP4347196B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008315A (ja) * 2009-06-23 2011-01-13 Internatl Business Mach Corp <Ibm> キャッシュ制御方法
JP2011521306A (ja) * 2008-03-13 2011-07-21 シャープ株式会社 複数のアプリケーションを同期化するための方法およびシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011521306A (ja) * 2008-03-13 2011-07-21 シャープ株式会社 複数のアプリケーションを同期化するための方法およびシステム
JP2011008315A (ja) * 2009-06-23 2011-01-13 Internatl Business Mach Corp <Ibm> キャッシュ制御方法
US8484423B2 (en) 2009-06-23 2013-07-09 International Business Machines Corporation Method and apparatus for controlling cache using transaction flags

Also Published As

Publication number Publication date
JP4347196B2 (ja) 2009-10-21

Similar Documents

Publication Publication Date Title
US10506043B2 (en) Rapid client-side component processing based on component relationships
US9607071B2 (en) Managing a distributed database across a plurality of clusters
US10310900B2 (en) Operating programs on a computer cluster
CN106802939B (zh) 一种解决数据冲突的方法和系统
KR101634403B1 (ko) 공유 디스크 데이터베이스 시스템에서 락 통신들을 감소시키기 위한 접근 방법들
CN109388626B (zh) 用于向业务分配编号的方法和装置
JP6951846B2 (ja) 計算機システム及びタスクの割当方法
US11018860B2 (en) Highly available and reliable secret distribution infrastructure
US11546307B2 (en) Method to implement multi-tenant/shared Redis cluster using envoy
CN110675255A (zh) 在区块链中并发执行交易的方法和装置
CN108777718B (zh) 一种业务系统通过客户端访问读多写少系统的方法和装置
US10599472B2 (en) Information processing apparatus, stage-out processing method and recording medium recording job management program
US11394748B2 (en) Authentication method for anonymous account and server
JP4347196B2 (ja) コネクション割り当て方法、装置及びプログラム
US20230161664A1 (en) Method of responding to operation, electronic device, and storage medium
US20140324923A1 (en) Computer system, data management method, and non-transitory computer readable medium
US9311065B2 (en) Data splitting for multi-instantiated objects
JP6233846B2 (ja) 可変長ノンスの生成
JP2009037544A (ja) データベース処理方法、その実施システム及びプログラム
US20140046971A1 (en) Translation of universal plug and play search criteria
CN110659312A (zh) 数据处理的方法、装置、设备和计算机存储介质
US20220261389A1 (en) Distributing rows of a table in a distributed database system
US20150019672A1 (en) Method and System for Record Access in a Distributed System
KR101767745B1 (ko) 철강 공정 미들웨어 서비스 시스템의 미들웨어 서버
CN117708092A (zh) 一种数据库管理方法及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090714

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090715

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees