首先,我要说,我对这类事情完全陌生。不管怎样..。
我正在尝试连接到一个DB2数据库。服务器正在运行Ubuntu12.04和Apache 7。驱动程序db2jcc.jar包含在构建路径中。
以下是我的JSP代码:
<%@ page import="java.sql.*" %>
<% Class.forName("com.ibm.db2.jcc.DB2Driver");%>
<HTML>
<HEAD>
<TITLE>db2 connection</TITLE>
</HEAD>
<BODY>
<%
String url =
"jdbc:db2://IP_ADDR:60000/INST1" +
":user=USERNAME;password=PASSWORD;" +
"traceLevel=" +
(com.ibm.db2.jcc.DB2BaseDataSource.TRACE_ALL) + ";";
Connection con = java.sql.DriverManager.getConnection(url);
%>
</BODY>
</HTML>我收到的错误消息是:
应用服务器拒绝建立连接。尝试访问数据库INST1,该数据库要么未找到,要么不支持事务。ERRORCODE=-4499,SQLSTATE=08004
我查看了关于这个问题的IBM支持页面:http://www-01.ibm.com/support/docview.wss?uid=swg21443723
它提到使用目标目录名,通过发出db2 list dcs directory命令找到。
在服务器上,我的命令最初是空白的,但是我使用db2 catalog dcs database DB2INST1 as INST1命令创建了一个条目。
现在,我使用db2列表dcs目录的输出如下:
数据库连接服务(DCS)目录 目录中的条目数=1 DCS 1条目: 本地数据库名称= DB2INST1 目标数据库名称= INST1 应用程序请求者名称= DCS参数= 评论= DCS目录发布级别= 0x0100
我通过执行db2stop和db2start来重置数据库
最后,我运行了netstat -tulpn,并看到数据库正在监听端口60000。产出如下:
TCP0-0.0.0.0:60000 0.0.0.0:*听 2949/db2sysc
这就是我所得到的。据我所知,我正在使用目标数据库名,并试图连接到正确的端口号。
我在这里叫对的树吗?任何帮助都是非常感谢的。
**编辑:对胡子回应的格式化答复**
在服务器上,在我继续操作之后,我会下降一个级别。我得到了4个名为<USERNAME>, dasusr1, db2fenc1, db2inst1的目录
在那里,我做了sudo su db2inst1,然后运行db2 list dcs directory command以获得:
Database Connection Services (DCS) Directory
Number of entries in the directory = 1
DCS 1 entry:
Local database name = DB2INST1
Target database name = INST1
Application requestor name =
DCS parameters =
Comment =
DCS directory release level = 0x0100发布于 2020-05-19 18:57:37
已经有一段时间了,但对于其他人来说,他们正在寻找db2连接问题的解决方案。如果人们想测试开发机器到db2服务器的物理连接性,请使用DB2驱动程序附带的CLPPlus,并手动输入连接参数,以确保您具有物理连接性。我的环境和上面的加勒特完全不同,但我想再提供一条线索来帮助人们沟通。我在SSIS中使用VS 2015企业。我使用CLPPlus来确认物理连接,然后开始尝试将ADO.Net源代码连接到db2。服务器凭据db2server.mydomain.com:523必须重写端口,才能将端口重写为523。然后发生了一件有趣的事。SSIS对连接感到不安,于是我开始查看参数。其中一个参数是身份验证,您可能可以在jdbc中编写该参数。我将DB2 (相对于ldap或其他钱包)作为身份验证的值,它起了作用。
https://stackoverflow.com/questions/21665712
复制相似问题