Подключение к удаленной базе данных в Informix - PullRequest
0 голосов
/ 18 мая 2018

У нас есть настройка базы данных Informix в 2 средах.

TEST

host1:1528/d7main:INFORMIXSERVER=m7uatserver

PROD

host2:1528/d7main:INFORMIXSERVER=m7server

Я попытался выполнить запрос к таблице клиентов в соединении PRODиз UAT.

select  * from d7main@m7server:customer where active = 'Y';

Я получаю ошибку ниже.

Attempt to connect to database server (m7server, conerr=-931, oserr=0) failed.
[SQL State=08004, DB Errorcode=-908] 

Что-то не так с тем, как написан запрос?Или администратору БД необходимо настроить что-то еще для этого соединения?

Синтаксис выглядит правильным на основе Доступ к удаленным таблицам в Руководстве по IBM Informix 12.10.

1 Ответ

0 голосов
/ 18 мая 2018

Выход из finderr -908:

-908 Попытка подключиться к серверу базы данных (имя сервера) не удалась.

Программа или приложение пытается получить доступ к другому серверу базы данных. но не удалось. Запишите имя сервера в текущем операторе.

Требуемый сервер базы данных недоступен или сеть не работает или перегружен Попросите вашего администратора базы данных и системного администратора убедиться, что сервер и сеть работают. Если сеть перегружена, используйте переменные окружения INFORMIXCONTIME и INFORMIXCONRETRY для настройки время подключения. Для получения информации о настройке этих переменных среды, см. Руководство IBM Informix по SQL: Справочник.

Это сообщение появляется в версии 6.0 и более поздних версиях.

Аналогично, для ошибки -931 сообщение означает:

-931 Не удается найти службу имени службы / tcp в /etc/services.

Имя службы службы не указано в файле конфигурации сети. / etc / services (UNIX) или \ etc \ services (DOS). Проверить $ INFORMIXDIR / etc / sqlhosts и проверьте, что имя службы для нужный сервер правильный. Если это так, обратитесь к администратору сети, чтобы Узнайте, почему услуга не известна. Если вы используете IBM Informix OnLine для NetWare проверьте файл \ etc \ services на клиенте для обязательные записи.

Там есть некоторые странно архаичные ссылки - OnLine для Netware - древняя история, как и версия 6.00. Тем не менее, основной смысл аналогичен.

Казалось бы, есть проблемы с настройкой сети на одной или обеих машинах.

AFAICS, у вас есть тестовый и рабочий серверы на одной машине. Они используют один INFORMIXDIR или у каждого есть свой отдельный INFORMIXDIR? (Возможны оба варианта; ни один не ошибается.) Они разделяют файл INFORMIXSQLHOSTS?

  • ... Поцарапайте: вы говорите host1 и host2 - две разные машины, поэтому, по необходимости, у каждой есть свой собственный INFORMIXDIR.

Я предполагаю, что из сообщения -931 они не делят файл INFORMIXSQLHOSTS (что, в свою очередь, означает, что у каждого есть свой INFORMIXDIR), и что информация в каждом файле не включает другой сервер.

Убедитесь, что, если они не используют один и тот же файл INFORMIXSQLHOSTS (то есть файл $INFORMIXDIR/etc/sqlhosts по умолчанию, если он не переопределен переменной среды $INFORMIXSQLHOSTS), информация в файлах эквивалентна - или, если минимум, что каждый включает в себя запись для другого.

  • … Вы в Windows или в системе на основе Unix?
  • … Какую версию Informix вы используете? (Запуск dbaccess -version или onstat -version должен сообщить вам, если вы все равно не знаете.)
  • … Знает ли каждый хост о другом - содержит ли файл /etc/hosts или его сетевой эквивалент соответствующую информацию, чтобы каждая машина знала, как подключиться к другому?

Если они находятся в одном INFORMIXDIR и используют один и тот же файл INFORMIXSQLHOSTS, вернитесь и мы снова подумаем.

...