Не переключается на внешний Firebird

Відповісти
shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Не переключается на внешний Firebird

Повідомлення shuric » 07 березня 2019, 15:18

Приветствую.

Возникла проблема с переключением Медка с Embedded Firebird на внешний.
Несколько лет назад сделал это на четырёх серверах, а теперь почему-то не получается: несмотря на все настройки, Medoc продолжает использовать Embedded :(

Детали:
Всё происходит на свежеустановленном ПК с Windows 7 x64 с обновлениями по февраль 2019.

Установка и проверка работы в дефолтном режиме:
1. Устанавливаю дистрибутив Медка 11.00.022 в режиме Embedded Firebird.
2. Устанавливаю Firebird-2.5.8.27089_0_x64.exe в режиме Superserver
3. Запускаю сервис ZvitGrp
4. Для проверки захожу под Admin в ZvitServerMonitor, т.е. сервер работает и видит базу (в режиме Embedded).
5. Останавливаю ZvitGrp

Настройка Medoc на внешний FB:
6. Перемещаю ZVIT.FDB в D:\MedocDB, куда имеет доступ внешний FB, но не имеет ZvitGrp (и FB Embedded)
7. Запускаю сервис FB и проверяю, что он слушает порт 3050
8. Добавляю в реестр:
| Показать

Код: Виділити все

[HKEY_LOCAL_MACHINE\SOFTWARE\IntellectService\BusinessDoc1]
"fbPort"="3050"
"fbPath"="C:\\Program Files\\Firebird\\Firebird_2_5"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\IntellectService\BusinessDoc1]
"fbPort"="3050"
"fbPath"="C:\\Program Files\\Firebird\\Firebird_2_5"
Кстати, в какой из двух веток это надо делать на самом деле?

9. ConnectionSetup настраиваю как на картинках ниже.
При нажатии "Зберегти" никаких ошибок нет, т.е. он успешно нашёл FB по адресу 127.0.0.1:3050
| Показать
1.png
1.png (14.59 Кіб) Переглянуто 3981 раз
2.png
2.png (12.23 Кіб) Переглянуто 3981 раз
Проверка (не)работы с внешним FB:
10. Запускаю ZvitGrp.
11. Не наблюдаю соединений на порту 3050.
12. ConnectionSetup открывается, но при старте говорит "Не вдалося встановити з'єднання з базою даних":
| Показать
error.png
error.png (3.76 Кіб) Переглянуто 3981 раз
13. ZvitServerMonitor при запуске вываливается (как обычно, когда сервер не видит базы)
14. В логе сервера Медка:
DMFAppServer=2716_2019-03-07.log | Показать

Код: Виділити все

07.03.19 12:36:46.892 00000001 INFO    ServiceAppServer.StartSrv Starting...
07.03.19 12:36:48.078 00000001 ERROR   DMFServerEventListener.AfterServerStart ZvitInterface.OpenDBConnectionException: Помилка з'єднання з базою даних!
Сервер: 1
База даних: D:\MedocDB\ZVIT.FDB
Помилка: I/O error for file "D:\MedocDB\ZVIT.FDB"
Error while trying to open file

   at ZvitServerDataFB.DBConnect.OpenReadConnect()
   at ZvitServerDataFB.ZvDataMgr.NewReadConnect()
   at ZvData.DB.ExecuteScalarNC(String SQL, Object[] p)
   at ZvitPublishedObjects.planner.PlannerMgr.GetPlannerStatus()
   at ZvitPublishedObjects.planner.PlannerMgr.AfterServerStart()
   at DMF.Config.DMFServerEventListener.AfterServerStart()
Т.е. Медок по-прежнему пытается использовать Embedded
(т.к. пытается напрямую открыть файл базы вместо обращения к серверу FB).

Убеждаюсь в этом:
15. Останавливаю ZvitGrp и даю ему права на D:\MedocDB\ZVIT.FDB.
16. Перезапускаю FB и запускаю ZvitGrp.
17. ConnectionSetup запускается без ошибок, настройки остались прежние (п.9).
18. Успешно захожу под Admin в ZvitServerMonitor, т.е. сервер работает и видит базу (в режиме Embedded)
19. По-прежнему никаких соединений на порту 3050 нет.
20. Останавливаю FB. Для Медка ничего не поменялось (п.17-18)

Пробовал Firebird x86 вместо x64 - те же яйца.
Сравнил настройки с несколькими другими серверами, где используется внешний FB - никаких существенных отличий не нашёл (включая отсутствие у ZvitGrp прав на ZVIT.FDB).
Разве что, они устанавливались давно, с дистрибутивов 10.00.018, 10.00.038, 10.00.067 и FB там чуть постарше ( 2.5.4.26856 - 2.5.5.26952).

Что я упускаю, почему Медок не хочет использовать внешний FB?
Заранее спасибо.
Востаннє редагувалось 08 березня 2019, 17:57 користувачем shuric, всього редагувалось 1 раз.

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Не переключается на внешний Firebird

Повідомлення Medoc Man » 07 березня 2019, 15:51

shuric писав:
07 березня 2019, 15:18
14. В логе сервера:

Код: Виділити все

Помилка: I/O error for file "D:\MedocDB\ZVIT.FDB"
Error while trying to open file
6. Перемещаю ZVIT.FDB в D:\MedocDB, куда имеет доступ внешний FB, но не имеет ZvitGrp (и FB Embedded)

10. Запускаю ZvitGrp.
Почему не имеет доступа ZvitGrp? Толку тогда от её запуска? :)
shuric писав:
07 березня 2019, 15:18
8. Добавляю в реестр:
...
Кстати, в какой из двух веток это надо делать на самом деле?
В обеих.
Человек-волшебник
Людина-чарівник
Wizard man

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 07 березня 2019, 16:36

Medoc Man писав:
07 березня 2019, 15:51
Почему не имеет доступа ZvitGrp? Толку тогда от её запуска? :)
Потому что ZvitGrp, настроенный на работу с внешним FB, работает с базой через него, а не с файлом базы напрямую.
Как минимум, это так на четырёх серверах, которые я настраивал раньше.

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Не переключается на внешний Firebird

Повідомлення Medoc Man » 07 березня 2019, 17:09

shuric писав:
07 березня 2019, 16:36
Medoc Man писав:
07 березня 2019, 15:51
Почему не имеет доступа ZvitGrp? Толку тогда от её запуска? :)
Потому что ZvitGrp, настроенный на работу с внешним FB, работает с базой через него, а не с файлом базы напрямую.
Как минимум, это так на четырёх серверах, которые я настраивал раньше.
А почему просто при установке не выбрать Classic/SuperServer, затем заменить каталог FB 2.1 на FB 2.5?
I/O error for file "D:\MedocDB\ZVIT.FDB"
Error while trying to open file

подразумевает недоступность файла для его использования. Либо нету прав доступа к нему, либо сам файл отсутствует по указанному пути.
А isql + CONNECT выполняются к БД в D:\MedocDB?
Человек-волшебник
Людина-чарівник
Wizard man

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 07 березня 2019, 18:43

Medoc Man писав:
07 березня 2019, 17:09
А почему просто при установке не выбрать Classic/SuperServer, затем заменить каталог FB 2.1 на FB 2.5?
Например, Медок и FB могут быть разнесены по разным машинам.
А isql + CONNECT выполняются к БД в D:\MedocDB?
Подскажите, пожалуйста, критерий успешности. Что в ответ на что должен написать isql?

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Не переключается на внешний Firebird

Повідомлення Medoc Man » 07 березня 2019, 22:31

shuric писав:
07 березня 2019, 18:43
Например, Медок и FB могут быть разнесены по разным машинам.
По спецификациям FB можно настроить и на разных машинах с БД.

shuric писав:
07 березня 2019, 18:43
Подскажите, пожалуйста, критерий успешности. Что в ответ на что должен написать isql?
Ну что оно какбе подключилось к БД))
Человек-волшебник
Людина-чарівник
Wizard man

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 08 березня 2019, 17:22

Medoc Man писав:
07 березня 2019, 17:09
А isql + CONNECT выполняются к БД в D:\MedocDB?

Код: Виділити все

Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 127.0.0.1:d:\medocdb\zvit.fdb user sysdba password masterkey;
Database:  127.0.0.1:d:\medocdb\zvit.fdb, User: sysdba
SQL>

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Не переключается на внешний Firebird

Повідомлення Medoc Man » 09 березня 2019, 16:42

shuric писав:
08 березня 2019, 17:22

Код: Виділити все

Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 127.0.0.1:d:\medocdb\zvit.fdb user sysdba password masterkey;
Database:  127.0.0.1:d:\medocdb\zvit.fdb, User: sysdba
SQL>
Настройки абсолютно идентичны тем, которые для прочих M.E.Doc выполнены?
Человек-волшебник
Людина-чарівник
Wizard man

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 09 березня 2019, 18:33

Да, за исключением некоторых путей (D:\MedocDB , D:\Medoc\db).

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

Re: Не переключается на внешний Firebird

Повідомлення Medoc Man » 09 березня 2019, 23:03

shuric писав:
09 березня 2019, 18:33
Да, за исключением некоторых путей (D:\MedocDB , D:\Medoc\db).
Скриншот с вкладки Firebird из ConnectionSetup можете прикрепить?
И посмотрите ещё раз права на каталог + учетные записи, от имени которых запущены службы и права для них на тот же каталог с БД.
Человек-волшебник
Людина-чарівник
Wizard man

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 10 березня 2019, 16:37

Medoc Man писав:
09 березня 2019, 23:03
Скриншот с вкладки Firebird из ConnectionSetup можете прикрепить?
Здесь и далее речь о тех серверах, где всё работает:
| Показать
1.png
1.png (75.75 Кіб) Переглянуто 3784 разів
2.png
2.png (13.48 Кіб) Переглянуто 3784 разів
3.png
3.png (13.48 Кіб) Переглянуто 3784 разів
Medoc Man писав:
09 березня 2019, 23:03
И посмотрите ещё раз права на каталог + учетные записи, от имени которых запущены службы и права для них на тот же каталог с БД.
Учёткам Firebird доступна папка с базой и недоступна папка Медка,
учёткам Медка доступна папка с Медком и недоступна папка c базой.
Вкладки Effective Permissions это подтверждают.

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Не переключается на внешний Firebird

Повідомлення Белокопытов Геннадий » 11 березня 2019, 10:27

shuric
Здравствуйте!
1. Рекомендовано изначально выполнять установку клиент-серверной версии программы (Superserver или Classic), которая предусматривает работу со службой Firebird;
2. Уточните, пожалуйста, экземпляр установленной программы и инсталлированная служба Firebird находится на одном сервере или на разных?
3. В настройках ConnectionSetup укажите явный IP адрес по которому работает служба Firebird, не адрес localhost

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 11 березня 2019, 11:15

Белокопытов Геннадий писав:
11 березня 2019, 10:27
2. Уточните, пожалуйста, экземпляр установленной программы и инсталлированная служба Firebird находится на одном сервере или на разных?
3. В настройках ConnectionSetup укажите явный IP адрес по которому работает служба Firebird, не адрес localhost
Добрый день.
2. На одном.
3. Указал, симптомы те же.

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Не переключается на внешний Firebird

Повідомлення Белокопытов Геннадий » 11 березня 2019, 11:25

shuric
Вышлите, пожалуйста, в ЛС файл global.xml из каталога config серверной части программы

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 11 березня 2019, 11:49

Выслал (адрес FB вернул на 127.0.0.1).

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 11 березня 2019, 13:03

Белокопытов Геннадий писав:
11 березня 2019, 12:30
Замените файл из архива, перезапустите службы zvitgrp и firebird.
Проверьте запуск программы.
Заработало, огромное спасибо!
А в чём была проблема?
Белокопытов Геннадий писав:
11 березня 2019, 12:30
В дальнейшем для установки используйте типы программы которые предусматривают работу со службой Firebird, так как embedded это версия без службы.
Значит ли это, что ваша инструкция более не актуальна?

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Не переключается на внешний Firebird

Повідомлення Белокопытов Геннадий » 11 березня 2019, 13:16

shuric
Проблема была в конфигурации установленной версии embedded.
Указанная инструкция на текущий момент не актуальна, будет доработана.

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 11 березня 2019, 13:23

Белокопытов Геннадий писав:
11 березня 2019, 13:16
Проблема была в конфигурации установленной версии embedded.
А именно?
Кроме как подменой global.xml на исправленный вами вариант (или переустановкой) её решить нельзя?

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Не переключается на внешний Firebird

Повідомлення Белокопытов Геннадий » 11 березня 2019, 13:50

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

shuric
Повідомлень: 24
З нами з: 07 березня 2019, 14:20

Re: Не переключается на внешний Firebird

Повідомлення shuric » 11 березня 2019, 14:23

Ясно.
Ещё раз спасибо.

Відповісти

Повернутись до “Установка на базі Firebird”