Dienstag, 18. Dezember 2007

ADO.NET Timeout

Aufwändige Abfrage


Wird aus einer .Net Applikation per ADO.NET eine aufwändige Abfrage an einen SQL-Server abgesetzt, kann es zu folgender Fehlermeldung kommen, wenn das Ergebnis nicht rechtzeitig geliefert wird:

"The timeout period elapsed prior to completion of the operation or the server is not responding."

Connect Timeout im ConnectionString


Im ConnectionString kann ein längerer Zeitraum festgelegt werden (z.B.: server=myServer;uid=myUser;pwd=myPassword;database=myDatabase;Connect Timeout=60)

Hinweis


Unter http://www.dotnet247.com/247reference/msgs/57/289664.aspx bin ich auf den interessanten Hinweis gestossen, dass die Zeitangabe mindestens bedeutet, nicht höchstens.

CommandTimeout


Das Connection-Timeout anzupassen ist nicht genug.
Beim SqlCommand-Objekt ist noch das Property CommandTimeout auf die gewünschte Anzahl Sekunden zu setzen (z.B.: cmd.CommandTimeout=100;).

Diese Lösung stammt von http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=357.

Keine Kommentare: