Я использовал 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?