java.net.SocketTimeoutException: Read timed out

Ich habe eine Anwendung mit client-server-Architektur. Der client
verwenden von Java Web Start mit Java-Swing /AWT und die sert verwendet HTTP-server /Servlet mit
Tomcat.
Die Kommunikation ist aus der Serialisierung von Objekten, erstellen einer
ObjectOutput ein byte-array serialisiert und an den server senden
jeweils genannt der ObjectInputStream und deserialisiert.

Die Anwendung folgt richtig zu kommunizieren, um eine bestimmte
Zeit der Gleichzeitigkeit, wo beginnen, den Fehler anzeigen
"SocketException read timeout". Der Fehler passiert, wenn der server die Methode aufrufen
ObjectInputStream.getObject() in meinem servlet doPost Methode.

Den tomcat wird kommen, langsam, und die Fehler beginnen zu sinken server-Antwort Zeit, bis der Absturz die Zeit, wo ich muss den server neu starten und danach funktioniert alles.

Ging jemand über dieses problem ?

Client-Code

URLConnection conn =  url.openConnection();
conn.setDoOutput(true);

OutputStream os = conn.getOutputStream();
ObjectOutputStream oss = new ObjectOutputStream(os);

oss.writeUTF("protocol header sample");

oss.writeObject(_parameters);
oss.flush();
oss.close();

Server-Code

ObjectInputStream input = new ObjectInputStream(_request.getInputStream());
String method = input.readUTF();

parameters = input.readObject();

Eingang.readObject() ist, wo der Fehler ist

  • Könnten Sie die post-code?
  • Ist die Menge der Zeit, die vergeht, bevor die SocketException 20 Minuten oder länger? (wenn ich mich Recht erinnere die standard-Zeit, die eine tcp/ip-socket wartet, bevor es mal aus, wenn es keine Verbindung der Aktivität) ? Nachdem alle die Ausnahme ist, sagen Sie "Zeitüberschreitung beim Lesen" könnte auch diese haben etwas zu tun mit der asynchronen Natur des web?
  • Es ist ein linux tcp-parameter? Wie Puffer mem-Größe, max geöffneten Dateien oder andere?
InformationsquelleAutor Rafael Soto | 2010-03-20
Schreibe einen Kommentar