AS/400 DDM 服务没有 运行

AS/400 DDM service not running

我想建立从 Windows PC 到 AS/400 DB2 服务器的 ODBC 连接,我编写了一个 VBA 程序。但是我收到以下错误。

Remote port could not be resolved

然后,我用CWSPING检查服务器的状态,得到如下结果:

I - Verifying connection to system 192.168.1.2...
I - Successfully connected to server application: Central Client
I - Successfully connected to server application: Network File
I - Successfully connected to server application: Network Print
I - Successfully connected to server application: Data Access
I - Successfully connected to server application: Data Queues
I - Successfully connected to server application: Remote Command
I - Successfully connected to server application: Security
E - CWBCO1011 - Remote port could not be resolved
E - CWBCO1008 - Unable to connect to server application DDM, returned 8407
I - Successfully connected to server application: Telnet
W - CWBCO1015 - Connection verified to system 192.168.1.2, but there were warnings

这意味着 DDM 服务未在服务器上运行。 ODBC 连接需要 DRDA,它运行在 DDM 服务上,所以我认为 运行 DDM 服务是建立 ODBC 连接的关键。所以我尝试了 STRTCPSVR *DDM 命令,但得到的结果如下

*DDM not valid for parameter SERVER

也尝试了CHGDDMTCPA AUTOSTART(*YES) PWDRQD(*YES)命令,但出现错误,我卡住了。

Command CHGDDMTCPA in library *LIBL not found

有人知道在 AS400 上启用 DDM 服务器吗?

尝试STRHOSTSVR *DATABASE

STRHOSTSVR 用于启动与 IBM i Access 和 i Access Client Solutions 关联的服务器。

STRTCPSVR 通常用于启动与 TCP/IP 关联的服务器,如 FTP、Telnet 等。除了通过 Web 管理站点启动的 HTTP 服务器外http://<server>:2001.

除了@jmarkmurphy 的回答:

  • 您可以轻松检查 netstat *cnn 的开放端口。
  • 实际上有一个名为 *ddm 的 tcpsvr,但没有与 ODBC 一起使用。
  • ODBC-Access 只需要主机服务器*数据库。对主机服务器没有任何进一步的要求。
  • 要检查哪些服务在 tcp 启动时启动,请使用 strfdu、选项 5 和文件 qusrsys/qatocstart。从那里您可以轻松查看和更改应该启动的内容和不应该启动的内容。

最后,我通过 JDBC 连接上了。我发现的总结如下:

  • ODBC 似乎在使用 DRDA(端口 446),但服务器没有 DRDA/DDM 服务
  • OLEDB 似乎连接数据访问(端口 8471)但发出未知错误
  • JDBC 还连接数据访问(端口 8471)并且成功了!

我在使用ODBC 时遇到的第一个错误是"Remote port could not be resolved"。这背后发生的事情似乎如下:

  1. ODBC 要求服务器映射器(端口 449)查找 DRDA 端口(它可能会在服务器上更改)
  2. Server Mapper 找不到 DRDA 端口,因为服务器没有 DRDA 服务
  3. ODBC 显示 "port not resolved" 错误

然后,我这次尝试了OLEDB。它检查 user/password 正确但发出未知错误。当我输入错误的密码时,它显示"password is incorrect",这意味着OLEDB成功登录到服务器但登录后出现一些错误。

最后,我用JDBC连接成功!通常,连接 url 类似于 "jdbc:as400://" 但它显示错误。使用 JDBC 的跟踪,似乎在登录服务器时出现问题。所以我把url改成了"jdbc:as400://:8471",然后我终于连上了。查看跟踪,它直接访问端口 8741 并发送 user/password 并建立连接。我不知道细节,但它起作用了!

感谢您的帮助!