JP2009187350A - データベース接続システム、データベース接続装置およびデータベース接続方法 - Google Patents

データベース接続システム、データベース接続装置およびデータベース接続方法 Download PDF

Info

Publication number
JP2009187350A
JP2009187350A JP2008027489A JP2008027489A JP2009187350A JP 2009187350 A JP2009187350 A JP 2009187350A JP 2008027489 A JP2008027489 A JP 2008027489A JP 2008027489 A JP2008027489 A JP 2008027489A JP 2009187350 A JP2009187350 A JP 2009187350A
Authority
JP
Japan
Prior art keywords
database
connection
business
session
processing
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.)
Pending
Application number
JP2008027489A
Other languages
English (en)
Inventor
Kazuhiro Uejima
一洋 上島
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008027489A priority Critical patent/JP2009187350A/ja
Publication of JP2009187350A publication Critical patent/JP2009187350A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】接続に失敗するデータベースがある場合に、接続に長時間かかるデータベースが存在する場合でも、業務処理要求を受け付ける状態にするデータベース接続システム、データベース接続装置およびデータベース接続方法を提供する。
【解決手段】業務処理プロセス起動時に、業務処理プロセスから接続するデータベース1つに対して1つの接続処理スレッドを作成し、業務処理の実行が指示され、データベースとの通信が必要となった時点で、通信を行おうとしたデータベースとの接続セッションが1つ確立できている場合、かつ、確立しているセッションが使用中でなければ、確立済みのセッションを使用し、前記データベースとの通信を行い、前記業務処理を実行する。
【選択図】図1

Description

プロセス起動遅延を防ぐデータベース接続システム、データベース接続装置およびデータベース接続方法に関する。
データベースとの接続処理が大量に発生するような場合はその処理に数秒から数十秒かかる。
またデータベースでの障害の中には、ネットワーク通信的な障害のために応答が数十秒から数分かかるような障害が存在する。
複数のデータベースと接続し大量のDBセッションを要求するプロセスの場合や、データベースで障害が発生している場合には、業務処理プロセスの起動が完了し業務処理が行えるまでの時間が遅延することがある。
また、複数のデータベースと接続するプロセスの場合には、接続している全てのデータベースを参照/更新を必要とせず一部のデータベースとの参照/更新で処理が可能な業務処理を実行可能になるまでの時間が遅延する。
上記背景に関連する技術を次に開示する。
特許文献1に開示のバッチ実行プロセスは,複数のプログラム実行制御部を生成し、各プログラム実行制御部は,最初に一度だけDBコネクト等のバッチアプリ共通処理を実行し、バッチ実行プロセスは,バッチアプリケーションの実行依頼を受け付けると,空いているプログラム実行制御部に対し,バッチアプリケーションの実行命令を出し,プログラム実行制御部は,指示されたバッチアプリケーションを呼び出してデータ処理を実行させることが記載されている。
上記によれば、バッチアプリケーション実行制御方法に関し,バッチアプリケーションを高速に処理することを可能とする。
特許文献2に開示の業務プロセスシステムにおいては、オープンなネットワーク層に接続された発注元が所持する端末であり、ピアツーピアネットワークアーキテクチャを実現するアプリケーションが実装されたクライアント端末から送信されたデータを、オープンなネットワーク層とは隔離され且つ受注拠点の内部のLAN層とも隔離されたセグメントである受注拠点のDMZ層に接続されて当該クライアント端末と、ピアツーピア接続したコレクタノードを介して、受注拠点の受注データベースに記録することが記載されている。
上記によれば、業務プロセスシステムにおいては、ピアツーピアテクノロジーを用いて、不特定多数の企業との取引をサーバレスで安価且つ高いセキュリティ性のもとに実現することができる。
特開2004−362376号公報 WO2005/078593号公報
しかしながら、特許文献1は、データベースの接続処理を業務処理により行うことに関して記載はあるが、プロセスの起動時に、データベースの接続処理を、業務処理を行うプロセスの起動処理とは別のスレッドで行うことに関して記載ない。
また、特許文献1および特許文献2は、接続に失敗するデータベースがある場合に、接続に長時間かかるデータベースが存在する場合でも、業務処理要求を受け付ける状態にすることに関しては、成し得ない。
そこで、本発明は、業務処理を行うプロセスの起動時に、データベースの接続処理を業務処理を行うプロセスの起動処理とは別のスレッドで行うことで、接続するデータベースのセッションが大量にある場合や接続するデータベースで異常が発生している場合でも、業務処理を行うプロセスの起動処理は遅延することなく完了させるデータベース接続システム、データベース接続装置およびデータベース接続方法を提供することを目的とする。
上記の目的を達成するため、本発明にかかる第1のデータベース接続システムは、業務処理プロセス起動時に、業務処理プロセスから接続するデータベース1つに対して1つの接続処理スレッドを作成し、業務処理の実行が指示され、データベースとの通信が必要となった時点で、通信を行おうとしたデータベースとの接続セッションが1つ確立できている場合、かつ、確立しているセッションが使用中の場合でなければ、確立済みのセッションを使用し、前記データベースとの通信を行い、前記業務処理を実行することを特徴とする。
本発明にかかる第1のデータベース接続装置は、業務処理プロセス起動時に、業務処理プロセスから接続するデータベース1つに対して1つの接続処理スレッドを作成し、業務処理の実行が指示され、データベースとの通信が必要となった時点で、通信を行おうとしたデータベースとの接続セッションが1つ確立できている場合、かつ、確立しているセッションが使用中の場合でなければ、確立済みのセッションを使用し、前記データベースとの通信を行い、前記業務処理を実行することを特徴とする。
本発明にかかる第1のデータベース接続方法は、業務処理プロセス起動時に、業務処理プロセスから接続するデータベース1つに対して1つの接続処理スレッドを作成し、業務処理の実行が指示され、データベースとの通信が必要となった時点で、通信を行おうとしたデータベースとの接続セッションが1つ確立できている場合、かつ、確立しているセッションが使用中の場合でなければ、確立済みのセッションを使用し、前記データベースとの通信を行い、前記業務処理を実行することを特徴とする。
本発明は、業務処理を行うプロセスの起動時に、データベースの接続処理を業務処理を行うプロセスの起動処理とは別のスレッドで行うことで、接続するデータベースのセッションが大量にある場合や接続するデータベースで異常が発生している場合でも、業務処理を行うプロセスの起動処理は遅延することなく完了させ、業務処理を実行することが可能になるまでの時間を遅延させないことができるデータベース接続システム、データベース接続装置およびデータベース接続方法を提供することを可能とする。
本発明にかかるデータベース接続システムは、以下の態様を有する。
本発明では、業務処理プロセスの起動時に、業務処理プロセスから接続するデータベース1つに対して1つの接続処理スレッドを作成する。
業務処理プロセスは、データベースとの接続処理以外のプロセス起動処理を終えた後、実際に業務処理を行える状態と判断する。
業務処理の実行が指示されデータベースとの通信が必要となった時点で、通信を行おうとしたデータベースとの接続セッションが1つ以上確立できている場合かつ確立しているセッションが使用中でなければ、確立済みのセッションを使用しデータベースとの通信を行い、業務処理を実行する。
データベースとの接続セッションが1つも確立できていなかった場合あるいは接続済みのセッションが全て使用中の場合は、業務処理はデータベースとの接続待ちであることを業務処理の要求元に返却する。
上記態様を有することで以下に記載することを実現する。
業務プロセスから接続するデータベースの数およびセッション数が多い場合や、一部のデータベースで異常が発生しデータベースとの接続処理が遅延するような状況の時に、データベースとの接続処理の応答待ちで業務処理プロセスの起動完了が遅延して、実際の業務処理を開始できるまでの時間が遅延することを防ぐことができる。
データベースとの接続処理を行うスレッドを持つことで、複数のデータベースとの接続を行うための処理時間が発生する場合にも、プロセスの起動処理が遅延しなくなる。
データベースとの接続処理を行うスレッドを持つことで、大量のデータベースとの通信を行うセッションを作成するための処理時間が発生する場合にも、プロセスの起動処理が遅延しなくなる。
データベースとの接続処理を行うスレッドを持つことで、データベースで異常が発生しているために、データベースとの応答待ちが発生している場合にも、プロセスの起動処理が遅延しなくなる。
上記を実現するデータベース接続システムについて以下、実施の形態を用いて説明する。
以下の実施の形態は、本発明を好適もしくは最良に実施する形態であって、これに限定されることはなく、当業者が容易に想到できる範囲内において、修正、変形可能とする。
(第1の実施形態)
第1の実施形態にかかるデータベース接続システムについて図1を用いて説明する。
図1は、本実施形態にかかるデータベース接続システムの構成の一例を示す図である。
図1を参照すると、本実施形態にかかるデータベース接続システムは、クライアント10、業務ノード20、DBノード301、DBノード302、および、DBノード303から構成される。
業務ノード20は、業務処理プロセス21を含む。
業務処理プロセス21は、メインスレッド22、接続処理スレッド231、接続処理スレッド232、接続処理スレッド233、DBセッション241、DBセッション242、DBセッション243、および、業務処理スレッド25を含む。
図1に示すように、本実施形態にかかるデータベース接続システムは、DBノード301、DBノード302、および、DBノード303の3つDBノードがそれぞれデータベースを有し、業務処理プロセス21は、接続処理スレッド231、接続処理スレッド232、および、接続処理スレッド233の3つの接続処理スレッドを有するが、接続処理スレッドは、接続するデータベースの数だけ作成される。
図1に示すように、本実施形態にかかるデータベース接続システムにおける業務処理プロセス21は、DBセッション241、DBセッション242、および、DBセッション243を有しているので、3つのDBセッションを有するが、DBセッションは、1つのデータベースに対して利用者が必要な数だけ作成される。
図1に示すように、本実施形態にかかるデータベース接続システムにおける業務処理プロセス21は、業務処理スレッド25の1つの業務処理スレッドを有するが、業務処理スレッドは、利用者が必要な数だけ作成され、利用者が作成した業務処理アプリケーションが動作する。
DBノード301は、データベース311を含み、DBノード302は、データベース312を含み、DBノード303は、データベース313を含む。
図1に示すように、本実施形態にかかるデータベース接続システムは、DBノード301、DBノード302、および、DBノード303の3つDBノードを有し、接続処理スレッド231、接続処理スレッド232、および、接続処理スレッド233の3つの接続処理スレッドを有するが、DBノードは、業務処理プロセスから接続が必要な数だけ用意される。
業務処理プロセス21は、起動すると、メインスレッド22が作成され、メインスレッド22は、接続が必要となるデータベースの数だけ接続処理スレッドを作成する。
接続処理スレッドは、データベースへ接続要求を行い、データベースとの接続が成功した場合、そのデータベースとの参照/更新の通信を行えるDBセッションを利用者要求数だけ作成する。
データベースとの接続に成功しない場合は、成功するまで接続要求を繰り返し実行する。
メインスレッドは、全ての接続処理スレッドの作成が完了すると、業務処理スレッド25を利用者要求数だけ作成する。
クライアント10の通信手段1は,業務処理プロセス21へ業務処理の要求を行う。
業務処理の要求が行われると、クライアントの要求は業務処理スレッド25に届き、業務処理スレッドは利用者が用意したアプリケーションプログラムに従いDBセッション241を使用しデータベース311の参照/更新処理を行う。
アプリケーションプログラムが必要としたDBセッションが作成されていない場合には、業務処理スレッドはクライアントに、DBセッションが作成されていなかったために業務処理が実行できなかったことを通知する。
(第2の実施形態)
第2の実施形態にかかるデータベース接続システムについて図1および図2を用いて説明する。
図2は、本実施形態にかかるデータベース接続システムのスレッド動作を示すフローチャート図である。
本実施形態では、図1の構成図と、図2のスレッド動作フローチャートを参照し、本発明にかかるデータベース接続システムの全体の動作について詳細に説明する。
本実施形態では、図2のスレッド動作フローチャートを中心に本発明にかかるデータベース接続システムの全体の動作について説明し、一例として、図1の構成図で用いた記号を使用する場合がある。
図2に示すように、本実施形態にかかるデータベース接続システムにおいて、メインスレッド22は、業務処理プロセス21の起動処理の開始時に作成され、メインスレッドは、業務処理プロセスの起動処理を実行する(ステップS101)。
ステップS101の処理後、メインスレッド22は、接続処理スレッドを接続するデータベースの数だけ作成する(ステップS102)。
ステップS102の処理後、メインスレッド22は、起動処理の最後に業務処理スレッド25を利用者の要求数だけ作成する(ステップS103)。
ステップS102の処理後、接続処理スレッドは、業務処理プロセスと接続を行うデータベース1つにつき1つ作成され、1つの接続処理スレッドの通信手段は、1つのデータベースとの接続処理を実行する(ステップS111)。
上記のステップS111の処理は、図1を用いて説明すると、接続処理スレッドは、業務処理プロセス21と接続を行うデータベース1つにつき1つ作成され、接続処理スレッド231の通信手段3は、1つのデータベースとの接続処理を実行する。
データベース301との接続処理が、データベースの異常やネットワークの異常等で失敗した場合、再度接続処理を行う(ステップS111)。
データベース301との接続に成功した場合は、そのデータベースと通信を行うためのDBセッションを1つ作成する(ステップS112)。
DBセッション241を作成した結果、そのデータベースに対するDBセッションの数が利用者の要求数を充足していない場合、接続スレッドは再度データベースとの接続処理を行い(ステップS111)、DBセッションの数が利用者の要求数に到達するまで繰り返す。
DBセッションの数が利用者の要求数に到達した場合、接続スレッドは、終了する。
業務処理スレッド25は、メインスレッド22によって作成された後、クライアント10から要求があるまで何もせず待機状態となる(ステップS121)。
業務処理スレッド25の判断手段2は、クライアント10から業務処理の要求があった場合,利用者が作成した業務処理を開始し、その業務処理で参照/更新を行うデータベース30と通信が行えるDBセッション241の取得要求を実行する(ステップS122)。
DBセッション241の取得に成功した場合は、業務処理を行い(ステップS123)、業務が完了後は再度クライアント10からの要求があるまで待機状態に戻る(ステップS121)。
その時点でDBセッションがまだ作成されていない状態や、他の業務処理スレッドが使用しているため空きのDBセッションが無い状態のためにDBセッション241の取得に失敗した場合は、セッション取得に失敗したとしてエラーをクライアントに返却し業務処理を終了し再度クライアント10からの要求があるまで待機状態に戻る(ステップS124)。
本実施形態によれば、データベースとの接続処理を行う専用のスレッドを作成することで、接続するデータベースの種類が多く有る場合や、DBセッションの数を大量に要求している場合、データベース障害が発生しているために接続要求の応答が遅延する場合に、プロセスの起動処理自体が遅延したり失敗したりすることを防ぐことが可能となる。
また、上記により、業務処理スレッドがクライアントからの要求を受け付けることができる状態になるまでの時間に遅延が発生しなくなることにある。
また、業務プロセスから接続するデータベースの数およびセッション数が多い場合や、一部のデータベースで異常が発生しデータベースとの接続処理が遅延するような状況の時に、データベースとの接続処理の応答待ちで業務処理プロセスの起動完了が遅延して、実際の業務処理を開始できるまでの時間が遅延することを防ぐことができる。
また、データベースとの接続処理を行うスレッドを持つことで、複数のデータベースとの接続を行うための処理時間が発生する場合にも、プロセスの起動処理が遅延しなくなる。
また、データベースとの接続処理を行うスレッドを持つことで、大量のデータベースとの通信を行うセッションを作成するための処理時間が発生する場合にも、プロセスの起動処理が遅延しなくなる。
また、データベースとの接続処理を行うスレッドを持つことで、データベースで異常が発生しているために、データベースとの応答待ちが発生している場合にも、プロセスの起動処理が遅延しなくなる。
さらに、接続に失敗するデータベースがある場合に、接続に長時間かかるデータベースが存在する場合でも、業務処理要求を受け付ける状態にすることを可能とする。
第1の実施形態におけるデータベース接続システムの構成の一例を示す図である。 第2の本実施形態におけるデータベース接続システムの処理を示すフローチャート図である。
符号の説明
1 通信手段
2 判断手段
10 クライアント
20 業務ノード
21 業務処理プロセス
22 メインスレッド
25 業務処理スレッド
231、232、233 接続処理スレッド
241、242、243 DBセッション
301、302、303 DBノード
311、312、313 データベース

Claims (6)

  1. 業務処理プロセス起動時に、業務処理プロセスから接続するデータベース1つに対して1つの接続処理スレッドを作成し、
    業務処理の実行が指示され、データベースとの通信が必要となった時点で、通信を行おうとしたデータベースとの接続セッションが1つ確立できている場合、かつ、確立しているセッションが使用中の場合でなければ、確立済みのセッションを使用し、前記データベースとの通信を行い、前記業務処理を実行することを特徴とするデータベース接続システム。
  2. 前記データベースとの接続セッションが1つも確立できていなかった場合、または、接続済みのセッションが全て使用中の場合は、前記業務処理は、データベースとの接続待ちであることを業務処理の要求元に報告することを特徴とする請求項1に記載のデータベース接続システム。
  3. 業務処理プロセス起動時に、業務処理プロセスから接続するデータベース1つに対して1つの接続処理スレッドを作成し、
    業務処理の実行が指示され、データベースとの通信が必要となった時点で、通信を行おうとしたデータベースとの接続セッションが1つ確立できている場合、かつ、確立しているセッションが使用中の場合でなければ、確立済みのセッションを使用し、前記データベースとの通信を行い、前記業務処理を実行することを特徴とするデータベース装置。
  4. 前記データベースとの接続セッションが1つも確立できていなかった場合、または、接続済みのセッションが全て使用中の場合は、前記業務処理は、データベースとの接続待ちであることを業務処理の要求元に報告することを特徴とする請求項3に記載のデータベース接続装置。
  5. 業務処理プロセス起動時に、業務処理プロセスから接続するデータベース1つに対して1つの接続処理スレッドを作成し、
    業務処理の実行が指示され、データベースとの通信が必要となった時点で、通信を行おうとしたデータベースとの接続セッションが1つ確立できている場合、かつ、確立しているセッションが使用中の場合でなければ、確立済みのセッションを使用し、前記データベースとの通信を行い、前記業務処理を実行することを特徴とするデータベース接続方法。
  6. 前記データベースとの接続セッションが1つも確立できていなかった場合、または、接続済みのセッションが全て使用中の場合は、前記業務処理は、データベースとの接続待ちであることを業務処理の要求元に報告することを特徴とする請求項5に記載のデータベース接続方法。
JP2008027489A 2008-02-07 2008-02-07 データベース接続システム、データベース接続装置およびデータベース接続方法 Pending JP2009187350A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008027489A JP2009187350A (ja) 2008-02-07 2008-02-07 データベース接続システム、データベース接続装置およびデータベース接続方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008027489A JP2009187350A (ja) 2008-02-07 2008-02-07 データベース接続システム、データベース接続装置およびデータベース接続方法

Publications (1)

Publication Number Publication Date
JP2009187350A true JP2009187350A (ja) 2009-08-20

Family

ID=41070514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008027489A Pending JP2009187350A (ja) 2008-02-07 2008-02-07 データベース接続システム、データベース接続装置およびデータベース接続方法

Country Status (1)

Country Link
JP (1) JP2009187350A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117195204A (zh) * 2023-11-01 2023-12-08 建信金融科技有限责任公司 异常数据检测方法、装置、电子设备及计算机可读介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216477A (ja) * 2002-01-18 2003-07-31 Mitsubishi Electric Corp データ共有システム及びデータ共有方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216477A (ja) * 2002-01-18 2003-07-31 Mitsubishi Electric Corp データ共有システム及びデータ共有方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117195204A (zh) * 2023-11-01 2023-12-08 建信金融科技有限责任公司 异常数据检测方法、装置、电子设备及计算机可读介质
CN117195204B (zh) * 2023-11-01 2024-02-13 建信金融科技有限责任公司 异常数据检测方法、装置、电子设备及计算机可读介质

Similar Documents

Publication Publication Date Title
JP4664977B2 (ja) 装置管理システムのための装置管理方法
US20070299906A1 (en) Server change management
JP2010500673A (ja) リモート・コピー・データの整合性を保持するストレージ管理システム、(ストレージ管理システム、ストレージ管理方法、およびコンピュータ・プログラム)
US10826812B2 (en) Multiple quorum witness
CN107193672B (zh) 一种跨区块异步调用合约系统
WO2020024615A1 (zh) 一种共识流程恢复方法及相关节点
US10140121B2 (en) Sending a command with client information to allow any remote server to communicate directly with client
US10721335B2 (en) Remote procedure call using quorum state store
CN111314212B (zh) 一种基于Netty与插件机制的API网关及控制方法
US20120173737A1 (en) Method and system for data processing
CN110995481A (zh) 配置方法、服务器及计算机可读存储介质
US7882232B2 (en) Rapid resource provisioning with automated throttling
JP2005317010A (ja) トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
WO2021052237A1 (zh) 事务处理方法、装置、设备、存储介质、数据库
JPWO2014171130A1 (ja) 情報処理システム、配備方法、処理装置、及び、配備装置
US20160156704A1 (en) Exchange of information between processing servers
JP5708078B2 (ja) 検証装置、検証方法および検証プログラム
CN117290122A (zh) 一种基于Kafka的多环境有序性生产消费的方法
WO2021109777A1 (zh) 一种数据文件的导入方法及装置
KR20200048633A (ko) 소프트웨어 자동 테스트 시스템 및 방법
CN111741102B (zh) 分布式微服务应用的升级方法及装置
CN106909368B (zh) 一种实现快速业务开发的服务端业务层逻辑架构
JP2009187350A (ja) データベース接続システム、データベース接続装置およびデータベース接続方法
CN111615819B (zh) 一种传输数据的方法和装置
CN101594390A (zh) 一种ftp客户端及其实现方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120703