本章适用于在要虚拟化的使用 JDBC 驱动器的应用程序是:

  • 独立 Java 应用程序,或者是
  • Java 应用程序部署在不会管理数据源配置的应用程序服务器中。

在这种情况下,可通过系统属性(如果使用通用的 java.sql.Deriver 类实现),或驱动器属性(如果使用另一个实现)使用并控制 Parasoft JDBC 驱动器。

为此:

  1. 将 Parasoft JDBC 驱动器复制到你的应用程序可以访问的位置。
  2. 更改应用程序的 JDBC 连接配置,以使用 Parasoft JDBC 驱动器,代替使用当前数据库供应商驱动器。
    • 步骤可能会根据应用程序中配置 JDBC 访问的方式或部署它的框架而有所不同。例如,如果它被硬编码到应用程序代码中,或更改某些属性文件或指定 JDBC 连接配置的说明文件,则它可能要求更改代码。
    • 如果应用程序使用了继承 java.sql.Driver 的驱动类,则将驱动类名更改为 com.parasoft.xtest.jdbc.virt.driver.JDBCProxyDriver,然后将应用程序使用的 JDBC 连接 URL 编辑为
      jdbc:parasoft:proxydriver:[original driver fully qualified class name]:@[original driver connection URL]。例如,如果原始 JDBC 连接 URL 是 org.hsqldb.jdbcDriver:@jdbc:hsqldb:hsql://localhost/parabank,则将其更改为 jdbc:parasoft:proxydriver:org.hsqldb.jdbcDriver:@jdbc:hsqldb:hsql://localhost/parabank
  3. 如果使用 java.sql.Driver 的实现类,则将所需的属性添加到系统属性定义中。
    如,在 Tomcat 服务器中,编辑 catalina.sh 或 catalina.bat (取决于平台)将下面的命令行参数添加到 Java 可执行的启动参数列表中(没有换行):

    -Dparasoft.virtualize.server.url=http://[virtualize server host name]:9080 -Dparasoft.virtualize.group.id=parabank 
    -Dparasoft.virtualize.driver.register.jdbcproxydriver.in.drivermanager=true

    请注意在这个单行字符串参数集中引入空格或新行。也请注意,为了方便对这种更改进行管理,一些应用程序服务器将提供可编辑的变量(或者将这些参数附加在它们后面)。

    可能需要特殊属性

    如果应用程序使用 java.sql.DriverManager 来创建 java.sql.Driver 的实例(就像实例 ParaBank 应用程序所做的那样),将 parasoft.virtualize.driver.register.jdbcproxydriver.in.drivermanager 设置为 true。这告诉 Parasoft JDBC 驱动器使用 DriverManager.registerDriver() 方法在运行时的 java.sql.DriverManager 中对自身进行注册。

    如果应用程序将通过创建 JDBC 驱动器新实例直接使用驱动器,则调用服务器上的 connect 方法并将 parasoft.virtualize.driver.proxy.direct 设置为 true。这告诉 Parasoft JDBC 驱动器使用代理连接(代替原始驱动器中的原始连接),这样它就可以记录、虚拟化等等。

  4. 通过重启服务器或以服务器支持的方式应用这些属性,确保应用了这些属性。
  • No labels