Aggiornamenti relativi all'elaborazione degli errori

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Sintomo

Il deployment delle revisioni del proxy API tramite la UI di Edge o le chiamate API di gestione di Edge non riesce e viene visualizzato l' 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 molteplici. Di seguito sono riportate alcune cause di esempio:

Causa Dettagli Per
Memoria insufficiente Il processore di messaggi ha esaurito lo spazio heap Java, causando il mancato deployment del proxy API. Utenti di Cloud privato
Errore nel bundle del proxy API Il bundle del proxy API contiene errori che possono causare il mancato deployment del proxy API. Utenti di Cloud privato e pubblico

Passaggi comuni da provare per primi

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

Out Of Memory

Diagnosi

Nota: solo gli utenti di Edge Private Cloud possono eseguire i passaggi che seguono. Se utilizzi Edge Public Cloud, contatta l'assistenza Apigee.

  1. Nel log del processore di messaggi potresti visualizzare un'eccezione simile a quella mostrata nella figura seguente:/opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
    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. Il messaggio Caused by: java.lang.OutofMemoryError: Java Heap space indica che il processore di messaggi ha esaurito lo spazio heap Java.

Risoluzione

Nota: solo gli utenti di Edge Private Cloud possono eseguire i passaggi che seguono. Se utilizzi Edge Public Cloud, contatta l'assistenza Apigee.

Aumenta lo spazio heap Java massimo sui processori di messaggi.

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

  1. Determina la quantità di memoria di cui è possibile aumentare lo spazio heap Java:
    1. Controlla il valore corrente impostato per lo spazio heap massimo, 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 sul sistema) utilizzando /proc/meminfo comando sul sistema.
      1. Assicurati che le informazioni sopra riportate includano la memoria consumata da altri processi come Edge Router, presenti sullo stesso sistema.
      2. In base alle informazioni sopra riportate, determina di quanto è possibile aumentare lo spazio heap Java per il processore di messaggi.
      3. Ad esempio, se lo spazio heap massimo corrente sul processore di messaggi è 1024 MB, MemTotal è 8 GB (8192 MB), MemFree è 5 GB (5120 MB), puoi aumentare lo spazio heap Java massimo a 3 GB (3072 MB).
      4. Se hai bisogno di 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 al 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 hai più di un processore di messaggi, ripeti i passaggi da 3 a 6 su tutti i processori di messaggi.

Se il problema persiste, contatta Apigee Supporto.

Errore nel bundle del proxy API

Se si verificano errori in una delle norme utilizzate nel proxy API, il deployment non riesce e viene visualizzato l'errore "Unexpected error occurred while processing the updates".

Ad esempio, consulta questo post della community.

Diagnosi

Nota: solo gli utenti di Edge Private Cloud possono eseguire i passaggi che seguono. Se utilizzi Edge Public Cloud, contatta l'assistenza Apigee.

  1. Controlla i log del processore di messaggi per verificare la presenza di eccezioni o errori relativi al deployment del proxy API. L'errore dovrebbe fornirti informazioni su cosa modificare nel bundle del proxy API per risolvere il problema.
  2. Se nei log del processore di messaggi non vengono visualizzati messaggi di errore, controlla le differenze nella cronologia delle revisioni del proxy API. Se le revisioni precedenti vengono sottoposte a deployment senza problemi, esamina le modifiche al codice apportate.

Risoluzione

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

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