업데이트 처리 중 오류 발생

<ph type="x-smartling-placeholder"></ph> 현재 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 = []}

가능한 원인

이 오류의 원인은 여러 가지가 있을 수 있습니다. 다음은 몇 가지 원인입니다.

원인 세부정보 대상:
메모리 부족 메시지 프로세서의 Java 힙 공간 부족으로 API 프록시 배포됨 있습니다 프라이빗 클라우드 사용자
API 프록시 번들의 오류 API 프록시 번들에 API 프록시 배포 실패를 초래할 수 있는 오류가 있습니다. 프라이빗 및 퍼블릭 클라우드 사용자

먼저 시도해 볼 수 있는 일반적인 단계

  1. 메시지 프로세서에 배포 오류 또는 예외 스택 트레이스가 있는지 확인 로그 /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log 드림
  2. 일반적으로 배포 원인에 대한 정보를 제공하는 스택 트레이스가 표시됩니다. 오류가 발생했습니다. 스택 트레이스를 꼼꼼히 읽어보고 원인을 파악하세요.

메모리 부족

진단

참고: Edge 프라이빗 클라우드 사용자만 다음 단계를 수행할 수 있습니다. 만약 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. Caused by: java.lang.OutofMemoryError: Java Heap space 는 메시지 프로세서가 Java 힙 공간이 부족함을 나타냅니다.

해상도

참고: Edge 프라이빗 클라우드 사용자만 다음 단계를 수행할 수 있습니다. 만약 Edge Public Cloud를 사용하는 경우 Apigee 지원팀에 문의하세요.

메시지 프로세서의 최대 Java 힙 공간을 늘립니다.

최대 Java 힙 공간은 JVM 속성 -Xmx에 의해 제어됩니다. 다음 단계를 따르세요. 메시지 프로세서의 Java 힙 공간 늘리기:

  1. Java 힙 공간을 늘릴 수 있는 메모리 양을 확인합니다. <ph type="x-smartling-placeholder">
      </ph>
    1. 파일에서 최대 힙 공간 max_mem에 설정된 현재 값 확인 /opt/apigee/edge-message-processor/bin/setenv.sh
    2. MemTotal (사용 가능한 총 RAM 양), MemFree 가져오기 를 사용하여 (시스템에서 사용되지 않는 물리적 RAM의 크기) /proc/meminfo 명령어에 추가하도록 지정합니다.
      1. 위 정보에 다른 프로세스에서 소비한 메모리가 포함되어 있는지 확인하세요. 동일한 시스템에 존재하는 에지 라우터 등과 같은 내부 IP 주소를 사용합니다
      2. 위의 정보를 바탕으로 Java 힙 공간의 크기를 결정하세요. 증가했습니다.
      3. 예를 들어, 메시지 프로세서의 현재 최대 힙 공간은 1024MB입니다. 메모리 총합은 8GB (8,192MB), MemFree는 5GB (5,120MB)입니다. 5GB의 경우 최대 Java 최대 3GB (3,072MB)의 힙 공간을 제공합니다.
      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. 메시지 프로세서가 2개 이상인 경우 모든 기기에서 3~6단계를 메시지 프로세서.

문제가 계속되면 Apigee에 문의 지원.

API 프록시 번들에 오류가 발생했습니다.

API 프록시에서 사용된 정책에 오류가 있는 경우 배포가 'Unexpected error occurred while processing the updates' 오류와 함께 실패합니다.

예를 보려면 다음을 참조하세요. 커뮤니티 게시물을 확인해 주세요.

진단

참고: Edge 프라이빗 클라우드 사용자만 다음 단계를 수행할 수 있습니다. 만약 Edge Public Cloud를 사용하는 경우 Apigee 지원팀에 문의하세요.

  1. 메시지 프로세서 로그에서 API 프록시와 관련된 예외 또는 오류를 확인합니다. 배포할 수 있습니다 오류는 API 프록시에서 변경해야 하는 사항에 대한 정보를 제공합니다. 문제를 해결할 수 있습니다
  2. 메시지 프로세서 로그에 오류 메시지가 표시되지 않으면 버전의 차이점을 확인합니다. API 프록시 기록입니다. 이전 버전이 문제 없이 배포된다면 어떤 코드를 검토 확인할 수 있습니다.

해상도

  1. API 프록시 번들에서 필요한 사항을 변경하여 문제를 해결합니다.
  2. 배포에 문제가 발생한 코드 변경사항을 API 프록시로 되돌립니다.

문제가 지속되면 Apigee 지원팀에 문의하세요. 도움이 될 것입니다.