SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32
Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #97] Mon, 27 June 2022 16:49 Переход к следующему сообщению
V.Borzov в настоящее время не в онлайне  V.Borzov
Сообщений: 15
Зарегистрирован: June 2022
Географическое положение: Саратов
Junior Member

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

Моя OS - Kubuntu 22.04 x64
Мое приложение Win32 (Delphi XE).
Кладу в каталог к экзешнику файлы из Firebird-4.0.1.2692-0-Win32.zip:
*.dll
firebird.msg
databases.conf
firebird.conf
intl\*
plugins\*

в databases.conf выставил только DataTypeCompatibility = 3.0, остальное по дефолту

При попытке подключения к базе получаю ошибку:

Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
SQL error state =HY000
Wrong file for memory mapping, see details in firebird.log.

в firebird.log вижу запись:

BVSOFT-LINUX Mon Jun 27 17:45:02 2022
ConfigStorage: Cannot initialize the shared memory region
Wrong file for memory mapping, see details in firebird.log


Запускал приложение с Firebird 3 Embeded - всё там работает хорошо. То есть, параметры подключения, видимо, верно указываются.

Куда можно копнуть, чтобы исправить эту проблему?

Заранее спасибо за ответы.
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #146 является ответом на сообщение #97] Wed, 06 July 2022 14:21 Переход к предыдущему сообщениюПереход к следующему сообщению
V.Borzov в настоящее время не в онлайне  V.Borzov
Сообщений: 15
Зарегистрирован: June 2022
Географическое положение: Саратов
Junior Member

Проблема эта возникла в Firebird-4.0.1.2692-0-Win32, в Firebird-4.0.0.2496-1-Win32.zip её еще нет. Проблема возникает с engine13.dll, и если подсунуть более старую engine13.dll, то работает.
То же самое с Firebird3: в версии из Firebird-3.0.7.33374-1_Win32.zip работает, а в Firebird-3.0.10.33601-0_Win32.zip, и проблема тоже в engine12.dll, замена её на более старую исправляет ситуацию.
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #2995 является ответом на сообщение #97] Tue, 15 August 2023 18:44 Переход к предыдущему сообщениюПереход к следующему сообщению
Sigma-Soft в настоящее время не в онлайне  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 [сообщение #2996 является ответом на сообщение #2995] Tue, 15 August 2023 19:07 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
Хотелось бы получить шаги для воспроизведения проблемы.

PS Причём тут Wine ?
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3001 является ответом на сообщение #2996] Thu, 17 August 2023 14:44 Переход к предыдущему сообщениюПереход к следующему сообщению
V.Borzov в настоящее время не в онлайне  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 [сообщение #3002 является ответом на сообщение #3001] Thu, 17 August 2023 15:22 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
Мой вопрос был к Sigma-Soft.

Проблемы wine да ещё и под win32 - совсем не в моих приоритетах, увы.
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3003 является ответом на сообщение #97] Thu, 17 August 2023 15:26 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
V.Borzov писал(а) Mon, 27 June 2022 16:49
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
SQL error state =HY000
Wrong file for memory mapping, see details in firebird.log.

в firebird.log вижу запись:

BVSOFT-LINUX Mon Jun 27 17:45:02 2022
ConfigStorage: Cannot initialize the shared memory region
Wrong file for memory mapping, see details in firebird.logспасибо за ответы.
Там должна быть ещё одна запись, перед этой. Вот с таким шаблоном:

Wrong file for memory mapping:
	expected %s
	already mapped %s
	Check for presence of another Firebird instance with different lock directory
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3004 является ответом на сообщение #2995] Thu, 17 August 2023 15:41 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
Похоже, у вас работают одновременно 4.0.3 (тот самый embedded) и предыдущая версия ( <= 4.0.2, сервис для репликации\всего остального ?)

Читайте firebird.conf про новый параметр UseLegacyKernelObjectsNames
# ----------------------------
# The way of how to create names for named Windows kernel objects, such as
# events, memory mapped files, etc. Since v4.0.3 Firebird creates its named
# kernel objects in private namespace. It allows to interact processes within
# different Windows sessions, such as user session and system session. Also,
# it uses engine version in some shared event names - it allows single process
# to host Firebird engines of different versions.
#
# The legacy names is for backward compatibility only, it allows simultaneous
# run of Firebird processes of newly (>= v4.0.3) and older (< 4.0.3)
# subreleases of version 4.
#
# The setting is global.
# It is used for backward compatibility only and will not be present in the
# future Firebird versions.
#
# Type: boolean
#
#UseLegacyKernelObjectsNames = false
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3005 является ответом на сообщение #3003] Thu, 17 August 2023 17:49 Переход к предыдущему сообщениюПереход к следующему сообщению
V.Borzov в настоящее время не в онлайне  V.Borzov
Сообщений: 15
Зарегистрирован: June 2022
Географическое положение: Саратов
Junior Member

Да, есть такая запись:

Wrong file for memory mapping:
expected C:\ProgramData\firebird\fb13_trace
already mapped \??\C:\ProgramData\firebird\fb13_trace
Check for presence of another Firebird instance with different lock directory
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3006 является ответом на сообщение #3005] Thu, 17 August 2023 18:36 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
V.Borzov писал(а) Thu, 17 August 2023 17:49
Да, есть такая запись:

Wrong file for memory mapping:
expected C:\ProgramData\firebird\fb13_trace
already mapped \??\C:\ProgramData\firebird\fb13_trace
Check for presence of another Firebird instance with different lock directory
Вот с этого и нужно было начинать.

По какой-то причине, GetMappedFileName() под wine возвращает имя файла в не очень документированном формате:
с префиксом '\??\' и ДОС-именем диска 'C:'

Тогда как под Windows возвращается другое имя, в виде '\Device\Volume\path', где '\Device\Volume' позже
превращается в ДОС-имя диска (тот самый 'C:') с помощью QueryDosDevice().

Нигде в документации не описан префикс \??\ и что с ним делать.
Я нашёл только достаточно косвенное описание

На данный момент я не вижу корректного (документированного) способа обработать эту ситуацию.
Просто завязаться на префикс '\??\' - можно, но я в этом хаке совсем не убеждён.

Если кто-то знает больше на эту тему - делитесь ссылками.
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3007 является ответом на сообщение #2996] Thu, 17 August 2023 20:09 Переход к предыдущему сообщениюПереход к следующему сообщению
Sigma-Soft в настоящее время не в онлайне  Sigma-Soft
Сообщений: 7
Зарегистрирован: February 2023
Junior Member
Добрый вечер!

Wine и embedded ни при чём. Google по сообщению привёл на эту тему. Если надо, создам отдельную, чтобы не устраивать кашу.

Пока что ищу способ повторить проявления на другой машине с другой базой. Найду - сообщу подробно.
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3008 является ответом на сообщение #3007] Thu, 17 August 2023 20:37 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
Sigma-Soft писал(а) Thu, 17 August 2023 20:09
Добрый вечер!

Wine и embedded ни при чём. Google по сообщению привёл на эту тему. Если надо, создам отдельную, чтобы не устраивать кашу.

Пока что ищу способ повторить проявления на другой машине с другой базой. Найду - сообщу подробно.
Ещё раз повторю про UseLegacyKernelObjectsNames
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3009 является ответом на сообщение #3008] Fri, 18 August 2023 00:42 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 407
Зарегистрирован: August 2022
Senior Member
WINE такая штука, в которой почти каждый день что-то ломают. Это надо к его разработчикам. Они странные, но чем чёрт не шутит...
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3021 является ответом на сообщение #3009] Sun, 20 August 2023 15:55 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
читал, что на Астре свой форк Вайна, отличный от мейнстрима. там что-то допиливали по просьбе отечественных разработчиков CAM/CAD систем. ибо до выпуска пюре-линух версии ещё ой-йо-йой...
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3032 является ответом на сообщение #97] Mon, 21 August 2023 08:19 Переход к предыдущему сообщениюПереход к следующему сообщению
 в настоящее время не в онлайне 
Сообщений: 197
Зарегистрирован: September 2022
Senior Member
>читал, что на Астре свой форк Вайна

Там так забавно в докумеции сказано, что после установки вайн будет предложено установить дополнение "что-то для .NET", так вот - устанавливать его не нужно, ибо ни шиша не работает.
...
...довольно много потратил времени на доточку софта к астра-вайн, до сих пор хочется авторов придушить. Там ещё менеджер рабочего стола свой собственный, естественно - по-своему кривой...
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3033 является ответом на сообщение #3032] Mon, 21 August 2023 10:48 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
А вцелом как, доточили проект под Астру?
Или ещё в процессе?
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3035 является ответом на сообщение #3033] Mon, 21 August 2023 14:00 Переход к предыдущему сообщениюПереход к следующему сообщению
inoremap в настоящее время в онлайне  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 [сообщение #3037 является ответом на сообщение #3035] Mon, 21 August 2023 14:28 Переход к предыдущему сообщениюПереход к следующему сообщению
shavluk в настоящее время не в онлайне  shavluk
Сообщений: 82
Зарегистрирован: June 2022
Географическое положение: Одеса
Member
У меня на Win10 повторилось
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3038 является ответом на сообщение #3037] Mon, 21 August 2023 14:40 Переход к предыдущему сообщениюПереход к следующему сообщению
basid в настоящее время не в онлайне  basid
Сообщений: 155
Зарегистрирован: June 2022
Географическое положение: Asia/Irkutsk
Senior Member
# ----------------------------
# Local Connection Settings
#
# The name of the shared memory area used as a transport channel in local protocol.
# Note that the local protocol in v2.0 is not compatible with any previous version
# if Firebird or InterBase.
#
# Please note that the server can register objects in Global\ kernel namespace
# only if it runs under the account with SE_CREATE_GLOBAL_NAME privilege.
# This means that if you run the server under a restricted account under
# Windows Vista/XP SP2/2000 SP4 it will not be accessible using the
# local protocol from other sessions.
#
# Per-connection configurable.
#
# Type: string
#
#IpcName = FIREBIRD
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.
Работа прикладного софта в части отображения: прозрачность превращалась в черноту, скроллинг превращался в издевательство. Ну, как-то справились.
Ещё что-то. Как клиенты жалобно запищат, так и начнем править. Smile
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3040 является ответом на сообщение #3038] Mon, 21 August 2023 15:38 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
basid писал(а) Mon, 21 August 2023 14:40
#IpcName = FIREBIRD
OMG, это тут при чём ?
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3041 является ответом на сообщение #3035] Mon, 21 August 2023 15:48 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: 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 [сообщение #3042 является ответом на сообщение #3033] Mon, 21 August 2023 15:49 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
МП писал(а) Mon, 21 August 2023 10:48
А вцелом как, доточили проект под Астру?
Или ещё в процессе?
Это имеет отношщение к теме ???

[Обновления: Mon, 21 August 2023 15:49]

Известить модератора

Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3043 является ответом на сообщение #3042] Mon, 21 August 2023 16:47 Переход к предыдущему сообщениюПереход к следующему сообщению
 в настоящее время не в онлайне 
Сообщений: 197
Зарегистрирован: September 2022
Senior Member
>Это имеет отношщение к теме ???
Он должен был отдельную тему создать, или я?
Smile
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3044 является ответом на сообщение #3042] Mon, 21 August 2023 16:55 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
Ну не будь хоть ты занудой.
И так народ разбежался в разные стороны.
Вон уже на новый форк старого "сруля" все намылились.
Ссылку приводить не буду.

[Обновления: Mon, 21 August 2023 18:36]

Известить модератора

Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3049 является ответом на сообщение #3040] Tue, 22 August 2023 08:29 Переход к предыдущему сообщениюПереход к следующему сообщению
basid в настоящее время не в онлайне  basid
Сообщений: 155
Зарегистрирован: June 2022
Географическое положение: Asia/Irkutsk
Senior Member
hvlad писал(а) Mon, 21 August 2023 20:38
OMG, это тут при чём ?
Wine у меня нет под руками, но 64-разрядный (ванильный) FB 3.0.9, запущенный сервисом (Network Service) при подключении из 3.0.9 isql к xnet://security.db никак не мешает 64-разрядному (ванильному) FB 4.0.3 создать базу в (embedded) isql. IpcName всех экземпляров, понятное дело - разные.
Есть, наверное, и другие условия конфликта?
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3085 является ответом на сообщение #3008] Wed, 30 August 2023 17:22 Переход к предыдущему сообщениюПереход к следующему сообщению
Sigma-Soft в настоящее время не в онлайне  Sigma-Soft
Сообщений: 7
Зарегистрирован: February 2023
Junior Member
hvlad писал(а) Thu, 17 August 2023 20:37
Sigma-Soft писал(а) Thu, 17 August 2023 20:09
Добрый вечер!

Wine и embedded ни при чём. Google по сообщению привёл на эту тему. Если надо, создам отдельную, чтобы не устраивать кашу.

Пока что ищу способ повторить проявления на другой машине с другой базой. Найду - сообщу подробно.
Ещё раз повторю про UseLegacyKernelObjectsNames
Добрый день!

Спасибо,
UseLegacyKernelObjectsNames = true
помогло.
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3259 является ответом на сообщение #3085] Fri, 06 October 2023 08:00 Переход к предыдущему сообщениюПереход к следующему сообщению
AlexioM в настоящее время не в онлайне  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 в настоящее время не в онлайне  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 [сообщение #3269 является ответом на сообщение #3264] Fri, 06 October 2023 14:13 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 407
Зарегистрирован: August 2022
Senior Member
А если у вас система многокомпонентная, то почему она использует Embedded вместо полноценного сервера и коннекта по TCP/IP?
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3271 является ответом на сообщение #3269] Fri, 06 October 2023 15:37 Переход к предыдущему сообщениюПереход к следующему сообщению
AlexioM в настоящее время не в онлайне  AlexioM
Сообщений: 5
Зарегистрирован: October 2023
Junior Member
SD писал(а) Fri, 06 October 2023 14:13
А если у вас система многокомпонентная, то почему она использует Embedded вместо полноценного сервера и коннекта по TCP/IP?
Элемент отказоустойчивости. Когда основная БД недоступна, сервис win пишет данные в локальную БД в той же файловой системе, что и сам находится. Потом переписывает в основную, когда восстанавливается TCP.
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3273 является ответом на сообщение #3271] Fri, 06 October 2023 15:44 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
а почему не в плоский файл?
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3276 является ответом на сообщение #3273] Fri, 06 October 2023 16:57 Переход к предыдущему сообщениюПереход к следующему сообщению
AlexioM в настоящее время не в онлайне  AlexioM
Сообщений: 5
Зарегистрирован: October 2023
Junior Member
МП писал(а) Fri, 06 October 2023 15:44
а почему не в плоский файл?
Потому что сложная структура данных и в большое количество потоков. Зачем делать свою реализацию одновременного доступа к файлу, если всё есть?
Вообще, мы обсуждаем проблему совместимости Firebird и Wine, а не архитектуру ПО, которое его использует. Было нужно, мы выбрали embedded firebird и хотим, чтобы эта схема работала в wine. Предложение решение как временный выход из положения вполне устраивает. Но использование старых библиотек в комплексе с новыми не есть хорошо.  
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3277 является ответом на сообщение #3276] Fri, 06 October 2023 17:06 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
AlexioM
Вообще, мы обсуждаем проблему совместимости Firebird и Wine
И вы конечно же написали в форумы\поддержку Wine об этой проблеме ?
Я подробно расписал причины, что ещё нужно ?
Обращайтесь к разработчикам Wine, пусть выскажут свой взгляд.
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3280 является ответом на сообщение #3277] Fri, 06 October 2023 21:15 Переход к предыдущему сообщениюПереход к следующему сообщению
AlexioM в настоящее время не в онлайне  AlexioM
Сообщений: 5
Зарегистрирован: October 2023
Junior Member
hvlad писал(а) Fri, 06 October 2023 17:06
AlexioM
Вообще, мы обсуждаем проблему совместимости Firebird и Wine
И вы конечно же написали в форумы\поддержку Wine об этой проблеме ?
Я подробно расписал причины, что ещё нужно ?
Обращайтесь к разработчикам Wine, пусть выскажут свой взгляд.
Претензий никаких. Честно. Просто продвинул тему, чтобы находилась ещё лучше и страждущие не чувствовали себя одинокими в этой проблеме Smile
В wine не обращались пока, потому что проблема только что вскрылась, и первый поиск привёл в эту ветку. Хорошо, что она есть. Суть понятна, всё очень прозрачно написано, спасибо! Проблема, думаю, решится рано или поздно, потому что и форк Firebird, и форк Wine  - оба находятся в реестре отечественного ПО, а значит распространение получат довольно широкое в России. Обратят внимание.   
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3281 является ответом на сообщение #3271] Sat, 07 October 2023 00:36 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 407
Зарегистрирован: August 2022
Senior Member
AlexioM писал(а) Fri, 06 October 2023 14:37
SD писал(а) Fri, 06 October 2023 14:13
А если у вас система многокомпонентная, то почему она использует Embedded вместо полноценного сервера и коннекта по TCP/IP?
Элемент отказоустойчивости. Когда основная БД недоступна, сервис win пишет данные в локальную БД в той же файловой системе, что и сам находится. Потом переписывает в основную, когда восстанавливается TCP.
А почему не в локальный сервер? Полный.

И да, следующим логичным шагом будет работать исключительно с локальным сервером, а периодическую синхронизацию по наличию связи вынести в отдельный сервис.
Re: Ошибка при подключении к Firebird4 Embedded из-под Wine приложения для Win32 [сообщение #3282 является ответом на сообщение #3280] Sat, 07 October 2023 10:34 Переход к предыдущему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 355
Зарегистрирован: August 2022
Senior Member
Для заинтересованных: в багтрекере Wine уже есть эта проблема:

https://bugs.winehq.org/show_bug.cgi?id=51687
Предыдущая тема: FB 2.5: выборка данных из одной из однотипных хранимых процедур, заданной по имени
Следующая тема: Красный кок
Переход к форуму:
  


Текущее время: Fri Nov 15 09:49:34 GMT+3 2024

Общее время, затраченное на создание страницы: 0.02196 секунд