현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동 정보
증상
Edge UI 또는 Edge 관리 API 호출을 통해 API 프록시 버전을 배포할 수 없으며 '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 = []}
가능한 원인
이 오류의 원인은 여러 가지일 수 있습니다. 다음은 몇 가지 원인의 예입니다.
원인 | 세부정보 | 대상 |
메모리 부족 | 메시지 프로세서의 자바 힙 공간이 부족하여 API 프록시 배포에 실패했습니다. | 프라이빗 클라우드 사용자 |
API 프록시 번들의 오류 | API 프록시 번들에 API 프록시 배포 실패를 초래할 수 있는 오류가 있습니다. | 프라이빗 및 퍼블릭 클라우드 사용자 |
처음에 시도할 일반적인 단계
- 메시지 프로세서 로그에서 배포 오류 또는 예외 스택 트레이스가 있는지 확인합니다.
/opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
- 일반적으로 배포 오류의 원인에 대한 정보를 제공하는 스택 트레이스가 표시됩니다. 스택 트레이스를 꼼꼼히 읽고 원인을 파악하세요.
메모리 부족
진단
참고: Edge Private Cloud 사용자만 다음 단계를 수행할 수 있습니다. Edge Public Cloud를 사용하는 경우 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 메시지는 메시지 프로세서의 자바 힙 공간이 부족했음을 나타냅니다.
해상도
참고: Edge Private Cloud 사용자만 다음 단계를 수행할 수 있습니다. Edge Public Cloud를 사용하는 경우 Apigee 지원팀에 문의하세요.
메시지 프로세서의 최대 자바 힙 공간을 늘립니다.
최대 자바 힙 공간은 JVM 속성 -Xmx에 의해 제어됩니다. 메시지 프로세서의 자바 힙 공간을 늘리는 단계는 다음과 같습니다.
- Java 힙 공간을 늘릴 수 있는 메모리 양을 결정합니다.
/opt/apigee/edge-message-processor/bin/setenv.sh
파일에서 최대 힙 공간(max_mem)에 설정된 현재 값을 확인합니다.- 시스템에서
/proc/meminfo 명령어를 사용하여 MemTotal (사용 가능한 총 RAM 크기), MemFree(시스템에서 사용하지 않은 물리적 RAM의 양)를 가져옵니다.
- 위 정보에 동일한 시스템에 있는 다른 프로세스(예: Edge Router 등)에서 사용하는 메모리가 포함되어 있는지 확인하세요.
- 위의 정보를 기반으로 메시지 프로세서의 자바 힙 공간을 얼마나 늘릴 수 있는지 확인합니다.
- 예를 들어 현재 메시지 프로세서의 최대 힙 공간은 1,024MB, MemTotal은 8GB (8,192MB), MemFree는 5GB (5,120MB)입니다. 이 경우 최대 자바 힙 공간을 3GB (3,072MB)로 늘릴 수 있습니다.
- 자바 힙 공간을 얼마나 늘릴지 판단하는 데 도움이 필요한 경우 Apigee 지원팀에 문의하세요.
-
/opt/apigee/customer/application/message-processor.properties
파일이 아직 없다면 만듭니다. - 힙 설정 증가 (예: 3072M)로 파일에 다음 줄을 추가합니다.
bin_setenv_max_mem=3072m
- 파일을 저장합니다.
- 메시지 프로세서를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 메시지 프로세서가 2개 이상 있으면 모든 메시지 프로세서에서 3~6단계를 반복합니다.
문제가 계속되면 Apigee 지원팀에 문의하세요..
API 프록시 번들 오류
API 프록시에 사용된 정책에 오류가 있으면 "Unexpected error occurred while processing the updates
" 오류와 함께 배포가 실패합니다.
예를 들어 이 커뮤니티 게시물을 참조하세요.
진단
참고: Edge Private Cloud 사용자만 다음 단계를 수행할 수 있습니다. Edge Public Cloud를 사용하는 경우 Apigee 지원팀에 문의하세요.
- 메시지 프로세서 로그에서 API 프록시 배포와 관련된 예외나 오류를 확인합니다. 이 오류를 통해 문제를 해결하기 위해 API 프록시 번들에서 변경해야 할 사항에 대한 정보가 제공됩니다.
- 메시지 프로세서 로그에 오류 메시지가 표시되지 않으면 API 프록시의 업데이트 기록 차이를 확인합니다. 이전 버전이 문제 없이 배포되면 적용된 코드 변경사항을 검토합니다.
해상도
- API 프록시 번들에서 필요한 사항을 변경하여 문제를 해결합니다.
- 배포 문제를 일으킨 모든 코드 변경사항을 API 프록시로 되돌립니다.
문제가 계속되면 Apigee 지원팀에 문의하여 추가 지원을 받으세요.