Aggiornamenti relativi all'elaborazione degli errori

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Sintomo

Il deployment delle revisioni del proxy API tramite la UI o le chiamate API di gestione perimetrale 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 diverse. Ecco alcuni esempi di cause:

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

Passaggi comuni da provare per primi

  1. Controlla se sono presenti errori di deployment o analisi dello stack di eccezioni nel log del processore di messaggi /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 dell'errore di deployment. Leggi attentamente l'analisi dello stack per comprenderne la causa.

Memoria esaurita

Diagnostica

Nota: solo gli utenti del cloud privato Edge possono eseguire i seguenti passaggi. Se utilizzi Edge Public Cloud, contatta l'assistenza Apigee.

  1. Potresti notare un'eccezione simile a quella nel log dell'Elaboratore dei messaggi /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log, come mostrato 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. 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 del cloud privato Edge possono eseguire i seguenti passaggi. Se utilizzi Edge Public Cloud, contatta l'assistenza Apigee.

Aumenta lo spazio heap Java massimo sui processori di messaggi.

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

  1. Determina la quantità di memoria mediante la quale è 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 rimasta inutilizzata nel sistema) utilizzando il comando /proc/meminfo sul sistema.
      1. Assicurati che le informazioni riportate sopra includano la memoria utilizzata da altri processi, come il router perimetrale ecc. presenti sullo stesso sistema.
      2. In base alle informazioni riportate sopra, determina di quanto può essere aumentato lo spazio heap Java per il processore di messaggi.
      3. Ad esempio, lo spazio heap massimo attuale sul processore di messaggi è 1024 MB, MemTotal è 8 GB (8192 MB), MemFree è 5 GB (5120 MB), quindi puoi aumentare lo spazio heap Java massimo a 3 GB (3072 MB).
      4. Se hai bisogno di assistenza per determinare 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 dell'heap aumentata (ad esempio, 3072 M):
    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 disponi di più processori di messaggi, ripeti i passaggi da 3 a 6 su tutti i processori di messaggi.

Se il problema persiste, contatta l'assistenza Apigee..

Errore nel bundle proxy API

Se si verificano errori in uno dei criteri utilizzati nel proxy API, il deployment non andrà a buon fine e verrà visualizzato l'errore "Unexpected error occurred while processing the updates".

Ad esempio, leggi questo post della scheda Community.

Diagnostica

Nota: solo gli utenti del cloud privato Edge possono eseguire i seguenti passaggi. Se utilizzi Edge Public Cloud, contatta l'assistenza Apigee.

  1. Controlla i log del processore di messaggi per individuare eccezioni o errori relativi al deployment del proxy API. L'errore dovrebbe fornirti informazioni su cosa modificare nel bundle 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 il deployment delle revisioni precedenti viene eseguito senza problemi, rivedi quali modifiche al codice sono state apportate.

Risoluzione

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

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