Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Firebird 3.0 Embedded подключения с разных приложений  [new]
SHS_SHS
Member

Откуда:
Сообщений: 109
В FB2.5 Embedded без проблем подключался к базе с программы и с IBExpert одновременно. А FB3.0 Embedded ну никак не получается настроить. Прошу помощи.
В папке с программой лежат файлы:
plugins/engine12.dll
fbclient.dll
fbrmclib.dll
firebird.conf
firebird.msg
ib_util.dll
icudt52.dll
icudt52l.dat
icuin52.dll
icuuc52.dll
msvcp100.dll

Программа подключается через FIBPlus локальное соединение, пусть к fbclient.dll прописан.
IBExpert - Local, default, путь к fbclient.dll прописан.
В firebird.conf, как рекомендуется в http://www.ibphoenix.com/files/Embedded_fb3.pdf, прописал (если я правильно понял):
ServerMode = SuperClassic
Providers = Engine12

Вообще не прочувствовал разницы что с файлом firebird.conf, что вообще без него.

На компьютере установлен сервера FB2.5 на 3050 и FB3.0 на 3070 (запускается в виде приложения редко).
Результат: в рамках одного приложения можно делать сколько угодно соединения, с разных приложений пишет ошибку:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
I/O error during "CreateFile (open)" operation for file "........FDB".
Error while trying to open file.
Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.

По поводу процессов врет :) . Пробовал запускать несколько программ (вроде это разные процессы) с подключением к одной базе - работает.
Можно было бы подключить FB3.0 через сервер, но в теории Embedded и сервер могут быть разных версий. Хотелось бы писать и отлаживать программу на той версии FB Embedded, которая у клиента в программе.
22 авг 19, 11:51    [21955251]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Vlad F
Member

Откуда:
Сообщений: 873
SHS_SHS,

Если требуются параллельные подключения, пусть даже и через embedded, то ServerMode должен быть Super, КМК.))
22 авг 19, 12:07    [21955280]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10531
SHS_SHS
с разных приложений пишет ошибку
...
Пробовал запускать несколько программ (вроде это разные процессы) с подключением к одной базе - работает.
Чем отличается "с разных приложений" и "запускать несколько программ" ?

PS Особенно порадовало вот это "вроде" - хоть какие-то знания об ОС, процессах и т.п. вообще присутствуют ?
22 авг 19, 12:10    [21955285]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10531
Vlad F
Если требуются параллельные подключения, пусть даже и через embedded, то ServerMode должен быть Super, КМК.))
Ещё раз попробуй: сначала прочитать, потом написать.
Не наоборот ! Оба пункта обязательны !
22 авг 19, 12:12    [21955288]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Vlad F
Member

Откуда:
Сообщений: 873
hvlad,

Embedded в SurerClassic из разных приложений тоже должен пускать?
Посылаю голову пеплом.))
22 авг 19, 12:18    [21955301]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
SHS_SHS
Member

Откуда:
Сообщений: 109
hvlad
SHS_SHS
с разных приложений пишет ошибку
...
Пробовал запускать несколько программ (вроде это разные процессы) с подключением к одной базе - работает.
Чем отличается "с разных приложений" и "запускать несколько программ" ?

PS Особенно порадовало вот это "вроде" - хоть какие-то знания об ОС, процессах и т.п. вообще присутствуют ?

Готов к любым унижениям )).
А если по теме: как ни странно программу можно запустить сколько угодно раз с подключением к одной базе, попробовал IBExpert запустить несколько раз и подключится - не получилось, та же ошибка.
22 авг 19, 12:22    [21955307]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10531
SHS_SHS
как ни странно программу можно запустить сколько угодно раз с подключением к одной базе, попробовал IBExpert запустить несколько раз и подключится - не получилось, та же ошибка.
Значит IBE подключается не тем клиентом с не тем конфигом
22 авг 19, 12:26    [21955314]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
SHS_SHS
Member

Откуда:
Сообщений: 109
hvlad
SHS_SHS
как ни странно программу можно запустить сколько угодно раз с подключением к одной базе, попробовал IBExpert запустить несколько раз и подключится - не получилось, та же ошибка.
Значит IBE подключается не тем клиентом с не тем конфигом

IBExpert:
Сервер/протокол: Local, default
Server Version: Firebird 3.0
Database File: D:\zzzzz\Exe\DB\zzzzz.FDB
Connection string: D:\zzzzz\Exe\DB\zzzzz.FDB
Client Library File: D:\zzzzz\Exe\fbclient.dll
UserName, Password, Charset - SYSDBA, masterkey, UTF8

Программа:
  Database.ConnectParams.UserName := 'SYSDBA';
  Database.ConnectParams.Password := 'masterkey';
  Database.DatabaseName := gProgPath + 'DB\' + gProgName + '.fdb';
  Database.LibraryName := gProgPath + 'fbclient.dll';
  Database.ConnectParams.CharSet := 'UTF8';
  Database.SQLDialect := 3;

Вроде одинаково.
22 авг 19, 12:37    [21955331]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
SHS_SHS
Member

Откуда:
Сообщений: 109
hvlad
SHS_SHS
как ни странно программу можно запустить сколько угодно раз с подключением к одной базе, попробовал IBExpert запустить несколько раз и подключится - не получилось, та же ошибка.
Значит IBE подключается не тем клиентом с не тем конфигом

Пардон, не сразу понял про конфиг. Переименовал все firebird.conf - помогло. Запускается программа и IBExpert одновременно. Тогда вопрос, как научить IBExpert "смотреть" в нужный конфиг?
22 авг 19, 12:59    [21955358]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
SHS_SHS
Хотелось бы писать и отлаживать программу на той версии FB Embedded, которая у клиента в программе.

отлаживать - не надо. это геморрой. отлаживать надо на нормальном сервере. А перед отдачей клиенту проверить на embedded.
SHS_SHS
Тогда вопрос, как научить IBExpert "смотреть" в нужный конфиг?

embedded запускается через fbclient.dll. Оно и ищет конфиг. Следовательно, IBExpert-у в качестве клиентской библиотеки нужно указывать ту, рядом с которой лежит правильный конфиг.
22 авг 19, 13:03    [21955362]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
SHS_SHS
Member

Откуда:
Сообщений: 109
Кажется я понял в чем была моя основная ошибка.
Создавал и редактировал firebird.conf для Embedded во время запущенного IBExpert (без подключений). Считая что IBExpert будет использовать firebird.conf, который лежит рядом с fbclient.dll. Но IBE использовал, то что нашел ранее в сервере. Несколько раз перепроверил: убрал конфиг для Embedded запустил IBE, переименовал обратно, и все равно не подключается пока не перезапустишь IBE. Работаю на ноутбуке, перезапускаю IBE крайне редко (спящий режим).
Решение (может кому пригодится): чтобы подхватывало нужный конфиг, необходимо не только отключить все соединения, но и выйти с программ, которые когда либо были подключены к базе через Embedded.
P.S. Спасибо всем за помощь.
22 авг 19, 13:31    [21955410]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
SHS_SHS
Member

Откуда:
Сообщений: 109
kdv
...embedded запускается через fbclient.dll. Оно и ищет конфиг...

Да, естественно fbclient.dll ищет конфиг. Лето, мозг размяк.
Читать: "Считая, что IBExpert будет использовать firebird.conf...", как "Считая, что для IBExpert будет использоваться firebird.conf....".
22 авг 19, 13:48    [21955436]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
SHS_SHS,

да ё-моё. Embedded - это сервер в DLL. Сервер читает firebird.conf при старте. Для embedded "старт сервера" - это загрузка dll приложением.
То есть, IBE загрузил dll, она прочитала конфиг, и ... всё. Пока ИБЕ не "отпустит" dll, конфиг не перечитается.
А "отпустит" в основном означает - "пока не закроется программа, загрузившая dll Embedded".

p.s. в основном всё это непонимание идет от непонимания dll как таковых. Я в конце 90х прочитал кусок книжки по работе с Длл из Дельфи, и мне этого на всю жизнь хватило. Например, про FB Embedded было сразу всё понятно.
22 авг 19, 13:57    [21955456]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
SHS_SHS
Member

Откуда:
Сообщений: 109
Моих скудных познаний dll хватает для работы с ними. Вся проблема была в том, что dll Embedded если не находит конфиг рядом, берет его с сервера. И это логично. А IBE все подключенные dll (даже если они уже не прописаны настройках соединений) не отпускает до закрытия программы. Вот и получаем, что для того чтобы применить новый конфиг не достаточно закрыть соединение, а нужно еще и перезапустить IBE.
22 авг 19, 15:34    [21955639]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10531
SHS_SHS
dll Embedded если не находит конфиг рядом, берет его с сервера
Конечно это не так.
22 авг 19, 15:48    [21955651]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Arioch
Member

Откуда:
Сообщений: 10967
hvlad,

вопрос, что тут означает "с сервера"

возможно - "из папки с установленным на том же ПК Firebird в Program Files"

про прокачку данных по сети между раными компьютерами вообще вроде не говорили
22 авг 19, 15:53    [21955660]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
SHS_SHS
Member

Откуда:
Сообщений: 109
hvlad
SHS_SHS
dll Embedded если не находит конфиг рядом, берет его с сервера
Конечно это не так.

Да, действительно не берет с сервера (с папки установки FB3.0). Значит использует какие-то настройки по умолчанию.
22 авг 19, 16:08    [21955675]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10531
SHS_SHS
Значит использует какие-то настройки по умолчанию.
Конечно.

И это именно те значения, которые прописаны в неизменённом firebird.conf в качесте значений по-умолчанию.
22 авг 19, 16:10    [21955682]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Arioch
возможно - "из папки с установленным на том же ПК Firebird в Program Files"

да нет же. Из папки, которая прописана в реестре через instreg.

p.s. склероз?
23 авг 19, 00:44    [21956116]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Arioch
Member

Откуда:
Сообщений: 10967
kdv,

для простоты и понимания написал "с установленными", хотя установщик тройки м.б. в реестр и не пишет
23 авг 19, 11:35    [21956328]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Arioch,

чегой-то он не пишет? instreg отменили, он куда-то пропал?
А запустить processmonitor и посмотреть, где клиент пытается найти конфиг?
Или посмотреть, куда в реестре пишет instreg install, или убирает instreg remove?

:-) проблемы высосаны из пальца, всё это проверяется меньше чем за 5 минут с минимумом подручных средств.
23 авг 19, 13:30    [21956438]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10531
kdv,

а ты проверял ? ;)
23 авг 19, 13:32    [21956440]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
hvlad,

4? нет, не проверял. могу прямо сейчас проверить. И вообще, у вас readme к 4 нет, так что пока неизвестно, чем 4 отличается от 3.
23 авг 19, 16:58    [21956645]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Arioch
Member

Откуда:
Сообщений: 10967
kdv
чегой-то он не пишет?


как это не пишет???

21955675
SHS_SHS
с сервера (с папки установки FB3.0)
23 авг 19, 17:31    [21956671]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10531
kdv
hvlad,

4? нет, не проверял. могу прямо сейчас проверить. И вообще, у вас readme к 4 нет, так что пока неизвестно, чем 4 отличается от 3.
3 и 2.5

Ибо чушь про реестр и клиента пишете, ой какую чушь...
23 авг 19, 17:50    [21956678]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить