Начало » Использование СУБД » Firebird, HQbird, InterBase » Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32
|
|
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #2995 является ответом на сообщение #97] |
Tue, 15 August 2023 18:44 |
Sigma-Soft
Сообщений: 7 Зарегистрирован: February 2023
|
Junior Member |
|
|
После обновления с 4.0.2 на 4.0.3 получаю результат, аналогичный описанному в исходном сообщении.
Заменены все файлы, кроме firebird.conf и replication.conf.
Операционная система: Windows Server 2022 Standard
Служба запускается.
При попытке подключения к базе в firebird.log появляются записи:
Tue Aug 15 18:12:25 2023
ConfigStorage: Cannot initialize the shared memory region
Shared memory area is probably already created by another engine instance in another Windows session
Tue Aug 15 18:12:26 2023
ConfigStorage: Cannot initialize the shared memory region
Shared memory area is probably already created by another engine instance in another Windows session
Tue Aug 15 18:12:26 2023
Authentication error
cannot attach to password database
Error in isc_attach_database() API call when working with legacy security database
Shared memory area is probably already created by another engine instance in another Windows session
После замены plugins\engine13.dll на скопированную из 4.0.2 база открывается, пока что отклонений от обычного поведения не вижу.
Дополнительно:
Настроена репликация. Проблема проявилась только на PRIMARY. REPLICA после обновления работает штатно без изменений в составе файлов.
[Обновления: Tue, 15 August 2023 18:45] Известить модератора
|
|
|
|
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3001 является ответом на сообщение #2996] |
Thu, 17 August 2023 14:44 |
V.Borzov
Сообщений: 15 Зарегистрирован: June 2022 Географическое положение: Саратов
|
Junior Member |
|
|
> Хотелось бы получить шаги для воспроизведения проблемы.
Собираем 32-разрядный экзешник: берем pFibDataBase, указываем ему DBName - help.fdb, LibraryName - fbclient.dll, ConnectParams.UserName и ConnectParams.Password - sysdba и masterkey (а можно и не указывать, оставить пустыми), больше ничего менять не надо. Делаем кнопку, которая выполнит pFibDataBase.Open. Всё.
В случае с UIBDatabase - то же самое: указали DatabaseName, LibraryName, UserName и PassWord (их можно опустить), и кнопку, выполняющую UIBDataBase1.Connected := True;
В каталог с экзешником копируем нужные для embedded файлы из win32-версии Firebird-4.0.3.2975-0-Win32.zip (я брал все dll-ки, icudt63l.dat и каталоги plugins и intl), запускаем под виндой - к базе подключается. Запускаем под linux с помощью wine - к базе не подключается.
Берем engine13.dll из разных версий, другие файлы не меняем. Результат: из версий Firebird-4.0.1.2692-0-Win32.zip, Firebird-4.0.2.2816-0-Win32.zip, Firebird-4.0.3.2975-0-Win32.zip - ошибка. Из версий Firebird-4.0.0.2353-0-RC1-Win32.zip, Firebird-4.0.0.2496-1-Win32.zip - коннект прошел.
Kubuntu 23.04, с другими не экспериментировал.
При подключении к "настоящему" Firebird-серверу (сейчас я поставил Firebird-4.0.3.2975-0.amd64.tar.gz), установленному на Linux-сервере, виндовым приложением, разумеется, используя подходящую для него fbclient.dll - никаких проблем пока не обнаружено, полет нормальный.
> PS Причём тут Wine ?
Та же сборка, запущенная под Windows, проблем не дает.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3035 является ответом на сообщение #3033] |
Mon, 21 August 2023 14:00 |
inoremap
Сообщений: 12 Зарегистрирован: August 2023
|
Junior Member |
|
|
Столкнулся с похожей проблемой.
Есть много windows-компьютеров с установленным Firebird 3.0.9 и приложением, которое работает с базами данных используя этот Firebird 3.0.9, возможности обновить или изменить настройки Firebird 3.0.9 у меня нет.
Необходимо на этих компьютерах запускать другое приложение работающее с использованием Firebird embedded 3.0.11, но при запуске этого второго приложения появляется сообщение об ошибке "Shared memory area is probably already created by another engine instance in another Windows session".
Проблема воспроизводится на windows 7 и 10, для воспроизведения проблемы можно установить Firebird-3.0.9.33560_0_Win32.exe , распаковать архив https://drive.google.com/file/d/1b1J7lLN8TUcw3KPFxDiJQD-U_r6 L0jXG , в этом архиве файл fb-test\fb309c\test309.cmd имитирует работу первого приложения, файл fb-test\fb311e\test311.cmd - второго, если запустить сначала fb-test\fb309c\test309.cmd, то запуск fb-test\fb311e\test311.cmd завершается с сообщением об ошибке "Shared memory area is probably already created by another engine instance in another Windows session". Можно ли обеспечить запуск приложения с использованием Firebird embedded 3.0.11 если на компьютере уже работает приложение с Firebird 3.0.9? Параметр UseLegacyKernelObjectsNames в firebird.conf в версии 3.0.11, как я понял, не обрабатывается.
|
|
|
|
|
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3039 является ответом на сообщение #3033] |
Mon, 21 August 2023 15:29 |
Сообщений: 197 Зарегистрирован: September 2022
|
Senior Member |
|
|
МП писал(а) Mon, 21 August 2023 10:48А вцелом как, доточили проект под Астру?
Или ещё в процессе?
Хорошо бы ещё подточить, но пока "и так сойдет", клиенты пользуются.
Инсталлятор: по вайн: не установить драйверы спецоборудования (например, ключей защиты Guardant). Как всегда, поставщик оборудования в документации указал дичь, пришлось долго разбираться.
После инсталляции, на рабочем столе Windows вместо четырех иконок приложений появлялось восемь, без нашей картинки(отображается какая-то линуксовая хрень), клик по иконке ведет в никуда. Если инсталляция выполняется в директорию,содержащую пробелы - то внутри линка на файл пробел дублировался, и файл найти было невозможно. Это всё именно под астра - под (например) РЕД ОС такого не было.
API. Вызовы некоторых функций ОС возвращали не то, что возвращалось под Windows. В частности, при работе с mailslot's. Ну, мы в итоге заменили в нашем механизме IPC основу: mailslot's на MMF.
Работа прикладного софта в части отображения: прозрачность превращалась в черноту, скроллинг превращался в издевательство. Ну, как-то справились.
Ещё что-то. Как клиенты жалобно запищат, так и начнем править.
|
|
|
|
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3041 является ответом на сообщение #3035] |
Mon, 21 August 2023 15:48 |
hvlad
Сообщений: 358 Зарегистрирован: August 2022
|
Senior Member |
|
|
inoremap,
Эта проблема была и до 3.0.11, просто наступить на неё было сложнее.
Она полностью (надеюсь) решена в 5.0 и 4.0.3.
Даже если портировать UseLegacyKernelObjectsNames в 3.0.12, это не решит вашей проблемы, т.к. 3.0.9 по-прежнему будет работать "по-старому" и новый 3.0.12 всё равно не сможет с ним договориться.
Простейший workaround (для данного случая) - не выполнять "create database" в 3.0.11 embedded.
Коннект к сущ. БД прекрасно работает.
Есс-но, самый правильный вариант - обновить 3.0.9 до текущей версии.
Ну, или самому использовать 3.0.9, там где без него никак.
Или детектировать наличие работающего сервиса и работать через него, а не через embedded.
PS я уже просил не сваливать всё в одну кучу, даже если кому-то кажется, что есть что-то похожее
|
|
|
|
|
|
|
|
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3259 является ответом на сообщение #3085] |
Fri, 06 October 2023 08:00 |
AlexioM
Сообщений: 5 Зарегистрирован: October 2023
|
Junior Member |
|
|
Добавлю ответ, чтобы обозначить неединичность случаев такой же проблемы. Суть в следующем:
Имеем:
1. Astra Linux Orel
2. Wine из репозитория Astra
3. Приложение win32, которое установлено в среде Wine и подключается к локальной базе данных Firebird в embedded-режиме.
4. Версия библиотек Firebird Embedded - 3.0.11 32 bit
5. При попытке подключения к базе в firebird.log сначала идёт ошибка в библиотеке engine12.dll, которая "существует, но не работает". Этот этап был пройден путём помещения библиотеки fbclient.dll в каталог plugins рядом с engine12.dll, в которой и стоят зависимости от неё.
6. Далее выходим на проблему, описанную ТС:
ConfigStorage: Cannot initialize the shared memory region
Wrong file for memory mapping, see details in firebird.log
и
Wrong file for memory mapping:
expected C:\ProgramData\firebird\fb12_trace
already mapped \??\C:\ProgramData\firebird\fb12_trace
Check for presence of another Firebird instance with different lock directory
Проблема была решена заменой engine12.dll из дистрибутива firebird 3.0.5 32 bit
Думаю, с массовым переходом российских предприятий на отечественные ОС, проблема эта будет увеличивать свою актуальность. Было бы не лишним обратить на вопрос устойчивой работы Firebird для Windows в среде Wine ОС Astra, Alt, Red и Ubuntu. Многие вендоры избрали это решение в качестве временного, пока не будет разработан нативный linux-код их продуктов.
[Обновления: Fri, 06 October 2023 08:00] Известить модератора
|
|
|
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3260 является ответом на сообщение #3259] |
Fri, 06 October 2023 10:42 |
Сообщений: 197 Зарегистрирован: September 2022
|
Senior Member |
|
|
AlexioM писал(а) Fri, 06 October 2023
Думаю, с массовым переходом российских предприятий на отечественные ОС, проблема эта будет увеличивать свою актуальность. Было бы не лишним обратить на вопрос устойчивой работы Firebird для Windows в среде Wine ОС Astra, Alt, Red и Ubuntu. Многие вендоры избрали это решение в качестве временного, пока не будет разработан нативный linux-код их продуктов.
Вы там совсем ку-ку. На которую из "убунт" - на все?
На каждой как блох версий Wine. Под каждую добиваться совместимости? Вы знаете, что у разработчиков Вайн принцип :"не отличаться от Виндовс"? Как только вы найдете обиходной путь, закрывающий несовместимость - в Вайн исправят эту несовместимость, и ваш софт снова заглючит.
...
И, на какую именно Линукс вы собираетесь разрабатывать "нативный" код"? Тоже на все перечисленные?
И - где вы таки взяли fb 3.0.11 для Астра Линух 'Орел"?
[Обновления: Fri, 06 October 2023 10:44] Известить модератора
|
|
|
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3264 является ответом на сообщение #3260] |
Fri, 06 October 2023 11:33 |
AlexioM
Сообщений: 5 Зарегистрирован: October 2023
|
Junior Member |
|
|
Цитата:
Вы там совсем ку-ку. На которую из "убунт" - на все?
Возможно, проблема совместимости окажется общей для нескольких редакций.
Цитата:
И, на какую именно Линукс вы собираетесь разрабатывать "нативный" код"? Тоже на все перечисленные?
У нас общий код для перечисленных ОС, за исключением каких-то специфичных моментов, который собирается и прекрасно работает в разных последних их редакциях. Речь идёт о тех компонентах системы, которая уже переписана под линукс на QT. Оставшиеся компоненты пока запускаются в среде wine и имеют ряд проблем с firebird, о которых уже уопминалось.
Цитата:
И - где вы таки взяли fb 3.0.11 для Астра Линух 'Орел"?
Я не писал, что мы берем fb конкретно под Orel. Используем вот этот дистрибутив для нативной установки Firebird-3.0.11.33703-0.amd64.tar.gz с сайта Firebird. Он прекрасно работает и на Ububntu, Astra, Alt. Перечислять редакции, на которых наши пользователи ставят систему не вижу смысла.
|
|
|
|
|
|
|
|
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3280 является ответом на сообщение #3277] |
Fri, 06 October 2023 21:15 |
AlexioM
Сообщений: 5 Зарегистрирован: October 2023
|
Junior Member |
|
|
hvlad писал(а) Fri, 06 October 2023 17:06AlexioMВообще, мы обсуждаем проблему совместимости Firebird и Wine И вы конечно же написали в форумы\поддержку Wine об этой проблеме ?
Я подробно расписал причины, что ещё нужно ?
Обращайтесь к разработчикам Wine, пусть выскажут свой взгляд.
Претензий никаких. Честно. Просто продвинул тему, чтобы находилась ещё лучше и страждущие не чувствовали себя одинокими в этой проблеме
В wine не обращались пока, потому что проблема только что вскрылась, и первый поиск привёл в эту ветку. Хорошо, что она есть. Суть понятна, всё очень прозрачно написано, спасибо! Проблема, думаю, решится рано или поздно, потому что и форк Firebird, и форк Wine - оба находятся в реестре отечественного ПО, а значит распространение получат довольно широкое в России. Обратят внимание.
|
|
|
|
|
Переход к форуму:
Текущее время: Sat Nov 23 12:28:37 GMT+3 2024
Общее время, затраченное на создание страницы: 0.01225 секунд
|