我正在尝试使用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”;
在尝试获取Connection时,仍然会产生相同的异常。
我也尝试使用JDBC app驱动程序
以下选项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驱动程序还是连接字符串的问题?
有人可以指导我。
提前致谢。
答案 0 :(得分:0)
<强>原因:强>
如果正在运行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。
有关详细信息,请访问here。
答案 1 :(得分:0)
你的前两次尝试不应该起作用。您使用的是JCC驱动程序URL格式,因此对于“net”或“app”驱动程序无效,无论如何都不推荐使用它们。
使用JCC驱动程序(com.ibm.db2.jcc.DB2Driver)和URL格式“jdbc:db2:// hostname:portnumber / databasename”,并查看this technote以获取“安全性”的解决方案机制不支持“问题。简而言之,您需要使用受支持的JDK。