Pregunta

Una conexión es el tiempo de espera, y el desarrollador en él es en la parte inferior de su lista de ideas.

Los registros tienen un amistoso:

[6/24/10 6:32:34:032 EDT] 0000000d ThreadMonitor W   WSVR0605W: Thread "WebContainer : 136" (0000c53e) has been active for 719542 milliseconds and may be hung.  There is/are 45 thread(s) in total in the server that may be hung.

Y las miradas de código como:

    try {
        final URLConnection connection = url.openConnection();
        connection.setConnectTimeout(CONNECT_TIME_SECONDS * 1000);
        connection.setReadTimeout(READ_TIME_SECONDS * 1000);
        is = connection.getInputStream();
        document = builder.parse(is);
    } catch (SAXException e) {
        log.error(e);
        throw new PageContentException(e);
    } finally {
        if (is != null) {
            is.close();
        }
    }

Mi mejor conjetura es que url.openConnection () está intentando abrir la conexión antes el tiempo de espera de conexión se redujo a algo razonable, pero nada en el API me muestra cómo iba a hacer eso de forma diferente.

Las sugerencias sobre qué probar?

¿Fue útil?

Solución

Me ponía el volcado de hilo y ver donde exactamente se ha pegado. No asuma. A continuación, puede ver por qué es atrapado allí. Si ya tiene el volcado de hilo, por favor, puesto el seguimiento de la pila.

Otros consejos

  

Mi mejor conjetura es que url.openConnection () está intentando abrir la conexión antes de que el tiempo de espera de conexión se redujo a algo razonable, pero nada en los programas de la API de mí el que me gustaría hacer eso de forma diferente.

creo que este es el escenario más probable. Ajuste del tiempo de espera de conexión después de intento de conexión ha comenzado es poco probable que el trabajo, la OMI.

  

Las sugerencias sobre qué probar?

¿Usted ha intentado establecer la propiedad "sun.net.client.defaultConnectTimeout" en las propiedades del sistema? Está documentado aquí .

  

Mi mejor conjetura es que   url.openConnection () está tratando de   abrir la conexión antes de la conexión   tiempo de espera se redujo a algo   razonable.

No. Si ese fuera el caso URLConnection.setConnectionTimeout () sería completamente inútil, ya que no hay manera de llamarlo antes de lo que eres.

Es tal vez debido a la "final". No estoy seguro de por qué usted está poniendo allí, pero creo que la eliminación definitiva debe ayudar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top