gpt4 book ai didi

java - 发生 DB2 连接授权失败原因 : Security Mechanism not supported in Java

转载 作者:搜寻专家 更新时间:2023-10-31 20:29:05 30 4
gpt4 key购买 nike

我正在尝试使用 DB2JDBC Type4 驱动程序配置 DB2 连接。但是我收到了这个错误。

Exception in thread "main" com.ibm.db2.jcc.am.SqlInvalidAuthorizationSpecException: [jcc][t4][201][11237][3.64.104] Connection authorization failure occurred. Reason: Security mechanism not supported. ERRORCODE=-4214, SQLSTATE=28000

我的代码是

public Connection getConnection() throws ClassNotFoundException, InstantiationException,
IllegalAccessException, SQLException{

Driver driver = (Driver) Class.forName ( "com.ibm.db2.jcc.DB2Driver" ).newInstance();
DriverManager.registerDriver(driver);
Connection connection = DriverManager.getConnection("jdbc:db2://hostname:portnumber
/DBName", "username","password" );
System.out.println( "From DAO, connection obtained " );
return connection;
}

异常日志:

Exception in thread "main" com.ibm.db2.jcc.am.SqlInvalidAuthorizationSpecException:
[jcc][t4][201][11237][3.64.104] Connection authorization failure occurred.
Reason: Security mechanism not supported. ERRORCODE=-4214, SQLSTATE=28000
at com.ibm.db2.jcc.am.bd.a(bd.java:677)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:120)
at com.ibm.db2.jcc.t4.b.f(b.java:2389)
at com.ibm.db2.jcc.t4.b.a(b.java:1712)
at com.ibm.db2.jcc.t4.y.b(y.java:3612)
at com.ibm.db2.jcc.t4.y.a(y.java:477)
at com.ibm.db2.jcc.t4.y.a(y.java:117)
at com.ibm.db2.jcc.t4.b.c(b.java:1350)
at com.ibm.db2.jcc.t4.b.b(b.java:1221)
at com.ibm.db2.jcc.t4.b.b(b.java:788)
at com.ibm.db2.jcc.t4.b.a(b.java:760)
at com.ibm.db2.jcc.t4.b.a(b.java:421)
at com.ibm.db2.jcc.t4.b.a(b.java:396)
at com.ibm.db2.jcc.t4.b.<init>(b.java:334)
at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:232)
at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:198)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:475)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:116)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.test.connection.DB2ConnectionFactory.getConnection(DB2ConnectionFactory.java:19
at com.test.connection.ConnectionTest.main(ConnectionTest.java:18)

我也尝试过 IBM Data Server Driver for JDBC and SQLJ 支持的这些机制

-CLIENT
-SERVER
-SERVER_ENCRYPT
-DATA_ENCRYPT
-KERBEROS
-GSSPLUGIN
-KRB_SERVER_ENCRYPT
-GSS_SERVER_ENCRYPT

为了避免加密问题,我们已将此应用程序部署到 linux box。所以以防万一需要安全连接,但那里发生了同样的错误。

我正在使用 DB2 JDBC Driver version v10.1fp1_jdbc_sqlj,我也尝试过 9.59.1db2jcc4.jar 文件用于此目的。

我也尝试过使用 type 2 驱动程序,但在那种情况下我遇到了 ClassNotFound 错误 COM.ibm.db2.jdbc.app.DB2Driver。找不到类。

但到目前为止没有任何效果。任何帮助表示赞赏。一个多星期以来,我一直在努力解决这个问题。

最佳答案

它现在正在工作。问题出在 DB2 上。您必须确保您的环境变量指向正确的文件夹。因此,请确保执行以下操作:

  • 必须在每次更改或对环境变量进行所有更改后重新启动机器。
  • 确保您使用的是 JDBC Type 2 驱动程序。除非您的 DBA 要求,否则不要选择 Type 4

将帮助您确保您的代码能够与 Windows JDBC 驱动程序交互

PATH=C:\Program Files\IBM\SQLLIB\BIN\db2jdbc.dll

LIB 将帮助您的代码读取正确的库。即 COM.ibm.db2.jdbc.app.DB2Driver

LIB=;C:\PROGRA~1\IBM\SQLLIB\LIB

类路径:

ClassPath = .;C:\PROGRA~1\IBM\SQLLIB\java\db2java.jar;
C:\PROGRA~1\IBM\SQLLIB\java\db2jcc.jar;C:\PROGRA~1\IBM\SQLLIB\java\sqlj.zip;
C:\PROGRA~1\IBM\SQLLIB\BIN\db2jdbc.dll;
C:\PROGRA~1\IBM\SQLLIB\java\db2jcc.jar;
C:\PROGRA~1\IBM\SQLLIB\java\sqlj.zip;
C:\PROGRA~1\IBM\SQLLIB\java\db2jcc_license_cu.jar;
C:\PROGRA~1\IBM\SQLLIB\java\db2java.jar;
C:\PROGRA~1\IBM\SQLLIB\BIN;C:\PROGRA~1\IBM\SQLLIB\java\jdk;

关于java - 发生 DB2 连接授权失败原因 : Security Mechanism not supported in Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16705749/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com