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!

Veröffentlicht von Norbert Eder

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Cookie-Einstellungen
Auf dieser Website werden Cookie verwendet. Diese werden für den Betrieb der Website benötigt oder helfen uns dabei, die Website zu verbessern.
Alle Cookies zulassen
Auswahl speichern
Individuelle Einstellungen
Individuelle Einstellungen
Dies ist eine Übersicht aller Cookies, die auf der Website verwendet werden. Sie haben die Möglichkeit, individuelle Cookie-Einstellungen vorzunehmen. Geben Sie einzelnen Cookies oder ganzen Gruppen Ihre Einwilligung. Essentielle Cookies lassen sich nicht deaktivieren.
Speichern
Abbrechen
Essenziell (1)
Essenzielle Cookies werden für die grundlegende Funktionalität der Website benötigt.
Cookies anzeigen