Доброго времени суток!
Программа производит подключение к удаленному firebird серверу 2.1 через клиентскую библиотеку fbclient.dll, однако использует настройки подключения локального firebird сервера.
Долго ломал голову, почему не могу подключиться к удаленному серверу, пока не запустил процессмонитор, и не обнаружил, что, по какой-то причине, клиентская часть ищет установленный сервер на локальной машине, и после обнаружения его, считывает его настройки, в частности порт для поключения (на локальной машине он намеренно прописан как 3055), после чего ломится на удаленный сервер по данному порту (на удаленном сервере порт используется по умолчанию 3050).
Не могу найти информации почему такое происходит, и с какой целью такое поведение сделано у клиентской библиотеки.
Может кто сталкивался с таким поведением?
PS: FBClient.dll из комплекта сервера 2.1.1.17910, Программа разработана на ms vc++ с использованием mfc
Спасибо
FBClient использует настройки локального сервера при подключ
Модератор: kdv
-
- Сообщения: 15
- Зарегистрирован: 10 сен 2012, 11:51
Re: FBClient использует настройки локального сервера при под
На пальцах:
- сервер ищет firebird.conf в каталоге установки (на один каталог выше самого сервера) и НЕ использует запись в реестре.
- клиент сначала смотрит в реестр и, если там нет соотв. записи, то ищет firebird.conf так же как и сервер.
PS 2.1.1??? Сколько ему лет и сколько раз он обновлялся - в курсе ?
- сервер ищет firebird.conf в каталоге установки (на один каталог выше самого сервера) и НЕ использует запись в реестре.
- клиент сначала смотрит в реестр и, если там нет соотв. записи, то ищет firebird.conf так же как и сервер.
PS 2.1.1??? Сколько ему лет и сколько раз он обновлялся - в курсе ?
-
- Сообщения: 15
- Зарегистрирован: 10 сен 2012, 11:51
Re: FBClient использует настройки локального сервера при под
Ну это я и пытался сказать. Мониторинг показал, что было обращение к ветке реестра, где прописан каталог установки сервера, после этого было обращение к конфигу сервера. Методом тыка было выявлено, что использовался именно тот порт, который прописан в конфиге.hvlad писал(а):На пальцах:
- сервер ищет firebird.conf в каталоге установки (на один каталог выше самого сервера) и НЕ использует запись в реестре.
Вот именно от этого и хотелось бы отказаться, чтобы клиент не смотрел на конфигурацию сервера, установленого на клиентской машине.hvlad писал(а): - клиент сначала смотрит в реестр и, если там нет соотв. записи, то ищет firebird.conf так же как и сервер.
Знаю что древний, но возможности перейти на более свежие варианты пока нет, т.к. потребуется уделить много времени на допиливания сервера и клиента по общению друг с другом. (Канал между сервером и клиентом шифрованный, плюс используется физический ключ для дешифрации баз, которые сервер поднимает на себе при обращении).hvlad писал(а): PS 2.1.1??? Сколько ему лет и сколько раз он обновлялся - в курсе ?
Re: FBClient использует настройки локального сервера при под
Алгоритм поиска конфигурации я на пальцах показал. Он меняться не будет.pincher1519 писал(а):Вот именно от этого и хотелось бы отказаться, чтобы клиент не смотрел на конфигурацию сервера, установленого на клиентской машине.hvlad писал(а): - клиент сначала смотрит в реестр и, если там нет соотв. записи, то ищет firebird.conf так же как и сервер.
Запись в реестре "мешает"? Убери её, серверу она не нужна.
Запись в реестре нужна ? Сделай так, чтобы она указывала на другой firebird.conf, там где не изменён порт.
Или используй переменную среды FIREBIRD в приложении.
Не вижу повода не обновиться до последнего 2.1.х.pincher1519 писал(а):Знаю что древний, но возможности перейти на более свежие варианты пока нет, т.к. потребуется уделить много времени на допиливания сервера и клиента по общению друг с другом. (Канал между сервером и клиентом шифрованный, плюс используется физический ключ для дешифрации баз, которые сервер поднимает на себе при обращении).hvlad писал(а): PS 2.1.1??? Сколько ему лет и сколько раз он обновлялся - в курсе ?
Впрочем, это не мои проблемы, раз уж так нравятся старые баги ...