Sto cercando di effettuare una chiamata a un processo molto pesante. La durata media del lavoro è stimata in 9-10 minuti.Java: timeout timeout socket socket
Quando sto l'esecuzione del processo, ho impostato il timeout per un numero ridicolmente enorme: 99999999.
Dopo 2 minuti, ottengo il seguente errore:
java.net.SocketTimeoutException: Read timed out
ho cercato di pasticciare con ancora un po ', e ho impostato il timeout a 3000, e dopo 3 secondi come anticipato ho ottenuto lo stesso errore.
Avete qualche idea sul motivo per cui socket.setSoTimeout(99999999)
lo imposta su 120000 max?
Questo metodo passa al sistema operativo in modo che il comportamento di questo metodo dipenda dal tuo sistema operativo. Quale versione del sistema operativo stai usando? –
Hai provato a inviare messaggi keep-alive o hai "richiamato" il processo una volta completato, invece di tenere aperto un socket per anni? – Thor84no
Sembra che il sistema operativo rifiuti semplicemente il tuo valore perché se è fuori portata. Vorrei provare a giocare con valori più alti ma non così alti (lo stai impostando su più di 27 ore). ad esempio 3 minuti, 5 minuti, 10 minuti. – SJuan76