Pessoal,
O problema é o seguinte, estou utilizando o seam 2.1.2 e no meu negocio sempre que for lancada uma exceção no componente seam eu devo gravar um log no banco. So que devido ao seam gerenciar a transação, quando é lançada uma exception dentro do catch, a transação ja foi encerrada. Tem como eu gerenciar isso ou impedir de alguma forma que a transação somente seja encerrada apos a saida do método?
Entendo que no catch deva ser dado o rollback, mas encerrar a transação nao entendo porque, ela deveria ser encerrada na saida do método. Segue abaixo o erro que ocorre ao tentar gravar um registro na tabela de log:
11:29:43,976 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
11:29:43,976 ERROR [JDBCExceptionReporter] Transaction is not active: tx=TransactionImple < ac, BasicAction: -3f57fee5:946:4ae1aa0c:139 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: -3f57fee5:946:4ae1aa0c:139 status: ActionStatus.ABORT_ONLY >
OBS: nao tem problema de query nem de entidade pq o metodo funciona fora do catch.
segue trecho do codigo:
COMPONENT SEAM
-----------------------------------
MÉTODO QUE GRAVA O LOG:
------------------------------------
Obrigado!!
This message was edited 1 time. Last update was at 23/10/2009 10:41:35
|