HOWTO · Java

Java.Net.SocketTimeoutException: Tiempo de espera de lectura agotado en Tomcat

El tutorial de hoy discutirá las posibles razones y soluciones para java.net.SocketTimeoutException: lectura agotada en Tomcat en Java.

En esta página

El tutorial de hoy discutirá las posibles razones y soluciones para la excepción java.net.SocketTimeoutException: lectura agotada en Tomcat en Java.

java.net.SocketTimeoutException: Lectura agotada

java.net.SocketTimeoutException: Tiempo de espera de lectura agotado ocurre cuando el servidor intenta leer datos de la solicitud; sin embargo, los datos del cliente tardan mucho más tiempo del permitido. La opción tiempo de espera puede tener un valor predeterminado del desarrollador preestablecido para las actividades del cliente y del servidor.

Causas de java.net.SocketTimeoutException: Lectura agotada

Las siguientes son algunas causas potenciales que podrían resultar en “java.net.SocketTimeoutException: Lectura agotada”:

  1. El servidor está intentando leer datos de la solicitud; sin embargo, los datos del cliente tardan mucho más que el tiempo especificado en llegar. Tiempo de espera en este contexto a menudo se representa con el conector tomcat -> atributo connectionTimeout.
  2. Cuando hay mucha actividad simultánea, este error puede ocurrir si la función keepalive está activada.
  3. Ocurre si no llegan datos antes de que expire el tiempo de espera.
  4. Cuando el servidor tiene un rendimiento lento.

Solución a java.net.SocketTimeoutException: lectura agotada

  1. La modificación del archivo de contexto .xml y la definición CONECTOR, que controla la conectividad del navegador de la estación de trabajo con el servidor Tomcat, es un enfoque que podría adoptarse para resolver este problema dentro del contexto de la web de Tomcat. solicitud.

  2. Para ser más conciso, ajuste el valor de la propiedad connectionTimeout. Elevar este valor evitará que ocurra la condición de error.

  3. Por ejemplo, tenemos el siguiente archivo .xml que contiene los siguientes datos:

    <Connector executor="tomcat"
    	port="8080" protocol="HTTP/1.1"
    	connectionTimeout="30000"
    	redirectPort="8443" />
    
  4. Para deshabilitar el tiempo de espera de carga y cancelar la configuración de tiempo de espera de conexión de lectura y escritura, podemos agregar disableUploadTimeout= "false".

    <Connector executor="tomcat"
    	port="8080" protocol="HTTP/1.1"
    	connectionTimeout="30000" disableUploadTimeout="false"
    	redirectPort="8443" />
    
  5. También podemos aumentar la vida útil de la conexión incluyendo el parámetro keepAliveTimeout= "200000".

    <Connector executor="tomcat"
    	port="8080" protocol="HTTP/1.1"
    	connectionTimeout="30000"
    	keepAliveTimeout= "200000"
    	redirectPort="8443" />