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

Откуда:
Сообщений: 9860
Arioch
а это, вангую
Не надо пророчествовать.
Если рантайм видимостудии не установлен или (почему-то) установлен более другой сборки, просто оставляем библиотеки видимостудии в каталоге FB.
27 авг 19, 14:46    [21958359]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Док
Member

Откуда: Казань
Сообщений: 6532
Шавлюк Евгений
не нужны права для переменной в своей программе.

спорить не буду - вопросом пока не владею :)

Но, если в системе 2 и более сервера, который FolderWithfbclient_dll будет "правильным"? И как это отразиться на подключении других приложений с другими серверами? Или достаточно выставить Local =True, чтобы разрешить все коллизии?

зы. функция с просторов инета найдена? Не родная делфевая?

Basil A. Sidorov
"Вы просто не умеете их готовить".

"Моя цвета не понимай ..." :) Я привел случаи, где и как я с этим столкнулся. Упомянутые мною семерки и XP - "чистые" микрософтовские изошники со WZORa, без апдейтов (зачем они мне на виртуалке)
28 авг 19, 14:19    [21959101]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Шавлюк Евгений
Member

Откуда: Одесса
Сообщений: 496
Док,
Да, найдена на просторах инета.
Эта настройка влияет только на текущую программу, никаких коллизий не вызывает.
Я читаю путь к fbclient из ini-файла (по-умолчанию клиента храню в папке с программой)
Больше никаких установок и 100% portable
28 авг 19, 14:54    [21959135]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9860
Док
Я привел случаи, где и как я с этим столкнулся. Упомянутые мною семерки и XP - "чистые" микрософтовские изошники со WZORa, без апдейтов (зачем они мне на виртуалке)
Ещё раз повторю, что я взял "золотой" образ семёрки от июля 2009 года.
Там не то, что обновления - SP1 отсутствует ибо вышел в осенью 2010.

P.S.
И насчёт обновлений вы зря - их разных есть.
28 авг 19, 16:38    [21959260]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Док
Member

Откуда: Казань
Сообщений: 6532
OFF
Basil A. Sidorov
P.S.
И насчёт обновлений вы зря - их разных есть.

Мне разные ОСи в виртуалке "чисто посмотреть", как отображается гуй и ведет себя софтина в разной ситуации. А обновления, в основном, для безопасности.
/OFF
28 авг 19, 18:10    [21959337]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9860
Док
Мне разные ОСи в виртуалке "чисто посмотреть", как отображается гуй и ведет себя софтина в разной ситуации. А обновления, в основном, для безопасности.
Во-первых, вести может по разному.
Во-вторых, для семёрки (некоторые) обновления можно в образ ещё до его установки и гораздо проще, чем в XP.
 KB982018 - improves the compatibility with Advanced Format Disks
KB2685811 и KB2685813 - user/kernel mode driver framework
практически, мастхэв для семёрки/сервер 2008R2
28 авг 19, 19:08    [21959368]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
axline
Member

Откуда:
Сообщений: 5
Мучаюсь с такой же проблемой - не подключиться к одной и той же базе из разных приложений.

Есть IBExpert, буквально вчера загруженный, в нем зарегистрирована база, прописан путь к 32-битной fbclient.dll (firebird 3.0.4 embedded). В firebird.conf всего две строчки:
Providers = Engine12
ServerMode = SuperClassic


Есть приложение, в корне которого рядом с экзешником лежит 64-битная fbclient.dll, с точно таким же firebird.conf. Версии firebird embedded одинаковы, отличается только битность.

Я могу открыть одну и ту же базу дважды в IBE. Приложений тоже могу запустить сколько угодно. Но сделать так, чтобы и приложение было запущено, и база открыта в IBE не получается. Если запустить приложение, а потом попытаться открыть базу в IBE, то вылетает ошибка:"lock manager error. Inconsistent lock table type/version; found 225/1:146, expected 225/1:18"

Больше в системе никаких версий Firebird нет, и не было. Только эти два embedded.
Вроде бы вот этот документ несколько раз перечитал, но то ли лыжи не едут...
7 ноя 19, 12:26    [22011413]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10359
axline,

дык тут вам не здесь. Лок менеджеры в 32 и 64-битной версии разные. Нельзя одну и ту же БД открыть движками разной разрядности, даже если версия одна и та же.

Какой раз уже задаю вопрос. Зачем вы себе геморрой на ровном месте устраиваете? Установи полноценную 64-битную версию FB и подключайся экспертом через TCP. А клиентское приложение пусть через embedded открывает.
7 ноя 19, 12:51    [22011437]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10762
axline
Версии firebird embedded одинаковы, отличается только битность.
Так не получится.
Размеры некоторых структур в общей памяти к сожалению зависят от разрядности.
7 ноя 19, 12:54    [22011440]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
axline
Member

Откуда:
Сообщений: 5
Симонов Денис, hvlad, спасибо большое, теперь понял.
Пойду ставить полноценный x64 сервер :)
7 ноя 19, 13:06    [22011456]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
axline
Member

Откуда:
Сообщений: 5
Вроде бы заработало все, помогло следующее (система Windows 10 x64):

- Firebird 3.0.4 SuperClassic ставится как приложение. Если ставить как службу, то ругается "Database is probably already opened by another engine instance in another Windows session".

- При установке в "Program Files", Firebird не может прочитать firebird.msg. Ругается на права доступа, не пишет firebird.log. Перенес в папку, где нет трудностей с доступом.

- в IBE в качестве протокола устанавливается TCP/IP, Client library=gds32.dll

- в приложении лежит embedded сервер той же версии, в firebird.conf указано:
Providers = Engine12
ServerMode = Classic


Вещи тривиальные, но для чайников (вроде меня) могут сохранить много времени.
7 ноя 19, 15:54    [22011645]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28556
axline
Если ставить как службу, то ругается "Database is probably already opened by another engine instance in another Windows session".

не верю. Верю только в ситуацию, когда к базе одновременно лезут из сервиса, и из embedded. Embedded банально не видит контекста сервиса, и наоборот.
Проверять даже не буду.
axline
Вещи тривиальные, но для чайников (вроде меня) могут сохранить много времени.

не надо мутить - не будет проблем. Архитектура ФБ, плюс 32/64 бит - любой программист должен это знать. Ну и еще про "что такое dll". Тогда не будет вопросов про embedded.

А так всё сводится к объяснению в сотый раз каких-то прописных истин.
axline
- в IBE в качестве протокола устанавливается TCP/IP, Client library=gds32.dll

и зачем ИБЕ понадобилось именно gds32.dll? Ему же всё равно. А gds32.dll каким образом получена?
7 ноя 19, 16:06    [22011656]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
kdv
Member

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

да, и еще. Указывать Classic для Embedded нет никакого смысла. И даже хуже. Если будет 2 коннекта из приложения, то оно будет 2 раза жрать память для сортировок. Поэтому SuperClassic only.
7 ноя 19, 16:08    [22011658]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
axline
Member

Откуда:
Сообщений: 5
kdv
не верю. Верю только в ситуацию, когда к базе одновременно лезут из сервиса, и из embedded. Embedded банально не видит контекста сервиса, и наоборот.
Проверять даже не буду.


Да, именно одновременно. Я выше написал, что пытался к одной базе подключиться и из приложения, и из Эксперта. Так и получилось.

kdv
не надо мутить - не будет проблем. Архитектура ФБ, плюс 32/64 бит - любой программист должен это знать. Ну и еще про "что такое dll". Тогда не будет вопросов про embedded. А так всё сводится к объяснению в сотый раз каких-то прописных истин.


На поиск этих истин не один час был убит. FB для меня, как и Windows, вещи очень далекие, специализация другая. Но вот резко понадобилось освоить. Предполагаю, что я не один такой :)

kdv
и зачем ИБЕ понадобилось именно gds32.dll? Ему же всё равно. А gds32.dll каким образом получена?

Да, моя ошибка, она не нужна. С пустой строчкой прекрасно все работает.

kdv
да, и еще. Указывать Classic для Embedded нет никакого смысла. И даже хуже. Если будет 2 коннекта из приложения, то оно будет 2 раза жрать память для сортировок. Поэтому SuperClassic only.


Вот это тонкий момент. В документе дословно сказано: "Note, for the embedded engine, Classic and Superclassic are equivalent.". Это ошибка? Или этот документ устарел?
7 ноя 19, 16:50    [22011688]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28556
axline
С пустой строчкой прекрасно все работает.

это значит, что fbclient.dll находится в системных папках или в PATH.
gds32.dll откуда явился? по умолчанию в настройках алиса ИБЕ? Почему бы не указать fbclient.dll явно???
axline
Это ошибка? Или этот документ устарел?

мне начать расказывать прописные истины, что такое embedded, и как работает exe+dll? И почему в данном случае classic и superclassic равнозначны? И почему, для собственного же понимания, всё-таки лучше прописать SuperClassic, чтобы не было двусмысленностей?
7 ноя 19, 17:41    [22011737]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10762
kdv
Если будет 2 коннекта из приложения, то оно будет 2 раза жрать память для сортировок.
Чего бы это ?

Classic\SuperClassic отличаются только для сетевого сервера - он либо запускает новые процессы для входящих коннектов, либо обслужавает всё сам.
Для embedded этого отличия, есс-но, нет.

PS Такие есть одно место, где есть разница между Classic и SuperClassic для embedded - Classic игнорирует значение linger, ибо считается что при дисконнекте процесс завершается.
7 ноя 19, 17:58    [22011765]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Старый плюшевый мишка
Member

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

мне начать расказывать прописные истины, что такое embedded, и как работает exe+dll?


Дим, прописные истины - это 1НФ. Что такое embedded - прописная истина для членов Партии с 1905 года. А когда человеку впервые пришлось столкнуться именно с FB - откровений в единицу времени может оказаться многовата
7 ноя 19, 18:44    [22011842]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10359
hvlad,

хм. У меня написано что Linger нужен только для супера. А какой смысл его использовать для SC, если там всё равно кеш раздельный и небольшой
7 ноя 19, 18:45    [22011844]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 3.0 Embedded подключения с разных приложений  [new]
hvlad
Member

Откуда:
Сообщений: 10762
Симонов Денис,

да, ты прав конечно же. Там есть дополнительне условие, на которое я не смотрел.
Так что - для движка SC и CS не отличаются совсем, никак.
Отличие есть только для сетевого сервера.
7 ноя 19, 19:09    [22011870]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / Firebird, InterBase Ответить