使用独立 java 客户端连接到 Oracle12C 数据库与通过 Websphere 连接

Connecting to Oracle12C database using standalone java client Vs Connecting through Websphere

当使用 ojdbc6.jar 或 ojdbc5.jar 时,从独立 java 应用程序连接到 Oracle 12c 成功。

连接字符串:jdbc:oracle:thin:@serverName:port:sid

而通过 Websphere 连接时相同的连接字符串失败,出现以下异常。

java.sql.SQLException: ORA-28040: No matching authentication protocol DSRA0010E: SQL State = 99999, Error Code = 28,040

注意:已尝试 ojdbc8.jarojdbc6.jar

ORA-28040: No matching authentication protocol 错误通常表示您正在使用较旧的 JDBC 驱动程序和较新的数据库。您应该更新您的 JDBC 驱动程序,使其与数据库的版本相同,或者使用适当的 SQLNET.ALLOWED_LOGON_VERSION_SERVER/SQLNET.ALLOWED_LOGON_VERSION_CLIENT 值更新您的 sqlnet.ora 文件。有关详细信息,请参阅 Oracle's SQLNET documentation

请注意,如果您认为您正在使用与数据库相同版本的 JDBC 驱动程序,则可能在 WebSphere 环境中选择了不同的 JDBC 驱动程序。如果是这样的话:

  1. 检查您的应用程序是否包含其他 JDBC 驱动程序。
  2. 检查是否在 WebSphere 中配置了其他 Oracle JDBC 提供程序使用较旧的 JDBC 驱动程序。如果是这样,请修改您的配置,以便您的所有供应商都使用相同版本的 Oracle JDBC 驱动程序,否则您将需要 Isolate your JDBC Providers.