Erreur de délai avant expiration

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Symptôme

Le déploiement des révisions de proxy d'API via l'interface utilisateur Edge ou l'API de gestion échoue avec un délai d'inactivité .

Messages d'erreur

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

Causes possibles :

Les causes courantes de ce problème sont les suivantes:

Cause Détails Pour
Problème de connectivité réseau Échec de la communication entre le serveur de gestion et le processeur de messages en raison du réseau les problèmes de connectivité ou les règles de pare-feu. Utilisateurs de cloud privé uniquement
Grand groupe de proxys d'API L'activation du processeur de messages peut prendre beaucoup de temps si le groupe de proxys d'API est volumineux ce qui entraîne des délais avant expiration des RPC. Utilisateurs de cloud privé et public

Problème de connectivité réseau

Remarque:Seuls les utilisateurs de cloud privé Edge peuvent effectuer les étapes suivantes. Si vous sont sur Edge Public Cloud, contactez l'assistance Apigee Edge.

Diagnostic

  1. Obtenez l'état du déploiement pour l'API spécifique qui affiche l'erreur à l'aide de la commande suivante : de l'API Management:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
    

    Exemple de résultat montrant l'erreur:

    { 
                    "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"
                    } 
    

    L'exemple de résultat ci-dessus montre que l'erreur s'est produite sur l'un des processeurs de messages comportant l'UUID "ebbc1078-cbde-4a00-a7db-66a3c1b2b748".

  2. Selon le résultat de l'état de déploiement de votre proxy d'API, connectez-vous à chacun des Les processeurs avec l'UUID correspondant qui a affiché l'erreur et effectuent les étapes suivantes: <ph type="x-smartling-placeholder">
      </ph>
    1. Vérifiez si le processeur de messages écoute sur le port 4528:
      netstat -an | grep LISTEN | grep 4528
      

      Si le processeur de messages n'écoute pas sur le port 4528, redémarrez les Processeur:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    2. Revérifiez l'état du déploiement du proxy d'API à l'aide de l'appel d'API de gestion affiché. comme indiqué à l'étape 1 ci-dessus. S'il n'y a pas d'erreur, cela signifie que le problème est résolu.
  3. Si le problème persiste, testez la connectivité entre le serveur de gestion et le serveur de messagerie. sur le port 4528 en procédant comme suit: <ph type="x-smartling-placeholder">
      </ph>
    1. Si telnet est disponible, utilisez Telnet:
      telnet <MessageProcessor_IP> 4528
      
    2. Si telnet n'est pas disponible, utilisez netcat pour vérifier la connectivité comme suit:
      nc -vz <MessageProcessor_IP> 4528
      
    3. Si vous obtenez la réponse "Connexion refusée" ou "Expiration du délai de connexion", votre équipe chargée des opérations réseau.
  4. Tester la connectivité entre le processeur de messages et le serveur de gestion sur le port 4526 en procédant comme suit: <ph type="x-smartling-placeholder">
      </ph>
    1. Si telnet est disponible, utilisez Telnet:
      telnet <management-server-IP> 4526
      
    2. Si telnet n'est pas disponible, utilisez netcat pour vérifier la connectivité comme suit:
      nc -vz <management-server-IP> 4526 
      
    3. Si vous obtenez la réponse "Connexion refusée" ou "Connection timed out" (Expiration de la connexion), déclenchez votre de l'équipe des opérations réseau.
  5. Collaborez avec l'équipe chargée des opérations réseau et effectuez les opérations suivantes: <ph type="x-smartling-placeholder">
      </ph>
    1. Assurez-vous que le protocole RPC est autorisé à la fois sur le serveur de gestion et sur les messages Processeur.
    2. Supprimez toutes les restrictions de pare-feu ou les règles de sécurité configurées entre les serveurs de gestion. et les processeurs de messages pour permettre la connectivité au port 4526 sur le serveur de gestion, et la connectivité entre le serveur de gestion et les processeurs de messages sur le port 4528.
  6. Vérifiez à nouveau l'état du déploiement (voir l'étape 1 ci-dessus). Si aucune erreur ne s'affiche, cela indique que l'erreur est résolue.
  7. Si le problème persiste, vérifiez s'il y a un problème de réseau sur le processeur de messages. S'il y a un problème de réseau, le redémarrage du processeur de messages spécifique qui affiche l'erreur de délai d'inactivité (conformément à le résultat de l'état du déploiement) peut résoudre le problème:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  8. Si le problème persiste, consultez les journaux du serveur de gestion à l'adresse: (/opt/apigee/var/log/edge-management-server/logs/system.log).

    Exemple d'erreur "Call timed out" (Expiration du délai d'appel) dans le journal du serveur de gestion

    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 vous observez une erreur semblable à celle illustrée dans l'exemple ci-dessus, augmentez le RPC sur le serveur de gestion. Ainsi, en cas de ralentissement du réseau, il devrait donner le temps que le serveur de gestion se connecte au processeur de messages.

Solution

Remarque:Seuls les utilisateurs de cloud privé Edge peuvent effectuer les étapes suivantes. Si vous sont sur Edge Public Cloud, contactez l'assistance Apigee Edge.

  1. Procédez comme suit pour augmenter le délai avant expiration de RPC: <ph type="x-smartling-placeholder">
      </ph>
    1. Créer le fichier /opt/apigee/customer/application/management-server.properties la direction Serveur, si ce n'est pas déjà fait.
    2. Ajoutez la ligne suivante à ce fichier:
      conf_cluster_rpc.connect.timeout=<time in seconds>
      

      La valeur par défaut du délai avant expiration de RPC est 10 et il est recommandé de l'augmenter à 40. secondes. Définissez-la comme suit:

      conf_cluster_rpc.connect.timeout=40
      
    3. Assurez-vous que ce fichier appartient à Apigee:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
      
    4. Redémarrez le serveur de gestion:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
      
    5. Si vous disposez de plusieurs serveurs de gestion, répétez les étapes ci-dessus sur tous les Serveurs de gestion.
    6. Déployez le proxy d'API dans l'interface utilisateur Edge ou à l'aide de l'appel d'API de gestion Edge. Si le Le proxy d'API est déployé sans problème, ce qui indique que le problème est résolu.
  2. Si le problème persiste, collectez les <ph type="x-smartling-placeholder"></ph> tcpdump du serveur de gestion et du processeur de messages. Activer tcpdump sur chacun des serveurs, puis lancer le déploiement du proxy d'API à partir de l'UI ou à l'aide de l'API de gestion: <ph type="x-smartling-placeholder">
      </ph>
    1. Exécutez la commande tcpdump ci-dessous à partir du serveur de gestion:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
      
    2. Exécutez la commande tcpdump ci-dessous à partir du processeur de messages:
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
      
    3. Contactez l'assistance Apigee Edge pour obtenir de l'aide sur analyser les tcpdumps et résoudre le problème davantage.

Grande Groupe de proxys d'API

Diagnostic

  1. Vérifiez la taille du groupe de proxys d'API pour lequel l'erreur de déploiement se produit. observée.
  2. Si elle est assez grande (10 Mo ou plus), il est très probable Le processeur a peut-être besoin de plus de temps pour activer le proxy d'API.
  3. Si la taille du groupe de proxys d'API est supérieure à 15 Mo, passez à la section Bundle de proxy d'API de plus de 15 Mo.

Solution

Remarque:Seuls les utilisateurs de cloud privé Edge peuvent effectuer les étapes suivantes. Si vous sont sur Edge Public Cloud, contactez l'assistance Apigee Edge.

Augmentez le délai avant expiration RPC sur le serveur de gestion afin que le processeur de messages dispose d'assez de temps pour activer des groupes de proxys d'API volumineux. Procédez comme suit pour augmenter le délai avant expiration du RPC :

  1. Créer le fichier /opt/apigee/customer/application/management-server.properties sur la machine du serveur de gestion, s'il n'existe pas déjà.
  2. Ajoutez la ligne suivante à ce fichier:
    conf_cluster_rpc.connect.timeout=<time in seconds>
    

    La valeur par défaut du délai avant expiration de RPC est 10 et il est recommandé de l'augmenter à 40 secondes. Définissez-la comme suit:

    conf_cluster_rpc.connect.timeout=40
    
  3. Assurez-vous que ce fichier appartient à Apigee:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    
  4. Redémarrez le serveur de gestion:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. Si vous disposez de plusieurs serveurs de gestion, répétez les étapes ci-dessus pour toutes les instances Serveurs.

Si le problème persiste, contactez l'assistance Apigee Edge pour une assistance supplémentaire.