JPA + Transaction + Pool de conexões do Glassfish

1 resposta
rafaelbtz

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?

1 Resposta

rafaelbtz

Só mais uma dúvida, existe um jeito de eu atrelar um EntityManager a uma Coneção fisica do JDBC? Ou seja se eu abrir um EntityManager ele tira uma conexão do POOL e só devolve depois que eu fechar essa EntityManager e todas as consultas, inserts, updates, etc feitas com este EntityManager utilizar essa conexão.

Criado 21 de outubro de 2010
Ultima resposta 21 de out. de 2010
Respostas 1
Participantes 1