# Contenção do MongoDB > A política interna de pool e tempo de execução do Core, os erros DATABASE_POOL_BUSY e DATABASE_OPERATION_TIMEOUT e como recuperar sem repetir escritas. O backend do Core aplica uma política de contenção de carga sem configuração no App. Atualize os pacotes e republique para ativá-la. ## Política | Parâmetro | Padrão | |---|---:| | `maxPoolSize` | 4 (modo de performance: 4 / 8 / 16) | | `minPoolSize` | 0 | | `maxConnecting` | 2 | | `waitQueueTimeoutMS` | 2000 ms | | `maxTimeMS` nos métodos cobertos | 5000 ms | O Core passa essas opções ao driver com precedência sobre a URI. `MONGO_URI` continua fornecendo credenciais, banco, TLS, `authSource` e replica set; sem ela, `DB_SERVER`/`DB_NAME` e `DB_USER`/`DB_PASSWORD` são suportados. Não há override por env, `central.config.js` ou `central.app.json`. ## Cobertura | Operação | `maxTimeMS` automático | |---|---| | `find`, `findOne`, `countDocuments`, `estimatedDocumentCount`, `distinct` | Sim | | `findOneAnd*` | Sim (sem garantia de ausência de escrita após erro) | | `updateOne/Many`, `replaceOne`, `deleteOne/Many` como queries | Sim | | `aggregate`, `populate` | Sim | | Cursores | Comando inicial apenas | | `save`, `create`, `insertMany`, `bulkWrite` | Não | | Collection nativa, outro `MongoClient`/instância Mongoose | Não garantido | Limite explícito menor é preservado. Carregue o Core antes de compilar modelos customizados. ## Erros | Código | HTTP | Significado | |---|---:|---| | `DATABASE_POOL_BUSY` | 503 | Expirou a espera por conexão no pool | | `DATABASE_OPERATION_TIMEOUT` | 504 | O servidor excedeu o tempo de execução | > [!WARNING] > Um erro de admissão **não prova** que nada persistiu: etapas anteriores podem ter ocorrido, e timeout de escrita não prova ausência de escrita. Consulte e reconcilie o estado usando a idempotência do domínio — não repita escritas automaticamente. ## Observabilidade Contadores em memória (conexões em uso, esperando, picos, checkouts, falhas, timeouts e duração de espera) são emitidos a cada 60 s quando há atividade, com `appCode`, `APP_ENVIRONMENT` e PID — sem payload, endereço do servidor ou documentos. ## Limites Pool limita paralelismo por processo, não CPU/RAM/I/O nem o total do cluster. Réplicas e rollouts multiplicam o orçamento. Consultas caras continuam pressionando o banco — crie índices e pagine. Fonte: https://sdk.oonapps.com/docs/operacao/banco-de-dados