Может ли клиент найти хост?
Может ли клиент найти хост?
Сообщение об ошибке "Unable to complete network request to host" (Невозможно завершить сетевой запрос к хосту) появляется, когда клиент Firebird не может установить сетевое соединение с серверной машиной. Существует несколько общих причин.
* Клиент не может найти хост в вашей сети. Ваш сервер Firebird должен выполняться в той сети, которую вы используете. Если имя хоста определяет хост, который недоступен по причине нарушений в сети, или хост просто не включен, запрос на соединение не может быть выполнен.
* Используются старые драйверы и/или клиентские библиотеки. Вы должны использовать драйверы (ODBC, BDE и т.д.), сертифицированные для работы с вашей версией сервера Firebird. Например, SQL Explorer, который поставляется вместе с некоторыми продуктами Borland, вероятно, не сможет работать с Firebird по причине использования слишком старой версии BDE.
* Приложение находит неверную клиентскую библиотеку. Все версии инструментов администратора пытаются загрузить библиотеку libgds.so (клиенты POSIX) или gds32.dll (клиенты Windows), отыскивая ее по системному пути по умолчанию. Клиент Firebird 1.5 имеет имя libfbclient .so или fbclient.dll и не располагается по системному пути по умолчанию. Изучите самые последние замечания в каталоге Firebird /doc и/или в корневом каталоге, чтобы найти решение.
* На месте имени сервера используется адрес IP. Если вы предоставляете адрес IP вместо имени хоста (имя сервера), то драйвер TCP/IP может оказаться неспособным разрешить его, или время попытки разрешения может оказаться слишком большим. Обычно это проблема Windows 95 и ранних версий NT 4. См. предыдущие замечания по созданию записи в файле hosts и использованию ее для всех клиентских машин.
* Адрес IP хоста является непостоянным. Системы, которые используют динамическую адресацию IP, могут изменять адрес IP хоста без выдачи предупреждающих сообщений. Похожие проблемы могут возникнуть, если хост-машина имеет более одной сетевой карты. Создайте записи в файле hosts на серверной и клиентской машинах, чтобы связать имя сервера с адресом IP. Firebird 1.5 также предоставляет возможность конфигурирования RemoteBindAddress для того, чтобы соединения могли находить правильный канал для сервера Firebird.
* Отсутствует или неправильная запись gdsjib в файле services. Клиенты Firebird будут отыскивать сервис gds db в порте по умолчанию 3050. Если вы изменили символ сервиса или номер порта в файле services, вероятно, у вас недостаточно информации в строке соединения, чтобы можно было выполнить это соединение. Вернитесь к разд. "Конфигурирование сервиса порта TCP/IP" главы 2, если вам нужно сделать подобную установку.
! ! !
ПРИМЕЧАНИЕ. Вероятны также проблемы с сервисом порта, если у вас сервер InterBase или другой сервер Firebird, запущенный на той же серверной машине. Хотя это можно делать в версии 1.5, однако требует аккуратности при конфигурировании и не может быть указано в момент установки Firebird.
. ! .
* Указанный сетевой протокол недоступен. Синтаксис строки соединения в Firebird определяет сетевой протокол, используемый клиентом для соединения с сервером. Если ваш сервер не поддерживает протокол, указанные в строке соединения, то попытка соединения будет неудачной с появлением ошибки сети. Например, строка соединения для именованных каналов Windows (NetBEUI) не будет работать, если сервер выполняется под Windows 95/98, ME или XP, в Linux или на другой платформе POSIX. Только TCP/IP будет работать на этих платформах.
! ! !
ПРИМЕЧАНИЕ. Клиентская библиотека Firebird не поддерживает сетевой протокол IPX/SPX. Соединение будет неудачным, если вы попытаетесь использовать IPX/SPX, задавая его в строке соединения с базой данных в виде server@volume:/path/database.fdb.
. ! .
* Вы пытаетесь соединиться с совместно используемым устройством. Невозможно соединиться с базой данных в Windows, NFS или SMB (Samba) с совместно используемым устройством. Должен использоваться абсолютный путь файловой системы, как он виден с хоста.
* Строка пути несовместима с существующим соединением. Суперсервер Firebird будет блокировать соединение, если полученная строка пути несовместима с путем, используемым в существующем соединении. В Firebird добавлен этот механизм для защиты баз данных от давно существующей ошибки в предыдущем коде InterBase, что приводило к разрушению сервера с базами данных Windows.
! ! !
ВНИМАНИЕ! Классический сервер не имеет такой защиты. Если у вас Классический сервер под Windows, убедитесь, что различные клиенты всегда соединяются с использованием такой же строки пути. Несовместимость появляется, т. к. Windows примет обозначение диска без последующей наклонной черты, а именно C:Databasesmydb.fdb вместо C:Databasesmydb.fdb. Это не является проблемой в POSIX, которая не имеет таких предпосылок к несовместимости.
. ! .