如何在NHibernate事务上设置超时

时间:2013-02-05 14:35:51

标签: nhibernate transactions fluent-nhibernate

我需要在单个事务中完成大量的数据库处理,包括使用NHibernate进行一些处理。

为了让一切都在同一个事务中工作,我正在使用NHibernate的Session来启动它,并为其中的其他工作登记命令。

一切顺利,直到我承诺。那时我得到了一个事务超时。

如何将NHibernate事务超时值设置得足够高?

我们使用FluentNHibernate。

1 个答案:

答案 0 :(得分:5)

经过一些试验和很多错误,我发现了这个:

似乎NHibernate采用“TransactionManager.DefaultTimeout”值。

可以通过

设置
 <system.transactions>
     <defaultSettings timeout="01:00:00" />
 </system.transactions>
/ app config

中的

如果将其设置为高于TransactionManager.MaximumTimeout的值,则事务超时将默认为该值。 如果您需要更长时间,可以通过更新.Net框架版本的“machine.config”来延长时间:

<system.transactions>
    <machineSettings maxTimeout="01:00:00" />
</system.transactions>