4 Stimmen

Welche Möglichkeiten gibt es, um Zeitüberschreitungen zu beheben? (C#)

Ich baue eine Website auf, die ein paar Stunden lang gut läuft, aber dann beginnen die *.asmx- und *.ashx-Aufrufe mit dem Timing.

Die Ausnahme lautet: "Timeout abgelaufen. Die Timeout-Periode ist abgelaufen, bevor eine Verbindung aus dem Pool abgerufen werden konnte. Dies kann der Fall sein, weil alle gepoolten Verbindungen verwendet wurden und die maximale Poolgröße erreicht wurde."

Ich verwende SubSonic als ORM.

Ich vermute, dass das Problem auf eine geplante Aufgabe zurückzuführen ist, die alle paar Minuten läuft und auf die Datenbank zugreift. Wenn ich mir die "Aktuelle Aktivität" von SQL Server 2000 ansehe, sehe ich, dass dies der Fall ist:

  • 100 Prozesse mit dem Status "schlafend"
  • 100 Schlösser

Die 100 Prozesse sind von der Anwendung ".Net SqlClient Data Provider" und der Befehl lautet "AWAITING COMMAND".

Ich vermute also, dass dies das Problem ist aber wie kann ich es beheben? Klingt das nach einem Deadlock-Zustand in der Datenbank? Sobald ich

c:\> iisrestart

ist (für eine Weile) alles in Ordnung.

Danke - ich bin noch nie mit so etwas konfrontiert worden und weiß nicht, wie ich am besten vorgehen soll.

Michael

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X