0

我可以使用与 WebSphere 9 捆绑在一起的 IBM JDK 1.8 使用 IBM 通用 JDBC 驱动程序文件 db2jcc4.jar 连接到 z/OS 上的 Db2。一切正常,我可以浏览目录并执行查询。我使用 Squirrel SQL 4.0.0 版。

但是,当我将 JDK 切换到 Open JDK 8 或 12 并保持其他所有内容相同时,我收到以下错误。应该怎么做才能修复这个错误?IBM JDK 和 Open JDK 之间有什么区别,这会导致 DB2 连接在一个 JDK 上工作而在另一个 JDK 上失败?

使用 Open JDK 12 时出错

4

2 回答 2

0

这是您案例的匹配文章之一:
JDBC 应用程序可能会收到错误“不支持安全机制”
https://www.ibm.com/support/pages/jdbc-application-may-receive-error-security-mechanism-not -支持的

解决问题

设置以下属性:

安全机制 = ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY (13)

或者,您可以将属性 retryWithAlternativeSecurityMechanism 设置为 YES(1)。

希望这可以帮助。

于 2019-12-09T08:11:24.657 回答
0

根据 IBM 的 IBM Data Server Driver for JDBC and SQLJ 文档,错误代码 -4214 是“授权失败”错误——您知道很多。但是,如果您调用 SQLException.getMessage,您可以获得有关该问题的更具体信息。我想你可能已经这样做了,但这并不完全清楚。

我半知半解的猜测是,您尚未遵循 IBM 驱动程序文档中“配置 Java 运行时环境以使用 SSL”部分中的配置步骤:

https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com.ibm.db2.luw.apdv.java.doc/src/tpc/imjcc_t0054066.html

您必须对这些指令应用一些常识知识以使其适应 OpenJDK,这可能不是 IBM 支持的组合,具体取决于您执行的操作/方式。如果您能以某种方式使用 IBMJSSE2 Provider,那就太好了。

我认为Mao 和Mustaccio 可能有正确的想法,并且您可能只是缺少信任库中的服务器证书。上面链接的说明将引导您完成如何配置它。

于 2020-02-12T08:05:13.113 回答