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
- Sprawdź, czy w dzienniku procesora komunikatów
/opt/apigee/var/log/apigee/edge-message-processor/logs/system.lognie ma błędów wdrożenia ani zrzutu stosu wyjątków. - 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.
- W dzienniku procesora komunikatów
/opt/apigee/var/log/apigee/edge-message-processor/logs/system.logmoż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
- 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:
- Określ ilość pamięci, o którą można zwiększyć ilość miejsca w stercie Java:
- Sprawdź bieżącą wartość ustawioną dla maksymalnej ilości miejsca w stercie, max_mem, w pliku
/opt/apigee/edge-message-processor/bin/setenv.sh. - 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).
- 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.
- Na podstawie powyższych informacji określ, o ile można zwiększyć ilość miejsca w stercie Java w procesorze komunikatów.
- 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).
- 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.
- Sprawdź bieżącą wartość ustawioną dla maksymalnej ilości miejsca w stercie, max_mem, w pliku
- Jeśli nie istnieje, utwórz ten plik:
/opt/apigee/customer/application/message-processor.properties
- Dodaj do pliku ten wiersz ze zwiększonym ustawieniem sterty (np. 3072M):
bin_setenv_max_mem=3072m
- Zapisz plik.
- Uruchom ponownie procesor komunikatów:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 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.
- 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.
- 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ść
- Wprowadź niezbędne zmiany w pakiecie serwera proxy interfejsu API, aby rozwiązać problem.
- 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.