ひっそりと生きるプログラマのブログ

日頃気になった事なりを書き留めるブログです。関心ごとは多くもう少し更新頻度を上げたいところです。

TransactionScopeでタイムアウトするまでの最大許容時間

TransactionScopeはコンストラクタタイムアウトする時間を指定することは可能ですが、設定ファイルを変更しない限り、幾ら長い時間を指定しても 10分 となってしまいます。

MachineSettingsSection.MaxTimeout プロパティ (System.Transactions.Configuration)


以下のコードで上記を確認する事も可能です。

Console.WriteLine(TransactionManager.MaximumTimeout);
Console.ReadLine();

何も設定をしていないと 00:10:00 として表示されました。


machine.config へ以下を追加し
再度TransactionManager.MaximumTimeoutを確認します。(抜粋)

<configuration>
  <system.transactions>
    <machineSettings maxTimeout="00:12:34" />
  </system.transactions>
</configuration>

設定が反映され 00:12:34 として表示されました。


実行する.NET Framework のバージョンやプロセッサ(32 or 64)によってconfigファイルは異なるので、
こういう風に確認したほうが確実なのではと思います。