私のC#.NET 3.5アプリケーションでは、NHibernate上でCastleProjectActiveRecordを使用しています。これは、MS SQL Server 2008を使用するデスクトップアプリケーションです。一括操作中のタイムアウト例外を防ぐために、ADOコマンドのタイムアウトを0に設定しました。
<activerecord>
<config>
...
<add key="hibernate.command_timeout" value="0" />
</config>
</activerecord>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
...
<property name="command_timeout">0</property>
</session-factory>
</hibernate-configuration>
ただし、まだタイムアウト例外が発生しています。NHibernateログには次のようなものが表示されます。
最初のどこか:
2010-10-02 06:29:47,746INFONHibernate.Driver.DriverBase-ADO.NETコマンドのタイムアウトを0秒に設定します
最後のどこか:
2010-10-02 07:36:03,020 DEBUG NHibernate.AdoNet.AbstractBatcher-IDbCommandを閉じ、IDbCommandを開きます:0 2010-10-02 07:36:03,382エラーNHibernate.Event.Default.AbstractFlushingEventListener-データベースの状態を同期できませんでしたセッションNHibernate.HibernateException:バッチクエリの実行中に例外が発生しました---> System.Data.S qlClient.SqlException:タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。System.Data.SqlClient.SqlConnection.OnError(SqlException例外、ブール値breakConnection)で
どうして?これを修正する方法は?