(57)【要約】【課題】本発明は、データベースアクセス実行情報取得用データベースドライバをもうけて、データベースアクセス実行情報を正しく取得するようにすることを目的としている。【解決手段】情報取得の対象となるプログラムがデータベースをアクセスする際に呼び出される本来情報取得対象プログラムが利用するデータベースドライバの代わりに、データベースアクセス実行情報を取得するデータベースアクセス実行情報取得用データベースドライバをもうけ、後者のデータベースドライバが前者のデータベースドライバを介してデータベース実行情報を取得する。【選択図】        図２
2004259082.tif 000002
【特許請求の範囲】
【請求項１】
情報取得対象プログラムをそなえると共にデータベースをそなえる情報処理システムに関連して、情報取得対象プログラムがデータベースをアクセスしている実行情報を取得するデータベースアクセス実行情報の取得方法において、
情報取得対象プログラムがデータベースにアクセスする際に情報取得対象プログラムから呼び出される本来情報取得対象プログラムが利用するデータベースドライバの代わりに、本来情報取得対象プログラムが利用するデータベースドライバと同一のインターフェースを実装した第１のメソッドを装備してデータベースアクセス実行情報を取得するデータベースアクセス実行情報取得用データベースドライバが用意されてなり、
当該データベースアクセス実行情報取得用データベースドライバが、
前記第１のメソッドにおいて、本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドへの呼び出しを行い、
データベースアクセス実行情報取得用データベースドライバの第１のメソッドを実行し、
本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドを介してデータベース実行情報を取得する
ことを特徴とするデータベースアクセス実行情報の取得方法。
【請求項２】
情報取得対象プログラムからデータベースアクセス実行情報取得用データベースドライバの第１のメソッドが呼び出された際に、
データベースアクセス実行情報取得用データベースドライバが、
当該データベースアクセス実行情報取得用データベースドライバから本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドへの呼び出し処理を委譲する時点で、データベースアクセス実行開始時間を取得し、
メソッドへの呼び出し処理を委譲した後に、本来情報取得対象プログラムが利用するデータベースドライバからデータベースアクセス実行情報取得用データベースドライバに対して処理結果が返された時点で、データベースアクセス実行終了時間を取得し、
かつ、前記データベースアクセス実行開始時間と前記データベースアクセス実行終了時間との差分から、データベースアクセス実行時間を取得する
ことを特徴とする請求項１記載のデータベースアクセス実行情報の取得方法。
【請求項３】
データベースアクセス実行情報取得用データベースドライバから本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドへの呼び出し処理を実行する際に、実行されるＳＱＬ文情報を取得する
ことを特徴とする請求項１または請求項２記載のデータベースアクセス実行情報の取得方法。
【請求項４】
データベースアクセス実行情報としてＳＱＬ文記録の可否を選択し、記録するＳＱＬ文の詳細度について設定し、前記ＳＱＬ文記録の可否設定及び記録するＳＱＬ文の詳細度のとおりにＳＱＬ文を記録する
ことを特徴とする請求項１ないし請求項３記載のデータベースアクセス実行情報の取得方法。
【請求項５】
ユーザが選択した所のデータベースアクセス実行情報を取得するメソッドを特定し、特定したメソッドのみの実行情報を取得する
ことを特徴とする請求項１記載のデータベースアクセス実行情報の取得方法。
【請求項６】
データベースアクセスを実行する情報取得対象プログラムがＪａｖａ言語で作成され、本来情報取得対象プログラムが利用するデータベースドライバとしてＪＤＢＣドライバが利用される
ことを特徴とする請求項１ないし５記載のデータベースアクセス実行情報の取得方法。
【請求項７】
情報取得対象プログラムをそなえると共にデータベースをそなえる情報処理システムに関連して、情報取得対象プログラムがデータベースをアクセスしている実行情報を取得するデータベースアクセス実行情報の取得システムにおいて、
情報取得対象プログラムがデータベースにアクセスする際に情報取得対象プログラムから呼び出される本来情報取得対象プログラムが利用するデータベースドライバの代わりに、本来情報取得対象プログラムが利用するデータベースドライバと同一のインターフェースを実装した第１のメソッドを装備した所のデータベースアクセス実行情報を取得するデータベースアクセス実行情報取得用データベースドライバをそなえてなり、
当該データベースアクセス実行情報取得用データベースドライバが、
前記第１のメソッドにおいて、本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドへの呼び出しを行う手段と、
データベースアクセス実行情報取得用データベースドライバの第１のメソッドを実行する手段と、
本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドを介してデータベース実行情報を取得する手段と
を有する
ことを特徴とするデータベースアクセス実行情報の取得システム。
【請求項８】
情報取得対象プログラムからデータベースアクセス実行情報取得用データベースドライバの第１のメソッドが呼び出された際に、
データベースアクセス実行情報取得用データベースドライバが、
当該データベースアクセス実行情報取得用データベースドライバから本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドへの呼び出し処理を委譲する時点で、データベースアクセス実行開始時間を取得する手段と、
メソッドへの呼び出し処理を委譲した後に、本来情報取得対象プログラムが利用するデータベースドライバからデータベースアクセス実行情報取得用データベースドライバに対して処理結果が返された時点で、データベースアクセス実行終了時間を取得する手段と、
前記データベースアクセス実行開始時間と前記データベースアクセス実行終了時間との差分から、データベースアクセス実行時間を取得する手段と
を有する
ことを特徴とする請求項７記載のデータベースアクセス実行情報の取得システム。
【請求項９】
データベースアクセス実行情報取得用データベースドライバから本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドへの呼び出し処理を実行する際に、実行されるＳＱＬ文情報を取得する手段をそなえた
ことを特徴とする請求項７または請求項８記載のデータベースアクセス実行情報の取得システム。
【請求項１０】
データベースアクセス実行情報としてＳＱＬ文記録の可否を選択し、記録するＳＱＬ文の詳細度について設定する手段をそなえ、かつ
前記ＳＱＬ文記録の可否設定及び記録するＳＱＬ文の詳細度のとおりにＳＱＬ文を記録する手段をそなえた
ことを特徴とする請求項７ないし請求項９記載のデータベースアクセス実行情報の取得システム。
【請求項１１】
データベースアクセス実行情報を取得するメソッドを予めユーザが選択する手段と、
選択したメソッドのみの実行情報を取得する手段と
を有する
ことを特徴とする請求項７ないし請求項１０記載のデータベースアクセス実行情報の取得システム。
【請求項１２】
データベースアクセスを実行する情報取得対象プログラムがＪａｖａ言語で作成され、本来情報取得対象プログラムが利用するデータベースドライバとしてＪＤＢＣドライバが利用される
ことを特徴とする請求項７ないし請求項１１記載のデータベースアクセス実行情報の取得システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースアクセスを実行する情報取得対象プログラムがデータベースをアクセスしているデータベースアクセス実行情報を取得するデータベースアクセス実行情報の取得方法及びシステムに関するものである。
【０００２】
【従来の技術】
従来、データベースアクセス実行情報を取得するには以下の２方式の何れかを使用して実行情報を取得していた。
【０００３】
（１）特許文献１に示される技術を用いることにより、情報取得対象プログラムに対して、実行情報取得用のコードをソースコードまたは実行形式に変換後のコードに理め込み、実行情報を取得する方式。
【０００４】
（２）一般に市販されているデータベースに付属する機能等を利用して、データベース側で実行されるデータベースアクセス実行情報を取得する方式。
【０００５】
【特許文献１】
特開２００２−８２９２６号「分散アプリケーション試験・運用管理システム」
【０００６】
【発明が解決しようとする課題】
従来は上述した方式（１）、（２）によってデータベースアクセス実行情報を取得していたが、次のように従来方式（１）には▲１▼の問題点、従来方式（２）には▲２▼の問題点がそれぞれ存在した。
【０００７】
▲１▼情報取得対象プログラムを作成する毎に、実行情報取得用のコードを、ソースコードまたは実行形式に変換後のコードに埋め込む必要があった。
【０００８】
▲２▼一般に市販されているデータベースに付属する機能等を利用して、データベース側で実行されるデータベースアクセス実行情報の実行時間は、データベース側において実行時間を取得するため、情報取得対象プログラムとデータベースとの間の通信時間が含まれないため、情報取得対象プログラム側でのデータベースアクセス実行時間（情報取得対象プログラムとデータベースとの間の通信時間を含む）を測定することができなかった。
【０００９】
本発明は、データベースアクセス実行情報取得用データベースドライバをもうけて、データベースアクセス実行情報を正しく取得するようにすることを目的としている。
【００１０】
【課題を解決するための手段】
情報取得対象プログラムをそなえると共にデータベースをそなえる情報処理システムに関連して、情報取得対象プログラムがデータベースをアクセスしている実行情報を取得するデータベースアクセス実行情報の取得方法において、
情報取得対象プログラムがデータベースにアクセスする際に情報取得対象プログラムから呼び出される本来情報取得対象プログラムが利用するデータベースドライバの代わりに、本来情報取得対象プログラムが利用するデータベースドライバと同一のインターフェースを実装した第１のメソッドを装備してデータベースアクセス実行情報を取得するデータベースアクセス実行情報取得用データベースドライバが用意されてなり、
当該データベースアクセス実行情報取得用データベースドライバが、
前記第１のメソッドにおいて、本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドへの呼び出しを行い、
データベースアクセス実行情報取得用データベースドライバの第１のメソッドを実行し、
本来情報取得対象プログラムが利用するデータベースドライバにおける第２のメソッドを介してデータベース実行情報を取得する
ことを特徴とする。
【００１１】
【発明の実施の形態】
以下の図面を用いて本発明の一実施形態について説明する。
【００１２】
図１は、本発明を適用したシステム構成図を示したものである。
図中、１はコンピュータ装置、２はコンピュータ装置、１１は情報取得対象プログラム、１２はデータベースアクセス実行情報取得用データベースドライバ、１３はデータベースドライバ、１４は実行情報記録部、１５はログ、１６は設定定義部、２１はデータベース、１２１は実行情報取得用メソッド、１２１ａは処理受付／委譲部、１２１ｂはＳＱＬ文（（エスキューエル文）：データベース操作言語であるＳＱＬで記述された操作文）記録／補完部、１３１は本来情報取得対象プログラムが利用するメソッドである。
【００１３】
図１に示すシステム構成においては、コンピュータ装置１とコンピュータ装置２とで構成されているが、単一の装置であってもよい。
【００１４】
データベースアクセス実行情報取得用データベースドライバ１２は、実行情報取得用メソッド１２１（実行情報取得用メソッドは、データベースアクセス実行情報取得用データベースドライバ１２内に複数存在するが、ここでは例として実行情報取得用メソッド１２１で説明）から構成されている。
【００１５】
実行情報取得用メソッド１２１は、処理受付／委譲部１２１ａとＳＱＬ文記録／補完部１２１ｂとから構成されており、処理受付／委譲部１２１ａは、設定定義部１６から設定情報を取得し、実行情報取得用メソッド１２１についての設定がデータベースアクセス実行情報取得可になっていれば、処理受付／委譲部１２１ａから実行情報記録部１４に実行情報が通知され、実行情報記録部１４からログ１５に実行情報を出力することにより、実行情報を取得するようにしている。
【００１６】
設定定義部１６は、データベースアクセス実行情報の取得可否をメソッド毎に設定した定義用テキストファイルで構成され、処理受付／委譲部１２１ａは、その定義用テキストファイルを参照することによりデータベースアクセス実行情報の記録可否をメソッド毎に判断する。
【００１７】
また処理受付／委譲部１２１ａからＳＱＬ文記録／補完部１２１ｂにＳＱＬ文情報を通知し、ＳＱＬ文記録／補完部１２１ｂは、設定定義部１６から設定情報を取得し、設定どおりにＳＱＬ文記録／補完部１２１ｂにおいて本来情報取得対象プログラムが利用するデータベースドライバ１３を通してデータベース２１にアクセスすることにより、ＳＱＬ文情報を補完しまたは簡易化する。
【００１８】
補完しまたは簡易化されたＳＱＬ文を実行情報記録部１４に引渡し、実行情報記録部１４が引き渡されたＳＱＬ文情報をログ１５に出力することにより、ＳＱＬ文情報を取得するようにしている。
【００１９】
設定定義部１６に、設定情報記録用データベースにＳＱＬ文の記録可否、記録するＳＱＬ文の詳細度の設定を保存しておくことができ、ＳＱＬ文記録／補完部１２１ｂがその設定情報記録用データベースの設定情報を参照することにより、ＳＱＬ文情報をその設定どおりに補完又は簡易化することができる。
【００２０】
処理受付／委譲部１２１ａは、本来情報取得対象プログラムが利用するメソッド１３１に対して処理を委譲することにより、ユーザが本来実行しようとしているデータベースアクセス処理を実行可能にする。
【００２１】
情報取得対象プログラム１１は、データベースアクセス実行情報取得用データベースドライバ１２を開発するためのプログラム言語の例として、Ｊａｖａ言語（（ジャヴァ言語）：サンマイクロシステムズ社が開発したオブジェクト指向プログラム言語）が挙げられる。Ｊａｖａ言語を利用することにより、オペレーティングシステム等の動作プラットフォームに依存しない開発環境に対応することができる。
【００２２】
またＪａｖａプログラムからデータベースを操作するための標準的なインターフェースであるＪＤＢＣ（（ジェイディービーシ）：Ｊａｖａプログラムからデータベースを操作するための標準的なインターフェース）ドライバを利用することにより、汎用的に利用することが可能で、本発明を適用する範囲が拡がる。
【００２３】
図２は、本発明を適用した処理フローを示したものである。
図２においては、情報取得対象プログラム１１がデータベース２１にアクセスする場合の実行情報を取得するための処理フローを示している。情報取得対象プログラム１１は、データベースアクセス実行情報取得用データベースドライバ１２の処理受付／委譲部１２１ａに対してメソッドの呼出を実行する（Ｓ１）。情報取得対象プログラム１１からの呼出を受けた処理受付／委譲部１２１ａは、処理の開始通知（Ｓ２）を実行情報記録部１４に対して通知する（Ｓ３）。開始通知を通知された実行情報記録部１４は、通知された時点の時間を処理の開始時間として取得し（Ｓ４）、コンピュータ装置１上のメモリに記録する（Ｓ５）。
【００２４】
処理受付／委譲部１２１ａは、開始通知を通知後、情報取得対象プログラム１１から呼び出されたメソッドの処理を、本来情報取得対象プログラムが利用するデータベースドライバ１３に対して処理を依頼する（Ｓ６、Ｓ７）。本来情報取得対象プログラムが利用するデータベースドライバ１３は、依頼された処理を実行し、データベース２１に対してアクセスし処理を実行する（Ｓ８、Ｓ９）。データベース２１は、本来情報取得対象プログラムが利用するデータベースドライバ１３からアクセスされた処理内容の結果を返す（Ｓ１０）。本来情報取得対象プログラムが利用するデータベースドライバ１３は、データベース２１から返された結果を、データベースアクセス実行情報取得用データベースドライバ１２に対して返す（Ｓ１１）。データベースアクセス実行情報取得用データベースドライバ１２は、本来情報取得対象プログラムが利用するデータベースドライバ１３から返された結果を、情報取得対象プログラムに対して返す（Ｓ１２）。
【００２５】
データベースアクセス実行情報取得用データベースドライバ１２は、本来情報取得対象プログラムが利用するデータベースドライバ１３から返された結果を、情報取得対象プログラム１１に対して返した後、処理の終了通知（Ｓ１３）を実行情報記録部１４に対して通知する（Ｓ１４）。終了通知を通知された実行情報記録部１４は、通知された時点の時間を処理の終了時間として取得し（Ｓ１５）、コンピュータ装置１上のメモリに記録する（Ｓ１６）。
【００２６】
処理受付／委譲部１２１ａは、処理を実行したＳＱＬ文をＳＱＬ文記録／補完部１２１ｂに対して通知する（Ｓ１７、Ｓ１８）。ＳＱＬ文記録／補完部１２１ｂは、通知されたＳＱＬ文を取得し（Ｓ１９）、不足している情報がある場合、データベース２１にアクセスして（Ｓ２０〜Ｓ２５）、不足情報を取得しＳＱＬ文を補完し（Ｓ２６）、コンピュータ上のメモリに記録する（Ｓ２７）。
【００２７】
不足している情報をデータベースヘ問い合わせる例としては、ＲｅｓｕｌｔＳｅｔ．ｕｐｄａｔｅＲｏｗ  を実行した時に絡む番号を用いたデータ設定においてカラム番号をカラム名に置き換える例や、ＲｅｓｕｌｔＳｅｔ．ｄｅｌｅｔｅＲｏｗ  を実行した時に削除した内容を取得する例や、ＲｅｓｕｌｔＳｅｔ．ｕｐｄａｔｅＲｏｗ  を実行した時の更新前内容を表示する例などがあり、データベース２１にアクセスして不足情報を補うことによりログを出力可能とする。不足している情報をデータベース２１ヘ問い合わせる際に、ＳＱＬ文内で設定されている値を簡略化する例として、ＢｉｇＤｅｃｉｍａｌ型のような比較的桁数の大きな数値の場合指数を用いて表示する例や、表示する文字列の指定した最初からの文字数のみ表示する例がある。
【００２８】
ＳＱＬ文記録／補完部１２１ｂは、実行情報記録部１４に対して処理の終了通知を通知し（Ｓ２８、Ｓ２９）、実行情報記録部１４では、メモリ上に記録されている（ｉ）開始時間、（ｉｉ）  終了時間、（ｉｉｉ）  開始時間と終了時間との差から計算される実行時間、（ｉｖ）ＳＱＬ文をコンピュータ上のログ１５に記録する（Ｓ３０）。
【００２９】
図３は、本発明を適用したログの例を示したものである。
実行したメソッド名、実行開始時間、実行終了時間、実行時間、実行したＳＱＬ文を１行で記録する。複数実行された場合には、複数行で記録し、メソッド毎の実行回数をカウントすることにより、ある一定時間の実行回数とする。
【００３０】
【発明の効果】
以上説明したように、本発明によれば、情報取得対象プログラムのデータベースアクセス実行情報の取得について、
第１の効果は、情報取得対象プログラムのソースコード及びコンパイル後のバイドコードを修正することなくデータベースアクセス実行情報を取得することが可能になることにあり、
その理由は、情報取得対象プログラムから呼び出される本来情報取得対象プログラムが利用するデータベースドライバの代わりに、データベースアクセス実行情報取得用データベースドライバを利用してデータベースアクセス実行情報を取得するためであり、
第２の効果は、データベースアクセス実行情報を取得するためのプログラム実行時間における負荷を最小限に押さえることが可能になることにあり、
その理由は、データベースアクセス実行情報を取得したいメソッドの種類、取得したいＳＱＬ文の詳細度をユーザが自由に設定することができるためである。
【図面の簡単な説明】
【図１】本発明を適用したシステム構成の一実施例を示す。
【図２】本発明を適用した処理フローの一実施例を示す。
【図３】本発明を適用したログの一実施例を示す。
【符号の説明】
１：コンピュータ装置
２：コンピュータ装置
１１：情報取得対象プログラム
１２：データベースアクセス実行情報取得用データベースドライバ
１３：データベースドライバ
１４：実行情報記録部
１５：ログ
１６：設定定義部
２１：データベース
１２１：実行情報取得用メソッド
１２１ａ：処理受付／委譲部
１２１ｂ：ＳＱＬ文記録／補完部
１３１：本来情報取得対象プログラムが利用するメソッド
【図１】
2004259082.tif 000003
【図２】
2004259082.tif 000004
【図３】
2004259082.tif 000005