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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!