Olá,
Seguindo os exemplos mostrados neste treinamento, mais especificamente neste capítulo, ao invés do Hibernate utilizar o cache de segundo nível, ele cria mais conexões ao banco.
O que pode ter ocorrido para tal problema?
Olá,
Seguindo os exemplos mostrados neste treinamento, mais especificamente neste capítulo, ao invés do Hibernate utilizar o cache de segundo nível, ele cria mais conexões ao banco.
O que pode ter ocorrido para tal problema?
Fala Rafael, tudo bem?
podem ser várias coisas, vc poderia passar o seu código onde está configurando o cache de segundo nível e se possível o seu log onde está mostrando várias conexões?
obrigado =)
Olá Samir, tudo ótimo! E vc?
Eu acabei descobrindo por mim mesmo o que causava as várias conexões abertas com o banco de dados.
Ao utilizar a instrução:
dataSource.setIdleConnectionTestPeriod(1);
para configurar uma conexão vazia como teste com o banco, o EntityManager não fazia cache das entidades, mesmo com o hibernate configurado.
Sei que, ao comentar a linha acima citada, o EntityManager passou a cachear as entidades normalmente.
O motivo pelo qual isso acontece, eu ainda não sei. Agradeceria muito se você ou algum outro colega respondesse o porquê dessa situação ocorrer.
Mais uma vez, obrigado pelo apoio e atenção!
Abraços!
Tem mais cara de bug(supondo que muitas conexões realmente estavam sendo abertas) do que outra coisa. A query de teste não deveria invalidar o cache, pelo menos na minha opinião.
Alberto,
Eu também acredito nisso.
Muito obrigado mesmo pela ajuda!
Abraços!