Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Симптом
Развертывание изменений 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 Proxy содержатся ошибки, которые могут привести к сбою развертывания API Proxy. | Пользователи частных и публичных облачных сервисов |
Основные шаги, которые следует предпринять в первую очередь.
- Проверьте наличие ошибок развертывания или трассировки стека исключений в журнале обработчика сообщений
/opt/apigee/var/log/apigee/edge-message-processor/logs/system.log - Обычно вы видите трассировку стека, которая предоставляет информацию о причине ошибки развертывания. Пожалуйста, внимательно изучите трассировку стека, чтобы понять причину.
Не хватает памяти
Диагноз
Примечание: Следующие действия могут выполнять только пользователи частного облака Edge. Если вы используете публичное облако Edge, обратитесь в службу поддержки Apigee .
- В журнале обработчика сообщений
/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
- Сообщение Caused by: java.lang.OutofMemoryError: Java Heap space указывает на то, что в обработчике сообщений закончилось место в куче Java.
Разрешение
Примечание: Следующие действия могут выполнять только пользователи частного облака Edge. Если вы используете публичное облако Edge, обратитесь в службу поддержки Apigee .
Увеличьте максимальный объем памяти Java Heap на процессорах сообщений.
Максимальный объем памяти Java Heap контролируется свойством JVM -Xmx. Вот шаги для увеличения объема памяти Java Heap в обработчиках сообщений:
- Определите объем памяти, на который можно увеличить пространство кучи Java:
- Проверьте текущее значение параметра max_mem, установленного для максимального объема памяти кучи, в файле
/opt/apigee/edge-message-processor/bin/setenv.sh - Получите значения MemTotal (общий объем доступной оперативной памяти) и MemFree (объем физической оперативной памяти, не используемой в системе) с помощью команды /proc/meminfo .
- Убедитесь, что приведенная выше информация включает в себя объем памяти, потребляемый любыми другими процессами, такими как Edge Router и т. д., которые находятся в той же системе.
- На основании вышеизложенной информации определите, насколько можно увеличить объем памяти кучи Java для обработчика сообщений.
- Например, текущий максимальный размер кучи в обработчике сообщений составляет 1024 МБ, MemTotal — 8 ГБ (8192 МБ), MemFree — 5 ГБ (5120 МБ), тогда вы можете увеличить максимальный размер кучи Java до 3 ГБ (3072 МБ).
- Если вам нужна помощь в определении необходимого размера для увеличения объема памяти кучи Java, обратитесь в службу поддержки Apigee .
- Проверьте текущее значение параметра max_mem, установленного для максимального объема памяти кучи, в файле
- Если такой файл еще не существует, создайте следующий файл:
/opt/apigee/customer/application/message-processor.properties
- Добавьте в файл следующую строку с увеличенным значением размера кучи (например, 3072 МБ):
bin_setenv_max_mem=3072m
- Сохраните файл.
- Перезапустите обработчик сообщений:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Если у вас несколько обработчиков сообщений, повторите шаги с 3 по 6 для всех обработчиков сообщений.
Если проблема не исчезнет, обратитесь в службу поддержки Apigee .
Ошибка в пакете API-прокси
Если в какой-либо из политик, используемых в API-прокси, обнаружены ошибки, развертывание завершится с ошибкой « Unexpected error occurred while processing the updates ».
Например, посмотрите этот пост в сообществе.
Диагноз
Примечание: Следующие действия могут выполнять только пользователи частного облака Edge. Если вы используете публичное облако Edge, обратитесь в службу поддержки Apigee .
- Проверьте журналы обработчика сообщений на наличие исключений или ошибок, связанных с развертыванием API-прокси. Сообщение об ошибке должно содержать информацию о том, что следует изменить в пакете API-прокси для решения проблемы.
- Если в журналах обработчика сообщений не отображаются сообщения об ошибках, проверьте различия в истории изменений API-прокси. Если более старые версии развертываются без проблем, просмотрите, какие изменения в коде были внесены.
Разрешение
- Для решения проблемы внесите необходимые изменения в пакет API-прокси.
- Отмените все изменения в коде API-прокси, которые создавали проблемы при развертывании.
Если проблема не исчезнет, обратитесь в службу поддержки Apigee за дополнительной помощью.