このセクションでは、Parasoft JDBC ドライバーについて説明します。Parasoft JDBC ドライバーは、データベース クエリーや、クエリーに対応する結果データを記録するために使用します。Parasoft JDBC ドライバーを構成し、テスト対象アプリケーションが Parasoft JDBC ドライバーと通信するよう設定すると、JDBC コントローラーを使ってモード (たとえばパススルー、記録、仮想化) の切り替えを GUI から行うことができます。このとき、アプリケーション サーバーの再起動は必要ありません。
セクションの内容:
データベース仮想化 (「データベースの記録」を参照) は Parasoft JDBC ドライバーと JDBC コントローラーを併用して行われます。Parasoft JDBC ドライバーはアプリケーションと通常の JDBC ドライバーの仲介機能を持つ特別な JDBC ドライバーです。Parasoft JDBC ドライバーは JDBC API を実装しているので、標準的なデータベース ドライバーと同じように Java アプリケーション サーバーに構成できます。
Parasoft JDBC ドライバーを構成すると、以下のことが可能になります。
Virtualize GUI (または Environment Manager GUI) から、JDBC コントローラーを使って単一の Parasoft JDBC ドライバーまたはドライバーのグループの設定を制御できます。たとえば、クラスター環境にデプロイされた JDBC ドライバーを 1 箇所で制御できます。あるいは、1 つのテスト対象アプリケーションで複数のドライバー (またはデータ ソース ) が使用されている場合、デプロイメント構成を一斉に変更できます (たとえばすべてのドライバーのモードを一度に切り替えられます)。
GUI コントロールを使用すると、テスト対象アプリケーションを再起動せずにモード (記録、パススルー、仮想化、ハイブリッド、フェイルオーバー) やその他の Parasoft JDBC ドライバー設定 (ログ記録など) を変更できます。テスト対象アプリケーションが実行されていないときに設定を変更すると、テスト対象アプリケーションが起動されたときに変更が適用されます。
Parasoft Virtualize は SQL SELECT 文の記録と仮想化をサポートしています。Cursor/ResultSet パラメーターを含め、複数の入力、出力、および入出力パラメーターを持つストアド プロシージャがサポートされています。Oracle および DB2 の場合、複数の出力パラメーターがあり、それぞれがカーソルを返すストアド プロシージャの記録がサポートされています。
クエリーが実際の JDBC ドライバーに転送される場合 (つまり記録モードまたはパススルー モードの場合)、INSERT、UPDATE および DELETE 文は本来のデータベース/ドライバーに渡されます。
クエリーが仮想アセットに送られる場合、Statement.executeUpdate() の呼び出しはゼロを返します。Parasoft Virtualize は INSERT、UPDATE および DELETE の実際の振る舞いをエミュレートしません。結果として、Virtualize に記録されたデータはこれらの SQL クエリーによって変更されません。
CallableStatement がクローズされたとき、または出力パラメーターとして宣言されたすべてのパラメーターおよび結果セットが読み込まれたときに結果が記録されます。ResultSet を記録するには、ResultSet のクローズを呼び出す必要があります。Statement または PreparedStatement のクローズを呼び出すと、ResultSet からデータは記録されません。記録される列名は、取得に使用したインターフェイス メソッドに基づきます。ResultSet.getString(String columnLabel) を呼び出すと、記録されたデータに columnLabel が使用されます。列のインデックスが使用された場合、記録されたデータの列ラベルとしてインデックスが使用されます。
ResultSet.close() の明示的な呼び出しによって結果セットがクローズされていない場合、Parasoft JDBC ドライバーが記録を終了したときに結果が記録されます。記録が停止すると、Parasoft JDBC ドライバーは明示的にクローズされていない結果セットがあるかどうかを確認し、そのような結果セットを記録するために Virtualize に送ります。
Virtualize および Parasoft JDBC ドライバーは、CallableStatement インターフェイスによってストアド プロシージャをサポートしています。Virtualize はストアド プロシージャの内部の実装を関知せずに戻り値および出力パラメーターをエミュレートします。ストアド プロシージャが UPDATE、INSERT または DELETE クエリーを実行する場合、Virtualize に記録されたデータはそれらのクエリーの影響を受けません。
出力パラメーターまたは関数の戻り値として単一の ResultSet を返す関数/プロシージャがサポートされています。
現時点では以下の関数/プロシージャはサポートされていません。