【问题标题】:NHibernate SQLite on Mono concurrency problem: Database file is lockedNHibernate SQLite on Mono 并发问题:数据库文件被锁定
【发布时间】:2010-08-16 22:57:29
【问题描述】:

我有一个应用程序要从 MSSQL 和 .NET 移植到 SQLite 和 Mono。我正在使用 NHibernate、FluentNHibernate、NHibernateLINQ 和 SQLite。

当我在只有一个人连接的情况下测试应用程序时,一切正常,但当其他人开始使用该应用程序时,它会中断并引发 SQLite 异常,提示“数据库文件已锁定”。

我知道 SQLite 在写入时会锁定数据库并返回忙碌状态,我猜我可能没有正确配置 NHibernate 来处理这个问题,但我在网上找不到任何有帮助的信息至今。好像只有我一个人有这个问题。我是吗?有什么想法吗?

谢谢

【问题讨论】:

    标签: nhibernate sqlite fluent-nhibernate mono


    【解决方案1】:

    我怀疑你的问题不是 FNH 本身。

    我在我的 FNH / SQLite 项目(.NET,而不是 Mono)中遇到了类似的问题。在我出于其他原因重构了一些会话管理代码后,它神秘地自行修复了。 (主要的变化是对所有数据库访问使用事务,并确保所有事务和会话对象都被正确处理)。

    This link 讨论了由缺少 Dispose 引起的类似问题。我怀疑这可能是我的问题,但不确定。 (只是保持我的手指交叉,问题不会再次出现!)。

    另一个值得尝试的好方法是Database file is inexplicably locked during SQLite commit

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 2013-12-26
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多