从 .NET Core 连接到 iSeries 时遇到问题

Having trouble connecting to iSeries from .NET Core

在 IBM 论坛上交叉发帖:https://www.ibm.com/mysupport/s/forumsquestion?id=0D50z00006egDnsCAE. Follow-up question located here:

大家好,

我对这整件事还很陌生,如果有任何我没有提供的信息会有所帮助,请告诉我。

目前我只是想让最基本的工作正常进行 - 打开连接。我有一个精简的 .NET Core 项目,它只是公开了一个按钮,我可以按下它来打开 DB2 的连接。我的代码如下:

using IBM.Data.DB2.Core; 
... 
DB2Connection DB2Connection = new DB2Connection(connectionString); 
DB2Connection.SystemNaming = true; 
DB2Connection.Open();

我的连接字符串如下:

"Server=###.###.###.###;Database=AAAA;UID=BBBB;PWD=CCCC;LibraryList=DDDD,EEEE;"

我遇到以下异常:

IBM.Data.DB2.Core.DB2Exception (0x80004005): ERROR [08001] [IBM] SQL30081N  A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "###.###.###.###". Communication function detecting the error: "connect". Protocol specific error code(s): "10061", "*", "*". SQLSTATE=08001

我真的不知道如何从这里开始。对于上下文 - 我正在使用“IBM Navigator for i”直接查询信息,这对于我在上面使用的 IP、用户 ID 和密码来说效果很好。

我已经阅读了一些资料,并尝试了一些不同的解决方案,但 none 确实很有帮助。我确实在“Integrating DB2 Universal Universal Database for iSeries with for iSeries with Microsoft ADO .NET”中看到,它建议查看导航器的“工作管理”部分,并在“服务器作业”下检查是否有任何添加的信息 - 但是, 似乎没有什么可看的。

我知道我可能需要许可证才能使此连接正常工作,并且接受如果这最终成为问题,我将需要获得许可证 - 但我认为我没有达到那个阶段了。现在我只想确保连接本身正常工作。

非常感谢任何帮助或见解。谢谢。

带有 10061 的症状 SQL30081N 已通过包含 PORT=xxx; 得到解决;在连接字符串中,其中 xxx 是 Db2-for-i-series 侦听连接的正确 TCP/IP 端口号。