使用NHibernate时,是否可以为事务设置Firebird WAIT超时

时间:2013-07-21 04:03:51

标签: .net nhibernate timeout firebird wait

在我的代码中,我使用NHibernate ISession.BeginTransaction(IsolationLevel.ReadCommitted)来开始事务。我正在使用Firebird 2.5。有时在多用户环境中会发生死锁。这是预期的。问题是,如果我直接使用Firebird的.NET提供程序,我可以设置死锁WAIT超时或使用NO WAIT选项,但我使用NHibernate并且一个星期现在找不到这样做的方法。任何帮助,意见,提示?

1 个答案:

答案 0 :(得分:0)

从这个非常古老的link开始,你可以做以下任何事情:

  1. 通过调用public FbTransaction BeginTransaction(IsolationLevel)
  2. 来使用预定义的隔离级别
  3. 使用此BeginTransaction重载更精确地调整交易选项:public FbTransaction BeginTransaction(FbTransactionOptions)
  4. 所以可能你应该使用第二个选项来设置no_wait参数。 但是您可能需要更新版本的文档,否则您可能会遇到问题like this guy。也许看看Jiří Činčura's blog