zunaras
Goto Top

Bei CPU-Last kommt Fehler 80004005 (-2147467259) bei Anmeldung an SQL-Datenbank

Hallo Leute,

ich hoffe, ich schreibe im richtigen Bereich.

Wenn ein Client hohe CPU-Last hat, z.B. beim zippen von Daten oder anderen aufwendigen Berechnungen/Abgleichungen, und es werden Programmmodule starten, die auf die SQL-Datenbank auf dem Server zugreifen, kommt folgende Fehlermeldung.

Die Hauptdatenbank kann nicht geöffnet werden.
80004005 (-2147467259) - Der Anmeldevorgang konnte wegen Verzögerung beim Öffnen der Serververbindung nicht abgeschlossen werden.
Bitte prüfen Sie den ADO Connection String
Provider=SQLNCLI;Data Source=SERVER;Initial Catalog=*Datenbank*;User ID=*username*;password=*;Auto Translate=false;Connect Timeout=30;

Aber bereits laufende Module, die auf die Datenbank zugreifen haben keine Probleme.
Sobald das Zippen oder so vorbei ist, geht es wieder.
Irgendwie kommen die Module nicht mit der Anmeldung zurecht, wenn der Client ausgelastet ist.
Netzwerklast ist evtl. zu vernachlässigen, da diese bei etwa 1% liegt. (also nicht beim zippen, sondern bei einer Abgleichung)
Die Programmmodule liegen alle auf dem Server und werden per Link auf dem Clienten ausgeführt.

Ich habe probiert, die Module per Batch mit hoher Priorität auszuführen. Damit geht es. Allerdings bis zu dem Punkt, wo aus einem Modul ein anderes Modul gestartet wird. Dann läuft dieses wieder mit normaler Priorität. Wird also nicht gestartet.

Das System wurde vor einem Jahr von Access auf SQL umgestellt. Also erst über Access wo die Tabellen mit SQL verbunden wurden, später nur noch SQL. Was auch deutlich schneller wurde.

Sämtliche anderen Programme laufen ohne Probleme.
Tja. Wie kann ich herausfinden, woran es liegt.
Je nach Rechner ist SQLNativeClient Ver.2005.90.3042.00 oder 2005.90.1399.00 installiert.
Netzwerkkartentreiber sind überall aktuell.

Hat evtl. jemand eine Idee, was ich noch austesten kann?

Server 2003 mit SQL Server 2005
Clients sind XP-Prof.
Netzwerk mit Arbeitsgruppe

Viele Grüße
Zunaras

Content-Key: 131787

Url: https://administrator.de/contentid/131787

Printed on: April 20, 2024 at 03:04 o'clock

Member: Snowman25
Snowman25 Dec 16, 2009 at 13:07:49 (UTC)
Goto Top
hi Zunaras,

80004005 (-2147467259) - Der Anmeldevorgang konnte wegen Verzögerung beim Öffnen der Serververbindung nicht abgeschlossen werden.

Da steht doch schon alles...

Beim Anmelden hat der Client nicht schnell genug auf den Server geantwortet --> Folge: Timeout
Lösung: Unter Tools -> Options im DB-Manager sollte es einen 'Login-Timeout' Eintrag geben. Diesen Wert musst du erhöhen


Greetz Snow
Member: Zunaras
Zunaras Dec 16, 2009 at 13:54:22 (UTC)
Goto Top
Hallo und danke für die Antwort,

Mir steht das SQL Server Management Studio zur Verfügung. Dort konnte ich einen Login Timout Eintrag nicht finden.

Im ADO ConnectionString steht Connect Timeout=30; den habe ich auf 50 erhöht.
Aber anscheinend wird der nicht beachtet. nach 20-30 sekunden kommt der Fehler.

Grüße
Zunaras
Member: Pjordorf
Pjordorf Dec 16, 2009 at 13:58:54 (UTC)
Goto Top
Hallo Snow,

was definierst du als "Hohe CPU-Last"?

Vielleicht ist einfach deine Hardware (Client) zu langsam!

Peter
Member: Zunaras
Zunaras Dec 16, 2009 at 14:19:17 (UTC)
Goto Top
Hallo,

ich bin wohl gemeint. face-wink

Hohe CPU-Last also 95-100% durch das zippen oder eben durch rechenintensive Abgleichungen. Backup über Netzwerk. Egal was man nimmt.

Wie gesagt, es betrifft nur die Programme, die sich beim SQL-Server anmelden wollen.
Wenn sie schon laufen, geht währenddessen alles wunderbar.
Alle anderen Programme laufen auch ohne Probleme nebenbei.

Meine Hardware ist:
AMD Athlon 64, 3000+ 1,75 GB Ram

Der Server ist grad mal 10-20% CPU und Netzwerk manchmal bis zu 50% ausgelastet.
Pentium 4, 2,4 Ghz, 3 GB Ram (nicht mehr ganz so aktuell)

Grüße Zunaras
Member: Zunaras
Zunaras Dec 18, 2009 at 06:41:55 (UTC)
Goto Top
Hallo,

ich glaube ich habs nun herausgefunden.

Es gibt noch den Befehl
ADOConnectionTimeout=10
unterhalb des ADO Connection-Strings aus meinem ersten Post
Den Wert habe ich auf 50 erhöht. Nun kommt keine Fehlermeldung mehr.

Dieses ;Connect Timeout=30; hatte keine Funktion.

Viele Grüße
Zunaras