| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2007 21:16:12
|
marcelo_mococa
Virtual Machine Man
![[Avatar]](/images/avatar/90248d0a98105fa534cf2b0696ddd12f.jpg)
Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline
|
Fala Galera.
estou encontrando alguns problemas para gerenciar transações com EJB3.
Criei um bean stateless com uma interface remota. Configurei a JPA para persistir os dados. Estou usando jboss, por isso configurei o datasource no mesmo.
Veja meu bean:
criei uma classe de teste para testar este bean. Ela está usando a interface remota para invocar o serviço.
Como percebi que o controle de transação não estava sendo executado, configurei a transação para Mandatory. Minha dúvida foi respondida, não existe uma transação.
Alguém sabe o que está acontencedo?
Porque o conteiner não abriu a transação? Engraçado que ele deu o commit, pois os dados foram persistidos.
att.
|
Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2007 21:24:48
|
Maracuja
GUJ Ranger
![[Avatar]](/images/avatar/aceacd5df18526f1d96ee1b9714e95eb.jpg)
Membro desde: 28/03/2006 10:18:44
Mensagens: 940
Localização: Behind the screen
Offline
|
É exatamene este o problema; o seu cliente esta em uma transação?
Pois
MANDATORY
The container must invoke an enterprise bean method whose transaction attribute is set to MANDATORY in a client's transaction context. The client is REQUIRED to call with a transaction context.
*
If the client calls with a transaction context, the container performs the same steps as described in the REQUIRED case.
*
If the client calls without a transaction context, the container throws the javax.ejb.EJBTransactionRequiredException. If the EJB 2.1 client view is used, the container throws the javax.transaction.TransactionRequiredException exception if the client is a remote client, or the javax.ejb.TransactionRequiredLocalException if the client is a local client.
by
http://java.boot.by/scbcd5-guide/ch09s03.html
Se não chamou em uma transação, não tem transação;
mude para
REQUIRES_NEW
ou
REQUIRED
[]'s
|
"Nunca deixarei de reclamar, mas espero reclamar de coisas melhores a cada dia..." Um amigo muito sabio |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2007 21:41:53
|
marcelo_mococa
Virtual Machine Man
![[Avatar]](/images/avatar/90248d0a98105fa534cf2b0696ddd12f.jpg)
Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline
|
certo...
veja como ficou o metodo:
ele não dá o rollback.
o q mais pode ser?
|
Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2007 21:43:30
|
Maracuja
GUJ Ranger
![[Avatar]](/images/avatar/aceacd5df18526f1d96ee1b9714e95eb.jpg)
Membro desde: 28/03/2006 10:18:44
Mensagens: 940
Localização: Behind the screen
Offline
|
EJBException não marca a transação para rollback; Experimente uma RuntimeException;
|
"Nunca deixarei de reclamar, mas espero reclamar de coisas melhores a cada dia..." Um amigo muito sabio |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2007 22:04:37
|
marcelo_mococa
Virtual Machine Man
![[Avatar]](/images/avatar/90248d0a98105fa534cf2b0696ddd12f.jpg)
Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline
|
Lancei uma nullpointer e tb não deu rollback?
será que é alguma coisa na configuração do banco?
|
Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2007 22:32:27
|
marcelo_mococa
Virtual Machine Man
![[Avatar]](/images/avatar/90248d0a98105fa534cf2b0696ddd12f.jpg)
Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline
|
consegui resolver.
era no banco de dados mysql. A tabela estava como MyISAM, que não aceita controle de transações. Mudei para InnoDB e funcionou perfeitamente.
Valeu pela ajuda maracuja.
|
Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog
|
|
|
 |
|
|