Erro ao processar as atualizações

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Sintoma

A implantação de revisões de proxy de API por meio da IU do Edge ou das chamadas da API Edge Management falha com o erro "Unexpected error occurred while processing the updates".

Mensagens de erro

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

Causas possíveis

Pode haver muitas causas diferentes para esse erro. Confira alguns exemplos de causas:

Causa Detalhes Para
Falta de memória O processador de mensagens ficou sem espaço de heap Java, resultando em uma falha na implantação do proxy de API. Usuários da nuvem privada
Erro no pacote de proxy de API O pacote de proxy de API tem erros que podem levar a uma falha na implantação do proxy de API. Usuários de nuvem privada e pública

Etapas comuns para testar primeiro

  1. Verifique se há algum erro de implantação ou stack trace de exceção no registro do processador de mensagens /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log
  2. Geralmente, você vê um stack trace com informações sobre a causa do erro de implantação. Leia o stack trace com atenção para entender a causa.

Memória insuficiente

Diagnóstico

Observação: apenas usuários da nuvem privada do Edge podem realizar as etapas a seguir. Se você estiver na nuvem pública do Edge, entre em contato com o suporte da Apigee.

  1. Talvez você veja uma exceção semelhante à no registro /opt/apigee/var/log/apigee/edge-message-processor/logs/system.log do processador de mensagens, como mostrado na figura abaixo:
    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. A mensagem Caused by: java.lang.OutofMemoryError: Java Heap space indica que o processador de mensagens ficou sem espaço de heap do Java.

Resolução

Observação: apenas usuários da nuvem privada do Edge podem realizar as etapas a seguir. Se você estiver na nuvem pública do Edge, entre em contato com o suporte da Apigee.

Aumente o espaço máximo de heap Java nos processadores de mensagens.

O espaço máximo de heap do Java é controlado pela propriedade da JVM -Xmx. Confira as etapas para aumentar o espaço de heap do Java nos processadores de mensagens:

  1. Determine a quantidade de memória com que o espaço de heap do Java pode ser aumentado:
    1. Verifica o valor atual definido para o espaço máximo de heap, max_mem, no arquivo /opt/apigee/edge-message-processor/bin/setenv.sh
    2. Receba MemTotal (quantidade total de RAM utilizável), MemFree (quantidade de RAM física não usada no sistema) usando o comando /proc/meminfo no sistema.
      1. Verifique se as informações acima incluem a memória consumida por outros processos, como roteador de borda, etc., que existem no mesmo sistema.
      2. Com base nas informações acima, determine quanto o espaço de heap do Java pode ser aumentado para o Message Processor.
      3. Por exemplo, o espaço máximo de heap atual no processador de mensagens é de 1.024 MB, o MemTotal tem 8 GB (8.192 MB), o MemFree é de 5 GB (5.120 MB), então é possível aumentar o espaço de heap máximo do Java para 3 GB (3.072 MB).
      4. Se for necessária assistência para determinar quanto aumentar o espaço de heap do Java, entre em contato com o suporte da Apigee.
  2. Crie o seguinte arquivo, se ele ainda não existir:
    /opt/apigee/customer/application/message-processor.properties
    
  3. Adicione a seguinte linha ao arquivo, com a configuração de heap aumentada (por exemplo, 3072M):
    bin_setenv_max_mem=3072m
    
  4. Salve o arquivo.
  5. Reinicie o processador de mensagens:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Se você tiver mais de um processador de mensagens, repita as etapas de 3 a 6 em todos os processadores de mensagens.

Se o problema persistir, entre em contato com o suporte da Apigee.

Erro no pacote de proxy da API

Se houver algum erro em qualquer uma das políticas usadas no proxy de API, a implantação falhará com o erro "Unexpected error occurred while processing the updates".

Por exemplo, consulte esta postagem na Comunidade.

Diagnóstico

Observação: apenas usuários da nuvem privada do Edge podem realizar as etapas a seguir. Se você estiver na nuvem pública do Edge, entre em contato com o suporte da Apigee.

  1. Verifique nos registros do processador de mensagens se há exceções ou erros relacionados à implantação do proxy de API. O erro vai fornecer informações sobre o que precisa ser alterado no pacote de proxy de API para resolver o problema.
  2. Se nenhuma mensagem de erro for exibida nos registros do processador de mensagens, verifique as diferenças no histórico de revisões do proxy de API. Se as revisões mais antigas forem implantadas sem problemas, revise quais alterações no código foram feitas.

Resolução

  1. Faça as mudanças necessárias no pacote de proxy de API para resolver o problema.
  2. Reverta todas as alterações de código no proxy de API que causaram problemas na implantação.

Se o problema persistir, entre em contato com o suporte da Apigee para receber mais ajuda.