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

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

Симптом

Развертывание версий прокси-сервера 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 = []}

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

У этой ошибки может быть много разных причин. Вот несколько примеров причин:

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

Общие шаги, которые стоит попробовать в первую очередь

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

Недостаточно памяти

Диагностика

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

  1. Вы можете увидеть исключение, подобное тому, которое есть в журнале процессора сообщений /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. Сообщение «Вызвано: java.lang.OutofMemoryError: пространство кучи Java» указывает на то, что в процессоре сообщений закончилось пространство кучи Java.

Разрешение

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

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

Максимальное пространство кучи Java контролируется свойством JVM -Xmx. Вот шаги по увеличению пространства кучи Java на процессорах сообщений:

  1. Определите объем памяти, на который можно увеличить пространство кучи Java:
    1. Проверьте текущий набор значений максимального пространства кучи, max_mem, в файле /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Получите MemTotal (общий объем полезной оперативной памяти), MemFree (объем физической оперативной памяти, оставшейся неиспользованной в системе), используя команду /proc/meminfo в системе.
      1. Убедитесь, что приведенная выше информация включает память, потребляемую любыми другими процессами, такими как Edge Router и т. д., которые существуют в той же системе.
      2. На основании приведенной выше информации определите, насколько можно увеличить пространство кучи Java для процессора сообщений.
      3. Например, текущий максимальный размер кучи процессора сообщений составляет 1024 МБ, MemTotal — 8 ГБ (8192 МБ), MemFree — 5 ГБ (5120 МБ), затем вы можете увеличить максимальный размер кучи Java до 3 ГБ (3072 МБ).
      4. Если необходима помощь в определении размера кучи Java, обратитесь в службу поддержки Apigee .
  2. Создайте следующий файл, если он еще не существует:
    /opt/apigee/customer/application/message-processor.properties
  3. Добавьте в файл следующую строку с увеличенной настройкой кучи (например, 3072M):
    bin_setenv_max_mem=3072m
  4. Сохраните файл.
  5. Перезапустите процессор сообщений:
    /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 Public Cloud, обратитесь в службу поддержки Apigee .

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

Разрешение

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

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