验证 OJDBC 驱动程序是否已在 weblogic 中正确更新?

Verifying that OJDBC drivers are updated correctly in weblogic?

我们已将 Oracle 数据库升级到版本 12。我们在 Weblogic 12.1.2.0.0 上有一个 Java 应用程序 运行ning Java 7,使用驱动程序进行数据库连接class 姓名:oracle.jdbc.OracleDriver.

如果我在我的 weblogic 安装文件夹 C:\Oracle\Middleware\Oracle_Home 中搜索,我在任何地方都找不到任何 ojdbc7.jar 驱动程序,但是我可以在位置 C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc_11.2.0 中找到 ojdbc6.jar

我正在尝试升级到 ojdbc7.jar。根据站点 Fusion Middleware Configuring and Managing JDBC Data Sources for Oracle WebLogic Server,我需要在我的 class 路径上设置以下驱动程序:

我从 here 下载了前几个,其余的我已经在我的 weblogic 安装文件夹中找到了。我将它们复制到文件夹 D:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7.

然后我将所有 jar 添加到我的 class 路径中:

D:\Oracle\Middleware\Oracle_Home\oracle_common\common\bin\commEnv.cmd

set WEBLOGIC_CLASSPATH=C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\ojdbc7.jar;C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\ojdbc7_g.jar;C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\ojdbc7dms.jar;C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\ons.jar;C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\oraclepki.jar;C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\orai18n.jar;C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\orai18n-mapping.jar;C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\osdt_cert.jar;C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\osdt_core.jar;C:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.jdbc7\ucp.jar;D:\Oracle\Middleware\Oracle_Home\oracle_common\modules\oracle.pki_12.1.2;%JAVA_HOME%\lib\tools.jar;%PROFILE_CLASSPATH%;%ANT_HOME%/lib/ant-all.jar;%ANT_CONTRIB%/lib/ant-contrib.jar;%CAM_NODEMANAGER_JAR_PATH%

我还访问了我的服务的 windows 注册表,并将相同的 jar 添加到我的 CLASSPATH cmd 行参数中。

如果我的应用程序启动,我可以看到罐子在我的 class 路径中。

但是我如何验证实际使用了哪些 ojdbc 驱动程序? 这是更新驱动程序的正确方法吗?

(在人们开始说我们不应该再 运行 Java 7 个应用程序之前...这是一个遗留应用程序,很快就会被替换,但现在这是我必须工作的与 :) )

But how can I verify which ojdbc drivers are actually being used?

你可以问drivergetMetaData方法

相关部分的简单示例(conn是数据库连接)。

md = conn.getMetaData();
println (md.getDriverVersion());

这给出了例如

 12.1.0.2.0

这是您在所用 driver jar 的 META-INF/MANIFEST.MF 文件中找到的版本。

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 20.75-b01 (Sun Microsystems Inc.)
Implementation-Vendor: Oracle Corporation
Implementation-Title: JDBC
Implementation-Version: 12.1.0.2.0 

更新 JDBC 环境时重要的是检查 JDBC Compatibility Matrix

您有正确的文档 link。查看该页面,它说要自定义安装客户端工具包。这意味着您需要从该工具包中获取所有列出的 jar 文件。您不能使用套件中的新 ojdbc7.jar 文件和 WLS 附带的 ucp.jar 文件。它们需要是匹配的集合。 如果您使用的是 FMW 或 FA,则需要使用 ojdbc7dms.jar。否则,使用 ojdbc7.jar。 ojdbc7_g.jar 仅用于调试。

使用 conn.getMetaData().getDriverVersion() 会告诉您正在使用的 ojdbc7.jar 的版本,但不会告诉您有一组不匹配的 jar 文件。