Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation weitere Informationen
Symptom
Die Bereitstellung von API-Proxyüberarbeitungen über die Edge-Benutzeroberfläche oder Aufrufe der Edge Management API 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
Dieser Fehler kann verschiedene Ursachen haben. Im Folgenden sind einige mögliche Ursachen aufgeführt:
Ursache | Details | Für |
Nicht genügend Arbeitsspeicher | Der Java-Heap-Speicher für Message Processor ist aufgebraucht, was zu einem Fehler bei der Bereitstellung des API-Proxys führt. | Private Cloud-Nutzer |
Fehler im API-Proxy-Bundle | Das API-Proxy-Bundle enthält Fehler, die zu einem API-Proxy-Bereitstellungsfehler führen können. | Nutzer von privaten und öffentlichen Clouds |
Häufige Schritte
- Prüfen Sie im Message Processor-Log
/opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
, ob Bereitstellungsfehler oder ein Ausnahme-Stacktrace vorhanden sind - In der Regel sehen Sie einen Stacktrace, der Informationen zur Ursache des Bereitstellungsfehlers enthält. Lesen Sie sich den Stacktrace sorgfältig durch, um die Ursache zu ermitteln.
Nicht genügend Arbeitsspeicher
Diagnose
Hinweis: Nur Edge Private Cloud-Nutzer können die folgenden Schritte ausführen. Wenn Sie Edge Public Cloud verwenden, wenden Sie sich an den Apigee-Support.
- Möglicherweise wird eine ähnliche Ausnahme wie im Nachrichtenverarbeiterlog
/opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
angezeigt, wie in der folgenden Abbildung dargestellt: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
- Die Meldung Verursacht durch: java.lang.OutofMemoryError: Java Heap Space gibt an, dass der Java Heap-Speicherplatz des Message Processor nicht mehr ausreicht.
Auflösung
Hinweis: Nur Edge Private Cloud-Nutzer 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 Heap-Speicherplatz auf den Message Processorn.
Der maximale Java Heap-Speicherplatz wird von der JVM-Eigenschaft -Xmx gesteuert. So erhöhen Sie den Java Heap-Speicherplatz auf den Message Processorn:
- Bestimmen Sie die Größe des Arbeitsspeichers, um den der Java-Heap-Bereich erweitert werden kann:
- Prüfen Sie den aktuellen Wert für den max. Heap-Bereich „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-Speichers) und MemFree (Menge des auf dem System ungenutzten physischen RAM-Speichers) ab.
- Achten Sie darauf, dass die obigen Informationen den Arbeitsspeicher enthalten, der von anderen Prozessen wie Edge Router usw. genutzt wird, die auf demselben System vorhanden sind.
- Bestimmen Sie anhand der obigen Informationen, um wie viel der Java-Heap-Speicherplatz für Message Processor erhöht werden kann.
- Zum Beispiel beträgt der aktuelle maximale Heap-Speicherplatz auf dem Message Processor 1024 MB, der MemTotal 8 GB (8192 MB) und der MemFree-Speicherplatz 5 GB (5.120 MB). Anschließend können Sie den maximalen Java-Heap-Speicherplatz auf 3 GB (3072 MB) erhöhen.
- Wenn Sie Hilfe benötigen, um zu ermitteln, wie viel der Java-Heap-Bereich erweitert werden soll, wenden Sie sich an den Apigee-Support.
- Prüfen Sie den aktuellen Wert für den max. Heap-Bereich „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 Einstellung für den erhöhten Heap hinzu (z. B. 3072M):
bin_setenv_max_mem=3072m
- Speichere 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 Processor.
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 auftreten, schlägt die Bereitstellung mit dem Fehler „Unexpected error occurred while processing the updates
“ fehl.
Ein Beispiel findest du in diesem Communitybeitrag.
Diagnose
Hinweis: Nur Edge Private Cloud-Nutzer 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-Protokolle auf Ausnahmen oder Fehler im Zusammenhang mit der Bereitstellung des API-Proxys. Der Fehler sollte Ihnen Informationen darüber liefern, was im API-Proxy-Bundle geändert werden sollte, um das Problem zu beheben.
- Wenn in den Meldungsprozessorprotokollen keine Fehlermeldungen angezeigt werden, prüfen Sie die Unterschiede im Überarbeitungsverlauf des API-Proxys. Wenn ältere Überarbeitungen problemlos bereitgestellt werden können, prüfen Sie, welche Codeänderungen vorgenommen wurden.
Auflösung
- Nehmen Sie die erforderlichen Änderungen im API-Proxy-Bundle vor, um das Problem zu beheben.
- Machen Sie alle Codeänderungen am API-Proxy rückgängig, die für die Bereitstellung problematisch sind.
Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee-Support, um weitere Unterstützung zu erhalten.