Sie lesen gerade die Apigee Edge -Dokumentation.
Zur
Apigee X -Dokumentation. info
Symptom
Die Bereitstellung von API-Proxy-Revisionen über die Edge-Benutzeroberfläche oder Edge Management API-Aufrufe schlägt mit dem
Fehler "Unexpected error occurred while processing the updates" fehl.
Fehlermeldungen
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 = []}Mögliche Ursachen
Für diesen Fehler kann es viele verschiedene Ursachen geben. Hier einige Beispiele:
| Ursache | Details | Für |
| Out of Memory | Auf dem Message Processor ist der Java-Heapspeicher ausgegangen, was zu einem Fehler bei der Bereitstellung des API-Proxys geführt hat. | Nutzer der Private Cloud |
| Fehler im API-Proxy-Bundle | Das API-Proxy-Bundle enthält Fehler, die zu einem Fehler bei der Bereitstellung des API-Proxys führen können. | Nutzer der Private und Public Cloud |
Häufige erste Schritte
- Prüfen Sie, ob im Message Processor
log
/opt/apigee/var/log/apigee/edge-message-processor/logs/system.logBereitstellungsfehler oder ein Stacktrace mit Ausnahmen vorhanden sind. - Normalerweise sehen Sie einen Stacktrace, der Informationen zur Ursache des Bereitstellungs Fehlers enthält. Lesen Sie den Stacktrace sorgfältig, um die Ursache zu ermitteln.
Out of Memory
Diagnose
Hinweis:Nur Nutzer von Edge Private Cloud können die folgenden Schritte ausführen. Wenn Sie Edge Public Cloud verwenden, wenden Sie sich an den Apigee-Support.
- Im Message Processor-Log
wird möglicherweise eine Ausnahme angezeigt, die der in der
folgenden Abbildung ähnelt:
/opt/apigee/var/log/apigee/edge-message-processor/logs/system.logApigee-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
- Die Meldung Caused by: java.lang.OutofMemoryError: Java Heap space gibt an, dass auf dem Message Processor der Java-Heapspeicher ausgegangen ist.
Auflösung
Hinweis:Nur Nutzer von Edge Private Cloud können die folgenden Schritte ausführen. Wenn Sie Edge Public Cloud verwenden, wenden Sie sich an den Apigee-Support.
Erhöhen Sie den maximalen Java-Heapspeicher auf den Message Processors.
Der maximale Java-Heapspeicher wird durch die JVM-Property -Xmx gesteuert. So erhöhen Sie den Java-Heapspeicher auf den Message Processors:
- Ermitteln Sie, um wie viel der Java-Heapspeicher erhöht werden kann:
- Prüfen Sie den aktuellen Wert für den maximalen Heapspeicher, max_mem, in der Datei
/opt/apigee/edge-message-processor/bin/setenv.sh - Rufen Sie mit dem Befehl
/proc/meminfo auf dem System MemTotal (Gesamtmenge des nutzbaren RAM) und MemFree
(Menge des physischen RAM, der auf dem System nicht verwendet wird) ab.
- Die oben genannten Informationen müssen den Arbeitsspeicher enthalten, der von anderen Prozessen wie Edge Router usw. verwendet wird, die sich auf demselben System befinden.
- Ermitteln Sie anhand der oben genannten Informationen, um wie viel der Java-Heapspeicher für den Message Processor erhöht werden kann.
- Wenn der aktuelle maximale Heapspeicher auf dem Message Processor beispielsweise 1024 MB beträgt, MemTotal 8 GB (8192 MB) und MemFree 5 GB (5120 MB), können Sie den maximalen Java Heapspeicher auf 3 GB (3072 MB) erhöhen.
- Wenn Sie Hilfe bei der Bestimmung der Erhöhung des Java-Heapspeichers benötigen, wenden Sie sich an den Apigee-Support.
- Prüfen Sie den aktuellen Wert für den maximalen Heapspeicher, max_mem, in der Datei
- Erstellen Sie die folgende Datei, falls sie noch nicht vorhanden ist:
/opt/apigee/customer/application/message-processor.properties
- Fügen Sie der Datei die folgende Zeile mit der erhöhten Heapeinstellung hinzu (z. B. 3072M):
bin_setenv_max_mem=3072m
- Speichern Sie die Datei.
- Starten Sie den Message Processor neu:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Wenn Sie mehr als einen Message Processor haben, wiederholen Sie die Schritte 3 bis 6 für alle Message Processors.
Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee
Support.
Fehler im API-Proxy-Bundle
Wenn in einer der im API-Proxy verwendeten Richtlinien Fehler vorhanden sind, schlägt die Bereitstellung mit dem Fehler "Unexpected error occurred while processing the updates" fehl.
Ein Beispiel finden Sie in diesem Community-Beitrag.
Diagnose
Hinweis:Nur Nutzer von Edge Private Cloud können die folgenden Schritte ausführen. Wenn Sie Edge Public Cloud verwenden, wenden Sie sich an den Apigee-Support.
- Prüfen Sie die Message Processor-Logs auf Ausnahmen oder Fehler im Zusammenhang mit der Bereitstellung des API-Proxys Der Fehler sollte Informationen dazu enthalten, was im API-Proxy Bundle geändert werden muss, um das Problem zu beheben.
- Wenn in den Message Processor-Logs keine Fehlermeldungen angezeigt werden, prüfen Sie die Unterschiede im Revisions verlauf des API-Proxys. Wenn ältere Revisionen ohne Probleme bereitgestellt werden, prüfen Sie, welche Code Änderungen vorgenommen wurden.
Auflösung
- Nehmen Sie die erforderlichen Änderungen am API-Proxy-Bundle vor, um das Problem zu beheben.
- Machen Sie alle Codeänderungen am API-Proxy rückgängig, die zu Problemen bei der Bereitstellung geführt haben.
Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee-Support, um weitere Unterstützung zu erhalten.