VRaptor 2 - Ciclo de vida do EntityManager  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
renanpto
JavaEvangelist
[Avatar]

Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline

Bom Dia,

O EntityManager injetado pelo VRaptor é encerrado após a execução da logic ?

Mas por exemplo uma Thread que foi iniciada pelo logic, e que necessita do EntityManager para sua execução, ela consiguirá usar esse objeto ? O problema é se a Thread começar sua execução após o encerramento do EntityManager..





Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br
[WWW] [MSN]
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Isso o Lucas e o Paulo podem te responder com 100% de certesa. Mas vou dar meu pitaco.

Como o vraptor não reinventa a roda (a idéia é usar o que já tem de cada API), creio que ele usa o comportamento padrão do EntityManager. Lembre-se que o entity-manager não é thread-save, e o ciclo de vida dele é morrer conforme o ciclo da aplicação.

Creio que o problema que você escreveu você não tenha aqui, pois o entity-manager é único e compartilhado em todas as threads; e ela não é fechada conforme acaba o seu ciclo de execução.

Abraços
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

Na verdade, o EntityManagerFactory é único, o EntityManager é como se fosse a Session...

Vc está usando o EntityManager via algum plugin do vraptor2? se sim, provavelmente ele é aberto no começo da requisição e fechado no final...

PS: já considerou usar o vraptor 3? http://vraptor.caelum.com.br

--
Caelum
www.caelum.com.br

renanpto
JavaEvangelist
[Avatar]

Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline

Lucas Cavalcanti wrote:Na verdade, o EntityManagerFactory é único, o EntityManager é como se fosse a Session...

Vc está usando o EntityManager via algum plugin do vraptor2? se sim, provavelmente ele é aberto no começo da requisição e fechado no final...

PS: já considerou usar o vraptor 3? http://vraptor.caelum.com.br


Estou usando o plugin do VRaptor sim. Então não conseguirei utilizar o EntityManager dentro de uma Thread por exemplo ?



O projeto é feito usando a versao 2 do vraptor, somente por isso.

Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br
[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

o injetado pelo vraptor provavelmente não...

mas se esse plugin injetar a EntityManagerFactory, vc pode abrir (e fechar) uma nova EntityManager dentro dessa outra thread...

--
Caelum
www.caelum.com.br

renanpto
JavaEvangelist
[Avatar]

Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline

Lucas Cavalcanti wrote:o injetado pelo vraptor provavelmente não...

mas se esse plugin injetar a EntityManagerFactory, vc pode abrir (e fechar) uma nova EntityManager dentro dessa outra thread...


Há algum problema se eu instanciar o EntityManagerFactory dentro da Thread ? Não usando o injetado pelo VRaptor ?


Pensei em instanciar o EntityManagerFactory dentro da Thread, pois a thread nem conhece a logic que a chamou e usar o injetado pelo VRaptor exigirá muita refatoracao nas classes para passar o objeto até a classe que realmente precisa dele.

obs: o bloco de codigo que usa o EntityManagerFactory e EntityManger... será executado em especificas situações, pois a thread estará executando dai ocorrreu uma exceção, ai entra meu codigo para registrar o erro em uma tabela especifica.

Abraço

Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br
[WWW] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

só tome cuidado, pois criar uma entityManagerFactory eh uma operação custosa (lê arquivos, cria a configuração, etc) vc não deveria fazer isso várias vezes durante a aplicação... vc deveria fazer uma só.

--
Caelum
www.caelum.com.br

renanpto
JavaEvangelist
[Avatar]

Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline

Lucas Cavalcanti wrote:só tome cuidado, pois criar uma entityManagerFactory eh uma operação custosa (lê arquivos, cria a configuração, etc) vc não deveria fazer isso várias vezes durante a aplicação... vc deveria fazer uma só.

Entendo...

Não sei se terei problemas com esse detalhe, pois esse bloco de código será executado raramente.

O jeito é colocar pra teste e esperar para ver se aparece alguma surpresinha. hehehe

Caso apareca algum problema, terei que fazer da forma que comentou.

Obrigado.


Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br
[WWW] [MSN]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team