Сторінка 1 з 1

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

Додано: 07 березня 2019, 15:18
shuric
Приветствую.

Возникла проблема с переключением Медка с 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 Кіб) Переглянуто 4281 раз
2.png
2.png (12.23 Кіб) Переглянуто 4281 раз
Проверка (не)работы с внешним FB:
10. Запускаю ZvitGrp.
11. Не наблюдаю соединений на порту 3050.
12. ConnectionSetup открывается, но при старте говорит "Не вдалося встановити з'єднання з базою даних":
| Показать
error.png
error.png (3.76 Кіб) Переглянуто 4281 раз
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?
Заранее спасибо.

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

Додано: 07 березня 2019, 15:51
Medoc Man
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. Добавляю в реестр:
...
Кстати, в какой из двух веток это надо делать на самом деле?
В обеих.

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

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

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

Додано: 07 березня 2019, 17:09
Medoc Man
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?

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

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

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

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

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

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

Додано: 08 березня 2019, 17:22
shuric
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>

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

Додано: 09 березня 2019, 16:42
Medoc Man
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 выполнены?

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

Додано: 09 березня 2019, 18:33
shuric
Да, за исключением некоторых путей (D:\MedocDB , D:\Medoc\db).

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

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

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

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

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

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

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

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

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

Додано: 11 березня 2019, 11:25
Белокопытов Геннадий
shuric
Вышлите, пожалуйста, в ЛС файл global.xml из каталога config серверной части программы

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

Додано: 11 березня 2019, 11:49
shuric
Выслал (адрес FB вернул на 127.0.0.1).

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

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

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

Додано: 11 березня 2019, 13:16
Белокопытов Геннадий
shuric
Проблема была в конфигурации установленной версии embedded.
Указанная инструкция на текущий момент не актуальна, будет доработана.

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

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

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

Додано: 11 березня 2019, 13:50
Белокопытов Геннадий
shuric
На текущий момент вариант решения только такой.
В дальнейшем будет доработана возможность подключения службы Firebird к версии embedded без редактирования файлов конфигурации.

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

Додано: 11 березня 2019, 14:23
shuric
Ясно.
Ещё раз спасибо.