本主题介绍了 Parasoft JDBC 驱动器,它用于记录数据库查询及其相应的结果数据。一旦配置好 Parasoft JDBC 驱动程序,并设置好被测应用程序(AUT)与之通信,便可以使用 JDBC 控制器在用户界面切换模式(如转移、录制、虚拟化等),而无需重新启动应用程序服务器。
章节目录:
使用 Parasoft JDBC 驱动程序和 JDB 控制器执行数据库虚拟化(如 记录数据库中所述)。Parasoft JDBC 驱动程序是一种特殊的 JDBC 驱动程序,它可以充当应用程序与其常规 JDBC 驱动器之间的中间人。它实现了 JDBC API,这些 API 允许其像任何标准数据库驱动程序一样配置到 Java 应用程序服务器中。
一旦完成配置,驱动程序可以:
通过 Virtualize UI(或环境管理器 UI),您可以使用 JDBC 控制器来控制一个 Parasoft JDBC 驱动程序或一组驱动程序的设置。例如,可以对部署到集群环境中的 JDBC 驱动程序进行单点控制。或者,如果在一个 AUT 中使用多个驱动程序(或数据源),则可以协调它们的部署配置(例如,可以让它们同时切换模式)。
使用 UI 控件,可以在无需重启 AUT 的情况下更改模式(录制、转移、虚拟化、混合、容错)和其他 Parasoft JDBC 驱动程序设置(如日志)。如果在 AUT 不在线时更改设置,则这些更改将在启动时应用。
Parasoft Virtualize 支持 SQL SELECT 语句的录制和虚拟化。支持具有多个 in、out 和 inout 参数(包括 Cursor/ResultSet 参数)的存储过程和函数。对于 Oracle 和 DB2 来说,它们支持记录具有多个 out 参数的存储过程,其中每个参数返回一个指针。
当查询被路由到实际的 JDBC 驱动程序时(即在录制或转移模式下),INSERT、UPDATE 和 DELETE 查询被分配给原始数据库/驱动程序。
在查询被发送到虚拟资产时,调用 Statement.executeUpdate() 方法将返回值 0,Parasoft Virtualize 将不会模拟 INSERT、UPDATE 和 DELETE 语句的实际行为。因此,记录到 Virtualize 的任何数据源都将不会因这些 SQL 查询而更改。
在 CallableStatement
关闭时,或者当所有声明的 out 参数和结果集都被读入时,都会记录结果。若要记录结果集,则必须对它们调用 close。调用 Statement 或 PreparedStatement 的 close 将意味着将不记录来自结果集的数据。记录的行名基于用来检索它们的接口方法。调用 ResultSet.getString(String columnLabel) 将在记录数据中使用 columnLabel。如果使用行索引,则记录的数据将使用索引号作为列标签。
当结果集不是通过显式调用 ResultSet.close() 关闭时,结果将在 Parasoft JDBC 驱动程序停止记录时记录。录制结束后,Parasoft JDBC 驱动程序将检查每个不是显式关闭的结果集,然后将它们提交到要记录的 Virtualize 服务器。
Virtualize 和 Parasoft JDBC 驱动程序通过 CallableStatement 接口支持存储过程。Virtualize 将在对其实现没有任何可见性的情况下,模拟存储过程的返回和输出参数值。如果存储过程执行 UPDATE、INSERT 或 DELETE 查询,则 Virtualize 中记录的数据将不会受到该查询的影响。
支持返回一个 ResultSet(要么作为输出参数,要么作为函数返回值)的函数/过程。
目前不支持以下类型: