0

我正在尝试连接到 Java 中的 db2 数据库。在我提供的驱动程序和连接字符串以及驱动程序详细信息下方

Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");
String url="jdbc:db2://hostname:portnumber/databasename";
sourceConnection=DriverManager.getConnection(url,"username","password");

但我得到以下异常

"COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0615E  Error receiving from socket, server is not responding. SQLSTATE=08S01"

我还尝试将连接字符串更改为 String url="jdbc:db2:hostname:portnumber/databasename";

在尝试获取连接时仍然会导致上述相同的异常。

而且我还使用 JDBC 应用程序驱动程序尝试了以下选项

Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");     
DB2DataSource db2ds = new DB2DataSource();
db2ds.setServerName("hostname");
db2ds.setPortNumber(portnumber);
db2ds.setDatabaseName("databasename");
db2ds.setUser("username");
db2ds.setPassword("password");
sourceConnection=db2ds.getConnection();

对于上述两个连接,我使用了 jar “db2java.jar”

我已经尝试使用 JCC 驱动程序:

Class.forName("com.ibm.db2.jcc.DB2Driver");
String url="jdbc:db2://hostname:portnumber/databasename";
sourceConnection=DriverManager.getConnection(url,"username","password");

对于这个连接,我添加了以下罐子 1)db2jcc.jar 2)db2jcc_license_cu.jar

这次我收到以下错误,

"com.ibm.db2.jcc.am.go: [jcc][t4][201][11237][3.57.82] Connection authorization failure occurred.  
Reason: Security mechanism not supported. ERRORCODE=-4214, SQLSTATE=28000"

我尝试使用“Quest for DB2”工具连接到相同的 db2 源,并且连接成功。

我是否遗漏了代码中的某些内容,是 DB2 驱动程序或连接字符串有问题吗?

有人可以指导我。

提前致谢。

4

2 回答 2

0

原因:

如果运行 InfoSphere Optim Performance Manager 的 DB2® 实例将认证配置参数设置为 DATA_ENCRYPT,那么您无法登录到 Web 控制台。

解决问题:

执行以下步骤:

  1. 在运行 Optim Performance Manager 的 DB2 实例上,通过发出以下命令将身份验证配置参数设置为 SERVER:

    db2 update dbm cfg using authentication server

  2. 重新启动 DB2 实例和 InfoSphere Optim Performance Manager。

欲了解更多详情,请访问此处

于 2013-06-13T08:41:31.623 回答
0

你的前两次尝试不应该工作。您使用的是 JCC 驱动程序 URL 格式,因此它对“net”或“app”驱动程序均无效,无论如何都已弃用。

使用 JCC 驱动程序 (com.ibm.db2.jcc.DB2Driver) 和“jdbc:db2://hostname:portnumber/databasename”的 URL 格式,有关“不支持安全机制”问题的解决方案,请参阅此技术说明。简而言之,您需要使用受支持的 JDK。

于 2013-06-13T12:11:44.167 回答