[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Especificação vaga e resource leaks
- Subject: Especificação vaga e resource leaks
- From: Giuliano Mega <megag@xxxxxxxxxxxx>
- Date: Thu, 16 Dec 2004 00:32:38 -0200
Oi, pessoal.
Após rodar alguns testes, comecei a me tocar do seguinte: estou
registrando resources com as minhas transações mas, em momento algum,
estou chamando o método TransactionImpl#delistResource. Isso significa
que meus resources ficam lá, registrados em transações mortas,
possivelmente causando resource leaks (acho que isso não acontece,
afinal de contas tem aquele método instanceDone que é chamado pelo
TransactionImpl e remove as referências para transações daquela tabela
gid->TransactionImpl do TxManager, efetivamente deixando o grafo inteiro
de referências da transação morta para o garbage collector).
A especificação é bastante vaga a respeito de quem é responsável por
chamar o delistResource - eles se limitam a dizer que a responsabilidade
é do servidor de aplicação. Examinando um pouco o código, percebi que a
única classe no JBoss que chama esse método é a classe
org.jboss.resource.connectionmanager.TxConnectionManager.
Bem, no meu caso, acho que o equivalente ao TxConnectionManager
seriam as próprias classes responsáveis por fazer o enlist (poderiam
fazer o delist após o commit/rollback da transação). Parece correto
isso? Como vocês estão tratando esse problema?
Abraços,
Giuliano