Błąd podczas przetwarzania aktualizacji

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Krótki opis problemu

Nie udało się wdrożyć wersji serwera proxy interfejsu API za pomocą interfejsu Edge lub wywołań interfejsu Edge Management API. Pojawia się błąd „Unexpected error occurred while processing the updates”.

Komunikaty o błędach

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 = []}

Możliwe przyczyny

Ten błąd może mieć wiele różnych przyczyn. Oto kilka przykładowych przyczyn:

Przyczyna Szczegóły Dla:
Brak pamięci W procesorze wiadomości zabrakło miejsca na stercie w Javie, co spowodowało błąd wdrożenia serwera proxy interfejsu API. Użytkownicy chmury prywatnej
Błąd w pakiecie API proxy W pakiecie proxy interfejsu API występują błędy, które mogą prowadzić do niepowodzenia wdrożenia serwera proxy interfejsu API. Użytkownicy chmury prywatnej i publicznej

Typowe czynności, które warto wypróbować

  1. Sprawdź, czy w logu /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log procesora wiadomości nie ma żadnych błędów wdrożenia lub zrzutu stosu wyjątków
  2. Zazwyczaj widoczny jest zrzut stosu, który zawiera informacje na temat przyczyny błędu wdrożenia. Dokładnie zapoznaj się ze zrzutem stosu, aby poznać przyczynę.

Brak pamięci

Diagnostyka

Uwaga: poniższe czynności mogą wykonywać tylko użytkownicy Private Cloud Edge. Jeśli korzystasz z Edge Public Cloud, skontaktuj się z zespołem pomocy Apigee.

  1. Możesz zobaczyć wyjątek podobny do tego w logu /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log procesora wiadomości, jak pokazano na ilustracji poniżej:
    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. Komunikat Przyczyna: java.lang.OutofMemoryError: Java Sterta wskazuje, że w procesorze wiadomości skończyło się miejsce na stercie Java.

Rozdzielczość

Uwaga: poniższe czynności mogą wykonywać tylko użytkownicy Private Cloud Edge. Jeśli korzystasz z Edge Public Cloud, skontaktuj się z zespołem pomocy Apigee.

Zwiększ maksymalną ilość miejsca sterty Java w procesorach wiadomości.

Maksymalna przestrzeń sterty Java jest kontrolowana przez właściwość JVM -Xmx. Oto kroki, które trzeba wykonać, aby zwiększyć ilość miejsca sterty Java w procesorach wiadomości:

  1. Określ ilość pamięci, o którą można zwiększyć przestrzeń sterty Java:
    1. Sprawdź bieżącą wartość ustawioną dla maksymalnej przestrzeni sterty (max_mem) w pliku /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Pobierz MemTotal (Łączna ilość użytej pamięci RAM) i MemFree (ilość nieużywanej pamięci fizycznej RAM w systemie) przy użyciu polecenia /proc/meminfo w systemie.
      1. Sprawdź, czy powyższe informacje obejmują pamięć zużywaną przez wszystkie inne procesy, takie jak router brzegowy itp., które istnieją w tym samym systemie.
      2. Na podstawie powyższych informacji określ, o ile można zwiększyć miejsce sterty Java na potrzeby procesora wiadomości.
      3. Na przykład bieżąca maksymalna ilość miejsca sterty w procesorze wiadomości to 1024 MB, MemTotal to 8 GB (8192 MB), MemFree to 5 GB (5120 MB). Następnie możesz zwiększyć je do 3 GB (3072 MB).
      4. Jeśli potrzebujesz pomocy w określeniu, o ile należy zwiększyć miejsce na stercie Java, skontaktuj się z zespołem pomocy Apigee.
  2. Utwórz plik
    /opt/apigee/customer/application/message-processor.properties
    
    , jeśli jeszcze nie istnieje:
  3. Dodaj do pliku ten wiersz z zwiększonym ustawieniem sterty (na przykład 3072M):
    bin_setenv_max_mem=3072m
    
  4. Zapisz plik.
  5. Ponownie uruchom procesor wiadomości:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Jeśli masz więcej niż 1 procesor wiadomości, powtórz kroki od 3 do 6 na każdym z nich.

Jeśli problem będzie nadal występował, skontaktuj się z zespołem pomocy Apigee.

Błąd w pakiecie proxy interfejsu API

Jeśli w którejś z zasad używanych przez serwer proxy interfejsu API wystąpią błędy, wdrożenie zakończy się niepowodzeniem z błędem „Unexpected error occurred while processing the updates”.

Zobacz na przykład ten post na karcie Społeczność.

Diagnostyka

Uwaga: poniższe czynności mogą wykonywać tylko użytkownicy Private Cloud Edge. Jeśli korzystasz z Edge Public Cloud, skontaktuj się z zespołem pomocy Apigee.

  1. Sprawdź w logach procesora wiadomości, czy nie występują wyjątki lub błędy związane z wdrożeniem serwera proxy interfejsu API. Powinien on zawierać informacje o tym, co należy zmienić w pakiecie proxy interfejsu API, aby rozwiązać problem.
  2. Jeśli w logach procesora wiadomości nie wyświetlają się żadne komunikaty o błędach, sprawdź różnice w historii wersji serwera proxy interfejsu API. Jeśli starsze wersje zostaną wdrożone bez problemu, sprawdź, jakie zmiany w kodzie zostały wprowadzone.

Rozdzielczość

  1. Wprowadź niezbędne zmiany w pakiecie proxy interfejsu API, aby rozwiązać ten problem.
  2. Cofnij wszystkie zmiany w kodzie serwera proxy interfejsu API, który powodował problemy podczas wdrożenia.

Jeśli problem będzie nadal występował, skontaktuj się z zespołem pomocy Apigee.