Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.11;
Скачать: CL | DM;

Вниз

Firebird, проблема с коннектом   Найти похожие ветки 

 
Handbrake   (2008-11-27 16:13) [0]

Уважаемые Мастера!

Firebird 2.0, выполняется сервисом

firebird.conf:...
# ----------------------------
# Database Paths/Directories
#
 DatabaseAccess = none
...

aliases.conf:

#
# List of known database aliases
# ------------------------------
#
# Examples:
#
#  
 dummy = C:\FBDB0\my02.fdb
 ConvDB = C:\FBDB0\convention.fdb

В приложении использую IBDatabase.
На Сервере подключение к БД через имя алиаса проходит, на Клиенте - нет ( unavailable database. ).
Чего я делаю не так, Чего не докрутил ?


 
qqq   (2008-11-27 16:20) [1]

на клиенте не по алиасу получается?


 
Handbrake   (2008-11-27 16:33) [2]


> qqq   (27.11.08 16:20) [1]
> на клиенте не по алиасу получается?


Проверил, сейчас не получается, но недавно, когда разбирался с клиентским коннектом (я новичок в Firebird) кажется проходило. При этом в firebird.conf было:

...
# ----------------------------
# Database Paths/Directories
#
DatabaseAccess = full
...


 
Handbrake   (2008-11-28 10:21) [3]

Чего то я сбит с толку:(

на сервере в firebird.conf:
...
DatabaseAccess=None
...

на самом сервере не могу соединиться ни по абсолютному имени, ни по алиасу (Access to database ... is denied by server administrator).

Ладно, теперь делаем исправление

на сервере в firebird.conf:
...
# DatabaseAccess=None
...

и перезапускаем сервис FirebirdServer. Теперь и по абсолютному имени файла БД и по алиасу соединение на сервере проходит успешно. На клиенте не коннектится ни так ни эдак.

Я специально выделил знак #. В начале firebird.conf сказано, что все что стоит после # является комментарием...

Как такое понимать?


 
Виталий Панасенко   (2008-11-28 11:28) [4]

А брандмауэр выключен? или хотя бы порт 3050 открыт на клиенте?


 
Handbrake   (2008-11-28 12:29) [5]

Коллеги! Извините, водил Вас "за нос". Прошу не очень больно бить ногами:


> А брандмауэр выключен? или хотя бы порт 3050 открыт на клиенте?


Теперь работает и при включенном Брандмауэре, порт правда открыт.

У меня в тест-программе строки:


 IBDatabase1.Connected := false;
 IBDatabase1.DatabaseName := Edit1.Text;
 IBDatabase1.Connected := true;


В Edit1 ввел "Dummy"
когда на сервере запускаешь эту программку все нормально.

Но на клиенте-то нужно указывать еще и путь по локальной сети до машины, где расположена БД, т.е, например "MyCompAsFBServer.OurCommunity.local:Dummy". Блин, даже мысли не пришло такой! Короче, Я Не Прав:)

Теперь возникла мысль, а нельзя ли в aliases.conf на клиенте указать алиас так:

dummy = MyCompAsFBServer.OurCommunity.local:Dummy:C:\FBDB0\my02.fdb
чтобы при коннекте указывать только Dummy ?
Не получилось, хотя я не очень понял почему. Может поясните?

Спасибо Всем за участие.


 
Виталий Панасенко   (2008-11-28 12:33) [6]

конечно, нельзя


 
PEAKTOP ©   (2008-11-28 12:35) [7]

Во-первых, укажите вариант сервера (SuperServer, ClassicServer, SuperClassicServer).
Во-вторых, неплохо бы указать версию билда (например, 2.0.5.13200)
------------------------
Если у тебя приложение не коннектиться к серверу по сети ни так, ни эдак, то проблема не в сервере, а в сети.
1) Брандмауэр виндов. Либо настроить нормально, либо отключить совсем.
2) Никаких динамических IP в локальной сети. Прописать в настройках IP статично.
3) Строка подключения в виде "192.168.0.1:MyDataBaseAlias"
4) Надеюсь, не надо напоминать, что имена алиасов из aliases.conf РеГиСтРоЗаВиСиМыЕ.
После этого попытайся воспроизвести снова.
-------------------
Мне мой хрустальный шар подсказывает, что еще дело здесь может быть в манифесте. Найди файлы в папке ($firebird)/bin
Microsoft.VC80.CRT.manifest
msvcp80.dll
msvcr80.dll
и скопируй их в папки ($firebird)/intl и ($firebird)/udf


 
Handbrake   (2008-11-28 12:46) [8]

To PEAKTOP ©   (28.11.08 12:35) [7]
 
 Обошлось, как видите, без "хрустального шара" :). Ваше № 3

To Виталий Панасенко   (28.11.08 12:33) [6]
>     конечно, нельзя


даже Ваше убедительное "конечно" не проясняет мне ситуацию...


 
Правильный$Вася   (2008-11-28 14:05) [9]


> даже Ваше убедительное "конечно" не проясняет мне ситуацию.

нельзя потому, что клиент не знает, где именно он должен разжиться алиасом
вот когда указываешь имя сервера, он уже там и проверяет наличие алиаса
а так серверов в сети - вон, полный интернет
все перебирать будешь?


 
Handbrake   (2008-11-28 14:28) [10]

To Правильный$Вася   (28.11.08 14:05) [9]

Понятно, просто я мыслил по аналогии c Oracle(не работал с этой СУБД как программист, сопровождал маленько). Там вроде такой файлик есть tnsnames.ora,
В первом приближении, что-то типа:

NSNORA =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = MyCompAsFBServer.OurCommunity.local)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = ora10mr)
   )
 )

Его просто берешь с сервера и ставишь на клиент.
Т.е. при коннекте указываю User, Password, NSNORA. Достаточно удобно. Я думал в Firebird похоже.


 
Handbrake   (2008-11-28 14:33) [11]

Кстати, ошибочка в [5]
хотел написать не

dummy = MyCompAsFBServer.OurCommunity.local:Dummy:C:\FBDB0\my02.fdb,

а

dummy = MyCompAsFBServer.OurCommunity.local:C:\FBDB0\my02.fdb


 
Виталий Панасенко   (2008-11-28 14:56) [12]


> Его просто берешь с сервера и ставишь на клиент.

вот именно



Страницы: 1 вся ветка

Текущий архив: 2009.10.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
1-1219124183
checkmate-maker
2008-08-19 09:36
2009.10.11
Редактор с картинками


2-1249994663
AndrewG
2009-08-11 16:44
2009.10.11
richedit


15-1249377244
Kerk
2009-08-04 13:14
2009.10.11
Была ли в СССР мобильная связь?


15-1249936205
Юрий
2009-08-11 00:30
2009.10.11
С днем рождения ! 11 августа 2009 вторник


15-1249737117
alex649
2009-08-08 17:11
2009.10.11
алгоритм кластеризации ISODATA