Mailinglisten-Archive |
"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