(57)【特許請求の範囲】
【請求項１】
複数のデータベースノードによりクラスタが構成されるデータベースシステムを監視し、前記データベースシステム上で実行されるアプリケーションのデータベースに対する処理を制御するデータベース状態監視装置であって、
前記データベースノードのそれぞれで、監視対象のデータベースへアクセスし、各データベースノードのデータベースの稼動状態が、正常動作状態を示す「正常」、異常動作状態を示す「異常」、又は、データベースアクセスに処理待ちが発生する状態を示す「再構成中」の何れであるかを判定する監視部と、
前記アプリケーションからの処理要求に基づくデータベースの稼働状態の照会を処理実行部から受けると、照会対象のデータベースを監視する前記監視部から該データベースの稼動状態を取得し、前記処理実行部に返却する状態情報参照部と、
を備え、
前記処理実行部は、前記アプリケーションから処理要求を受けると、該アプリケーションの種別が第１の分類と第２の分類の何れに属するかを判定し、前記状態情報参照部により返却された照会対象のデータベースの稼働状態が「再構成中」である場合には、第１の分類に属するアプリケーションの処理要求に対してエラー処理を行い、第２の分類に属するアプリケーションの処理要求に対しては処理対象のデータベースへのアクセス処理を行う、
ことを特徴とするデータベース状態監視装置。
【請求項２】
各データベースノードの監視部から監視対象のデータベースの稼働状態を取得し、データベースノードごとに該データベースノードのデータベースの稼動状態を対応付けて保持する状態保有部を取得した稼働状態で更新する監視情報収集部をさらに備え、
前記状態情報参照部は、データベースの稼働状態の照会を処理実行部から受けると、状態保有部を参照して、処理対象のデータベースの稼働状態を取得し、前記処理実行部に返却する、
ことを特徴とする請求項１に記載のデータベース状態監視装置。
【請求項３】
前記第１の分類に属するアプリケーションは、リアルタイム性が要求されるリアルタイムアプリケーションであり、前記第２の分類に属するアプリケーションはリアルタイム性が要求されないアプリケーションである、請求項１又は２に記載のデータベース状態監視装置。
【請求項４】
前記監視部が、データベースへアクセスしデータベースの稼働状態を監視するデータベースアクセス状態監視部と、前記データベースアクセス状態監視部の監視結果に基づいて、前記データベースの稼動状態が「正常」、「異常」、「再構成中」の何れであるかを判定する状態判断部とを有する、請求項１乃至３の何れか１項に記載のデータベース状態監視装置。
【請求項５】
前記データベースアクセス状態監視部は、データベースへのアクセスに対する応答が所定のタイムアウト発生時間内に得られるか否かに基づいて、アクセス状態監視結果「正常」、「異常」、「タイムアウト発生」を前記状態判断部に返却する、請求項４に記載のデータベース状態監視装置。
【請求項６】
前記データベースアクセス状態監視部は、前記応答が得られなかったときはアクセス状態監視結果「異常」を返却し、前記タイムアウト発生時間内に前記応答が得られたときはアクセス状態監視結果「正常」を返却し、前記タイムアウト発生時間の経過後に前記応答が得られたときはアクセス状態監視結果「タイムアウト発生」を返却する、請求項５に記載のデータベース状態監視装置。
【請求項７】
前記監視部が、データベースのプロセス群を監視するプロセス監視部を更に備えており、前記状態判断部は、前記プロセス監視部が、データベースを構成するプロセスが存在しないと判定したときは、前記データベースの稼動状態が「異常」であると判定し、前記プロセス監視部が、プロセスが存在すると判定したときは、前記データベースアクセス状態監視部の監視結果に基づいて、前記データベースの稼動状態が「正常」、「異常」、「再構成中」の何れであるかを判定する、請求項４乃至６の何れか１項に記載のデータベース状態監視装置。
【請求項８】
複数のデータベースノードによりクラスタが構成されるデータベースを含むデータベースシステムであって、
前記データベースノードのそれぞれで、監視対象のデータベースへアクセスし、各データベースノードのデータベースの稼動状態が、正常動作状態を示す「正常」、異常動作状態を示す「異常」、又は、データベースアクセスに処理待ちが発生する状態を示す「再構成中」の何れであるかを判定する監視部と、
前記データベースシステム上で実行されるアプリケーションからの処理要求に基づくデータベースの稼働状態の照会を処理実行部から受けると、照会対象のデータベースを監視する前記監視部から該データベースの稼動状態を取得し、前記処理実行部に返却する状態情報参照部と、
を備え、
前記処理実行部は、前記アプリケーションから処理要求を受けると、該アプリケーションの種別が第１の分類と第２の分類の何れに属するかを判定し、前記状態情報参照部により返却された照会対象のデータベースの稼働状態が「再構成中」である場合には、第１の分類に属するアプリケーションの処理要求に対してエラー処理を行い、第２の分類に属するアプリケーションの処理要求に対しては処理対象のデータベースへのアクセス処理を行う、
ことを特徴とするデータベースシステム。
【請求項９】
各データベースノードの監視部から監視対象のデータベースの稼働状態を取得し、データベースノードごとに該データベースノードのデータベースの稼動状態を対応付けて保持する状態保有部を取得した稼働状態で更新する監視情報収集部をさらに備え、
前記状態情報参照部は、データベースの稼働状態の照会を処理実行部から受けると、状態保有部を参照して、処理対象のデータベースの稼働状態を取得し、前記処理実行部に返却する、
ことを特徴とする請求項８に記載のデータベースシステム。
【請求項１０】
前記第１の分類に属するアプリケーションは、リアルタイム性が要求されるリアルタイムアプリケーションであり、前記第２の分類に属するアプリケーションはリアルタイム性が要求されないアプリケーションである、請求項８又は９に記載のデータベースシステム。
【請求項１１】
コンピュータを用いて、複数のデータベースノードによりクラスタが構成されるデータベースシステムを監視し、前記データベースシステム上で実行されるアプリケーションのデータベースへのアクセスを制御する方法であって、
前記コンピュータが、前記データベースノードのそれぞれで、監視対象のデータベースへアクセスし、各データベースノードのデータベースの稼動状態が、正常動作状態を示す「正常」、異常動作状態を示す「異常」、又は、データベースアクセスに処理待ちが発生する状態を示す「再構成中」の何れであるかを判定するステップと、
前記コンピュータが、前記アプリケーションからの処理要求が発生すると、処理対象のデータベースの稼動状態を取得し、該取得した稼動状態に応じて、前記アプリケーションの処理要求に対してエラー処理又はデータベースへのアクセス処理を行うステップと、
を有し、
前記エラー処理又はデータベースへのアクセス処理を行うステップでは、前記コンピュータが、処理要求を行ったアプリケーションの種別が第１の分類と第２の分類の何れに属するかを判定し、前記取得したデータベースの稼働状態が「再構成中」である場合には、第１の分類に属するアプリケーションの処理要求に対してエラー処理を行い、第２の分類に属するアプリケーションの処理要求に対してはデータベースへのアクセス処理を行う、
ことを特徴とするデータベース状態監視方法。
【請求項１２】
前記コンピュータが、各データベースの前記稼動状態を取得し、データベースノードごとに該データベースノードのデータベースの稼動状態を対応付けて保持する状態保有部を取得した前記稼働状態で更新するステップをさらに有し、
前記エラー処理又はデータベースへのアクセス処理を行うステップでは、前記コンピュータが、前記アプリケーションからの処理要求が発生すると、前記状態保有部を参照して、処理対象のデータベースの稼動状態を取得する、
ことを特徴とする請求項１１に記載のデータベース状態監視方法。
【請求項１３】
コンピュータに、複数のデータベースノードによりクラスタが構成されるデータベースシステムを監視し、前記データベースシステム上で実行されるアプリケーションのデータベースへのアクセスを制御する処理を実行させるプログラムであって、
前記コンピュータに、
前記データベースノードのそれぞれで、監視対象のデータベースへアクセスし、各データベースノードのデータベースの稼動状態が、正常動作状態を示す「正常」、異常動作状態を示す「異常」、又は、データベースアクセスに処理待ちが発生する状態を示す「再構成中」の何れであるかを判定する処理と、
前記アプリケーションからの処理要求が発生すると、処理対象のデータベースの稼動状態を取得し、該取得した稼動状態に応じて、前記アプリケーションの処理要求に対してエラー処理又はデータベースへのアクセス処理を行う処理と、
を実行させ、
前記エラー処理又はデータベースへのアクセス処理を行う処理では、前記コンピュータに、処理要求を行ったアプリケーションの種別が第１の分類と第２の分類の何れに属するかを判定し、取得したデータベースの稼働状態が「再構成中」である場合には、第１の分類に属するアプリケーションの処理要求に対してエラー処理を行い、第２の分類に属するアプリケーションの処理要求に対してはデータベースへのアクセス処理を行う処理を、
実行させることを特徴とするプログラム。
【請求項１４】
前記コンピュータに、各データベースの前記稼動状態を取得し、データベースノードごとに該データベースノードのデータベースの稼動状態を対応付けて保持する状態保有部を取得した前記稼働状態で更新する処理をさらに実行させ、
前記エラー処理又はデータベースへのアクセス処理を行う処理では、前記アプリケーションからの処理要求が発生すると、前記状態保有部を参照して、処理対象のデータベースの稼動状態を取得する、
ことを特徴とする請求項１３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース状態監視装置、方法、及び、プログラムに関し、更に詳しくは、クラスタ構成を取るデータベースの稼動状態を監視するデータベース状態監視装置、方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年、データベースの可用性向上のため、データベースを全現用のクラスタ構成にすることが増えてきている（例えば、特許文献１）。クラスタ構成のデータベースでは、１つのデータベースが障害となったとき、稼働中の他のデータベースが障害となったデータベースの処理を引き継ぐことで、処理の継続が可能である。
【０００３】
特許文献１では、２つのデータベースを、同一構成及び同一データとしておく。一方のデータベースには、ＩＰアドレス１でアクセスし、他方のデータベースには、ＩＰアドレス２でアクセスする。例えば、ＩＰアドレス１のデータベースにて障害が発生したときは、ＩＰアドレス２のデータベースに、ＩＰアドレス１を追加設定する。特許文献１では、このようにすることで、ＩＰアドレスのみで、フェイルオーバが可能であるとしている。
【特許文献１】特開２００６−３３８５６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
クラスタ構成にて、一部のデータベースに障害が発生した場合、障害となったデータベースが行っていた処理を、稼働中の他のデータベースに引き継ぐ必要がある。この障害を検出してから、障害となったデータベースで行っていた処理を引き継ぐまでの間は、処理要求を受け付けても実際には処理を実行できないので、引き継ぎの完了まで「待ちの状態」となる。いわば、「正常」でも「異常」でもない状態が存在することとなる。しかし、一般に、データベースの稼動状態は、「正常」、「異常」の２種類で管理されており、データベースへのアクセスが待たされる状態（以下、この状態を「再構成中」とも呼ぶ）も、正常又は異常の何れか一方として取り扱われている。
【０００５】
「再構成中」を、「正常」又は「異常」として取り扱うことで、以下に説明する問題点が発生する。すなわち、「再構成」状態を正常として扱った場合、高いリアルタイム性を求められる処理が「待たされる」ことで、エンドユーザへの即応性が低くなるという問題が発生する。また、後続の処理要求が滞留することで、キュー溢れに繋がることもある。一方、「再構成中」を異常として扱った場合、全ての業務処理について、要求が受け付けられなくなるので、待てば業務の継続が可能な処理についても処理が異常終了し、業務継続性が低下するという問題が発生する。特に、バッチ処理などのリアルタイム性が求められない処理については、処理再開まで待つ時間的余裕があるので、処理継続性を優先したいにもかかわらず、処理が異常終了していた。
【０００６】
特許文献１においても、ＩＰアドレスの設定、及び、データベース同期化の際に、引継ぎまでの処理待ちが発生する。特許文献１は、データベースの一部が障害にて停止した場合でも、データ要求側でフェイルオーバを意識することなく、処理を継続するものである。このため、特にデータ要求側でデータベースサーバの故障発生は検出していない。従って、特許文献１では、「再構成中」を「正常」と取り扱う場合と同様に、フェイルオーバ中も処理の受け付けが継続し、処理が待たされることで、上記と同様な問題が発生する。
【０００７】
従来は、サーバの稼動状態を、「正常」、「異常」の２種類で検出しており、「再構成中」の状態を認識することができなかった。「再構成中」の状態を検出可能であれば、要求発行元のアプリケーションの性質に応じて、処理要求に対する対応を変えるという制御を行うことが可能となる。しかし、「再構成中」の状態を検出することがないので、そのような制御は不可能であった。
【０００８】
本発明は、データベースが「正常」でも「異常」でもない「再構成中」の状態の検出を可能としたデータベース状態監視装置、データベースシステム、方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のデータベース状態監視装置は、複数のデータベースノードによりクラスタが構成されるデータベースシステムを監視し、前記データベースシステム上で実行されるアプリケーションのデータベースに対する処理を制御するデータベース状態監視装置であって、前記データベースノードのそれぞれで、監視対象のデータベースへアクセスし、各データベースノードのデータベースの稼動状態が、正常動作状態を示す「正常」、異常動作状態を示す「異常」、又は、データベースアクセスに処理待ちが発生する状態を示す「再構成中」の何れであるかを判定する監視部と、前記アプリケーションからの処理要求に基づくデータベースの稼働状態の照会を処理実行部から受けると、照会対象のデータベースを監視する前記監視部から該データベースの稼動状態を取得し、前記処理実行部に返却する状態情報参照部と、を備え、前記処理実行部は、前記アプリケーションから処理要求を受けると、該アプリケーションの種別が第１の分類と第２の分類の何れに属するかを判定し、前記状態情報参照部により返却された照会対象のデータベースの稼働状態が「再構成中」である場合には、第１の分類に属するアプリケーションの処理要求に対してエラー処理を行い、第２の分類に属するアプリケーションの処理要求に対しては処理対象のデータベースへのアクセス処理を行う、ことを特徴とする。
【００１０】
本発明のデータベースシステムは、複数のデータベースノードによりクラスタが構成されるデータベースを含むデータベースシステムであって、前記データベースノードのそれぞれで、監視対象のデータベースへアクセスし、各データベースノードのデータベースの稼動状態が、正常動作状態を示す「正常」、異常動作状態を示す「異常」、又は、データベースアクセスに処理待ちが発生する状態を示す「再構成中」の何れであるかを判定する監視部と、前記データベースシステム上で実行されるアプリケーションからの処理要求に基づくデータベースの稼働状態の照会を処理実行部から受けると、照会対象のデータベースを監視する前記監視部から該データベースの稼動状態を取得し、前記処理実行部に返却する状態情報参照部と、を備え、前記処理実行部は、前記アプリケーションから処理要求を受けると、該アプリケーションの種別が第１の分類と第２の分類の何れに属するかを判定し、前記状態情報参照部により返却された照会対象のデータベースの稼働状態が「再構成中」である場合には、第１の分類に属するアプリケーションの処理要求に対してエラー処理を行い、第２の分類に属するアプリケーションの処理要求に対しては処理対象のデータベースへのアクセス処理を行う、ことを特徴とする。
【００１１】
本発明のデータベース状態監視方法は、コンピュータを用いて、複数のデータベースノードによりクラスタが構成されるデータベースシステムを監視し、前記データベースシステム上で実行されるアプリケーションのデータベースへのアクセスを制御する方法であって、前記コンピュータが、前記データベースノードのそれぞれで、監視対象のデータベースへアクセスし、各データベースノードのデータベースの稼動状態が、正常動作状態を示す「正常」、異常動作状態を示す「異常」、又は、データベースアクセスに処理待ちが発生する状態を示す「再構成中」の何れであるかを判定するステップと、前記コンピュータが、前記アプリケーションからの処理要求が発生すると、処理対象のデータベースの稼動状態を取得し、該取得した稼動状態に応じて、前記アプリケーションの処理要求に対してエラー処理又はデータベースへのアクセス処理を行うステップと、を有し、前記エラー処理又はデータベースへのアクセス処理を行うステップでは、前記コンピュータが、処理要求を行ったアプリケーションの種別が第１の分類と第２の分類の何れに属するかを判定し、前記取得したデータベースの稼働状態が「再構成中」である場合には、第１の分類に属するアプリケーションの処理要求に対してエラー処理を行い、第２の分類に属するアプリケーションの処理要求に対してはデータベースへのアクセス処理を行う、ことを特徴とする。
【００１３】
本発明のプログラムは、コンピュータに、複数のデータベースノードによりクラスタが構成されるデータベースシステムを監視し、前記データベースシステム上で実行されるアプリケーションのデータベースへのアクセスを制御する処理を実行させるプログラムであって、前記コンピュータに、前記データベースノードのそれぞれで、監視対象のデータベースへアクセスし、各データベースノードのデータベースの稼動状態が、正常動作状態を示す「正常」、異常動作状態を示す「異常」、又は、データベースアクセスに処理待ちが発生する状態を示す「再構成中」の何れであるかを判定する処理と、前記アプリケーションからの処理要求が発生すると、処理対象のデータベースの稼動状態を取得し、該取得した稼動状態に応じて、前記アプリケーションの処理要求に対してエラー処理又はデータベースへのアクセス処理を行う処理と、を実行させ、前記エラー処理又はデータベースへのアクセス処理を行う処理では、前記コンピュータに、処理要求を行ったアプリケーションの種別が第１の分類と第２の分類の何れに属するかを判定し、取得したデータベースの稼働状態が「再構成中」である場合には、第１の分類に属するアプリケーションの処理要求に対してエラー処理を行い、第２の分類に属するアプリケーションの処理要求に対してはデータベースへのアクセス処理を行う処理を、実行させることを特徴とする。
【発明の効果】
【００１５】
本発明のデータベース状態監視装置、データベースシステム、方法、及び、プログラムは、データベースが「正常」でも「異常」でもない「再構成中」の状態の検出が可能である。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明のデータベース状態監視装置を含むデータベースシステムを示している。本実施形態では、データベースはクラスタ構成を取っており、ｎ台構成（ｎは２以上の整数）のクラスタとして説明を行う。データベース状態監視装置１０は、状態情報参照部１２、状態保有部１３、監視情報収集部１４、及び、監視部１５−１〜１５−ｎを有する。データベースシステムは、データベース状態監視装置１０と、ｎ個のデータベースノード５０（５０−１〜５０−ｎ）を有する。データベース状態監視装置１０及びデータベースシステムの機能は、コンピュータ上で所定のプログラムを実行することで実現できる。
【００１７】
各監視部１５は、各データベースノード５０上に配置されている。監視部１５は、同一ノード上のデータベースの状態を定期的に監視し、結果を、監視情報収集部１４に送信する。監視では、データベースのプロセスの死活監視、及び、トランザクション実行のレスポンスタイム監視を行い、２つの結果から、「正常」、「異常」、「再構成中」を判断する。監視情報収集部１４は、クラスタ構成を取っている全てのデータベースノード５０−１〜５０−ｎに存在する監視部１５−１〜１５−ｎから、各データベースの状態情報を収集し、状態保有部１３に登録する。
【００１８】
状態保有部１３は、監視情報収集部１４が収集した情報を一元管理し、データベースごとに、「正常」、「異常」、「再構成中」の何れかを保持する。また、状態情報参照部１２からのリクエストに応じて、データベースの一覧及び状態情報を返却する。状態情報参照部１２は、アプリケーションプログラムから要求を受け付け、状態保有部１３から必要な情報を取得して、取得した情報をアプリケーションプログラムに返却する。
【００１９】
アプリケーションプログラムとしては、リアルタイム処理を行うアプリケーション５１と、バッチ処理を行うアプリケーション５２とを考える。リアルタイム処理を行うアプリケーション５１は、高いリアルタイム性が要求される第１の分類のアプリケーションに相当し、バッチ処理を行うアプリケーション５２は、さほどリアルタイム性が要求されない第２の分類のアプリケーションに相当する。
【００２０】
アプリケーションプログラムは、データベースへアクセスする際に、状態情報参照部１２からデータベース状態を取得する。リアルタイム処理を行うアプリケーション５１は、取得したデータベース状態が「正常」である場合のみ、データベースへのアクセスを行い、エンドユーザにサービスを提供する。「異常」又は「再構成中」の場合は、データベースへのアクセスは行わずに、異常終了させる。バッチ処理を行うアプリケーション５２は、取得したデータベース状態が「正常」又は「再構成中」の場合は、データベースへのアクセスを行う。「異常」の場合は、処理を異常終了させる。
【００２１】
図２に、監視部１５の構成を示す。監視部１５は、状態判断部２１、プロセス監視部２２、及び、ＤＢアクセス状態監視部２３を有する。プロセス監視部２２は、データベースのプロセス群を監視する。ＤＢアクセス状態監視部２３は、データベースへのアクセスを行うことで、データベースの状態をチェックする。状態判断部２１は、プロセス監視部２２とＤＢアクセス状態監視部２３の監視結果から、データベースの稼動状態が、「正常」、「異常」、「再構成中」の何れであるかを判断する。
【００２２】
図３に、監視部１５の動作手順を示す。状態判断部２１は、プロセス監視部２２に、データベースにおけるプロセスの状態を問い合わせる（ステップＡ１）。状態判断部２１からの問合せを受けると、監視対象のデータベースを構成するプロセスが存在するか否かをチェックし、監視対象のプロセスが全て存在する場合は「正常」を、それ以外の場合は「異常」を返却する。状態判断部２１は、プロセス監視部２２から、プロセス監視結果「異常」が返却された否かを判断する（ステップＡ２）。プロセス監視結果「異常」が返却された場合は、稼動状態を「異常」として処理を終了する（ステップＡ３）。
【００２３】
状態判断部２１は、プロセス監視結果「正常」が返却された場合は、ＤＢアクセス状態監視部２３に、データベースへのアクセスの状態を問い合わせる（ステップＡ４）。図４に、ＤＢアクセス状態監視部２３がアクセス状態を判断する際の手順を示す。ＤＢアクセス状態監視部２３は、状態判断部２１からアクセス状態の問合せを受けると、タイムアウト監視スレッドを生成し（ステップＢ１）、ＤＢアクセススレッドを生成する（ステップＢ２）。タイムアウト監視スレッドは、ＤＢアクセススレッドと並行する形で実行される。
【００２４】
ＤＢアクセス状態監視部２３は、ＤＢアクセススレッドにて、更新用ＳＱＬを実行する（ステップＢ３）。ＤＢアクセス状態監視部２３は、データベースへのアクセス状態監視結果が異常であるか否かを判断する（ステップＢ４）。実行したＳＱＬに対する応答が得られず、異常終了したときはアクセス監視結果「異常」をセットする（ステップＢ５）。応答が得られたときは、アクセス監視結果「正常」をセットする（ステップＢ６）。
【００２５】
タイムアウト監視スレッドは、所定時間の経過後、例えば更新用ＳＱＬの実行から１秒後に、タイムアウトの発生をメインスレッド（ＤＢアクセススレッド）に通知する（ステップＢ７）。ＤＢアクセス状態監視部２３は、ＤＢアクセススレッドにおけるアクセス監視結果が「異常」であるか否かを判定する（ステップＢ８）。アクセス監視結果が「異常」の場合は、状態判断部２１に、アクセス状態監視結果「異常」を返却して処理を終了する（ステップＢ９）。
【００２６】
ＤＢアクセス状態監視部２３は、アクセス監視結果が「正常」である場合は、ＤＢアクセススレッドにて実行した更新用ＳＱＬに対する応答が、タイムアウト監視スレッドにてタイムアウトが発生する前に得られたか否かを判断する（ステップＢ１０）。更新用ＳＱＬに対する応答が、タイムアウト発生後に得られたときは、アクセス状態監視結果「再構成中（タイムアウト）」を状態判断部２１に返却する（ステップＢ１１）。タイムアウト発生前に応答が得られたときは、アクセス状態監視結果「正常」を状態判断部２１に返却する（ステップＢ１２）。
【００２７】
図３に戻り、状態判断部２１は、ＤＢアクセス状態監視部２３から、アクセス状態監視結果「異常」が返却されたか否かを判断する（ステップＡ５）。アクセス状態監視結果「異常」が返却された場合は、データベースの稼動状態を「異常」として、処理を終了する（ステップＡ６）。次いで、状態判断部２１は、アクセス状態監視結果「再構成中（タイムアウト）」が返却されたか否かを判断する（ステップＡ７）。アクセス状態監視結果「再構成中（タイムアウト）」が返却された場合は、データベースの稼動状態を「再構成中」として、処理を終了する（ステップＡ８）。アクセス状態監視結果「正常」が返却された場合は、データベースの稼動状態を「正常」として、処理を終了する（ステップＳ９）。
【００２８】
図５に、プロセス監視部２２からの応答及びＤＢアクセス状態監視部２３からの応答と、稼動状態との関係をまとめたものを示す。状態判断部２１は、プロセス監視部２２から、プロセス監視結果「異常」が返却されたときは、データベースの稼動状態を「異常」とする。状態判断部２１は、プロセス監視結果が「正常」で、かつ、ＤＢアクセス状態監視部２３からアクセス状態監視結果「正常」が返却されたときは、稼動状態を「正常」とする。プロセス監視結果が「正常」で、かつ、アクセス状態監視結果が「異常」のときは、稼動状態を「異常」とし、プロセス監視結果が「正常」で、かつ、アクセス状態監視結果が「再構成中（タイムアウト）」のときは、稼動状態を「再構成中」とする。
【００２９】
各監視部１５は、定期的に、上記で説明した手順に従って対応するデータベースの稼動状態をチェックし、「正常」、「異常」、「再構成中」の判断結果を、監視情報収集部１４へ送信する。監視情報収集部１４は、クラスタ構成を取るデータベースノード５０−１〜５０−ｎに配置される監視部１５−１〜１５−ｎが送信したデータベースの稼動状態を収集し、状態保有部１３が保持しているデータベースごとの状態を更新する。
【００３０】
図６に、状態保有部１３が保持するデータを例示する。状態保有部１３は、各データベースノードについて、「正常」、「異常」、「再構成中」の何れかを保持する。状態情報参照部１２は、アプリケーションから、状態参照要求を受けると、状態保有部１３を参照し、アプリケーションに、指定されたデータベースの状態を返却する。
【００３１】
リアルタイム処理を行うアプリケーション５１は、状態情報参照部１２からの応答が「正常」のときのみデータベースへアクセスして業務処理を行う。「異常」又は「再構成中」のときは、データベースへのアクセスを行わず、エラー処理する。エラー処理することで、不要なレスポンス待ちを避けると共に、エンドユーザからの処理要求を滞留させることなく捌いていく。一方、リアルタイム性が低いバッチ処理を行うアプリケーション５２は、状態情報参照部１２からの応答が「異常」であった場合のみエラー処理を行う。「正常」又は「再構成中」であった場合は、データベースへアクセスして業務処理を継続させる。このようにすることで、不要な異常終了を避けて、業務継続性を向上できる。
【００３２】
本実施形態では、データベースの稼働状態を、「正常」、「異常」に加えて、「再構成中」の３つで管理する。「再構成中」の状態は、データベースに対して要求を発行し、その要求に対する応答が返ってくるか否か、及び、応答が返ってくるまでに要する時間が長いか短いかで検出可能である。本実施形態では、データベースからの応答は返ってくるものの、応答が返ってくるまでに要する時間が長い状態を検出することで、「再構成中」状態を認識できる。
【００３３】
「再構成中」を検出することで、以下のようなデータベースシステムの制御が可能である。すなわち、「再構成中」のときは、リアルタイム性が要求される処理からの処理要求を受け付けないことで、リアルタイム処理の即応性を増すことができると共に、予期せぬ処理待ちによるキュー溢れを防止することができる。「再構成中」時のリアルタイム処理に対するエラー処理では、例えば、エンドユーザに、「しばらくお待ち下さい。」といったメッセージを表示する。この場合、エンドユーザが、要求発行を控えることで、無駄な要求発行を抑えることができる。
【００３４】
また、バッチ処理のように数十秒から数分の待ちが問題とならない処理については、処理要求を受け付けることで、予期せぬ異常終了を抑止できる。このように、稼動状態が「再構成中」のときは、処理の性質に応じて、処理要求を受け付ける／受け付けないを選択することで、リアルタイム性が求められる処理を迅速にさばいてキュー溢れを防止することができると共に、リアルタイム性が求められない処理は、可能な限り処理を継続させることができる。本実施形態は、データベースのクラスタ構成を取るシステム全般に利用できる。特に、秒間処理件数が多いシステムに有効である。
【００３５】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のデータベース状態監視装置、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態のデータベース状態監視装置を含むデータベースシステムを示すブロック図。
【図２】監視部の構成を示すブロック図。
【図３】監視部の動作手順を示すフローチャート。
【図４】アクセス状態監視部の動作手順を示すフローチャート。
【図５】プロセス監視部からの応答及びＤＢアクセス状態監視部からの応答と、稼動状態との関係を示す判定テーブル。
【図６】状態保有部のデータ例を示す図。
【符号の説明】
【００３７】
１０：データベース状態監視装置
１２：状態情報参照部
１３：状態保有部
１４：監視情報収集部
１５：監視部
２１：状態判断部
２２：プロセス監視部
２３：ＤＢアクセス状態監視部
５０：データベースノード
５１：リアルタイム処理
５２：バッチ処理
【図１】
0004911063.tif 000002
【図２】
0004911063.tif 000003
【図３】
0004911063.tif 000004
【図４】
0004911063.tif 000005
【図５】
0004911063.tif 000006
【図６】
0004911063.tif 000007