Erfahre, wie die .NET Transaction Timeouts korrekt gesetzt werden.

Für Transaktionen im .NET Framework (siehe System.Transactions.Transaction) kann ein Timeout gesetzt werden. Programmatisch ist dies über die TransactionOptions und der dort angebotenen Eigenschaft Timeout möglich.

Allerdings ist auch eine Konfiguration des Timeouts möglich. Zu diesem Thema finden sich aber unterschiedliche Aussagen im Internet.

Das Default-Timeout einer Transaction liegt bei 10 Minuten. Kann die Transaktion innerhalb dieser Zeit nicht abgeschlossen werden, erfolgt ein Abbruch derselben.

Default-Timeout verändern

Das Default-Timeout kann für jede Anwendung in der app.config verändert werden. Dazu ist folgender Eintrag notwendig:

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

Diese Einstellung erhöht das Default-Timeout auf 15 Minuten.

Wird ein Timeout programmatisch gesetzt, wird das konfigurierte Timeout überschrieben.

Es kann zwar ein beliebiges Default-Timeout gesetzt werden, allerdings gibt es auch ein maximales Timeout.

Maximales Transaction Timeout konfigurieren

An vielen Stellen wird die Konfiguration dieses Timeouts über die app.config gezeigt. Dies ist nicht richtig. Das maximale Timeout muss über die machine.config gesetzt werden. Diese liegt sowohl für 32bit als auch für 64bit Kompilate vor, daher rate ich zur Anpassung beider Dateien. Zu finden sind sie hier:

%windir%\Microsoft.NET\Framework\v4.0.30319\config\machine.config
%windir%\Microsoft.NET\Framework64\v4.0.30319\config\machine.config

Die neue Einstellung kann folgendermaßen gesetzt werden:

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

Zu beachten ist, dass diese Einstellung die allerletzte innerhalb der machine.config sein muss (direkt vor ), da es sonst zu Problemen kommt und die Einstellung nicht verwendet wird.

Viel Erfolg!

Über den Autor

Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler und Fotograf. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.

Hinterlasse einen Kommentar