我需要帮助解决以下错误,当尝试连接DB2服务器时,该错误会从.NET代码中弹出。
我已将来自Manager的以下nuget软件包安装到我的.NET解决方案中。
IBM.Data.DB.Provider版本11.1.3030.4
IBM.Data.DB2版本10.0.5.5
之后,我在.NET中有以下简单代码:
string connectionstr =“服务器= test.com:6000;数据库= TEST; UID =测试; PWD =测试;”
APACHE_DOCUMENT_ROOT=/var/www/html/public
我收到以下错误。
错误[08001] [IBM] SQL30081N发生通信错误 检测到。使用的通信协议:“ TCP / IP”。通讯 使用的API:“ SOCKETS”。检测到错误的位置: “ xx.xx.xx.xx”。通讯功能检测到错误:“连接”。 协议特定的错误代码:“ 10061”,“ ”,“ ”。 SQLSTATE = 08001
与防火墙设置有关吗?等任何帮助将不胜感激。我正在尝试使用远程db2服务器在其端口上进行telnet,但未成功。
答案 0 :(得分:0)
如果目标数据酶位于Db2-for-Z / OS或Db2 for i-Series上,则可以使用Db2-connect网关,这与许可+配置适用于Z / os或适当的Db2-client不同适用于i系列。 Db2连接器内置了这样的东西。它伪装成目标Db2服务器并路由所有请求和响应,因此您的应用程序或工作站不需要
DBA或管理员人员应该已经使用所有目标数据库的详细信息设置了Db2-connect网关。您的代码应该连接到网关上的数据库(如果正确配置了网关,它将自动转发到目标Db2服务器)。
对于CLI / ODBC / DSN连接,您需要将Db2连接服务器分类为一个节点,然后在该节点上对数据库进行分类。有关catalog tcpip node
和catalog database
命令的详细信息,请参考在线Db2知识中心。仅当代码引用DSN时才需要分类。因此,如果您的代码具有完整的连接字符串以及所有详细信息,则无需编目。但是目录操作对于在命令行使用数据库很有用,这通常有助于基本问题的确定。
这不是编程问题。这是配置问题。您的连接字符串必须引用网关主机名/ IP地址,指向实际目标的网关上的数据库名称,网关使用的端口号。
有关所有这些详细信息,请咨询您的现场支持人员,因为stackoverflow无法告诉您这些特定于站点的详细信息。
研究有关Db2连接网关的IBM文档(无论您使用的是哪种Db2连接版本),这里是link。