ich bekomme laufend (Ok, ab und an mal...) diese Fehlermeldung:
Ich hab absolut keine ahnung woran das liegt, denn 9 von 10 mal kommt sie nicht...
Ich kann mir das nur so erklären das z.B. der Client was anfragt und dann mit ReadLN auf das ergebniss wartet, dieses aber nich schnell genug bekomtm da der Server ausgelastet is oder sonstwas...
Kann ich da irgendwas gegen machen???
Einfach nur mit Try-Except unterdrücken möchte ich diese Meldung keinesfalls!..
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
TimeOuts setzen... habe ich mal gehabt, da fing der server an über 5 Minuten ne Hash einer Datei zu generieren, worauf die clients gelangweilt die verbindung getrennt haben und der server dann geheult hat, weil niemand mehr mit ihm sprechen wollt. Ergo vor solche langen Operation des Timeout erhöhen und hoffen, des man glücklich wird?
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wenn das mit dem Erhöhen des Timeouts nicht klappt, dann würde ich an deiner Stelle zu jedem verbundenen Client permanent ein Keep-Alive-Signal schicken, so daß dieser die Verbindung nicht kappt. Dazu musst du ja nichts weiter tun, als vom Server aus alle paar Sekunden irgendein Datenpacket an den Client zu senden, so dass dieser realisiert das am anderen Ende der Server noch "lebt".Das machen AFAIK z.B. viele FTP-Programme so, damit die Verbindung nicht gekappt wird falls der User längere Zeit nichts tut (hier geschiehts halt nur in der anderen Richtung vom Client zum Server).
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
TIdTCPConnection.ReadTimeout
Auszug aus der Hilfe dazu :
Zitat:
Indicates the milliseconds to wait for a readable connection.
property ReadTimeout: Integer;
Description
ReadTimeout is an Integer property that indicates the number of milliseconds that the connection should wait for the peer connection to become readable using the protocol stack.
ReadTimeout is used in ReadFromStack.
Ob das dein Problem löst wage ich allerdings zu bezweifeln (lass mich allerdings gerne eines Besseren belehren).Probiers mal mit dem Keep-Alive-Signal das ich erwähnt habe...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Der Auszug oben stammt aus der Hilfe zu Version 9 der Indykomponenten.Die neuste Version ist 10(beta), allerdings wird diese (noch) nicht offiziell unterstützt.Die Projekthomepage findet sich hier : <a href='http://www.nevrona.com/Indy' target='_blank'>http://www.nevrona.com/Indy</a>
mhh... ganz 100%ig weg ist die meldung immernochnet ...
Ab und zu kommt sie noch *seufzt*
An so nem Datenpacket kann es auch nicht direkt liegen, denn die Verbindung wird aufgebaut, daten werden hin und hergeschickt und dann wird sie wieder getrennt...
ca. so:
Code:
//Client
Client.Connect;
Client.WriteLN('GibKundenListe');
for i:=0 to Client.ReadInteger do
Client.ReadLN;
Client.Disconnect;
//Server:
with AThread.connection do...
Server.ReadLN;
//Befehl wird verarbeitet.. also z.B. stellt er ne Kundenübersicht zusammen o.Ä.
Server.WriteInteger(x); //Die anzahl der zeilen die folgen
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Kannst du denn einen Hardwarefehler 100%tig ausschließen? Das Problem hatte ich woanders auch schon mal. Da hatte die Netzwerkkarte einen Schuß und hat für kurze Zeiten mal die Vebindungen getötet. Was dafür gesogt hatte, dass die Anwendung abgesemmelt ist. Tritt das Problem denn nur bei einem Rechner auf?
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.