phpbar.de logo

Mailinglisten-Archive

AW: Errror: too many connections

AW: Errror: too many connections

Rene Alpert mysql-de_(at)_lists.bttr.org
Tue, 17 Sep 2002 18:55:18 +0200


"wbh_(at)_euta.net" <wbh_(at)_euta.net> schrieb am 17.09.02 10:24:34:
> >Ich habe das Problem, dass sich der Server mit der oben genannten 
> Fehlermeldung aufhängt(nach mehreren Tausend erfolgreichen >Inserts) , wenn 
> eine Funktion, die prüft ob ein Datensatz schon da ist, ständig in einer 
> Importschleife
> >aufgerufen wird.
> 
> >Der Fehler tritt nur mit einem schnellen Rechner auf(P4 1700).
> >Mit einem P3 500 nicht.
> 
> >Betriebsystem: Windows98
> >ODBC Treiber Version 2.51
> [...]
> >Hat jemand eine Idee oder vielleicht ein ähnliches Problem schon mal 
> gehabt.
> >Vieleicht ist auch was grundsätzlich falsch.
> 
> Hi Rene ,
> 
> Wie der Fehler schon sagt öffnest du zu viel Verbindungen. Ohne deine 
> boolsche Funktion jetzt analysieren zu wollen ist die Sache die, dass der 
> schnelle Rechner einfach zu viele ODBC - Verbindungen gleichzeitig öffnet.
> 
> Abhilfe:
> 
> 1. ODBC - Verbindung permanent öffnen (pconnect o.ä.).
> 
> 2. Wird mit deinem close - Befehl denn wirklich die Verbindung geschlossen 
> und der Prozess beendet?
> 
> 3. Den Befehl hArtikelSet.Open(CArtikelSet::snapshot,SuchBuffer,CArtikel  
> Set::readOnly   ); nicht in dieser function aufrufen, sondern bei der 
> Intitialisierung einmal öffnen. Zwar werd ich aus deinem Code jetzt net 
> ganz schlau, aber ich vermute du öffnest für jeden Datensatz eine eigene 
> ODBC - Verbindung.
> 
> 4. Direkte Verbindung verwenden (mysql.dll). Gibts für einige 
> Programmiersprachen sogar als Quellcode und kann ohne dll eingebunden, 
> sprich kompiliert werden (Betriebssystemübergreifend).
> 
> 5. Schau doch mal mit einem Prozessüberwachungstool bzw. Resourceneditor 
> nach was dein Code mit deiner Maschine macht. Es kann nähmlich auch sein, 
> dass die Verbindung zwar geschlossen, die Resourcen aber nicht freigegeben 
> werden (Beispiel: MS - Word mit formatiertem Serienfax).
> 
> MFG Wolfgang
> 
> Hallo Wolfgang

Es hat tatsächlich am Öffenen und Schliessen des Datensatzes gelegen. Eigentlich sollten die Resourcen mit 
      pSet->Close() 
und anschliessendem
      delete pSet

wieder freigegeben werden. Ist aber offensichtlich doch nicht der Fall.

Wenn die Verbindung offen bleibt(delete pSet erst nach Einlesen aller Records) , tritt der Fehler nicht mehr auf.    

Vielen Dank für deine Hilfe

Gruss Rene 
> 
> ---
> Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
> -->>  http://www.4t2.com/mysql 
> 


______________________________________________________________________________
Nur noch ein E-Mail-Postfach, aber alle alten Adressen behalten? Kein Problem!
WEB.DE FreeMail als Kommunikationszentrale: http://freemail.web.de/?mc=021125

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive