Проблема NHibernate SQLite на Mono: файл базы данных заблокирован - PullRequest
0 голосов
/ 14 августа 2010

У меня есть приложение, которое я портирую с MSSQL и .NET на SQLite и Mono. Я использую NHibernate, FluentNHibernate, NHibernateLINQ и SQLite.

Когда я тестирую приложение, когда подключен только один человек, все работает нормально, но как только кто-то начинает использовать приложение, оно ломается и выдает исключение SQLite, говорящее «Файл базы данных заблокирован».

Я знаю, что SQLite блокирует базу данных при выполнении записи и возвращает статус занятости, наверное, я неправильно настроил NHibernate, чтобы справиться с этим, но я не могу найти в Интернете никакой информации, которая помогла бы до сих пор. Как будто я единственный человек с этой проблемой. Я? Есть идеи?

Спасибо

1 Ответ

1 голос
/ 16 августа 2010

Я подозреваю, что ваша проблема не является FNH как таковой.

У меня была похожая проблема в моем проекте FNH / SQLite (.NET, а не Mono). Он загадочным образом исправился после того, как я реорганизовал часть кода управления сеансом по другим причинам. (Основные изменения заключались в том, чтобы использовать транзакции для доступа к ВСЕМ БД и обеспечить правильное удаление всех объектов Transaction и Session).

Эта ссылка обсуждает аналогичную проблему, которая была вызвана отсутствием утилизации. Я подозреваю, что это могло быть моей проблемой, но я не уверен. (Просто скрестив пальцы, чтобы проблема больше не возникала!).

Еще один хороший источник того, что можно попробовать - Файл базы данных необъяснимым образом блокируется во время фиксации SQLite

...