Ошибка 335544344 при попытке подключиться к firebird базе данных (c#)

Для работы с firebird БД использую firebirdsql.data.firebirdclient библиотеку Создаю в Visual Studio консольный проект, язык c#

Подключаюсь так:

FbConnection fbConnection = new FbConnection("character set=UNICODE_FSS;user id=SYSDBA;password=masterkey;initial catalog=localhost:C:\\TEST.FDB;server type=Default");
fb.connection.open();

Если в этот момент родное приложение, которое работает с этой БД НЕ запущено, то подключение проходит успешно. Если приложение запущено, то при попытке подключения получаю exception

I/O error during "CreateFile (open)" operation for file "C:\DBS\DBSDATA\PR1\DATABASE\TEST.FDB"\r\nError while trying to open file"

Error code у exception-а 335544344

Предполагаю, что ошибка из-за того, что приложение блокирет доступ к БД.

Есть ли способ всё же подключиться к БД при работающем приложении?


Ответы (1 шт):

Автор решения: aepot

Насколько мне известно, приложение, подключаемое к файлу базы получает монопольный доступ к нему, и дополнительное подключение к FDB базе со стороны другого приложения установить невозможно.

Для реализации множественных подключений, вам нужно реализовать сервер, который будет взаимодействовать с базой, а все остальные приложения - с сервером.

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

→ Ссылка