6

NHibernateを使用した処理を含め、1つのトランザクションで多くのDB処理を実行する必要があります。

すべてを同じトランザクションで機能させるために、NHibernateのセッションを使用して開始し、他の作業のコマンドをそのトランザクションに参加させます。

私がコミットするまで、すべてがうまくいきます。そのとき、トランザクションのタイムアウトが発生します。

NHibernateトランザクションタイムアウト値を十分に高く設定するにはどうすればよいですか?

FluentNHibernateを使用します。

4

1 に答える 1

5

いくつかの試行と多くのエラーの後、私はこれを見つけました:

NHibernateは「TransactionManager.DefaultTimeout」値をとっているようです。

経由で設定できます

 <system.transactions>
     <defaultSettings timeout="01:00:00" />
 </system.transactions>

app/web構成で

TransactionManager.MaximumTimeoutより大きい値に設定されている場合、トランザクションタイムアウトはデフォルトでその値になります。より長く必要な場合は、.Net Frameworkバージョンの「machine.config」を次のように更新することで、その時間を長くすることができます。

<system.transactions>
    <machineSettings maxTimeout="01:00:00" />
</system.transactions>
于 2013-02-08T11:29:54.770 に答える