连接远程DB2数据库(JSP)

问题描述 投票:0回答:1

让我先说一句,我对这种事情完全是新手。总之...

我试图连接到一个DB2数据库,服务器运行在Ubuntu 12.04和Apache Tomcat 7上。服务器运行在Ubuntu 12.04和Apache Tomcat 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.comsupportdocview.wss?uid=swg21443723。

它提到了使用目标目录名,通过发出的 db2 list dcs directory 命令。

在服务器上,我的最初是空白的,但我使用了 db2 catalog dcs database DB2INST1 as INST1 命令,现在我使用db2 list dcs目录`的输出如下:

现在我使用db2 list dcs目录`的输出如下。

数据库连接服务(DCS)目录

目录中的条目数=1

DCS 1条目。

本地数据库名称=DB2INST1

目标数据库名称=INST1

申请人姓名=

DCS参数=

评论=

DCS目录发布级别=0x0100

我通过以下方式重置数据库 db2stopdb2start

最后,我跑 netstat -tulpn 并看到数据库在60000端口监听。输出如下。

tcp 0 0 0 0.0.0.0:60000 0.0.0.0:* LISTEN.

2949db2sysc

这是我得到的最多的信息。据我所知,我使用的是目标数据库名称,并试图连接到正确的端口号。

我是否在这里找对了树?任何帮助都是非常感激的。

** 编辑:对mustaccio的回复进行了格式化的回答 **。

在服务器上,我ssh上后下了一层。我得到了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
database jsp db2
1个回答
0
投票

已经有一段时间了,但是对于其他正在寻找解决这个db2连接问题的人来说。 如果大家想测试自己的开发机与db2服务器的物理连接,可以使用db2驱动自带的CLPPlus,然后手动输入连接参数,确保你有物理连接。 我的环境和上面Garret的环境很不一样,但我想再提供一条线索,也许能帮助大家连接。 我当时使用的是VS 2015企业版与SSIS。 我使用CLPPlus确认物理连接,然后开始尝试连接和ADO.Net源到db2。 我不得不为我的服务器凭证db2server.mydomain.com:523覆盖端口到523。 然后有趣的事情发生了。 SSIS对连接大惊小怪,我开始看参数。 其中一个参数是Authentication,你也许可以用jdbc来编码。 我把DB2(而不是ldap或其他钱包)作为Authentication的值,结果成功了。

© www.soinside.com 2019 - 2024. All rights reserved.