Служба AS/400 DDM не запущена

Я хотел установить соединение ODBC с ПК с Windows на сервер AS/400 DB2 и написал программу 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

У кого-нибудь есть идея включить сервер DDM на AS400?

  • Сервер: IBM AS400
  • Версия ОС: V4R1

person adam japan    schedule 04.01.2019    source источник


Ответы (3)


Попробуйте STRHOSTSVR *DATABASE.

STRHOSTSVR используется для запуска серверов, связанных с IBM i Access и клиентскими решениями i Access.

STRTCPSVR обычно используется для запуска серверов, связанных с TCP/IP, таких как FTP, Telnet и т. д. За исключением HTTP-сервера, который запускается через сайт веб-администрирования по адресу http://‹server›:2001.

person jmarkmurphy    schedule 04.01.2019
comment
Я попробовал STRHOSTSVR *DATABSE, но ничего не изменилось. Кажется, сервер не имеет службы DDM/DRDA. Поэтому я использовал соединение JDBC, которое не использует DRDA. - person adam japan; 06.01.2019

В дополнение к ответу @jmarkmurphy:

  • Вы можете легко проверить netstat *cnn на наличие открытых портов.
  • На самом деле существует tcpsvr с именем *ddm, но он не используется с ODBC.
  • Для ODBC-Access требуется только хост-сервер *база данных. Никаких дополнительных требований к хост-серверам нет.
  • Чтобы проверить, какие службы запускаются во время запуска tcp, используйте strfdu, параметр 5 с файлом qusrsys/qatocstart. Оттуда вы можете легко просмотреть и изменить то, что должно быть запущено, а что нет.
person PoC    schedule 04.01.2019

Наконец, я подключился с помощью JDBC. Резюме того, что я нашел, выглядит следующим образом:

  • ODBC использует DRDA (порт 446), но на сервере нет службы DRDA/DDM.
  • OLEDB, кажется, подключается к доступу к данным (порт 8471), но выдает неизвестную ошибку
  • JDBC также подключает доступ к данным (порт 8471), и это сработало!

Первая ошибка, с которой я столкнулся при использовании ODBC, — «Удаленный порт не может быть разрешен». То, что произошло за этим, выглядит следующим образом:

  1. ODBC попросил Server Mapper (порт 449) найти порт DRDA (он может измениться на сервере)
  2. Server Mapper не смог найти порт DRDA, так как на сервере нет службы DRDA
  3. ODBC показал ошибку «порт не разрешен»

Затем я попробовал OLEDB на этот раз. Он правильно проверил пользователя/пароль, но выдал неизвестную ошибку. Когда я ввел неправильный пароль, он показал «пароль неверен», что означает, что OLEDB успешно зарегистрировался на сервере, но после входа получил некоторую ошибку.

Последнее, я использовал JDBC и успешно подключился! Как правило, URL-адрес подключения похож на «jdbc: as400://», но он показал ошибку. Используя трассировку JDBC, похоже, возникла проблема при входе на сервер. Поэтому я изменил URL-адрес на «jdbc:as400://:8471», после чего, наконец, подключился. Глядя на трассировку, он напрямую обращается к порту 8741, отправляет пользователя/пароль и подключается. Я не знаю подробностей, но это сработало!

Признателен за вашу помощь!

person adam japan    schedule 06.01.2019