Mises à jour de traitement des erreurs

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Problème constaté

Le déploiement des révisions de proxy d'API via l'interface utilisateur Edge ou les appels d'API de gestion Edge échoue avec l'erreur "Unexpected error occurred while processing the updates".

Messages d'erreur

Error in deployment for environment sit.

The revision is deployed and traffic can flow, but flow may be impared. com.apigee.kernel.exceptions.spi.UncheckedException{ code = messaging.runtime.UpdateFailed, message = Unexpected error occurred while processing the updates, associated contexts = []}

Causes possibles :

Il peut y avoir plusieurs causes différentes à cette erreur. Voici quelques exemples de causes possibles:

Cause Détails Pour
Mémoire insuffisante Le processeur de messages a épuisé l'espace du tas de mémoire Java, ce qui a entraîné l'échec du déploiement du proxy d'API. Utilisateurs du cloud privé
Erreur dans le bundle de proxys d'API Le groupe du proxy d'API comporte des erreurs qui peuvent entraîner l'échec du déploiement du proxy d'API. Utilisateurs des clouds privés et publics

Étapes à suivre en priorité

  1. Vérifiez s'il existe des erreurs de déploiement ou une trace de la pile d'exception dans le journal du processeur de messages /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. Vous voyez généralement une trace de la pile qui fournit des informations sur la cause de l'erreur de déploiement. Veuillez lire attentivement la trace de la pile pour en comprendre la cause.

Mémoire insuffisante

Diagnostic

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

  1. Vous pouvez voir une exception semblable à celle dans le journal du processeur de messages /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log, comme illustré dans la figure ci-dessous :
    Apigee-Main-4 ERROR BOOTSTRAP - RuntimeConfigurationServiceImpl.dispatchToListeners() : RuntimeConfigurationServiceImpl.dispatchToListeners : Error occurred while dispatching the request DeployEvent{organization=‘myorg', application='person-credentials-api', applicationRevision='275', deploymentSpec=basepath=/;env=dev;, deploymentID=null} to com.apigee.application.bootstrap.listeners.MessageProcessorBootstrapListener@5db88cb8
    com.apigee.kernel.exceptions.spi.UncheckedException: Unexpected error occurred while processing the updates
            at com.apigee.entities.AbstractConfigurator.throwUncheckedException(AbstractConfigurator.java:280) ~[config-entities-1.0.0.jar:na]
            at com.apigee.messaging.configuration.MessageProcessorServiceImpl.configure(MessageProcessorServiceImpl.java:665) ~[message-processor-1.0.0.jar:na]
            at com.apigee.application.bootstrap.listeners.MessageProcessorBootstrapListener.configureMessageProcessorService(MessageProcessorBootstrapListener.java:54) ~[application-bootstrap-1.0.0.jar:na]
            at com.apigee.application.bootstrap.listeners.MessageProcessorBootstrapListener.deploy(MessageProcessorBootstrapListener.java:29) ~[application-bootstrap-1.0.0.jar:na]
            …<snipped>
            at com.apigee.application.bootstrap.proto.RuntimeConfig_ConfigRPCService_BlockingSkeleton$1.run(RuntimeConfig_ConfigRPCService_BlockingSkeleton.java:38) [application-bootstrap-1.0.0.jar:na]
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_75]
            at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_75]
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_75]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_75]
            at java.lang.Thread.run(Thread.java:745) [na:1.7.0_75]
    Caused by: java.lang.OutOfMemoryError: Java heap space
    
  2. Le message Caused by: java.lang.OutofMemoryError: Java Heap space indique que le processeur de messages est à court d'espace de tas de mémoire Java.

Résolution

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

Augmentez l'espace de tas de mémoire Java maximal sur les processeurs de messages.

L'espace maximal du tas de mémoire Java est contrôlé par la propriété JVM -Xmx. Voici les étapes à suivre pour augmenter l'espace du tas de mémoire Java sur les processeurs de messages:

  1. Déterminez la quantité de mémoire à partir de laquelle l'espace du tas de mémoire Java peut être augmenté :
    1. Vérifiez la valeur actuelle définie pour l'espace maximal du tas de mémoire (max_mem) dans le fichier /opt/apigee/edge-message-processor/bin/setenv.sh.
    2. Obtenez MemTotal (Quantité totale de RAM utilisable), MemFree (quantité de RAM physique non utilisée sur le système) à l'aide de la commande /proc/meminfo sur le système.
      1. Assurez-vous que les informations ci-dessus incluent la mémoire consommée par tous les autres processus (comme Edge Router, etc.) qui existent sur le même système.
      2. Sur la base des informations ci-dessus, déterminez la quantité d'espace de tas de mémoire Java qui peut être augmentée pour le processeur de messages.
      3. Par exemple, l'espace maximal actuel du tas de mémoire sur le processeur de messages est de 1 024 Mo, MemTotal est de 8 Go (8 192 Mo) et MemFree est de 5 Go (5 120 Mo). Vous pouvez ensuite augmenter l'espace maximal du tas de mémoire Java à 3 Go (3 072 Mo).
      4. Si vous avez besoin d'aide pour déterminer l'augmentation de l'espace du tas de mémoire Java, contactez l'assistance Apigee.
  2. S'il n'existe pas déjà, créez le fichier suivant :
    /opt/apigee/customer/application/message-processor.properties
    
  3. Ajoutez la ligne suivante dans le fichier, avec le paramètre d'augmentation du tas de mémoire (par exemple, 3 072 Mo) :
    bin_setenv_max_mem=3072m
    
  4. Enregistrez le fichier.
  5. Redémarrez le processeur de messages :
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Si vous disposez de plusieurs processeurs de messages, répétez les étapes 3 à 6 sur chacun d'eux.

Si le problème persiste, contactez l'assistance Apigee.

Erreur dans le groupe de proxys d'API

Si des erreurs se produisent dans l'une des règles utilisées dans le proxy d'API, le déploiement échouera avec l'erreur "Unexpected error occurred while processing the updates".

Pour obtenir un exemple, consultez ce post destiné à la communauté.

Diagnostic

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

  1. Recherchez les exceptions ou les erreurs liées au déploiement du proxy d'API dans les journaux du processeur de messages. L'erreur doit vous donner des informations sur ce qui doit être modifié dans le groupe de proxys d'API pour résoudre le problème.
  2. Si aucun message d'erreur ne s'affiche dans les journaux du processeur de messages, vérifiez les différences dans l'historique des révisions du proxy d'API. Si des révisions plus anciennes sont déployées sans problème, examinez les modifications de code apportées.

Résolution

  1. Apportez les modifications nécessaires au groupe de proxys d'API pour résoudre le problème.
  2. Annulez toutes les modifications de code apportées au proxy d'API qui posaient problème pour le déploiement.

Si le problème persiste, contactez l'assistance Apigee pour obtenir de l'aide.