Dúvida - Persistência em aplicações JEE

3 respostas
adolfo_eloy

Caros,

gostaria de saber se toda aplicação JEE deve utilizar o tipo de transação jta-datasource/non-jta-datasource ao invés de poder utilizar RESOURCE_LOCAL.
Com o JBoss não consigo utilizar RESOURCE_LOCAL e com o Tomcat eu consigo.

Abaixo segue o erro que recebo no JBoss quando não defino um datasource:

DEPLOYMENTS IN ERROR: Deployment "persistence.unit:unitName=#webjpa" is in error due to the following reason(s): java.lang.RuntimeException: Specification violation [EJB3 JPA 6.2.1.2] - You have not defined a jta-data-source for a JTA enabled persistence context named: webjpa

Obrigado.

3 Respostas

L

Cuma?

Você está falando do persistence.xml do JPA, certo?

Se for, é assim: ao definir o tipo de transação para RESOURCE_LOCAL, você deve definir o lookup do seu data source na tag . Ao definir o tipo de transação para JTA, você deve definir o lookup do seu data source para .

O JTA é útil para o famoso two-phase commit, mas só é vantagem se sua aplicação conecta em dois bancos, por exemplo. Havendo uma só conexão, usar RESOURCE_LOCAL costuma ser melhor.

adolfo_eloy

Leonardo3001:
Cuma?

Você está falando do persistence.xml do JPA, certo?

Se for, é assim: ao definir o tipo de transação para RESOURCE_LOCAL, você deve definir o lookup do seu data source na tag . Ao definir o tipo de transação para JTA, você deve definir o lookup do seu data source para .

O JTA é útil para o famoso two-phase commit, mas só é vantagem se sua aplicação conecta em dois bancos, por exemplo. Havendo uma só conexão, usar RESOURCE_LOCAL costuma ser melhor.

Exatamente Leonardo. Estou falando do persistence.xml do JPA.
Minha dúvida era de forma mais específica, se para usar entidades EJB3 no JBoss é necessário ou não a utilização de Datasource.

Realizei uma pesquisa no assunto e concluí que realmente para se trabalhar com entidades EJB3 no JBoss é necessário definir um datasource.

Caso queira verificar o resultado da pesquisa e criticar alguma coisa, a mesma pode ser acessada através do link abaixo:

http://aeloy.blogspot.com/2009/11/ejb3-entities-with-jboss-as.html

Leonardo, muito obrigado pela ajuda.

L

adolfo_eloy:
Exatamente Leonardo. Estou falando do persistence.xml do JPA.
Minha dúvida era de forma mais específica, se para usar entidades EJB3 no JBoss é necessário ou não a utilização de Datasource.

Realizei uma pesquisa no assunto e concluí que realmente para se trabalhar com entidades EJB3 no JBoss é necessário definir um datasource.

Caso queira verificar o resultado da pesquisa e criticar alguma coisa, a mesma pode ser acessada através do link abaixo:

http://aeloy.blogspot.com/2009/11/ejb3-entities-with-jboss-as.html

Leonardo, muito obrigado pela ajuda.

Vixi, o cara do blog comeu bola! non-jta-datasource não significa “ausência de datasource”, significa datasource sem JTA. O contrário é jta-datasource -> datasource com JTA.

Pra falar a verdade, eu sempre configurei minhas aplicações pra usar um DataSource do servidor, até mesmo no Tomcat e no Jetty. Então, eu não sei qual o comportamento dos frameworks ao não se usar esse recurso.

Criado 22 de novembro de 2009
Ultima resposta 23 de nov. de 2009
Respostas 3
Participantes 2