Сообщения об ошибках Firebird

ЧАстые Вопросы и Ответы

Модераторы: kdv, CyberMax

Ответить
vsimashko
Сообщения: 20
Зарегистрирован: 03 мар 2010, 10:33

Сообщения об ошибках Firebird

Сообщение vsimashko » 16 сен 2013, 17:04

Добрый день.

FireBird 2.5.2 SuperServer, Windows 2003 Server standard SP2.

При подключении к БД локально (соединение через Service manager ?) получаю неадекватный текст ошибки.
К той же БД но через localhost (соединение через клиента FB ?) текст ошибки понятный.

К примеру :

C:\Firebird\Firebird_2_5\bin>isql.exe "D:\Ivaniuk\SAUP\Labs\DB\EMPLOYEE.Fdb" -u mbivaniuk -p 1
Statement failed, SQLSTATE = 08006
connection lost to database
...

C:\Firebird\Firebird_2_5\bin>isql.exe "localhost:D:\Ivaniuk\SAUP\Labs\DB\EMPLOYEE.Fdb" -u mbivaniuk -p 1
Statement failed, SQLSTATE = HY000
database D:\IVANIUK\SAUP\LABS\DB\EMPLOYEE.FDB shutdown
...

Пользуюсь IBExpert-ом, там аналогичный эффект.

Вопросов аж три :
1) что я не доделал ? - думаю, это "чайниковский" вопрос...
2) как правильно назвать оба типа соединения ? - это точно "чайниковский" вопрос, поэтому и пишу в данный форум
3) где почитать "для общего развития" про оба способа соединения, особенно про первый ?

Спасибо.

vsimashko
Сообщения: 20
Зарегистрирован: 03 мар 2010, 10:33

Re: Сообщения об ошибках Firebird

Сообщение vsimashko » 16 сен 2013, 18:00

Раз уж я начал задавать "чайниковские" вопросы, то пойду до конца, задам четвёртый :
4) зачем в инсталляторе FB опция "Копировать клиентскую библиотеку в каталог <system>" ? для совместимости со старыми программами, которые ищут GDS32.DLL именно в C:\WINDOWS\SYSTEM32\ ?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Сообщения об ошибках Firebird

Сообщение hvlad » 16 сен 2013, 21:03

Ты подключаешься к БД, которая в состоянии shutdown. В этом состоянии любая попытка подключения (кроме перевода БД в состояние online) обречена на ошибку "database ... shutdown".
1. "connection lost to database" вместо "database ... shutdown" - это бага в fbclient.dll
2. Первый тип соединения использует локальный протокол (он же XNET), второй - TCP\IP (он же INET)
3. http://www.ibase.ru
4. Для совместимости со старыми программами, которые ищут GDS32.DLL вообще без указания пути.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Сообщения об ошибках Firebird

Сообщение kdv » 16 сен 2013, 22:37

соединение через Service manager ?
нет такого. есть подсоедиение к серверу через Services API (Services manager, если угодно), для выполнения сервисных функций самим сервером - бэкапа, проверки БД, получения статистики, и т.д. Т.е. всего того, что отдельно делают gbak, gfix, gstat.

vsimashko
Сообщения: 20
Зарегистрирован: 03 мар 2010, 10:33

Re: Сообщения об ошибках Firebird

Сообщение vsimashko » 17 сен 2013, 11:41

Про подключение к "опущенной" БД я естественно понимаю, не настолько я "чайник".
Спасибо за исчерпывающие ответы. Про XNET не слышал :oops: , придётся подучиться...
Если позволите - последний (надеюсь) "чайниковский" вопрос : попытка повторного Shutdown-а (БД уже перед этим опущена, но админ допустим забыл про это) приводит к исключению "Target shutdown mode is invalid for database "...".". Помнится, что в FB 1.5 этого не было - опускай хоть 100 раз, или я ошибаюсь ?
Ещё раз - спасибо.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Сообщения об ошибках Firebird

Сообщение hvlad » 18 сен 2013, 12:18

vsimashko писал(а):Если позволите - последний (надеюсь) "чайниковский" вопрос : попытка повторного Shutdown-а (БД уже перед этим опущена, но админ допустим забыл про это) приводит к исключению "Target shutdown mode is invalid for database "...".". Помнится, что в FB 1.5 этого не было - опускай хоть 100 раз, или я ошибаюсь ?
Не легче ли проверить это самостоятельно на FB 1.5 ? :)
Баги имеют свойство исправляться, а к каким проблемам это приводит ?
Ну и до кучи - начиная с 2.0 есть несколько режимов шатдауна, рекомендую ознакомиться.

vsimashko
Сообщения: 20
Зарегистрирован: 03 мар 2010, 10:33

Re: Сообщения об ошибках Firebird

Сообщение vsimashko » 27 сен 2013, 21:17

Да, дело в типах SHUTDOWN-а и в версии FB
В FB 1.5 можно сколько угодно раз делать SHUTDOWN - установил 1.5, проверил
В FB 2.5 по умолчанию, если не задать тип SHUTDOWN-а - будет MULTI_USER SHUTDOWN
Из MULTI_USER SHUTDOWN нельзя повторно выполнить MULTI_USER SHUTDOWN, только SINGLE_USER либо FULL
Соответственно из SINGLE_USER можно только в FULL, и опять - только единожды
Спасибо за ликбез

Ответить