Мейнфреймы и системы IBM
В этом разделе описана группа Mainframe в Data Source Explorer (DSE):
- IBM i / AS400 через IBM i Access ODBC
- IBM z/OS Db2 через IBM Db2 ODBC/CLI
- VSAM через ODBC-виртуализацию или совместимый REST-адаптер DSE
- IMS через REST/API или ODBC-виртуализацию
- CICS через REST/API или ODBC-виртуализацию
Терминология: IBM i работает на IBM Power, а не на IBM Z. В DSE он находится в группе Mainframe/legacy для удобного управления корпоративными унаследованными источниками.

1. Архитектура
DSE не эмулирует нативные протоколы мейнфрейма. Используются стандартные уровни доступа:
| Источник | Транспорт | Что требуется вне DSE |
|---|---|---|
| IBM i / AS400 | ODBC | 64-разрядный IBM i Access ODBC Driver, сеть, пользователь IBM i |
| IBM z/OS Db2 | ODBC | IBM Data Server Driver for ODBC/CLI 64-bit, лицензирование Db2 Connect, DRDA |
| VSAM | ODBC/REST | виртуализация/middleware или адаптер |
| IMS | REST/ODBC | API/service layer или виртуализация |
| CICS | REST/ODBC | API gateway/service layer |
Рекомендуемый порядок: сначала настроить хост/адаптер и проверить соединение вне DSE, затем выбрать точный тип в Mainframe, сохранить строку подключения, выполнить Test connection, загрузить объекты и проверить Table info, Preview, Row details и тестовый запрос.
2. Безопасность
- используйте отдельную учетную запись DSE только для чтения
- не сохраняйте пароли, токены и приватные SSH-ключи в документации или репозитории
- в примерах используйте
<password>,<host>,<user> - выдавайте доступ только к нужным библиотекам/схемам/объектам
- предпочтительны TLS, VPN или частная сеть
- SSH-пользователь для туннеля может отличаться от ODBC-пользователя
- не делайте DSE-пользователя администратором только ради теста
IBM i / AS400 — полная настройка
3. Предварительные требования
Нужны работающий и доступный IBM i, TCP/IP, обычный пользователь (например DSELAB), активные host servers, Windows 64-bit с IBM i Access ODBC и хотя бы одна библиотека/таблица, доступная на чтение.
Необязательная эталонная лаборатория: IBM Power Virtual Server (PowerVS)
Если готового раздела IBM i нет, для проверки коннектора можно использовать IBM i в Power Virtual Server (PowerVS). PowerVS является только вариантом лаборатории; DSE не зависит от IBM Cloud.
Рекомендуемая последовательность:
- В IBM Cloud создайте или выберите workspace Power Virtual Server в регионе, разрешённом вашей организацией.
- Создайте virtual server instance из образа IBM i, разрешённого вашими правами IBM и планом тестирования.
- Выделите достаточно CPU, памяти и диска для успешного IPL и стабильной работы host services Db2 for i. Для проверки коннектора производственный размер не требуется.
- Подключите раздел к частной сети. Публичный доступ добавляйте только при необходимости и ограничивайте входящие соединения утверждёнными адресами.
- Дождитесь состояния Active, откройте предоставленную IBM консоль/VNC и выполните обычные действия первого запуска IBM i, включая принятие лицензионных соглашений, если это требуется образом.
- Запишите маршрутизируемое имя хоста/IP. Если порты IBM i host server остаются закрытыми, также запишите SSH/bastion-маршрут для туннеля.
- Войдите в IBM i, создайте описанную ниже учётную запись DSE только для чтения и тестовую библиотеку, затем запустите host servers.
- Проверьте сеть с Windows до настройки DSE.
Рекомендуемые схемы:
Прямой/частный маршрут:
Windows DSE -> IBM i -> IBM i Access host servers -> Db2 for i
SSH-туннель:
Windows DSE -> перенаправленные порты 127.0.0.1 -> SSH IBM i/bastion -> host servers -> Db2 for i
Оплата PowerVS и лицензирование IBM i не относятся к DSE. Временные лабораторные ресурсы следует остановить или удалить после завершения тестирования.
4. Вход в IBM i
Используйте обычный 5250-клиент или облачную консоль. Административную учетную запись применяйте только для операций настройки, которым действительно нужны такие права.

5. Запуск host servers
STRHOSTSVR SERVER(*ALL)
Если используется SSH-туннель:
STRTCPSVR SERVER(*SSHD)
Обычные порты без TLS: 449, 8470, 8471, 8472, 8473, 8474, 8475, 8476. База данных обычно использует 8471, sign-on — 8476. В вашей организации могут использоваться SSL-порты или частная маршрутизация.
6. Создание тестового пользователя
CRTUSRPRF USRPRF(DSELAB) PASSWORD(<temporary-password>) USRCLS(*USER) STATUS(*ENABLED) TEXT('DSE read-only test user')
<temporary-password> — только заполнитель. Проверьте, что профиль включен, пароль не истек и лишние полномочия отсутствуют.
7. Создание библиотеки
CRTLIB LIB(DSETEST) TEXT('DSE connector validation')
GRTOBJAUT OBJ(DSETEST) OBJTYPE(*LIB) USER(DSELAB) AUT(*USE)
8. Создание SQL-таблицы для проверки
Используйте Run SQL Scripts в IBM i Access Client Solutions или STRSQL.
CREATE TABLE DSETEST.CUSTOMER
(
CUSTOMER_ID INTEGER NOT NULL,
NAME VARCHAR(80) NOT NULL,
STATUS VARCHAR(20) NOT NULL,
CREDIT_LIMIT DECIMAL(12,2),
CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (CUSTOMER_ID)
);

INSERT INTO DSETEST.CUSTOMER (CUSTOMER_ID, NAME, STATUS, CREDIT_LIMIT)
VALUES
(1001, 'ARCO INTERNATIONAL', 'ACTIVE', 25000.00),
(1002, 'NORTHWIND IBM I LAB', 'ACTIVE', 15000.00),
(1003, 'CONTOSO LEGACY', 'HOLD', 5000.00);
GRANT SELECT ON DSETEST.CUSTOMER TO USER DSELAB;
SELECT * FROM DSETEST.CUSTOMER ORDER BY CUSTOMER_ID;
Пример данных в проверочной таблице IBM i:

9. Установка IBM i ODBC в Windows
Установите IBM i Access Client Solutions Windows Application Package с 64-разрядным драйвером. Откройте:
C:\Windows\System32\odbcad32.exe
Проверьте наличие:
IBM i Access ODBC Driver
На 64-разрядной Windows System32\odbcad32.exe — это 64-разрядный ODBC Administrator.
В 64-разрядном ODBC Administrator должен отображаться IBM i Access ODBC Driver, как в примере:

10. Прямая сеть или SSH-туннель
Прямая сеть:
Test-NetConnection <ibmi-host> -Port 8471
Test-NetConnection <ibmi-host> -Port 8476
Туннель:
ssh -N -T `
-L 449:127.0.0.1:449 `
-L 8470:127.0.0.1:8470 `
-L 8471:127.0.0.1:8471 `
-L 8472:127.0.0.1:8472 `
-L 8473:127.0.0.1:8473 `
-L 8474:127.0.0.1:8474 `
-L 8475:127.0.0.1:8475 `
-L 8476:127.0.0.1:8476 `
-o ExitOnForwardFailure=yes `
-o ServerAliveInterval=15 `
-o ServerAliveCountMax=3 `
<ssh-user>@<ibmi-public-or-bastion-host>
Окно нужно оставить открытым. Для ssh -N -T отсутствие вывода после входа является нормальным.
Test-NetConnection 127.0.0.1 -Port 449
Test-NetConnection 127.0.0.1 -Port 8471
Test-NetConnection 127.0.0.1 -Port 8476
11. Создание 64-bit System DSN
В System DSN добавьте IBM i Access ODBC Driver. Рекомендуемое имя:
DSE_IBMI_DEV
Для прямого соединения укажите реальный host/IP, для туннеля — 127.0.0.1.
Список библиотек:
DBQ=DSETEST,QGPL;LIBVIEW=0;
Если соединение есть, но DSE показывает только QGPL, проверьте DBQ в первую очередь.
12. Проверка ODBC вне DSE
$cred = Get-Credential -UserName 'DSELAB' -Message 'IBM i ODBC credentials'
$password = $cred.GetNetworkCredential().Password
$connectionString = "DSN=DSE_IBMI_DEV;UID=$($cred.UserName);PWD=$password;DBQ=DSETEST,QGPL;LIBVIEW=0;"
$conn = New-Object System.Data.Odbc.OdbcConnection($connectionString)
$conn.Open()
$cmd = $conn.CreateCommand()
$cmd.CommandText = 'SELECT CUSTOMER_ID, NAME, STATUS, CREDIT_LIMIT FROM DSETEST.CUSTOMER ORDER BY CUSTOMER_ID'
$reader = $cmd.ExecuteReader()
$table = New-Object System.Data.DataTable
$table.Load($reader)
$table | Format-Table -AutoSize
$conn.Close()
Если эта проверка не проходит, сначала исправьте драйвер, сеть, учетную запись или права.
13. Настройка IBM i в DSE
Выберите Mainframe → IBM i / AS400 (ODBC configure) → Edit connection.
DSN=DSE_IBMI_DEV;UID=DSELAB;PWD=<password>;DBQ=DSETEST,QGPL;LIBVIEW=0;
или:
Driver={IBM i Access ODBC Driver};System=<ibmi-host>;Uid=DSELAB;Pwd=<password>;DBQ=DSETEST,QGPL;LIBVIEW=0;
При туннеле обычно используется 127.0.0.1. Выбирайте именно IBM i / AS400, а не Generic ODBC.
14. Проверка в DSE
- Test connection
- Load tables
- найдите
DSETEST.CUSTOMER - откройте Table info
- откройте Preview
- выберите строку и откройте Row details
- выполните запрос
SELECT * FROM "DSETEST"."CUSTOMER" FETCH FIRST 100 ROWS ONLY
В IBM i-коннекторе есть специальная совместимость для native/DDS-объектов, которые отклоняют FETCH FIRST: ограничение может быть применено на стороне клиента.
15. Устранение проблем IBM i
- Test connection = False: 64-bit драйвер, 64-bit DSN, host/tunnel, 8471/8476,
STRHOSTSVR, пользователь/пароль. - ssh -N -T выглядит зависшим: это нормально; проверьте локальные порты в другом PowerShell.
- пароль истек: войдите в IBM i обычным способом и смените пароль.
- виден только QGPL: добавьте
DBQ=DSETEST,QGPL;LIBVIEW=0;и перезагрузите список. - таблица не видна: проверьте
*USE,SELECT,DBQ. - SQL0104 около FETCH FIRST: убедитесь, что выбран IBM i-коннектор, а не Generic ODBC; для ручной одиночной ODBC-команды не добавляйте завершающий
;.
IBM z/OS Db2
16. Требования
Нужны доступный z/OS, Db2 LOCATION, DRDA-порт, Db2-пользователь, IBM Data Server Driver for ODBC and CLI 64-bit и действующий путь лицензирования Db2 Connect.
Driver={IBM DB2 ODBC DRIVER};Database=<location>;Hostname=<zos-host>;Port=<drda-port>;Protocol=TCPIP;Uid=<user>;Pwd=<password>;
Сначала проверьте драйвер и лицензию вне DSE, затем Test connection, Load tables, Preview, Row details и запрос.
VSAM, IMS и CICS
17. Режимы адаптера
ODBC:
Adapter=ODBC;ConnectionString="DSN=YOUR_VSAM_ADAPTER;Uid=<user>;Pwd=<password>";
REST:
Adapter=REST;BaseUrl=https://<adapter-host>;HealthPath=/health;ObjectsPath=/dse/objects;ColumnsPath=/dse/objects/{name}/columns;QueryPath=/dse/query;BearerToken=<token>;
Нативные протоколы VSAM/IMS/CICS в DSE не реализованы; их предоставляет middleware.
18. REST-контракт
GET /healthGET /dse/objectsGET /dse/objects/{name}/columnsPOST /dse/query
{
"command": "SELECT * FROM CICSDEV.CUSTOMER_SERVICE FETCH FIRST 100 ROWS ONLY;",
"sourceType": "CICS"
}
Также доступна команда get /some/path;. Аутентификация: BearerToken, OAuth2 (TokenUrl, ClientId, ClientSecret, Scope), Basic или ApiKey.
19. CICS
Adapter=REST;BaseUrl=https://<cics-adapter>;HealthPath=/health;ObjectsPath=/dse/objects;ColumnsPath=/dse/objects/{name}/columns;QueryPath=/dse/query;BearerToken=<token>;


20. VSAM
Используйте ODBC-виртуализацию или REST. Нативный VSAM-доступ не встроен.

Адаптер должен преобразовать ключи, record layout/copybook и кодировки в табличный/JSON-контракт DSE.
21. IMS
Adapter=REST;BaseUrl=https://<ims-adapter>;HealthPath=/health;ObjectsPath=/dse/objects;ColumnsPath=/dse/objects/{name}/columns;QueryPath=/dse/query;BearerToken=<token>;
или:
Adapter=ODBC;ConnectionString="DSN=YOUR_IMS_ADAPTER;Uid=<user>;Pwd=<password>";
Middleware определяет, как сегменты/иерархии IMS представляются в DSE как объекты и поля.
Пример результата запроса IMS через адаптер DSE:

Контрольный список
22. IBM i
- установлен 64-bit драйвер
- сеть/туннель стабильны
- host servers работают
- отдельный read-only пользователь активен
- внешний ODBC-тест успешен
- DSE Test connection успешен
- нужная таблица видна
- колонки, Preview, Row details и запрос работают
- секретов нет в документации/репозитории
23. z/OS Db2
- реальный Db2 for z/OS endpoint
- ODBC/CLI 64-bit
- Db2 Connect лицензирование подтверждено
- LOCATION/DRDA согласованы
- внешняя проверка и DSE успешны
24. VSAM / IMS / CICS
- адаптер одобрен
- health/connectivity работает
- объекты и metadata стабильны
- query возвращает конвертируемые JSON/табличные данные
- безопасная аутентификация
- DSE test/load/metadata/preview/query успешны
При обращении в поддержку укажите версию DSE, тип источника, очищенную строку подключения, имя/версию драйвера, тип сети, точный текст ошибки, релевантный журнал и результат аналогичного теста вне DSE. Никогда не отправляйте пароль, приватный SSH-ключ или OAuth secret.