Problemas com hibernate e com o jboss!

Pessoal,

Eu estou desenvolvendo um sistema usando ejb, hibernate e o AS JBoss, e estou tendo um problema com a conexao.

java.sql.SQLException: Connection handle has been closed and is unusable

O hibernate está como um serviço do jboss…

Alguém saberia o que pode estar acontecendo ??

valeu

Estou com a mesma exceção no JBoss, porém sem usar Hibernate. Você achou o problema / solução?

Eu encontrei o problema… eu estava mantendo a sessao do hibernate para todos os usuários… e quando ocorria um commit da transação a conexão dentro da sessao do hibernate era removida… o que ocasionada o problema nas demais chamadas…

Com certeza vc pode estar tentando acessar uma conexao que nao exista mais para uso dentro do pool…

um grande abraço

eduardo

Eu tava fazendo um controle transacional e acabei desistindo. O engraçado é que ontem não dava este problema e só passou a dar hoje.

Eu tirei o controle de transação e funcionou normal.

Com certeza o controle transacional deve estar matando a sua conexão no momento do commit. Acho melhor dar uma olhada no controle transacional seu… pode ser que tenha algo que seja a raiz do problema.

No meu caso demorei para achar o problema, pois ele é bem sutil.

um grande abraco

Eduardo

Uhauahuahuahua
Dois problemas!

  1. Eu estava fechando a conexão nas operações de insert, delete, update e select. Claro que ia dar pau de conexão fechada!

  2. O EJB que gerencia a transação, portanto eu não consigo dar um commit na minha conexão.

Que foda! Eu to apanhando muito.

É complicado… quando nos deparamos com esses detalhes… isso é fod… hehehe

um grande abraço

eduardo

Depois de perder 6 horas nesse problema, eu resolví.

Eu definí o método processar() do meu EJB Session como uma operação que requer transação. Dentro desse método eu chamo outro método que cria o registro no BD e que requer uma nova transação. E pronto! Resolvido.

Exemplo:

[code]public class MeuSessionBean implements SessionBean {

/**
* @ejb.interface-method view-type=“remote”
* @ejb.transaction type = “Required”
*/
public void processar( Map parametros ) throws GPAException {
registrarNovoProcessamento();
// aqui faz outras coisas
}

/**
 * @ejb.transaction type = "RequiresNew"
 */
public ProcessoAssincrono registrarNovoProcessamento() {
}

}[/code]