Aggiornamenti relativi all'elaborazione degli errori

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Sintomo

Il deployment delle revisioni del proxy API tramite la UI di Edge o le chiamate API di gestione di Edge non riesce con il errore "Unexpected error occurred while processing the updates".

Messaggi di errore

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 = []}

Possibili cause

Le cause di questo errore possono essere diverse. Ecco alcuni esempi di cause:

Causa Dettagli Per
Memoria insufficiente Il processore di messaggi ha esaurito lo spazio heap Java, con conseguente deployment del proxy API errore. Utenti del cloud privato
Errore nel bundle proxy API Il bundle proxy API contiene errori che possono portare a un errore di deployment del proxy API. Utenti di cloud privato e pubblico

Passaggi comuni da provare prima

  1. Controlla se sono presenti errori di deployment o analisi dello stack di eccezioni nel processore di messaggi registrare /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. In genere viene visualizzata un'analisi dello stack che fornisce informazioni sulla causa del deployment . Leggi attentamente l'analisi dello stack per comprenderne la causa.

Memoria esaurita

Diagnosi

Nota: solo gli utenti Edge Private Cloud possono eseguire i seguenti passaggi. Se sono su Edge Public Cloud, contatta l'assistenza Apigee.

  1. Potresti notare un'eccezione simile a quella nel log del processore di messaggi /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log come mostrato in nella figura seguente:
    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. Viene visualizzato il messaggio Causato da: java.lang.OutofMemoryError: spazio heap Java indica che il processore di messaggi ha esaurito lo spazio Heap Java.

Risoluzione

Nota: solo gli utenti Edge Private Cloud possono eseguire i seguenti passaggi. Se sono su Edge Public Cloud, contatta l'assistenza Apigee.

Aumenta lo spazio massimo dell'heap Java sui processori di messaggi.

Lo spazio heap Java massimo è controllato dalla proprietà JVM -Xmx. Di seguito sono riportati i passaggi per Aumenta lo spazio heap Java sui processori di messaggi:

  1. Determina la quantità di memoria alla quale è possibile aumentare lo spazio heap Java:
    1. Controlla il valore attualmente impostato per lo spazio massimo heap, max_mem, nel file /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Ottieni MemTotal (quantità totale di RAM utilizzabile), MemFree (quantità di RAM fisica inutilizzata nel sistema) utilizzando /proc/meminfo sul sistema.
      1. Assicurati che le informazioni riportate sopra includano la memoria utilizzata da qualsiasi altro processo come Router Edge ecc. che esistono sullo stesso sistema.
      2. In base alle informazioni di cui sopra, determina la quantità di spazio heap Java che può essere per il processore di messaggi.
      3. Ad esempio, lo spazio heap massimo attuale sul processore di messaggi è 1024 MB, MemTotal è di 8 GB (8192 MB), MemFree è di 5 GB (5120 MB), quindi puoi aumentare il valore massimo heap in 3 GB (3072 MB).
      4. Se occorre assistenza per determinare di quanto aumentare lo spazio heap Java, contatta l'assistenza Apigee.
  2. Crea il seguente file, se non esiste già:
    /opt/apigee/customer/application/message-processor.properties
  3. Aggiungi la seguente riga nel file, con l'impostazione heap aumentata (ad esempio, 3072M):
    bin_setenv_max_mem=3072m
  4. Salva il file.
  5. Riavvia il processore di messaggi:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Se si dispone di più di un processore di messaggi, ripetere i passaggi da 3 a 6 su tutte le Processori di messaggi.

Se il problema persiste, contatta Apigee Assistenza.

Errore nel bundle proxy API

In caso di errori in uno qualsiasi dei criteri utilizzati nel proxy API, il deployment non riesce e viene restituito l'errore "Unexpected error occurred while processing the updates".

Ad esempio, consulta questo della scheda Community.

Diagnosi

Nota: solo gli utenti Edge Private Cloud possono eseguire i seguenti passaggi. Se sono su Edge Public Cloud, contatta l'assistenza Apigee.

  1. Controlla nei log del processore di messaggi eventuali eccezioni o errori relativi al proxy API e deployment continuo. L'errore dovrebbe fornirti informazioni su cosa deve essere modificato nel proxy API per risolvere il problema.
  2. Se nei log del processore di messaggi non viene visualizzato alcun messaggio di errore, controlla le differenze nella revisione cronologia del proxy API. Se il deployment delle revisioni meno recenti viene eseguito senza problemi, analizza il codice modifiche apportate.

Risoluzione

  1. Apporta le modifiche necessarie nel bundle proxy API per risolvere il problema.
  2. Ripristina tutte le modifiche al codice apportate al proxy API che hanno causato problemi per il deployment.

Se il problema persiste, contatta l'assistenza Apigee per per ricevere ulteriore assistenza.