1
resposta

[Dúvida] Transações ficando abertas após finalizar Job

As Transações estão ficando abertas mesmo após final do job causando erro ao atingir limite de pool de conexões. Saberiam dizer o porque o Spring pode estar deixando transações ativas?

Caused by: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30005ms (total=10, active=10, idle=0, waiting=0)

Resolvido: toda execução estava criando um entitymanager novo ao invés de usar a o bean existente, por isso ficava sempre aberto.

1 resposta

Oi Vanderson! Tudo joia?

Que bom que você conseguiu identificar e resolver o problema!

Quando se trata de gerenciar conexões e transações em um ambiente de processamento em lote com Spring Batch, é crucial garantir que o gerenciamento de recursos, como conexões de banco de dados, seja feito de forma eficiente.

No seu caso, o problema estava relacionado à criação de um novo EntityManager para cada execução, em vez de reutilizar o bean existente. Isso pode facilmente levar a um esgotamento do pool de conexões, já que cada novo EntityManager pode abrir novas conexões sem fechá-las adequadamente.

Bons estudos!