Apigee Edge 문서입니다.
Go to the
Apigee X documentation. info
증상
Edge UI 또는 Edge Management 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 = []}가능한 원인
이 오류는 여러 가지 원인으로 인해 발생할 수 있습니다. 다음은 몇 가지 샘플 원인입니다.
| 원인 | 세부정보 | 범위: |
| 메모리 부족 | 메시지 프로세서에 Java 힙 공간이 부족하여 API 프록시 배포가 실패했습니다. | 프라이빗 클라우드 사용자 |
| API 프록시 번들 오류 | API 프록시 번들에 API 프록시 배포 실패로 이어질 수 있는 오류가 있습니다. | 프라이빗 및 퍼블릭 클라우드 사용자 |
먼저 시도해 볼 수 있는 일반적인 단계
- 메시지 프로세서
로그
/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 힙 공간을 늘립니다.
최대 Java 힙 공간은 JVM 속성 -Xmx에 의해 제어됩니다. 다음은 메시지 프로세서에서 Java 힙 공간을 늘리는 단계입니다.
- Java 힙 공간을 늘릴 수 있는 메모리 양을 확인합니다.
- `/opt/apigee/edge-message-processor/bin/setenv.sh` 파일에서 최대 힙 공간 max_mem에 설정된 현재 값을 확인합니다.
/opt/apigee/edge-message-processor/bin/setenv.sh - 시스템에서
/proc/meminfo 명령어를 사용하여 MemTotal (사용 가능한 총 RAM 양), MemFree
(시스템에서 사용되지 않은 실제 RAM 양)를 가져옵니다.
- 위의 정보에는 동일한 시스템에 있는 Edge 라우터 등 다른 프로세스에서 사용하는 메모리가 포함되어야 합니다.
- 위의 정보를 바탕으로 메시지 프로세서의 Java 힙 공간을 늘릴 수 있는 양을 확인합니다.
- 예를 들어 메시지 프로세서의 현재 최대 힙 공간이 1024MB이고 MemTotal이 8GB (8192MB), MemFree가 5GB (5120MB)인 경우 최대 Java 힙 공간을 3GB (3072MB)로 늘릴 수 있습니다.
- Java 힙 공간을 늘릴 양을 결정하는 데 도움이 필요하면 Apigee 지원팀에 문의하세요.
- `/opt/apigee/edge-message-processor/bin/setenv.sh` 파일에서 최대 힙 공간 max_mem에 설정된 현재 값을 확인합니다.
- 다음 파일이 아직 없는 경우 만듭니다.
/opt/apigee/customer/application/message-processor.properties
- 늘어난 힙 설정 (예: 3072M)으로 파일에 다음 줄을 추가합니다.
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 지원팀에 문의하여 추가 지원을 받으세요.