Error de tiempo de espera

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Síntoma

La implementación de revisiones del proxy de API a través de la IU de Edge o la API de Management falla y se agota el tiempo de espera .

Mensajes de error

Click to change deployment status. 
The revision is deployed and traffic can flow, but flow may be impaired. 
Error: Call timed out; either server is down or server is not reachable

Causas posibles

Las causas típicas de este problema son las siguientes:

Causa Detalles Para
Problema de conectividad de red Falla de comunicación entre el servidor de administración y el procesador de mensajes debido a la red problemas de conectividad o reglas de firewall. Solo usuarios de nubes privadas
Paquete de proxy de API grande Message Processor puede tardar mucho tiempo en activarse si el paquete del proxy de API es grande lo que genera tiempos de espera de RPC. Usuarios de nubes privadas y públicas

Problema de conectividad de red

Nota: Solo los usuarios de la nube privada perimetral pueden realizar los siguientes pasos. Si están en la nube pública de Edge, comunícate con el equipo de asistencia de Apigee Edge.

Diagnóstico

  1. Obtén el estado de implementación de la API específica que muestra el error mediante el siguiente comando: llamada a la API de Management:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
    

    Resultado de muestra que muestra el error:

    { 
                    "error": "Call timed out; either server is down or server is not reachable", 
                    "status": "error", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "204e2b7e-52f7-46d9-b458-20f9bfb51e6d" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "uUID": "967e63c6-ee95-47c0-9608-f4a32638fb1e" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "state" : "error"
                    } 
    

    El resultado de ejemplo anterior muestra que el error ocurrió en uno de los procesadores de mensajes. con el UUID “ebbc1078-cbde-4a00-a7db-66a3c1b2b748”.

  2. Según el resultado del estado de implementación de tu proxy de API, accede a cada uno de los Procesadores con el UUID correspondiente que mostró el error y realicen los siguientes pasos:
    1. Verifica si el Message Processor está escuchando en el puerto 4528:
      netstat -an | grep LISTEN | grep 4528
      

      Si el Message Processor no está escuchando en el puerto 4528, reinicia el mensaje Procesador:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    2. Vuelve a verificar el estado de implementación del proxy de API con la llamada a la API de administración que se muestra. en el paso 1. Si no hay errores, significa que el problema se resolvió.
  3. Si el problema persiste, prueba la conectividad del servidor de administración al mensaje en el puerto 4528 con los siguientes pasos:
    1. Si Telnet está disponible, utilízalo:
      telnet <MessageProcessor_IP> 4528
      
    2. Si Telnet no está disponible, úsalo para verificar la conectividad de la siguiente manera:
      nc -vz <MessageProcessor_IP> 4528
      
    3. Si obtienes la respuesta “Connection ReArtículo”, haz lo siguiente: o “Se agotó el tiempo de espera de la conexión”, a tu equipo de operaciones de red.
  4. Probar la conectividad del procesador de mensajes al servidor de administración en el puerto 4526 siguiendo estos pasos:
    1. Si Telnet está disponible, utilízalo:
      telnet <management-server-IP> 4526
      
    2. Si Telnet no está disponible, úsalo para verificar la conectividad de la siguiente manera:
      nc -vz <management-server-IP> 4526 
      
    3. Si obtienes la respuesta “Connection ReArtículo”, haz lo siguiente: o “Se agotó el tiempo de espera de la conexión”, interactúa con tu de operaciones de red.
  5. Trabaja con tu equipo de operaciones de red y haz lo siguiente:
    1. Asegúrate de que el protocolo RPC esté permitido en el servidor de administración y en el mensaje Procesador.
    2. Quita las restricciones de firewall o las reglas de seguridad configuradas entre los servidores de administración. y procesadores de mensajes para permitir la conectividad con el puerto 4526 en el servidor de administración, y entre el servidor de administración y los procesadores de mensajes del puerto 4528.
  6. Vuelve a verificar el estado de la implementación (consulta el paso 1 anterior). Si no ves ningún error, significa que el error se resolvió.
  7. Si el problema persiste, verifica si hay un problema de red en el Message Processor. Si hay un problema de red, reiniciar el procesador de mensajes específico que muestra el error de tiempo de espera (según el resultado del estado de la implementación) puede solucionar el problema:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  8. Si el problema persiste, comprueba los registros del servidor de administración en: (/opt/apigee/var/log/edge-management-server/logs/system.log).

    Ejemplo de error de tiempo de espera de llamada agotado del registro del servidor de administración

    2016-05-17 09:29:56,448 org:myorg env:prod qtp281969267-360792 ERROR DISTRIBUTION - RemoteServicesConfigEventHandler.configureServers() : exception for server with uuid e1381db7-d83b-4752-ae04-2de33f07e555 : cause = RPC Error 504: Call timed out communication error = true 
            com.apigee.rpc.RPCException: Call timed out 
            at com.apigee.rpc.impl.AbstractCallerImpl.handleTimeout(AbstractCallerImpl.java:64) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.handleTimeout(RPCMachineImpl.java:483) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.access$000(RPCMachineImpl.java:402) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall$1.run(RPCMachineImpl.java:437) ~[rpc-1.0.0.jar:na] 
            at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:532) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:430) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:371) ~[netty-all-4.0.0.CR1.jar:na] 
            at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_79] 
            
    

    Si observas un error similar al que se muestra en el ejemplo anterior, aumenta el porcentaje de RPC el tiempo de espera en el servidor de administración, de modo que, si hay alguna demora en la red, debería dar tiempo para que el Servidor de administración se conecte con el Procesador de mensajes.

Solución

Nota: Solo los usuarios de la nube privada perimetral pueden realizar los siguientes pasos. Si están en la nube pública de Edge, comunícate con el equipo de asistencia de Apigee Edge.

  1. Realiza los siguientes pasos para aumentar el tiempo de espera de RPC:
    1. Crea el archivo /opt/apigee/customer/application/management-server.properties el administrador una máquina de servidor, si es que no existe.
    2. Agrega la siguiente línea a este archivo:
      conf_cluster_rpc.connect.timeout=<time in seconds>
      

      El valor predeterminado del tiempo de espera de RPC es 10 y se recomienda aumentarlo a 40 segundos. Configúralo de la siguiente manera:

      conf_cluster_rpc.connect.timeout=40
      
    3. Asegúrate de que este archivo sea propiedad de Apigee:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
      
    4. Reinicia el servidor de administración:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
      
    5. Si tienes más de un servidor de administración, repite los pasos anteriores en todos los de Google Cloud.
    6. Implementa el proxy de la API en la IU de Edge o mediante la llamada a la API de Edge Management. Si el botón El proxy de API se implementa sin problemas, lo que indica que el problema se resolvió.
  2. Si el problema persiste, recopila tcpdump del servidor de administración y el procesador de mensajes. Habilita tcpdump en cada uno de los servidores y, luego, iniciar la implementación del proxy de API desde la IU o con la API de Management:
    1. Ejecuta el siguiente comando tcpdump desde el servidor de administración:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
      
    2. Ejecuta el siguiente comando tcpdump desde el procesador de mensajes:
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
      
    3. Comunícate con el equipo de asistencia de Apigee Edge para obtener ayuda analizar los tcpdumps y solucionar más el problema.

Grande Paquete de proxy de API

Diagnóstico

  1. Verifica el tamaño del paquete del proxy de API para el que se muestra el error de implementación observadas.
  2. Si el tamaño es razonablemente grande (10 MB o más), es muy probable que el elemento Es posible que el procesador necesite más tiempo para activar el proxy de API.
  3. Si el tamaño del paquete del proxy de API es superior a 15 MB, proceder con . Paquete de proxy de API superior a 15 MB

Solución

Nota: Solo los usuarios de la nube privada perimetral pueden realizar los siguientes pasos. Si están en la nube pública de Edge, comunícate con el equipo de asistencia de Apigee Edge.

Aumenta el tiempo de espera de RPC en el servidor de administración para que el procesador de mensajes tenga tiempo suficiente y activar paquetes grandes de proxy de API. Realiza los siguientes pasos para aumentar el tiempo de espera de RPC valor:

  1. Crea el archivo /opt/apigee/customer/application/management-server.properties en la máquina del servidor de administración si aún no existe.
  2. Agrega la siguiente línea a este archivo:
    conf_cluster_rpc.connect.timeout=<time in seconds>
    

    El valor predeterminado del tiempo de espera de RPC es 10 y se recomienda aumentarlo a 40 segundos. Configúralo de la siguiente manera:

    conf_cluster_rpc.connect.timeout=40
    
  3. Asegúrate de que este archivo sea propiedad de Apigee:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    
  4. Reinicia el servidor de administración:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. Si tienes más de un servidor de administración, repite los pasos anteriores en todos los Servidores.

Si el problema persiste, comunícate con el equipo de asistencia de Apigee Edge para asistencia adicional.