NetConnection.Call.Failed sucedió esporádicamente en Flex3 / Tomcat / BlazeDS / Spring

Tengo un gran problema He escrito una aplicación grande usando Flex3 / Tomcat / BlazeDS / Spring que ha funcionado muy bien mientras se desarrollaba localmente, bien cuando la implementé en un entorno de desarrollo común, pero luego falla muy a menudo cuando se implementa en nuestro entorno de prueba.

Las fallas parecen suceder más cuando una solicitud remota lleva un buen tiempo (más de 20 segundos). En mi servidor de desarrollo, los errores ocurren, pero solo cuando la solicitud tarda mucho tiempo (más de 45 segundos). Sin embargo, el error también ocurre de manera aparentemente instantánea a veces (envía una solicitud y falla inmediatamente). La mayoría de los errores también tienen el estado HTTP: 502 en ellos (Bad Gateway), pero algunos simplemente dicen que HTTP falló.

No he hecho nada especial con BlazeDS que no sea poner el archivo war en el directorio webapps. Se accede a la aplicación a través de https. Las llamadas remotas se refieren al servidor solo por "destino". Los servidores tomcat en nuestras instancias DEV y TEST tienen argumentos Java idénticos (los mismos Xms y Xmx, etc.). A continuación están mis archivos relevantes:

services-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<services-config>
    <services>
        <default-channels>
           <channel ref="my-secure-amf"/>
        </default-channels>
    </services>
    <channels>
        <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
            <endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
            <properties>
                <add-no-cache-headers>false</add-no-cache-headers>
            </properties>
        </channel-definition>
    </channels>
<services-config>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    ...

    <servlet>
        <servlet-name>spring-flex</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/flexContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-flex</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping>
</web-app>

flexContext.xml

<!--
    I have component-scan tags here to scan my class files. The Controller I'm using for flex has an annotation on it to define it as a remote destination. Here it is:
    @Controller
    @RemotingDestination(value = "dest", channels="my-secure-amf")
    public class FlexController {
-->

<bean id="flexExceptionTranslator" class="edu.liberty.zconduct.web.FlexExceptionTranslator" />

<flex:message-broker>
    <flex:exception-translator ref="flexExceptionTranslator"/>
    <!-- <flex:secured /> Had this previously, but it wasn't working then, either -->
</flex:message-broker>

Estoy cerca del final de mi cuerda. El error es un interruptor de la aplicación. Por favor, ayúdame si puedes.

EDITAR Cambié a http y sigo recibiendo el error. Tomcat ahora dice:

ADVERTENCIA: Error al enviar el paquete final

java.net.SocketException: tubería rota

Miro en mi registro de apache jk_mod y veo información de depuración que se parece a la solicitud que envié, y luego lo siguiente:

[depurar] ajp_send_request :: jk_ajp_common.c (1592): Reenviar el cuerpo de la solicitud (432)

[depuración] jk_shutdown_socket :: jk_connect.c (681): a punto de apagar el socket 68

[depuración] jk_shutdown_socket :: jk_connect.c (732): apaga el socket 68 y lee 0 bytes persistentes

[info] ajp_connection_tcp_get_message :: jk_ajp_common.c (1150): (myTestServer) no puede recibir el mensaje de encabezado de respuesta de tomcat, problemas de red o tomcat (xx.xx.xx.xx: xxxx) está inactivo (errno = 11)

[error] ajp_get_reply :: jk_ajp_common.c (1962): (myTestServer) Tomcat está inactivo o se ha rechazado la conexión. No se ha enviado ninguna respuesta al cliente (todavía)

[info] ajp_service :: jk_ajp_common.c (2447): (myTestServer) no se pudo enviar la solicitud a tomcat (recuperable), (intento = 2)

[error] ajp_service :: jk_ajp_common.c (2466): (myTestServer) no se pudo conectar a tomcat.

[debug] ajp_reset_endpoint :: jk_ajp_common.c (743): (myTestServer) restableciendo el punto final con sd = 4294967295 (apagado del socket)

[depuración] ajp_done :: jk_ajp_common.c (2905): ranura de agrupación de conexiones de reciclaje = 0 para el trabajador myTestServer

[info] jk_handler :: mod_jk.c (2615): Error de servicio = 0 para trabajador = myTestServer

Respuestas a la pregunta(1)

Su respuesta a la pregunta