Соединение с DB2 из USS на мейнфрейме z/OS
Я пишу программу на C в Unix System Services на мэйнфрейме a z/OS. Одним из требований является получение порядкового номера из базы данных DB2, находящейся на одном мэйнфрейме. Не имея DB2 Connect, мне интересно, какие у меня могут быть варианты. Я могу открыть сокет на порту 50000 (порт DB2 по умолчанию), но из документации IBM, которую я могу найти, мне неясно, как обстоят дела с остальным процессом в этой среде.
У меня UNIX и DB2 на заднем плане, но я просто намочил ноги в мире z / OS, поэтому я стараюсь сделать это как можно более простым и понятным в обслуживании.
3 ответа
В документации по DB2/z 9.1 на publib есть специальный раздел для доступа ODBC к DB2 / z. Publib всегда должен быть первой точкой вызова для любого IBM doco.
Также есть DB2 / z ODBC PDF.
Это лучший способ получить доступ к DB2 / z из C на OE/OMVS/USS (или как это называется в настоящее время). Если бы это была Java, я мог бы помочь больше. Онлайновая помощь была неоценимой для получения JRE возможности общаться с мэйнфреймом DB2 (как с USS, так и с ПК) с минимальными затратами наших локальных системных программ. Конечно, с ними будет намного проще:-), особенно для настройки стороны z/OS (не USS).
Почему бы не использовать драйвер Unix ODBC для подключения к базе данных и использовать SQL-диалект ODBC... это легко сделать... таким образом, с ODBC существует гибкость для будущего обслуживания, скажем, переключение на другого поставщика базы данных... посмотрите здесь пример кода C, который взаимодействует через ODBC
Для C++ я могу рекомендовать библиотеку шаблонов OTL для упрощения взаимодействия с ODBC. Он работает с IBM C++ и DB2 для z/OS. Может использоваться на разных платформах.
Ссылка: Oracle, ODBC и библиотека шаблонов DB2-CLI