Соединение с IBM DB2 с использованием CLI и SSL - PullRequest
0 голосов
/ 23 октября 2019

Я использовал JDBC для подключения к IBM DB2 AS400 для iSeries в моем приложении Rails. Теперь, похоже, мне придется перейти на использование ibm_db драгоценного камня.

https://github.com/ibmdb/ruby-ibmdb

Сначала я попытался сделать это с irb и использовал следующую команду:

require 'ibm_db'
conn=IBM_DB.connect("DATABASE=ABCUATDT;hostname=TEST.HERE.COM;PORT=9471;SECURITY=SSL;PROTOCOL=TCPIP;AUTHENTICATION=SERVER;UID=username;PWD=abc1234;", "", "")

Это дает мне следующую ошибку:

SQL30081N Обнаружена ошибка связи. Используемый протокол связи: \ "SSL \". Используемый API связи: \ "SOCKETS \". Место, где была обнаружена ошибка: \ "\". Функция связи, обнаружившая ошибку: \ "sqlccSSLSocketSetup \". Специфичные для протокола коды ошибок: \ "414 \"

Затем я пытаюсь без SSL:

conn=IBM_DB.connect("DATABASE=ABCUATDT;hostname=TEST.HERE.COM;PORT=446;PROTOCOL=TCPIP;AUTHENTICATION=SERVER;UID=username;PWD=abc1234;", "", "")

SQL30082N Сбой обработки безопасности по причине \ "15 \"(\" ОШИБКА ОБРАБОТКИ \ "). SQLSTATE = 08001 SQLCODE = -30082 "

Эти порты и имя пользователя / pw и т. Д. Все отлично работают с JDBC, но не используют гем ibm_db.

РЕДАКТИРОВАТЬ: я пытался использовать разные порты, Я знаю, что 8471 открыт для не-SSL и 9471. открыт для SSL.Я решил вообще пропустить SSL и начал использовать db2cli на моем Mac OSX.

db2cli execsql -connstring "database=ABCUATDT;hostname=TEST.HERE.COM;port=8471;uid=username;pwd=abcd1234"

Это просто зависает и не 'Не предлагайте мне написать SQL:

Пример программы интерактивного интерфейса командной строки IBM DATABASE 2 (C) COPYRIGHT International Business Machines Corp. 1993, 1996 г. Все права защищены. Лицензионные материалы - собственность IBM. Права - Использование, дублирование или раскрытие, ограниченное контрактом GSA ADP Schedule Contract с IBM Corp.

Затем я попробовал библиотеку python И CLI DB2 - оба из которых дали одинаковые ошибки. изменить на стороне DB2?

Почему это работает для JDBC, а не для драйвера IBM ODBC?

1 Ответ

0 голосов
/ 31 октября 2019

Поговорите со своим администратором (ями) или командой управления. Stackoverflow может быть не тем, что вам нужно прямо сейчас. Задавая вопросы, разумно полностью детализировать вашу среду по понятным причинам, при необходимости поговорить с соответствующими лицами на сайте клиента, чтобы установить факты, прежде чем задавать вопросы.

Узнайте, есть лисервер Db2-connect (отдельная покупка) уже установлен на i-серии. Обычный Db2-клиент для MAC может затем связываться с CLI / ODBC через с тем продуктом, который выполняет необходимые преобразования протоколов, выступая в качестве шлюза.

Узнайте, существует ли Db2-соединениеСервер уже развернут в любом месте, работающем под Windows / Linux / Unix, который вы можете использовать (он выполняет необходимые преобразования протоколов, выступая в качестве шлюза) после настройки соединений для i-серии. Обычный Db2-клиент для MAC OS X может затем использовать его в качестве шлюза для CLI / ODBC для серии i.

В настоящее время IBM не продает «IBM i access» для MAC OS X afaik, который предлагаетИнтерфейс CLI / ODBC и не требует сервера Db2-connect. Этот продукт доступен для платформ Microsoft Windows и Linux. Эти платформы могут предложить вам альтернативу, если MAC OS X в настоящее время не поддерживается.

Обычный драйвер Db2 от IBM для MAC OS X требует для CLI / ODBC сервера Db2-connect для преобразования протоколов с i-series, поэтому инструмент db2cli не будет работать без шлюза Db2-connect.

Другие поставщики не от IBM могут предложить решения в этой области.

Другая возможность - использовать мост ODBC-JDBC, работающий наваша MAC OS X, которая будет перенаправлять вызовы ODBC на ваш рабочий драйвер jdbc. Вы можете исследовать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...