Błąd podczas przetwarzania aktualizacji

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Krótki opis problemu

Wdrażanie poprawek serwera proxy interfejsu API za pomocą interfejsu Edge lub wywołań interfejsu Edge Management API nie udaje się i wyświetla 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 Okres:
Brak pamięci Procesor komunikatów wyczerpał miejsce w stercie Java, co spowodowało niepowodzenie wdrożenia proxy interfejsu API. Użytkownicy chmury prywatnej
Błąd w pakiecie serwera proxy interfejsu 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 wykonać w pierwszej kolejności

  1. Sprawdź, czy w dzienniku procesora komunikatów /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log nie ma błędów wdrożenia ani zrzutu stosu wyjątków.
  2. Zwykle wyświetla się zrzut stosu, który zawiera informacje o przyczynie błędu wdrożenia. Przeczytaj uważnie zrzut stosu, aby zrozumieć przyczynę.

Brak pamięci (OOM)

Diagnostyka

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

  1. W dzienniku procesora komunikatów /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log może pojawić się wyjątek podobny do tego, który widać 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 Caused by: java.lang.OutofMemoryError: Java Heap space wskazuje, że procesor komunikatów wyczerpał miejsce w stercie Java.

Rozdzielczość

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

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

Maksymalna ilość miejsca w stercie Java jest kontrolowana przez właściwość JVM -Xmx. Aby zwiększyć ilość miejsca w stercie Java w procesorach wiadomości:

  1. Określ ilość pamięci, o którą można zwiększyć ilość miejsca w stercie Java:
    1. Sprawdź bieżącą wartość ustawioną dla maksymalnej ilości miejsca w stercie, max_mem, w pliku /opt/apigee/edge-message-processor/bin/setenv.sh.
    2. Użyj polecenia /proc/meminfo w systemie, aby uzyskać MemTotal (całkowita ilość dostępnej pamięci RAM) i MemFree (ilość fizycznej pamięci RAM, która nie jest używana w systemie).
      1. Upewnij się, że powyższe informacje obejmują pamięć zużywaną przez inne procesy takie jak router Edge, które działają w tym samym systemie.
      2. Na podstawie powyższych informacji określ, o ile można zwiększyć ilość miejsca w stercie Java w procesorze komunikatów.
      3. Na przykład, jeśli bieżąca maksymalna ilość miejsca w stercie w procesorze komunikatów wynosi 1024 MB, MemTotal to 8 GB (8192 MB), a MemFree to 5 GB (5120 MB), możesz zwiększyć maksymalną ilość miejsca w stercie Java do 3 GB (3072 MB).
      4. Jeśli potrzebujesz pomocy w określeniu, o ile należy zwiększyć ilość miejsca w stercie Java, skontaktuj się z zespołem pomocy Apigee.
  2. Jeśli nie istnieje, utwórz ten plik:
    /opt/apigee/customer/application/message-processor.properties
  3. Dodaj do pliku ten wiersz ze zwiększonym ustawieniem sterty (np. 3072M):
    bin_setenv_max_mem=3072m
  4. Zapisz plik.
  5. Uruchom ponownie procesor komunikatów:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Jeśli masz więcej niż 1 procesor komunikatów, powtórz kroki od 3 do 6 na wszystkich procesorach komunikatów.

Jeśli problem będzie się powtarzał, skontaktuj się z zespołem pomocy Apigee Support..

Błąd w pakiecie serwera proxy interfejsu API

Jeśli w którejkolwiek z zasad używanych w serwerze proxy interfejsu API występują błędy, wdrożenie nie powiedzie się i wyświetli się błąd "Unexpected error occurred while processing the updates".

Na przykład zobacz ten post na forum społeczności.

Diagnostyka

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

  1. Sprawdź dzienniki procesora komunikatów pod kątem wyjątków lub błędów związanych z wdrożeniem proxy interfejsu API. Błąd powinien zawierać informacje o tym, co należy zmienić w pakiecie serwera proxy interfejsu API , aby rozwiązać problem.
  2. Jeśli w dziennikach procesora komunikatów nie pojawiają się żadne komunikaty o błędach, sprawdź różnice w historii poprawek serwera proxy interfejsu API. Jeśli starsze poprawki wdrażają się bez problemu, sprawdź, jakie zmiany w kodzie zostały wprowadzone.

Rozdzielczość

  1. Wprowadź niezbędne zmiany w pakiecie serwera proxy interfejsu API, aby rozwiązać problem.
  2. Przywróć wszelkie zmiany w kodzie serwera proxy interfejsu API, które powodowały problemy z wdrożeniem.

Jeśli problem będzie się powtarzał, skontaktuj się z zespołem pomocy Apigee w celu uzyskania dalszej pomocy.