Se produjo un error cuando se procesaban las actualizaciones

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Síntoma

La implementación de revisiones del proxy de la API a través de la IU de Edge o de las llamadas a la API de Edge Management falla con el error “Unexpected error occurred while processing the updates”.

Mensajes de error

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 = []}

Causas posibles

Este error puede deberse a muchas razones. Estos son algunos ejemplos de causas:

Causa Detalles Para
No hay memoria suficiente Message Processor se quedó sin espacio del montón de Java, lo que provocó un error en la implementación del proxy de API. Usuarios de la nube privada
Error en el paquete de proxy de API El paquete del proxy de API tiene errores que pueden provocar un error en la implementación del proxy de API. Usuarios de la nube pública y privada

Pasos comunes para probar primero

  1. Verifica si hay errores de implementación o un seguimiento de pila de excepciones en el registro de Message Processor /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. Por lo general, verás un seguimiento de pila que proporciona información sobre la causa del error de implementación. Lee atentamente el seguimiento de pila para comprender la causa.

No hay memoria suficiente

Diagnóstico

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

  1. Es posible que veas una excepción similar a la que se encuentra en el registro /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log de Message Processor, como se muestra en la siguiente figura:
    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. El mensaje Caused by: java.lang.OutofMemoryError: Java Heapspace indica que Message Processor se quedó sin espacio del montón de Java.

Resolución

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

Aumenta el espacio máximo de montón de Java en los procesadores de mensajes.

El espacio máximo del montón de Java está controlado por la propiedad JVM -Xmx. Estos son los pasos para aumentar el espacio de montón de Java en Message Processor:

  1. Determina la cantidad de memoria en la que se puede aumentar el espacio del montón de Java:
    1. Verifica el valor actual establecido para el espacio máximo de montón, max_mem, en el archivo /opt/apigee/edge-message-processor/bin/setenv.sh.
    2. Obtén MemTotal (cantidad total de RAM utilizable) y MemFree (cantidad de RAM física que queda sin usar en el sistema) con el comando /proc/meminfo en el sistema.
      1. Asegúrate de que la información anterior incluya la memoria consumida por cualquier otro proceso, como Edge Router, entre otros, que exista en el mismo sistema.
      2. En función de la información anterior, determina cuánto espacio de montón de Java se puede aumentar para Message Processor.
      3. Por ejemplo, el espacio máximo de montón actual en Message Processor es de 1,024 MB, el MemTotal es de 8 GB (8,192 MB), MemFree es de 5 GB (5,120 MB) y, luego, puedes aumentar el espacio máximo de montón de Java a 3 GB (3,072 MB).
      4. Si se necesita ayuda para determinar cuánto aumentar el espacio de montón de Java, comunícate con el equipo de asistencia de Apigee.
  2. Crea el siguiente archivo, si es que aún no existe:
    /opt/apigee/customer/application/message-processor.properties
    
  3. Agrega la siguiente línea en el archivo, con la configuración de montón aumentada (por ejemplo, 3072M):
    bin_setenv_max_mem=3072m
    
  4. Guarda el archivo.
  5. Reinicia Message Processor:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Si tienes más de un Message Processor, repite los pasos del 3 al 6 en todos ellos.

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

Error en el paquete de proxy de API

Si hay errores en alguna de las políticas que se usan en el proxy de API, la implementación fallará y mostrará el error “Unexpected error occurred while processing the updates”.

Por ejemplo, consulta esta publicación de Comunidad.

Diagnóstico

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

  1. Consulta los registros de Message Processor para conocer las excepciones o los errores relacionados con la implementación del proxy de la API. El error debería brindarte información sobre lo que debe cambiarse en el paquete de proxy de API para solucionar el problema.
  2. Si no aparecen mensajes de error en los registros de Message Processor, comprueba las diferencias en el historial de revisión del proxy de API. Si las revisiones anteriores se implementan sin un problema, debes revisar qué cambios de código se realizaron.

Resolución

  1. Realiza los cambios necesarios en el paquete de proxy de API para solucionar el problema.
  2. Revierte los cambios de código en el proxy de API que fueron problemáticos para la implementación.

Si el problema persiste, comunícate con el equipo de asistencia de Apigee para obtener más ayuda.