Estoy tratando de hacer una llamada a un proceso de trabajo muy pesado. Su longitud de trabajo promedio se estima en 9-10 minutos.Java: tiempo de espera de lectura de socket excepción
Cuando estoy ejecutando el proceso, establecer el tiempo de espera para un número ridículamente enorme: 99999999.
Después de 2 minutos, me sale el siguiente error:
java.net.SocketTimeoutException: Read timed out
Me trataron de meterse con es algo más, y configuré el tiempo de espera en 3000, y después de 3 segundos como anticipé recibí el mismo error.
¿Tiene alguna idea sobre por qué socket.setSoTimeout(99999999)
lo establece en 120000 max?
Este método se transfiere al sistema operativo, por lo que el funcionamiento de este método depende de su sistema operativo. ¿Qué versión del SO estás usando? –
¿Ha intentado enviar mensajes de mantener vivo o hacer que el proceso lo "llame" de vuelta cuando se haya completado en lugar de mantener un socket abierto durante años? – Thor84no
Parece que el sistema operativo simplemente rechaza su valor porque si está fuera de rango. Intentaría jugar con valores más altos pero no tan altos (lo está configurando en más de 27 horas). v.g., 3 minutos, 5 minutos, 10 minutos. – SJuan76