# Como solucionar erros de “Out of memory” na implantação

O erro de falta de memória, “*Out of Memory”*, ocorre quando o *pipeline* tenta consumir mais memória do que foi alocada durante a implantação.

## Identifique os erros de *Out of memory* <a href="#h_db3c123681" id="h_db3c123681"></a>

A primeira etapa para resolver esse problema é encontrar sua causa analisando os *logs* de execução do *pipeline* com falha. A sobrecarga de memória pode ter acontecido por:

* fazer consultas em uma grande quantidade de dados sem paginação em uma solicitação *HTTP*, um banco de dados ou ao baixar e ler um arquivo na memória;
* executar muitas execuções simultâneas;
* usar o componente *Session Management* para armazenar dados e não limpá-lo após a leitura.

{% hint style="info" %}
**Nota:** Verifique a data da última implantação. Se for mais antigo que a última versão, execute uma reimplantação para atualizar o *pipeline*.
{% endhint %}

## Corrija os erros <a href="#h_50d5c5a0ad" id="h_50d5c5a0ad"></a>

### Atualize o *Pipeline Engine* para a versão mais recente <a href="#h_ea6971c9d7" id="h_ea6971c9d7"></a>

Para atualizar o [*Pipeline Engine*](/documentation/developer-guide/pt-br/development-cycle/overview/runtime/pipeline-engine.md) para uma possível nova versão, a primeira coisa que você precisa fazer é reimplantar o *pipeline* (reciclagem do *pipeline*). [Para obter mais informações, consulte Reimplantando um *pipeline*](broken://spaces/cO0A6g1dOsu8BiHYqO67/pages/jHHAW3j0Zi35e4pvpksg).

Isso pode acontecer porque a *Digibee Integration Platform* atualiza regularmente sua infraestrutura. Parte desta atualização é reciclar os computadores que oferecem suporte à infraestrutura. [Saiba mais sobre reciclagem de *pipelines* em Alerta nos *pipelines* em *Run*.](/documentation/developer-guide/pt-br/development-cycle/overview/deployment/how-warnings-work-on-pipelines-in-run.md)

### Evite grande quantidade de dados sem paginação <a href="#h_221443454e" id="h_221443454e"></a>

Os erros de *“Out of memory”* também podem ser resolvidos por paginação e/ou uma arquitetura orientada a eventos. A paginação permite que você processe dados em partes, em vez de tudo de uma só vez. [Para obter mais informações sobre paginação, consulte Exemplos de paginação.](/documentation/resources/pt-br/best-practices/paginations-example.md)

Implementar uma arquitetura orientada a eventos significa usar o *pipeline* principal para recuperar dados e criar um *loop* que passa por esses dados e chama um segundo *pipeline* que possui um [*event trigger*](/documentation/connectors-and-triggers/pt-br/triggers/messaging-and-events/event.md).

Dessa forma, você divide a carga de memória e cria um fluxo de integração escalável que funciona com conjuntos de dados pequenos e grandes. [Para saber mais sobre Arquiteturas orientadas a eventos, consulte este artigo.](/documentation/resources/pt-br/best-practices/event-oriented-architecture.md)

Após os ajustes necessários no *pipeline*, reimplante novamente no ambiente de teste.

### Organize as execuções simultâneas <a href="#h_541d6886d1" id="h_541d6886d1"></a>

Os consumidores compartilham a memória disponível no contêiner. Ou seja, quanto mais consumidores, menos memória disponível para cada um. É recomendável adicionar novas réplicas a esse *pipeline* para fluir o processo.

Um *pipeline SMALL* com 2 réplicas tem o dobro do desempenho de processamento e escalabilidade e assim por diante. As réplicas não apenas fornecem mais poder de processamento e escalabilidade, mas também garantem maior disponibilidade - se uma das réplicas falhar, haverá outras para assumir. [Para obter mais informações sobre esses conceitos, consulte *Pipeline Engine*](/documentation/developer-guide/pt-br/development-cycle/overview/runtime/pipeline-engine.md)*.*

Após fazer os ajustes necessários no *pipeline*, reimplante-o no ambiente de teste. Se o erro persistir, aumente o Tamanho da implantação do *pipeline*.

### Limpe o componente *Session Management* <a href="#h_d1208234ed" id="h_d1208234ed"></a>

Uma boa prática para reduzir o risco de sobrecarga ou falta de memória é a limpeza do componente *Session Management,* que salva os dados depois de lê-los.  Para realizar esta ação, configure a função *DELETE* nas operações do componente.

Assim, após o componente enviar a mensagem como resposta final, é possível limpar os dados armazenados após a leitura com a operação *DELETE* caso este componente seja a última etapa do *pipeline*. [Para saber mais sobre o componente *Session Management*, consulte este artigo.](/documentation/connectors-and-triggers/pt-br/connectors/structured-data/session-management.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/troubleshooting/pt-br/deployment-issues/out-of-memory.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
