SQLServer: Jede Menge Timeouts
-
Wenn ich am Ende meines C# Programmes ,die Daten aus meinen Programm in die Datenbank schreiben will liefert die Connection sehr häufig TimeOuts beim Öffnen.
Bisher umgehe ich die ,indem ich immer wieder Versuche eine Verbindung herzustellen bis es klappt.Das kann aber aber sehr lange dauern.Hat jemand eine Idee was die TimeOuts verursachen könnte oder weis jemand eine schnelleren Weg trotz Timeout eine Verbindung zukriegen?
-
Ich benutze C++, MFC, CDatabase, CRecordset, ODBC, Oracle.
Bei mir tauchen TimeOuts auf, wenn Anfragen sehr lange dauern.
Ein Hardware-Grund dafür wäre eine schlechte Netzwerkverbindung. Bei diesen Kunden hilft es, direkt im ODBC-Treiber den Haken bei "Enable Query Timeouts" zu setzen.
Ein anderer Grund sind Anfragen, die über sehr viele Datensätze laufen. Da hilft es, einen passende Index in der Tabelle zu setzen.
Ein weiterer Grund sind bei mir Anfragen, die Plausibilitätsprüfungen über mehrere weitere Tabellen ausführen. Da muss ich ab und zu bei meinem CDatabase-Objekt direkt im Quellcode vor der Bearbeitung z.B.
dbObj->SetQueryTimeout(240); // in Sekunden, d.h. hier 4 Minuten
setzen.
-
Ich kriege die Timeouts aber beim öffnen der Verbindung nicht beim ausführen von Abfragen
-
Dann stimmt etwas nicht mit der Datenbank oder du verwendest den POOL und es ist derzeit keine Verbindung frei.
Aus diesem Grund verwende ich den Connectionpool bei mir nicht.
Ein DB-Rechner sollte mal locker 1000 Verbindungen halten können.Du kannst auch den Connectionpool erhöhen oder schauen ob die Verbidnungen auch geschlossen werden damit sie wieder im Pool landen.