Błąd podczas przetwarzania aktualizacji

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Krótki opis problemu

Wdrożenie wersji serwera proxy interfejsu API za pomocą interfejsu Edge UI lub wywołań interfejsu Edge Management API kończy się niepowodzeniem z 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 przestrzeni na stercie Java, co spowodowało wdrożenie serwera proxy interfejsu API niepowodzenie. Użytkownicy chmury prywatnej
Błąd w pakiecie serwerów proxy interfejsów API Pakiet serwera proxy interfejsu API zawiera błędy, które mogą spowodować niepowodzenie wdrożenia serwera proxy interfejsu API. Użytkownicy chmury prywatnej i publicznej

Typowe czynności, które należy wypróbować w pierwszej kolejności

  1. Sprawdź, czy w procesorze wiadomości są jakieś błędy wdrożenia lub zrzut stosu wyjątków dziennik /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. Zwykle widzisz zrzut stosu zawierający informacje o przyczynie wdrożenia . Aby poznać przyczynę, dokładnie przeczytaj zrzut stosu.

Brak pamięci

Diagnostyka

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

  1. Możesz zobaczyć wyjątek podobny do tego w dzienniku procesora wiadomości /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log zgodnie z tabelą ilustrację 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 Heap space wskazuje, że w procesorze wiadomości skończyło się miejsce na stercie Java.

Rozdzielczość

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

Zwiększ maksymalną ilość miejsca na stercie Java w procesorach komunikatów.

Maksymalny obszar sterty Java jest kontrolowany przez właściwość JVM -Xmx. Aby to zrobić: zwiększ przestrzeń sterty Java w procesorach wiadomości:

  1. Określ ilość pamięci, o jaką można zwiększyć miejsce na stercie Java:
    1. Sprawdź bieżącą wartość ustawienia maksymalnej ilości miejsca na stercie (max_mem) w pliku /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Uzyskaj MemTotal (łączną ilość używanej pamięci RAM) i MemFree (ilość fizycznej pamięci RAM pozostała niewykorzystana w systemie) przy użyciu /proc/meminfo w systemie.
      1. Upewnij się, że powyższe informacje obejmują pamięć zużywaną przez inne procesy takich jak router graniczny itp., które istnieją w tym samym systemie.
      2. Na podstawie powyższych informacji określ, ile miejsca na stercie Java może mieć Zwiększono dla procesora wiadomości.
      3. Na przykład obecna maksymalna ilość miejsca na stercie w procesorze wiadomości to 1024 MB, MemTotal obejmuje 8 GB (8192 MB), a MemFree to 5 GB (5120 MB). Możesz zwiększyć maksymalną liczbę plików w Javie stosu do 3 GB (3072 MB).
      4. Jeśli potrzebujesz pomocy w określeniu, o ile zwiększyć ilość miejsca na stercie Java, skontaktuj się z zespołem pomocy Apigee.
  2. Utwórz następujący plik, jeśli jeszcze nie istnieje:
    /opt/apigee/customer/application/message-processor.properties
  3. Dodaj do pliku ten wiersz ze zwiększonym ustawieniem stosu (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ż jeden procesor wiadomości, powtórz kroki od 3 do 6 na wszystkich Procesory wiadomości.

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

Błąd w pakiecie serwera proxy interfejsu API

Jeśli wystąpią błędy w zasadach używanych na serwerze proxy interfejsu API, wdrożenie wystąpi błąd „Unexpected error occurred while processing the updates”.

Na przykład zobacz ten posta na karcie Społeczność.

Diagnostyka

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

  1. Sprawdź, czy w logach procesora wiadomości nie ma wyjątków lub błędów związanych z serwerem proxy interfejsu API lub wdrożenia. Błąd powinien informować Cię, co należy zmienić na serwerze proxy interfejsu API żeby rozwiązać problem.
  2. Jeśli w logach procesora wiadomości nie są wyświetlane żadne komunikaty o błędach, sprawdź różnice w wersji historię serwera proxy API. Jeśli starsze wersje zostaną wdrożone bez problemów, sprawdź, który kod wprowadzono zmiany.

Rozdzielczość

  1. Aby rozwiązać ten problem, wprowadź niezbędne zmiany w pakiecie serwerów proxy interfejsów API.
  2. Cofnij wszystkie zmiany w kodzie na serwerze proxy interfejsu API, które powodowały problemy podczas wdrożenia.

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