Ошибка при обработке обновлений

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Symptom

Развертывание исправлений прокси-сервера API через интерфейс Edge или вызовы API управления Edge завершается неудачно с ошибкой Unexpected error occurred while processing the updates.

Сообщения об ошибках

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

Возможные причины

Причины могут быть разными. Вот несколько примеров:

Cause Подробнее… Для
Нехватка памяти У Message Processor закончилось место в куче Java, из-за чего не удалось развернуть прокси-сервер API. Пользователи частного облака
Ошибка в пакете прокси API В пакете прокси-сервера API есть ошибки, которые могут привести к сбою при развертывании прокси-сервера API. Пользователи частных и общедоступных облаков

Что можно попробовать сделать в первую очередь

  1. Проверьте, нет ли в журнале Message Processor /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log ошибок развертывания или трассировки стека исключений.
  2. Обычно вы видите трассировку стека, в которой указана причина ошибки развертывания. Чтобы понять причину, внимательно изучите трассировку стека.

Нехватка памяти

диагностика;

Примечание. Следующие шаги могут выполнить только пользователи Edge Private Cloud. Если вы используете общедоступное облако Edge, обратитесь в службу поддержки Apigee.

  1. В журнале Message Processor /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log может появиться исключение, похожее на то, что показано на рисунке ниже.
    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. Сообщение Caused by: java.lang.OutofMemoryError: Java Heap space указывает на то, что у Message Processor закончилось пространство кучи Java.

Разрешение

Примечание. Следующие шаги могут выполнить только пользователи Edge Private Cloud. Если вы используете общедоступное облако Edge, обратитесь в службу поддержки Apigee.

Увеличьте максимальный объем памяти Java Heap на процессорах сообщений.

Максимальный размер кучи Java контролируется свойством JVM -Xmx. Чтобы увеличить размер динамически распределяемой памяти Java на процессорах сообщений, выполните следующие действия:

  1. Определите, на какой объем памяти можно увеличить пространство кучи Java:
    1. Проверьте текущее значение, заданное для параметра max heap space (максимальный размер кучи) или max_mem, в файле /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Получите значения MemTotal (общий объем доступной оперативной памяти) и MemFree (объем физической оперативной памяти, не используемой системой), используя команду /proc/meminfo в системе.
      1. Убедитесь, что в приведенной выше информации указана память, потребляемая любыми другими процессами, например Edge Router, которые существуют в той же системе.
      2. На основе приведенной выше информации определите, на сколько можно увеличить размер кучи Java для Message Processor.
      3. Например, если максимальный размер кучи в процессоре сообщений составляет 1024 МБ, а общий объем памяти – 8 ГБ (8192 МБ), то максимальный размер кучи Java можно увеличить до 3 ГБ (3072 МБ).
      4. Если вам нужна помощь в определении размера кучи Java, обратитесь в службу поддержки Apigee.
  2. Создайте следующий файл, если он ещё не существует:
    /opt/apigee/customer/application/message-processor.properties
  3. Добавьте в файл следующую строку с увеличенным значением размера кучи (например, 3072M):
    bin_setenv_max_mem=3072m
  4. Сохраните файл.
  5. Перезапустите Message Processor:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Если у вас несколько процессоров сообщений, повторите шаги 3–6 для каждого из них.

Если проблема не исчезнет, обратитесь в службу поддержки Apigee..

Ошибка в пакете прокси-сервера API

Если в каком-либо из правил, используемых в прокси-сервере API, есть ошибки, развертывание завершится неудачно с ошибкой "Unexpected error occurred while processing the updates".

Например, посмотрите запись на вкладке "Сообщество".

диагностика;

Примечание. Следующие шаги могут выполнить только пользователи Edge Private Cloud. Если вы используете общедоступное облако Edge, обратитесь в службу поддержки Apigee.

  1. Проверьте журналы Message Processor на наличие исключений или ошибок, связанных с развертыванием прокси-сервера API. В сообщении об ошибке должна быть информация о том, что нужно изменить в пакете прокси-сервера API, чтобы устранить проблему.
  2. Если в журналах Message Processor нет сообщений об ошибках, проверьте различия в истории версий прокси-сервера API. Если более ранние версии развертываются без проблем, проверьте, какие изменения были внесены в код.

Разрешение

  1. Внесите необходимые изменения в пакет прокси-сервера API, чтобы устранить проблему.
  2. Отмените все изменения кода в прокси API, которые вызвали проблемы при развертывании.

Если проблема не исчезнет, обратитесь в службу поддержки Apigee.