Boa tarde,
Estou com um problema com as conexões do Pool do Glassfish + Transações com o Banco + JPA.
Eu uso um DataSource criado no glassfish e defino o POOL dele para no máximo 2 conexões e configuro o persistence.xml para
e
Para testar eu coloquei um brakpoint logo após a abertura de uma transação com o Banco. Então funciona mais ou menos assim.
-
a 1ª requisição cria o EntityManager, pega uma conexão do POOL e abre a transação (dando um begin e executando um flush após um insert) e dai eu paro com um breakpoit antes de executar o commit
-
a 2ª faz a mesma coisa com a outra conexão do POOL
Ai vem a 3ª requisição. ele abre a entityManager normalmente e quando eu faço uma select ele usa uma das duas conexões acima que estão no meio de uma transação. Eu não posso deixar isso acontecer eu preciso que a 3ª requisição fique parada esperando uma das duas acima terminarem o serviço para liberar a conexão para o POOL.
Alguem sabe um jeito de fazer isso?