Se produjo un error cuando se procesaban las actualizaciones

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

Síntoma

La implementación de las revisiones del proxy de API a través de la IU de Edge o las llamadas a la API de administración de Edge 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 causas diferentes. Estos son algunos ejemplos:

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

Pasos comunes para probar primero

  1. Verifica si hay errores de Deployment o un seguimiento de pila de excepciones en el registro del Message Processor log /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 el seguimiento de pila detenidamente para comprender la causa.

No hay memoria suficiente

Diagnóstico

Nota: Solo los usuarios de Edge para la nube privada pueden realizar los siguientes pasos. Si usas Edge para la nube pública, comunícate con la Asistencia de Apigee.

  1. Es posible que veas una excepción similar a la del registro del Message Processor /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log 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 Heap space indica que el Message Processor se quedó sin espacio de montón de Java.

Solución

Nota: Solo los usuarios de Edge para la nube privada pueden realizar los siguientes pasos. Si usas Edge para la nube pública, comunícate con la Asistencia de Apigee.

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

La propiedad -Xmx de JVM controla el espacio máximo de montón de Java. Estos son los pasos para aumentar el espacio de montón de Java en los procesadores de mensajes:

  1. Determina la cantidad de memoria en la que se puede aumentar el espacio de 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 no se usa en el sistema) con el comando /proc/meminfo en el sistema.
      1. Asegúrate de que la información anterior incluya la memoria que consumen otros procesos como el router de Edge, etc., que existen en el mismo sistema.
      2. Según la información anterior, determina en qué medida se puede aumentar el espacio de montón de Java para el Message Processor.
      3. Por ejemplo, el espacio máximo de montón actual en el procesador de mensajes es de 1024 MB, MemTotal es de 8 GB (8192 MB) y MemFree es de 5 GB (5120 MB), por lo que puedes aumentar el espacio máximo de montón de Java a 3 GB (3072 MB).
      4. Si necesitas ayuda para determinar cuánto aumentar el espacio de montón de Java, comunícate con la Asistencia de Apigee.
  2. Crea el siguiente archivo si aún no existe:
    /opt/apigee/customer/application/message-processor.properties
  3. Agrega la siguiente línea al archivo con la configuración de montón aumentada (por ejemplo, 3072M):
    bin_setenv_max_mem=3072m
  4. Guarda el archivo.
  5. Reinicia el procesador de mensajes:
    /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 los Message Processors.

Si el problema persiste, comunícate con la Asistencia de Apigee.

Error en el paquete del proxy de API

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

Por ejemplo, consulta esta publicación de la comunidad.

Diagnóstico

Nota: Solo los usuarios de Edge para la nube privada pueden realizar los siguientes pasos. Si usas Edge para la nube pública, comunícate con la Asistencia de Apigee.

  1. Verifica los registros del Message Processor en busca de excepciones o errores relacionados con la implementación del proxy de API. El error debería proporcionarte información sobre lo que se debe cambiar en el paquete del proxy de API para solucionar el problema.
  2. Si no aparecen mensajes de error en los registros del Message Processor, verifica las diferencias en el historial de revisiones del proxy de API. Si las revisiones anteriores se implementan sin problemas, revisa los cambios de código que se realizaron.

Solución

  1. Realiza los cambios necesarios en el paquete del proxy de API para solucionar el problema.
  2. Revierte los cambios de código al proxy de API que causaron problemas en la implementación.

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