Fehler beim Verarbeiten von Updates

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

  1. 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
  2. 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.

  1. 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
    
  2. 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:

  1. Bestimmen Sie die Größe des Arbeitsspeichers, um den der Java-Heap-Bereich erweitert werden kann:
    1. 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.
    2. 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.
      1. 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.
      2. Bestimmen Sie anhand der obigen Informationen, um wie viel der Java-Heap-Speicherplatz für Message Processor erhöht werden kann.
      3. 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.
      4. Wenn Sie Hilfe benötigen, um zu ermitteln, wie viel der Java-Heap-Bereich erweitert werden soll, wenden Sie sich an den Apigee-Support.
  2. Erstellen Sie die folgende Datei, falls sie noch nicht vorhanden ist:
    /opt/apigee/customer/application/message-processor.properties
    
  3. 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
    
  4. Speichere die Datei.
  5. Starten Sie den Message Processor neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 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.

  1. 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.
  2. 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

  1. Nehmen Sie die erforderlichen Änderungen im API-Proxy-Bundle vor, um das Problem zu beheben.
  2. 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.