[英]Exception while connecting to DB2 in java using JDBC
我正在尝试连接到 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");
对于这个连接,我添加了以下 jars 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 驱动程序或连接字符串的问题吗?
有人可以指导我。
提前致谢。
原因:
如果运行 InfoSphere Optim Performance Manager 的 DB2® 实例将身份验证配置参数设置为 DATA_ENCRYPT,那么您无法登录到 Web 控制台。
解决问题:
执行以下步骤:
在运行 Optim Performance Manager 的 DB2 实例上,通过发出以下命令将身份验证配置参数设置为 SERVER:
db2 update dbm cfg using authentication server
重新启动 DB2 实例和 InfoSphere Optim Performance Manager。
欲了解更多详情,请访问此处。
您的前两次尝试不应该起作用。 您使用的是 JCC 驱动程序 URL 格式,因此它对“net”或“app”驱动程序均无效,无论如何它们都已弃用。
使用 JCC 驱动程序 (com.ibm.db2.jcc.DB2Driver) 和 URL 格式“jdbc:db2://hostname:portnumber/databasename”,请参阅此技术说明以获取“不支持安全机制”问题的解决方案。 简而言之,您需要使用受支持的 JDK。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.