# default: on
# description: FirebirdSQL server
#
service gds_db
(
flags = REUSE KEEPALIVE
socket_type = stream
wait = no
user = root
# user = @FBRunUser@
log_on_success += USER1D
log_on_failure += USER1d
server = /opt/firebird/bin/fb_inet_server
disable = no
)
Если вы изменили сервис порта на значение, отличное от значения по умолчанию, вы должны соответственно изменить /etc/inetd.conf или /etc/xinetd.conf. Заново стартуйте xinetd (или inetd) с аргументом kill -HUP, чтобы убедиться, что демон будет использовать новую конфигурацию.
! ! !
ВНИМАНИЕ! Запросы на соединения будут неуспешными, если xinetd (или inetd) и fbserver (или ibserver) оба пытаются прослушивать один и тот же порт. Если ваша хост-машина имеет подобную дублирующую конфигурацию, то необходимо сделать такие установки, при которых каждая версия сервера имела бы свой собственный порт.
. ! .
В Firebird 1.5 и выше вы можете конфигурировать или RemoteServiceName, или RemoteServicePort в файле firebird.config для изменения номера порта по умолчанию (3050), или имени сервиса порта по умолчанию (gds_db), которые использует сервер для прослушивания запросов на соединение.
Сервер будет использовать один параметр Remoteservice*, но не оба. Если вы сконфигурировали оба, то он будет игнорировать RemoteServicePort во всех ситуациях, за исключением того случая, когда команда запуска сервера была вызвана с переключателем -р, перекрывающим имя сервиса порта. Следовательно, вы можете использовать в комбинации переключатель -р и параметр Remoteservice* для изменения номера порта и имени сервиса.
Если значения по умолчанию для номера порта или имени сервиса были изменены, то вам нужно создать запись в файле services.
! ! !
ВНИМАНИЕ! Если вы не закомментировали ни RemoteServiceName, ни RemoteServicePort, но оставили значения по умолчанию нетронутыми, они будут трактоваться как измененные. Необходимо создать запись в файле services для установок значений по умолчанию сервиса порта.
. ! .
Установка клиента для поиска порта сервиса
Если вы установили ваш сервер с инсталляционными значениями по умолчанию (сервис gds db прослушивает порт 3050), то конфигурирование не требуется. Если сервер прослушивает другой порт или используется другое имя сервиса порта, то приложение клиента и/или хост-машины требуют некоторых изменений конфигурации, чтобы помочь клиентской библиотеке Firebird найти прослушиваемый порт.
Строка соединения, используемая клиентом, может включать информацию для опроса прослушиваемого порта сервера разными путями. Клиенты Firebird 1.5 могут использовать локальную копию firebird.conf. Изменения также могут понадобиться и для файла services.
Если были изменены только номер порта или имя сервера, включите альтернативный номер порта или имя сервера в строку соединения. Это работает для всех версий Firebird.
Для соединения с сервером базы данных, названным hotchicken, связанным с портом 3050 и сервисом fb_db, строка соединения в POSIX должна быть следующей:
hotchicken/fb_db:/data/leisurestore.fdb
Если же сервер имеет имя gds db, а номер порта 3051, то строка соединения должна быть следующей:
hotchicken/3051:/data/leisurestore.fdb
В Windows строка соединения должна быть:
hotchicken/3051:D:\data\leisurestore.fdb hotchicken/fb_db:D:\data\leisurestore.fdb
Обратите внимание, что разделитель между именем сервера и портом наклонная черта, а не двоеточие. Двоеточие требуется в строке физического пути после имени диска.
В сети Wnet используйте стиль нотаций UNC:
\\hotchicken@3051\d:\leisurestore.fdb
или
\\hotchicken@fb_db\d:\leisurestore.fdb
Если номер порта или имя сервиса были изменены, то вам нужно создать запись в файле services.
Для соединения через порт, не являющегося портом по умолчанию, с помощью алиаса базы данных добавьте номер порта или имя сервиса к имени сервера, а не к алиасу. Предположим, что алиас базы данных был сохранен в aliases.conf в виде:
hotstuff = /data/leisurestore.fdb
Строка соединения вашего приложения с сервером hotchicken будет следующей:
hotchicken/fb_db:hotstuff
или
hotchicken/3051:hotstuff
В Firebird 1.5 и выше вы можете скопировать на клиентскую сторону в корневой каталог Firebird файл firebird.conf и сконфигурировать RemoteServiceName или RemoteServicePort для помощи клиенту в поиске серверного порта.
Вы можете конфигурировать один из этих двух параметров; изменение значения другого параметра можно выполнить через строку соединения (см. ранее). Вы можете перекрыть значение только RemoteServiceName или RemoteServicePort без использования строки соединения.
Если вам не нужно передавать имя сервиса порта или номер порта в строке соединения, а сервер не использует значения по умолчанию для обоих параметров, вы можете конфигурировать оба RemoteServiceName и RemoteServicePort. Вы можете использовать эту технику, если вашему клиентскому приложению нужно сохранить возможность соединяться с серверами InterBase или Firebird 1.0.
Если вы используете на клиентских машинах файл firebird.conf, нужно, чтобы клиентская библиотека знала, где его найти. Вам необходимо создать корневой каталог Firebird и проинформировать систему о его местонахождении. Используйте для этого переменную среды FIREBIRD таким же образом, как и для серверов (см. главу 3). Клиенты Windows могут также использовать запись в реестре. При правильной установке клиента вы можете также сделать доступной локальную версию файла сообщений. Более подробную информацию см. в разд. "Инсталляция клиентов" в главе 7.
Конфигурирование файла services
Вам не нужно изменять запись сервиса порта для сервера или клиентов Firebird, если сервер использует значения по умолчанию, заданные при инсталляции - gds db для порта 3050. Если gds db - имя сервиса порта, который не может использовать любой другой порт, то он будет применять порт 3050 автоматически.
Если вы изменили номер порта или имя сервиса, вы должны сделать явные изменения для сервера и клиентов, чтобы отобразить эти изменения. В Linux и Windows данная информация хранится в файле services.
Местонахождение файла services на разных платформах:
* в Windows NT/2000/XP этот файл находится в C:\winnt\system32\drivers \etc\services;
* в Windows 95/98/ME файл находится в C:\Windows\services;
* в 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, то рекомендуется в конце файла добавить пустую строку.