Ошибка 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 шт):
Насколько мне известно, приложение, подключаемое к файлу базы получает монопольный доступ к нему, и дополнительное подключение к FDB базе со стороны другого приложения установить невозможно.
Для реализации множественных подключений, вам нужно реализовать сервер, который будет взаимодействовать с базой, а все остальные приложения - с сервером.
Так же сама база поддерживает множественеые подключения, но только внутри одного приложения. То есть сервер может обслуживать много приложений, используя пул подключений, чтобы конкурентные запросы могли выполняться параллельно.