Читать интересную книгу Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 8 9 10 11 12 13 14 15 16 ... 238

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

! ! !

ВНИМАНИЕ! Если вы не закомментировали ни RemoteServiceName, ни RemoteServicePort, но оставили значения по умолчанию нетронутыми, они будут трактоваться как измененные. Необходимо создать запись в файле services для установок значений по умолчанию сервиса порта.

. ! .

Установка клиента для поиска порта сервиса

Если вы установили ваш сервер с инсталляционными значениями по умолчанию (сервис gds db прослушивает порт 3050), то конфигурирование не требуется. Если сервер прослушивает другой порт или используется другое имя сервиса порта, то приложение клиента и/или хост-машины требуют некоторых изменений конфигурации, чтобы помочь клиентской библиотеке Firebird найти прослушиваемый порт.

Строка соединения, используемая клиентом, может включать информацию для опроса прослушиваемого порта сервера разными путями. Клиенты Firebird 1.5 могут использовать локальную копию firebird.conf. Изменения также могут понадобиться и для файла services.

Использование строки соединения

Если были изменены только номер порта или имя сервера, включите альтернативный номер порта или имя сервера в строку соединения. Это работает для всех версий Firebird.

Синтаксис соединения TCP/IP

Для соединения с сервером базы данных, названным hotchicken, связанным с портом 3050 и сервисом fb_db, строка соединения в POSIX должна быть следующей:

hotchicken/fb_db:/data/leisurestore.fdb

Если же сервер имеет имя gds db, а номер порта 3051, то строка соединения должна быть следующей:

hotchicken/3051:/data/leisurestore.fdb

В Windows строка соединения должна быть:

hotchicken/3051:D:dataleisurestore.fdb hotchicken/fb_db:D:dataleisurestore.fdb

Обратите внимание, что разделитель между именем сервера и портом наклонная черта, а не двоеточие. Двоеточие требуется в строке физического пути после имени диска.

Синтаксис соединений Wnet

В сети Wnet используйте стиль нотаций UNC:

\[email protected]d:leisurestore.fdb

или

\[email protected]_dbd:leisurestore.fdb

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

Использование синтаксиса порта для алиасов базы данных

Для соединения через порт, не являющегося портом по умолчанию, с помощью алиаса базы данных добавьте номер порта или имя сервиса к имени сервера, а не к алиасу. Предположим, что алиас базы данных был сохранен в aliases.conf в виде:

hotstuff = /data/leisurestore.fdb

Строка соединения вашего приложения с сервером hotchicken будет следующей:

hotchicken/fb_db:hotstuff

или

hotchicken/3051:hotstuff

Использование копии firebird.conf

В Firebird 1.5 и выше вы можете скопировать на клиентскую сторону в корневой каталог Firebird файл firebird.conf и сконфигурировать RemoteServiceName или RemoteServicePort для помощи клиенту в поиске серверного порта.

Вы можете конфигурировать один из этих двух параметров; изменение значения другого параметра можно выполнить через строку соединения (см. ранее). Вы можете перекрыть значение только RemoteServiceName или RemoteServicePort без использования строки соединения.

Если вам не нужно передавать имя сервиса порта или номер порта в строке соединения, а сервер не использует значения по умолчанию для обоих параметров, вы можете конфигурировать оба RemoteServiceName и RemoteServicePort. Вы можете использовать эту технику, если вашему клиентскому приложению нужно сохранить возможность соединяться с серверами InterBase или Firebird 1.0.

Размещение данных Firebird на клиентах

Если вы используете на клиентских машинах файл firebird.conf, нужно, чтобы клиентская библиотека знала, где его найти. Вам необходимо создать корневой каталог Firebird и проинформировать систему о его местонахождении. Используйте для этого переменную среды FIREBIRD таким же образом, как и для серверов (см. главу 3). Клиенты Windows могут также использовать запись в реестре. При правильной установке клиента вы можете также сделать доступной локальную версию файла сообщений. Более подробную информацию см. в разд. "Инсталляция клиентов" в главе 7.

Конфигурирование файла services

Вам не нужно изменять запись сервиса порта для сервера или клиентов Firebird, если сервер использует значения по умолчанию, заданные при инсталляции - gds db для порта 3050. Если gds db - имя сервиса порта, который не может использовать любой другой порт, то он будет применять порт 3050 автоматически.

Если вы изменили номер порта или имя сервиса, вы должны сделать явные изменения для сервера и клиентов, чтобы отобразить эти изменения. В Linux и Windows данная информация хранится в файле services.

Местонахождение файла services

Местонахождение файла services на разных платформах:

* в Windows NT/2000/XP этот файл находится в C:winntsystem32drivers etcservices;

* в Windows 95/98/ME файл находится в C:Windowsservices;

* в Linux/UNIX файл находится в /etc/services.

Записи файла services выглядят следующим образом:

gds_db 3050/t.cp # Firebird Server 1.5

Откройте файл в текстовом редакторе и добавьте новую строку или измените существующую запись gds db.

* Для сервера или клиента Firebird 1.0.x измените имя сервиса или номер порта для согласования с параметрами запуска сервера.

* Для сервера Firebird 1.5 или выше отредактируйте или добавьте нужную строку. Если у вас инсталлирован сервер Firebird 1.0 или InterBase на том же хосте, сохраните нужные для них записи и добавьте новую запись для согласования с параметрами запуска сервера.

! ! !

ПРИМЕЧАНИЕ. Если данная строка является последней в файле services, то рекомендуется в конце файла добавить пустую строку.

. ! .

Проверка соединения с помощью ping

Вы сделали все нужные изменения. Последняя проверка нужна, чтобы убедиться, что ваша клиентская машина может связываться с сервером. Вы можете быстро проверить, что ваш клиент TCP/IP связывается с сервером, используя в окне командной строки команду ping:

ping имя-сервера// подставьте имя, которое вы записали в файле HOSTS

Если соединение прошло хорошо, и все правильно сконфигурировано, вы увидите приблизительно следующее:

Pinging hotchicken [10.10.0.2] with 32 bytes of data

reply from 10.10.0.2: bytes=32 time<10ms TTL=128

reply from 10.10.0.2: bytes=32 time<10ms TTL=128

reply from 10.10.0.2: bytes=32 time<10ms TTL=128

reply from 10.10.0,2: bytes=32 time<10ms TTL=128

Нажмите комбинацию клавиш <Ctrl>+<C> для прекращения сообщений ping.

Если ping выдает ошибку

Если вы получили нечто вроде

Bad IP address hotchicken (Неверный IP-адрес hotchicken)

то имя хоста в записи файла для имя-сервера (в этом примере hotchicken) может быть отсутствует или неверно написано. К примеру, все идентификаторы в Linux/UNIX являются чувствительными к регистру. Другая причина может заключаться в том, что имя хоста вашего сервера просто не было сконфигурировано.

Если вы увидите:

Request timed out

то это означает, что адрес IP, на который ссылается имя хоста в вашем файле, не может быть найден в подсети. Проверьте следующее:

* нет ошибок в имени хоста в записи файла;

* сетевой кабель подключен, провод и контакты не повреждены и не ржавые;

* конфигурация сети позволяет направлять сетевой трафик между клиентом и сервером. Ограничения подсети или системы сетевой защиты могут препятствовать серверу в получении данных от клиента.

• Ограничения подсети: TCP/IP может быть сконфигурирован для ограничения трафика между подсетями. Если ваша клиентская машина является частью сложной сети или подсети, уточните у сетевого администратора, имеет ли она неограниченный доступ к серверу.

! ! !

ВНИМАНИЕ! WNet не позволяет направлять сетевой трафик между подсетями.

. ! .

• Система сетевой защиты (firewall): ваша проверка соединения может дать ошибку, если сервер базы данных находится под программной или аппаратной системой сетевой защиты, которая блокирует порт 3050 или сконфигурированный вами порт.

Проблемы с событиями

Несмотря на то, что каждый клиент соединяется с сервером через один канал, события Firebird - механизм обратной связи, который позволяет передавать сообщения о событиях назад клиентам с помощью триггеров и хранимых процедур, - используют произвольные доступные порты. В статических замкнутых сетях без внутренних систем сетевой защиты это обычно не вызывает проблем. В сетях, где существует множество подсетей, динамическая IP-адресация и строго сконфигурированная система сетевой защиты, передача событий может закончиться неудачей.

В Firebird 1.0.x ваш сетевой администратор должен установить некий способ, чтобы гарантировать наличие доступного порта, который всегда свободен, открыт и является статическим. Проблема может быть решена тем или иным образом в большинстве сетей.

Firebird 1.5 упрощает дело. Он делает возможным явно задавать IP-адрес в сети для трафика событий. Используйте параметр RemoteAuxPort в файле firebird.conf с целью статической установки IP-адреса для интерфейса (карта, маршрутизатор, шлюз и т.д.), который будет доступен для направления событий.

1 ... 8 9 10 11 12 13 14 15 16 ... 238
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри.
Книги, аналогичгные Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - Хелен Борри

Оставить комментарий