JP2009157662A - データベース管理装置、データベース管理方法、およびデータベース管理プログラム - Google Patents
データベース管理装置、データベース管理方法、およびデータベース管理プログラム Download PDFInfo
- Publication number
- JP2009157662A JP2009157662A JP2007335350A JP2007335350A JP2009157662A JP 2009157662 A JP2009157662 A JP 2009157662A JP 2007335350 A JP2007335350 A JP 2007335350A JP 2007335350 A JP2007335350 A JP 2007335350A JP 2009157662 A JP2009157662 A JP 2009157662A
- Authority
- JP
- Japan
- Prior art keywords
- pool
- session
- access
- thread
- status
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】応答待ち時間を大きく短縮し、かつその後でデータベースが正常な状態に戻った場合に参照更新要求を再開させることのできるデータベース管理装置を提供する。
【解決手段】本発明に係るデータベース管理装置20は、スレッドに対してセッションを発行するセッションプール手段24と、セッションプール手段が正常であるか否かを記憶する変数であるプールステータスを記憶するプールステータス保持手段24−1と、プールステータスが正常であればセッションプール手段から発行された第1のセッションによってデータベースに対して第1のアクセスを行い、第1のアクセスが異常を起こせばプールステータスを異常に変更してクライアントにエラーを通知する業務処理手段22と、異常を起こした第1のアクセスを中断して第1のセッションを返却する廃棄処理手段26とを有する。
【選択図】図1
【解決手段】本発明に係るデータベース管理装置20は、スレッドに対してセッションを発行するセッションプール手段24と、セッションプール手段が正常であるか否かを記憶する変数であるプールステータスを記憶するプールステータス保持手段24−1と、プールステータスが正常であればセッションプール手段から発行された第1のセッションによってデータベースに対して第1のアクセスを行い、第1のアクセスが異常を起こせばプールステータスを異常に変更してクライアントにエラーを通知する業務処理手段22と、異常を起こした第1のアクセスを中断して第1のセッションを返却する廃棄処理手段26とを有する。
【選択図】図1
Description
本発明はクライアント−サーバ方式のデータベースの管理に関し、特に該データベースにおいてプロセスがタイムアウトしたときの処理に関する。
図4は、従来技術に係るデータベースシステム301の構成を示すブロック図である。データベースシステム301は、n台(nは任意の自然数)のクライアントコンピュータ310(以後クライアント310)と、業務ノード320と、DBノード330とが、ネットワークを介して相互に接続されて構成される。業務ノード320およびDBノード330はそれぞれ、クライアント310とは物理的に別のコンピュータのCPU、RAM、OSなどによって構成される、ソフトウェアの実行単位である。
業務ノード320は業務処理プロセス321を含む。業務処理プロセス321はmスレッド(mは任意の自然数、nとは同数であってもなくてもよい)の業務処理スレッド322、DBセッションプール324を含む。DBノード330はデータベース331を含む。個々の業務処理スレッド322は各々に利用者アプリケーション323を含む。利用者アプリケーション323は、クライアント310を利用する各々の利用者がそれぞれに行おうとする業務処理に応じて作成される。
業務処理プロセス321は複数の業務処理スレッド322を持つ。データベースシステム301では、業務処理プロセス321の起動時に、あらかじめ所定の数のデータベース31とのセッション(以後DBセッションという)325を接続しておくセッションプール方式を採用する。DBセッションプール324は、kセッション(kは任意の自然数、nおよびmとは同数であってもなくてもよい)のDBセッション325を含む。
業務処理プロセス321は複数の業務処理スレッド322を持つ。データベースシステム301では、業務処理プロセス321の起動時に、あらかじめ所定の数のデータベース31とのセッション(以後DBセッションという)325を接続しておくセッションプール方式を採用する。DBセッションプール324は、kセッション(kは任意の自然数、nおよびmとは同数であってもなくてもよい)のDBセッション325を含む。
クライアント310が業務処理プロセス321へ処理要求を行うと、クライアントの処理要求は業務処理スレッド322に届き、業務処理スレッド322は利用者アプリケーション323で用意された業務処理を開始する。利用者アプリケーション323がDBセッションプール324にDBセッション325の払い出し要求を行うと、DBセッション325が1セッション払いだされ、払い出されたDBセッション325によってデータベース331の参照/更新処理が行われる。
なお、サーバ−クライアントシステムにおいてタイムアウト処理に関連する技術として、以下の文献がある。特許文献1には、サーバからクライアントに通知するタイムアウト処理を、専用の子スレッドで行うという技術が開示されている。特許文献2には、サーバのタイムアウト情報を記憶し、その情報をクライアントのタイムアウト判断に利用するという技術が開示されている。
特許文献3には、タイムアウトしたデータを専用のスレッドで破棄するというデータ転送方式が開示されている。特許文献4には、通信相手の状態を所定の周期で監視するという技術が開示されている。特許文献5には、サーバ−クライアントシステムにおけるデータベースのセッションで、タイムアウトの検出および該タイムアウトをユーザに告知を通知する技術が開示されている。
データベース331での障害の中には、ネットワーク通信的な障害のために応答が数十秒ないし数分かかるような障害が存在する。このような障害が発生すると、業務ノード320においてデータベース331に対して処理を依頼した業務処理スレッド322が、障害を検知するためには数十秒から数分の応答を待つ必要があるので、業務処理の結果をクライアント310に通知するのが大きく遅延することになる。さらに、別のクライアント310から依頼された別の業務処理スレッド322がその後に続く場合、その処理も大きく遅延することになる。
そのような問題点を解決するため、DBセッションプール324の状態を記録する変数であるプールステータス324−1を備えるという技術がある。データベースへの参照更新要求が正常に完了しない場合、プールステータス324−1を異常ステータスとする。プールステータス324−1が異常ステータスである場合には、利用者アプリケーション323からDBセッションプール324にDBセッション325の払い出し要求が発生しても、DBセッション325は払い出されない。
しかしながら、この方法は後続の利用者アプリケーション323の応答の遅延を回避することはできるが、現在実行中の利用者アプリケーション323及びDBセッション325の払い出しを止める前に実行された利用者アプリケーション323の遅延を防ぐことはできない。
またデータベース331への参照更新要求を非同期で実行し、一定時間以上応答が無かった場合にデータベース331への参照更新要求を中断させるという方法もある。しかしながら、DBノード330自体が停止しているような障害の場合には、この方法を使用した場合でもその中断処理自体で応答の遅延が発生してしまうため、この問題点を解決できない。
これに特許文献1〜5を組み合わせたとすると、業務ノードにおいてタイムアウトを検出し、そのことをクライアントに通知することはできる。しかしながら、タイムアウトを起こした利用者アプリケーションとそのユーザ以外の、他の利用者アプリケーションとそれらのユーザに対して影響が及ぶことを避けることはできない。また、その後でデータベースが正常な状態に戻った場合に、中断していたデータベースへの参照更新要求を再開させる手段もない。
本発明の目的は、データベースの異常に起因するクライアントの応答待ち時間を大きく短縮し、かつその後でデータベースが正常な状態に戻った場合に参照更新要求を再開させることのできるデータベース管理装置、データベース管理方法、およびデータベース管理プログラムを提供することにある。
上記目的を達成するため、本発明に係るデータベース管理装置は、クライアントからの要求に基づいて、データベースとの間でセッションを確立してデータの参照および更新のうち少なくとも一方を行うデータベース管理装置であって、データベース管理装置で動作するスレッドに対してセッションを発行するセッションプール手段と、セッションプール手段が正常であるか否かを記憶する変数であるプールステータスを記憶するプールステータス保持手段と、クライアントからの要求に基づいて起動され、プールステータスがセッションプール手段が正常である状態を示していればセッションプール手段から発行された第1のセッションによってデータベースに対して第1のアクセスを行い、第1のアクセスが異常終了もしくはタイムアウトを起こせばプールステータスをセッションプール手段が正常でない状態を示す値に変更してクライアントにエラーを通知する業務処理手段と、異常終了もしくはタイムアウトを起こした第1のアクセスを中断して第1のセッションをセッションプール手段に返却する廃棄処理手段とを有することを特徴とする。
上記目的を達成するため、本発明に係るデータベース管理方法は、クライアントからの要求に基づいて、データベースとの間であらかじめ確立されたセッションの発行をセッションプールから受けてデータの参照および更新のうち少なくとも一方を行うデータベース管理方法であって、クライアントからの要求に基づいて業務処理スレッドを起動する業務処理スレッド起動工程と、業務処理スレッドがセッションプールが正常であるか否かを記憶する変数であるプールステータスを参照するプールステータス参照工程と、プールステータスがセッションプールが正常である状態を示していれば業務処理スレッドがセッションプールから第1のセッションの発行を受けてデータベースに対して第1のアクセスを行う第1アクセス工程と、第1アクセス工程で第1のアクセスが異常終了もしくはタイムアウトを起こせば業務処理スレッドがプールステータスをセッションプールが正常でない状態を示す値に変更してクライアントにエラーを通知して廃棄処理スレッドを起動するエラー処理工程と、廃棄処理スレッドが異常終了もしくはタイムアウトを起こした第1のアクセスを中断して第1のセッションをセッションプールに返却する廃棄処理工程とを有することを特徴とする。
上記目的を達成するため、本発明に係るデータベース管理プログラムは、クライアントからの要求に基づいて、データベースとの間であらかじめ確立されたセッションの発行をセッションプールから受けてデータの参照および更新のうち少なくとも一方を行うデータベース管理装置を構成するコンピュータに、クライアントからの要求に基づいて業務処理スレッドを起動する業務処理スレッド起動処理と、業務処理スレッドがセッションプールが正常であるか否かを記憶する変数であるプールステータスを参照するプールステータス参照処理と、プールステータスがセッションプールが正常である状態を示していれば業務処理スレッドがセッションプールから第1のセッションの発行を受けてデータベースに対して第1のアクセスを行う第1アクセス処理と、第1アクセス処理で第1のアクセスが異常終了もしくはタイムアウトを起こせば業務処理スレッドがプールステータスをセッションプールが正常でない状態を示す値に変更してクライアントにエラーを通知して廃棄処理スレッドを起動するエラー処理と、廃棄処理スレッドが異常終了もしくはタイムアウトを起こした第1のアクセスを中断して第1のセッションをセッションプールに返却する廃棄処理とを実行させることを特徴とする。
本発明は、アクセスが異常終了もしくはタイムアウトを起こせばプールステータスをセッションプールの異常を示す値にして、廃棄処理スレッドが該アクセスに対するその後の処理を引き継ぐように構成したので、クライアントにすぐにエラーを通知することができる。これによって、データベースの異常に起因するクライアントの応答待ち時間を大きく短縮し、かつその後でデータベースが正常な状態に戻った場合に参照更新要求を再開させることができるという、従来にない優れたデータベース管理装置、データベース管理方法、およびデータベース管理プログラムを提供することができる。
図1は、本発明の実施の形態に係るデータベースシステム1の構成を示すブロック図である。データベースシステム1は、n台(nは任意の自然数)のクライアントコンピュータ10(以後クライアント10)と、業務ノード20と、DBノード30とが、ネットワークを介して相互に接続されて構成される。
なお、「クライアント10」と記述した場合は、データベースシステム1に含まれるクライアントを総称していう。「クライアント10−1」「クライアント10−2」などと表記した場合はクライアント10の中の特定の1台を指し、「クライアント10−n」と表記した場合はクライアント10の中の任意の1台を指す。
業務ノード20およびDBノード30はそれぞれ、クライアント10とは物理的に別のコンピュータのCPU、RAM、OSなどによって構成される、ソフトウェアの実行単位である。なお、業務ノード20とDBノード30とが物理的に同一のコンピュータであっても、別々のコンピュータであってもよい。
業務ノード20は業務処理プロセス21を含む。業務処理プロセス21はmスレッド(mは任意の自然数、nとは同数であってもなくてもよい)の業務処理スレッド22、死活監視スレッド28、DBセッションプール24、破棄処理スレッド26、タイムアウト定義27を含む。DBノード30はデータベース31を含む。
なお、「業務処理スレッド22」と記述した場合は、業務処理プロセス21に含まれる業務処理スレッドを総称していう。「業務処理スレッド22−1」「業務処理スレッド22−2」などと表記した場合は業務処理プロセス21の中の特定の1スレッドを指し、「業務処理スレッド22−m」と表記した場合は業務処理プロセス21の中の任意の1スレッドを指す。
個々の業務処理スレッド22は各々に利用者アプリケーション23を含む。業務処理スレッド22−1には利用者アプリケーション23−1が含まれ、以後同様に業務処理スレッド22−mには利用者アプリケーション23−mが含まれる。利用者アプリケーション23は、クライアント10を利用する各々の利用者がそれぞれに行おうとする業務処理に応じて作成される。
業務処理プロセス21は複数の業務処理スレッド22を持つので、1つの業務スレッド22−m内の利用者アプリケーション23−mがデータベース31へ参照もしくは更新を行う場合には、データベース31とのセッション(以後DBセッションという)が1つ必要となる。複数の業務処理スレッド22から同時にデータベース31の参照もしくは更新を行う要求が発生した場合には、同時に処理を行う業務処理スレッド22と同数のDBセッション25が必要となる。
業務処理プロセス21は複数の業務処理スレッド22を持つので、1つの業務スレッド22−m内の利用者アプリケーション23−mがデータベース31へ参照もしくは更新を行う場合には、データベース31とのセッション(以後DBセッションという)が1つ必要となる。複数の業務処理スレッド22から同時にデータベース31の参照もしくは更新を行う要求が発生した場合には、同時に処理を行う業務処理スレッド22と同数のDBセッション25が必要となる。
データベースシステム1では、必要となる数のDBセッション25を用意する方法として、業務処理プロセス21の起動時にあらかじめ所定の数のDBセッション25を接続しておくセッションプール方式を採用する。DBセッションプール24は、該セッションプールが正常であるか否かを示すプールステータス24−1と、kセッション(kは任意の自然数、nおよびmとは同数であってもなくてもよい)のDBセッション25を含む。
プールステータス24−1はブーリアン変数であり、値がTRUEであればDBセッションプール24が正常ステータスであることを示し、値がFALSEであればDBセッションプール24が異常ステータスであることを示す。
なお、「DBセッション25」と記述した場合は、DBセッションプール24に含まれるDBセッションを総称していう。「DBセッション25−1」「DBセッション25−2」などと表記した場合はDBセッションプール24の中の特定の1セッションを指し、「DBセッション25−k」と表記した場合はDBセッションプール24の中の任意の1セッションを指す。
クライアント10−nが業務処理プロセス21へ処理要求を行うと、クライアントの処理要求は業務処理スレッド22−mに届き、業務処理スレッド22−mは利用者アプリケーション23−mで用意された業務処理を開始する。利用者アプリケーション23−mがDBセッションプール24にDBセッション25−kの払い出しを要求を行うと、DBセッション25−kが払いだされ、払い出されたDBセッション25−kによってデータベース31の参照/更新処理が行われる。データベース31の参照/更新処理は非同期で実行される。
タイムアウト定義27は、これ以上の時間にわたって連続してデータベース31からの応答がなければタイムアウトと見なす基準となるタイムアウト時間をあらかじめ定義して保持する。 ここでタイムアウト定義27で定義されたタイムアウト時間以上の時間にわたってデータベース31から応答がなかった場合、DBセッション25−kはプールステータス24−1を異常ステータスに変更し、使用していたDBセッションを廃棄処理スレッド26へ渡して、処理要求を行っていたクライアント10−nに要求のあった処理が失敗したことを通知する。
廃棄処理スレッド26は渡されたDBセッション25−kで行っていたデータベース31への参照/更新処理の中断処理を実行する。
死活監視スレッド28は定期的にDBセッションプール24にDBセッション25−kの払い出し要求を行い、払いだされたDBセッションに基づいてデータベース31を参照する。参照処理は非同期で実行される。タイムアウト時間以上の時間にわたって応答がなかった場合、死活監視スレッド28はプールステータス24−1を異常ステータスに変更する。タイムアウト時間以内に応答があった場合、死活監視スレッド28はプールステータス24−1を正常ステータスに変更する。
図2は、図1で開示した利用者アプリケーション23−mおよび廃棄処理スレッド26の処理を表すフローチャートである。クライアント10−nは業務処理プロセス21へ処理要求を行うと(ステップS101)、業務処理プロセス21は業務処理スレッド22−mを実行開始する。業務処理スレッド22−mは、あらかじめプログラムされた利用者アプリケーション23−mに従って業務処理を行う。
利用者アプリケーション23−mは、データベース31の参照/更新を行うために必要なDBセッション25をDBセッションプール24へ要求し(ステップS102)、プールステータス24−1が正常ステータスであるか否かを判断する(ステップS103)。
プールステータス24−1が正常ステータスであれば、利用者アプリケーション23−mはDBセッション25の中で空いているDBセッション25−kの払い出しを受けてステップS105に進む。プールステータス24−1が異常ステータスであった場合は、DBセッションの払い出しを受けることができないため、業務処理スレッドは処理要求を行ったクライアント10−nに要求のあった業務処理は失敗したことを通知する(ステップS104)。
DBセッションの払い出しを受けた利用者アプリケーションはデータベース31に対して業務処理で必要なデータの参照/更新要求を行い(ステップS105)、該データの参照/更新要求の結果を確認する(ステップS106)。これらの処理は非同期で実行される。
ステップS105で、タイムアウト時間以内に要求したデータの更新が正常に完了していることが確認されたら、利用者アプリケーション23−mはDBセッション25−kをDBセッションプール24に返却し(ステップS107)、業務処理スレッド22−mは処理要求を行ったクライアント10−nに対して、正常に業務が終了したことを通知する(ステップS108)。
タイムアウト時間以上の時間にわたってデータベース31からステップS106に対する応答がない、もしくはデータベース31の処理が異常終了した場合、業務処理スレッド22−mはプールステータス24−1を異常ステータスに変更し(ステップS109)、払い出されていたDBセッション25−kを廃棄処理スレッド26に渡し(ステップS110)、業務処理スレッドは処理要求を行ったクライアント10−nに要求のあった業務処理が失敗したことを通知する(ステップS111)。
廃棄処理スレッド26は業務スレッドから渡されたDBセッション25−kからデータベース31に対して要求されていた処理の中断を指示し(ステップS121)、DBセッション25−kをDBセッションプール24に返却する(ステップS122)。
図3は、図1で開示した死活監視スレッド28の処理を表すフローチャートである。死活監視スレッド28は定期的に起動される。起動されるとまず、死活監視スレッド28はDBセッションプール24にDBセッション25−kの払い出し要求を行い(ステップS201)、プールステータス24−1が正常ステータスであるか否かを判断する(ステップS202)。プールステータス24−1が正常ステータスであれば、DBセッション25の中で空いているDBセッション25−kの払い出しを受けてステップS203に進む。
ステップS202で、プールステータス24−1が異常ステータスであれば、業務処理プロセス21とデータベース31の接続処理を行い(ステップS207)、接続処理に成功した場合はプールステータスを正常ステータスに変更して終了する(ステップS208)。接続処理に失敗した場合はそのまま終了する。
DBセッション25−kの払い出しを受けた死活監視スレッドは、データベース31への参照処理を非同期で実行し(ステップS203)、該データの参照要求の結果を確認する(ステップS204)。タイムアウト時間以内に要求したデータの参照が正常に完了していることが確認されたら、死活監視スレッド28はDBセッション25−kをDBセッションプール24に返却して(ステップS205)終了する。
タイムアウト時間以上の時間にわたってデータベース31からステップS203に対する応答がない、もしくはデータベース31の処理が異常終了した場合、死活監視スレッド28はプールステータス24−1を異常ステータスに変更して(ステップS206)終了する。
このようにして、定期的に起動される死活監視スレッド28は、プールステータス24−1が異常ステータスだった場合はデータベース31との接続を回復させる処理を試行し、接続の回復に成功した場合はプールステータスを正常ステータスに変更し、業務処理スレッド22へのDBセッション25の払い出しを再開させる。
以上で説明した様に、本実施の形態では、データベース31とのアクセスで一定時間以上応答がない場合に異常と判定し、異常と判定した直後にDBセッション25−kの払い出しの停止を行い、処理に応答待ちの時間がかかる中断処理を業務処理スレッド22とは別の廃棄処理スレッド26で行っている。
それによって、廃棄処理スレッド26はデータベース31への参照更新要求の中断処理によって応答待ちの遅延が発生するが、業務処理スレッド22−mで実行していた利用者アプリケーション23−mは、定義されたタイムアウト時間以上の遅延が発生することなく、クライアントに応答を返すことができる。
また別の業務処理スレッド22−mによる後続の処理は、DBセッション25−kを取得要求する前であれば、プールステータス24−1が異常ステータスであるため、DBセッション25−kを取得できず、即時にクライアント10−nにエラーの応答を返すことができる。
この時点で業務処理スレッド22−mがDBセッション25−kを取得した後である場合は、データベース31に対して参照更新要求を実行してしまうが、その場合もデータベース31からタイムアウト時間以上の応答が無かった場合は該DBセッション25−kを廃棄処理スレッド26に渡すので、業務処理スレッド22−mで実行していた利用者アプリケーション23−mは応答を待つことなく処理を終了することができる。従って、業務処理スレッド22で実行しているその他の利用者アプリケーション23が応答待ちで遅延することはなくなる。
また、死活監視スレッド28によって、データベース31の状態を常に監視して、異常ステータスだったデータベース31が正常な状態に戻ったら接続を回復させて業務処理スレッド22へのDBセッション25の払い出しを再開させることができる。
このことにより、データベース31の異常によるクライアント10の応答待ち時間を大きく短縮することが可能となる。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
クライアント−サーバ方式でデータベースを扱うシステムにおいて幅広く適用できる。
1 データベースシステム
10、10−1、10−2、10−n クライアント
20 業務ノード
21 業務処理プロセス
22、22−1、22−2、22−m 業務処理スレッド
23、23−1、23−2、23−m 利用者アプリケーション
24 DBセッションプール
24−1 プールステータス
25、25−1、25−2、25−k DBセッション
26 破棄処理スレッド
27 タイムアウト定義
28 死活監視スレッド
30 DBノード
31 データベース
10、10−1、10−2、10−n クライアント
20 業務ノード
21 業務処理プロセス
22、22−1、22−2、22−m 業務処理スレッド
23、23−1、23−2、23−m 利用者アプリケーション
24 DBセッションプール
24−1 プールステータス
25、25−1、25−2、25−k DBセッション
26 破棄処理スレッド
27 タイムアウト定義
28 死活監視スレッド
30 DBノード
31 データベース
Claims (10)
- クライアントからの要求に基づいて、データベースとの間でセッションを確立してデータの参照および更新のうち少なくとも一方を行うデータベース管理装置であって、
前記データベース管理装置で動作するスレッドに対して前記セッションを発行するセッションプール手段と、
前記セッションプール手段が正常であるか否かを記憶する変数であるプールステータスを記憶するプールステータス保持手段と、
前記クライアントからの要求に基づいて起動され、前記プールステータスが前記セッションプール手段が正常である状態を示していれば前記セッションプール手段から発行された第1のセッションによって前記データベースに対して第1のアクセスを行い、前記第1のアクセスが異常終了もしくはタイムアウトを起こせば前記プールステータスを前記セッションプール手段が正常でない状態を示す値に変更して前記クライアントにエラーを通知する業務処理手段と、
異常終了もしくはタイムアウトを起こした前記第1のアクセスを中断して前記第1のセッションを前記セッションプール手段に返却する廃棄処理手段と
を有することを特徴とするデータベース管理装置。 - 前記業務処理手段が、前記プールステータスが前記セッションプール手段が正常でない状態を示していれば前記クライアントにエラーを通知することを特徴とする、請求項1に記載のデータベース管理装置。
- 定期的に起動され、前記セッションプール手段から発行された第2のセッションによって前記データベースに対して第2のアクセスを行い、前記第2のアクセスが異常終了もしくはタイムアウトを起こせば前記プールステータスを前記セッションプール手段が正常でない状態を示す値に変更し、前記第2のアクセスが正常終了すれば前記プールステータスを前記セッションプール手段が正常である状態を示す値に変更する死活監視手段を有することを特徴とする、請求項2に記載のデータベース管理装置。
- タイムアウト時間をあらかじめ定義して保持するタイムアウト定義手段を有し、
前記業務処理手段は、連続して前記データベースからの応答がない時間が前記タイムアウト時間を超えれば前記タイムアウトが発生したと判断することを特徴とする、請求項1ないし請求項3のうちいずれか1項に記載のデータベース管理装置。 - クライアントからの要求に基づいて、データベースとの間であらかじめ確立されたセッションの発行をセッションプールから受けてデータの参照および更新のうち少なくとも一方を行うデータベース管理方法であって、
前記クライアントからの要求に基づいて業務処理スレッドを起動する業務処理スレッド起動工程と、
前記業務処理スレッドが前記セッションプールが正常であるか否かを記憶する変数であるプールステータスを参照するプールステータス参照工程と、
前記プールステータスが前記セッションプールが正常である状態を示していれば前記業務処理スレッドが前記セッションプールから第1のセッションの発行を受けて前記データベースに対して第1のアクセスを行う第1アクセス工程と、
前記第1アクセス工程で前記第1のアクセスが異常終了もしくはタイムアウトを起こせば前記業務処理スレッドが前記プールステータスを前記セッションプールが正常でない状態を示す値に変更して前記クライアントにエラーを通知して廃棄処理スレッドを起動するエラー処理工程と、
前記廃棄処理スレッドが異常終了もしくはタイムアウトを起こした前記第1のアクセスを中断して前記第1のセッションを前記セッションプールに返却する廃棄処理工程と
を有することを特徴とするデータベース管理方法。 - 前記プールステータス参照工程で前記プールステータスが前記セッションプールが正常でない状態を示していれば、前記業務処理スレッドが前記クライアントにエラーを通知するエラー通知工程を有することを特徴とする、請求項5に記載のデータベース管理方法。
- 定期的に死活監視スレッドを起動する死活監視スレッド起動工程と、
前記死活監視スレッドが前記セッションプールから第2のセッションの発行を受けて前記データベースに対して第2のアクセスを行う第2アクセス工程と、
前記第2アクセス工程で第2のアクセスが異常終了もしくはタイムアウトを起こせば前記死活監視スレッドが前記プールステータスを前記セッションプールが正常でない状態を示す値に変更し、前記第2のアクセスが正常終了すれば前記死活監視スレッドが前記プールステータスを前記セッションプールが正常である状態を示す値に変更するプールステータス変更工程とを有することを特徴とする、請求項6に記載のデータベース管理方法。 - クライアントからの要求に基づいて、データベースとの間であらかじめ確立されたセッションの発行をセッションプールから受けてデータの参照および更新のうち少なくとも一方を行うデータベース管理装置を構成するコンピュータに、
前記クライアントからの要求に基づいて業務処理スレッドを起動する業務処理スレッド起動処理と、
前記業務処理スレッドが前記セッションプールが正常であるか否かを記憶する変数であるプールステータスを参照するプールステータス参照処理と、
前記プールステータスが前記セッションプールが正常である状態を示していれば前記業務処理スレッドが前記セッションプールから第1のセッションの発行を受けて前記データベースに対して第1のアクセスを行う第1アクセス処理と、
前記第1アクセス処理で前記第1のアクセスが異常終了もしくはタイムアウトを起こせば前記業務処理スレッドが前記プールステータスを前記セッションプールが正常でない状態を示す値に変更して前記クライアントにエラーを通知して廃棄処理スレッドを起動するエラー処理と、
前記廃棄処理スレッドが異常終了もしくはタイムアウトを起こした前記第1のアクセスを中断して前記第1のセッションを前記セッションプールに返却する廃棄処理と
を実行させることを特徴とするデータベース管理プログラム。 - 前記プールステータス参照処理で前記プールステータスが前記セッションプールが正常でない状態を示していれば、前記業務処理スレッドが前記クライアントにエラーを通知するエラー通知処理を実行させることを特徴とする、請求項8に記載のデータベース管理プログラム。
- 定期的に死活監視スレッドを起動する死活監視スレッド起動処理と、
前記死活監視スレッドが前記セッションプールから第2のセッションの発行を受けて前記データベースに対して第2のアクセスを行う第2アクセス処理と、
前記第2アクセス工程で第2のアクセスが異常終了もしくはタイムアウトを起こせば前記死活監視スレッドが前記プールステータスを前記セッションプールが正常でない状態を示す値に変更し、前記第2のアクセスが正常終了すれば前記死活監視スレッドが前記プールステータスを前記セッションプールが正常である状態を示す値に変更するプールステータス変更処理とを実行させることを特徴とする、請求項9に記載のデータベース管理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007335350A JP2009157662A (ja) | 2007-12-26 | 2007-12-26 | データベース管理装置、データベース管理方法、およびデータベース管理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007335350A JP2009157662A (ja) | 2007-12-26 | 2007-12-26 | データベース管理装置、データベース管理方法、およびデータベース管理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009157662A true JP2009157662A (ja) | 2009-07-16 |
Family
ID=40961616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007335350A Withdrawn JP2009157662A (ja) | 2007-12-26 | 2007-12-26 | データベース管理装置、データベース管理方法、およびデータベース管理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009157662A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012083841A (ja) * | 2010-10-07 | 2012-04-26 | Fujitsu Advanced Engineering Ltd | プログラム、アプリケーションサーバ装置の制御方法、アプリケーションサーバ装置 |
JP2017129935A (ja) * | 2016-01-18 | 2017-07-27 | キヤノン株式会社 | サーバシステム、サーバシステムを制御する方法およびプログラム。 |
CN111930719A (zh) * | 2020-08-13 | 2020-11-13 | 中国工商银行股份有限公司 | 一种数据库访问方法、装置及系统 |
JP2020194217A (ja) * | 2019-05-24 | 2020-12-03 | アズビル株式会社 | 冗長システム及びデータ同期方法 |
CN112491735A (zh) * | 2020-11-10 | 2021-03-12 | 京东数字科技控股股份有限公司 | 一种流量控制方法、装置、设备和计算机可读存储介质 |
-
2007
- 2007-12-26 JP JP2007335350A patent/JP2009157662A/ja not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012083841A (ja) * | 2010-10-07 | 2012-04-26 | Fujitsu Advanced Engineering Ltd | プログラム、アプリケーションサーバ装置の制御方法、アプリケーションサーバ装置 |
JP2017129935A (ja) * | 2016-01-18 | 2017-07-27 | キヤノン株式会社 | サーバシステム、サーバシステムを制御する方法およびプログラム。 |
JP2020194217A (ja) * | 2019-05-24 | 2020-12-03 | アズビル株式会社 | 冗長システム及びデータ同期方法 |
JP7422492B2 (ja) | 2019-05-24 | 2024-01-26 | アズビル株式会社 | 冗長システム及びデータ同期方法 |
CN111930719A (zh) * | 2020-08-13 | 2020-11-13 | 中国工商银行股份有限公司 | 一种数据库访问方法、装置及系统 |
CN111930719B (zh) * | 2020-08-13 | 2023-09-19 | 中国工商银行股份有限公司 | 一种数据库访问方法、装置及系统 |
CN112491735A (zh) * | 2020-11-10 | 2021-03-12 | 京东数字科技控股股份有限公司 | 一种流量控制方法、装置、设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9477738B2 (en) | Initialization protocol for a peer-to-peer replication environment | |
CN105279210B (zh) | 同步复制环境中的自动模式切换 | |
US9197695B2 (en) | Redundant data requests with cancellation | |
US20110145635A1 (en) | Failure Detection and Fencing in a Computing System | |
US8266301B2 (en) | Deployment of asynchronous agentless agent functionality in clustered environments | |
JP2009157662A (ja) | データベース管理装置、データベース管理方法、およびデータベース管理プログラム | |
US10069674B2 (en) | Monitoring file system operations between a client computer and a file server | |
US8453013B1 (en) | System-hang recovery mechanisms for distributed systems | |
US20170289044A1 (en) | Highly available servers | |
JP2012173996A (ja) | クラスタシステム、クラスタ管理方法、およびクラスタ管理プログラム | |
US20090049329A1 (en) | Reducing likelihood of data loss during failovers in high-availability systems | |
CN104601668B (zh) | 基于状态管理的数据推送方法、装置和系统 | |
CN112217847A (zh) | 微服务平台及其实现方法、电子设备及存储介质 | |
CN101442437B (zh) | 一种实现高可用性的方法、系统及设备 | |
JP2005301436A (ja) | クラスタシステムおよびクラスタシステムにおける障害回復方法 | |
WO2008058898A1 (en) | Throttling an asynchronous remote copying system | |
CN109726151B (zh) | 用于管理输入输出栈的方法、设备和介质 | |
US8024605B2 (en) | To server processes | |
JP2011159011A (ja) | ジョブ監視システム及びジョブ監視プログラム | |
JP5329589B2 (ja) | トランザクション処理システム及びトランザクション処理システムの動作方法 | |
EP3912036B1 (en) | Technique for connection handling in a distributed system | |
JP2016042338A (ja) | 情報処理システム、情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP2007133795A (ja) | クラスタ構成の業務システム | |
JP2003345638A (ja) | 記憶制御装置の制御方法及び記憶制御装置及びプログラム | |
JP2010170168A (ja) | 流量制御方法およびシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100409 |