Sincronizar acesso a um ejb @Stateless  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Victor
JavaChild

Membro desde: 08/11/2003 09:54:38
Mensagens: 120
Offline

To com o seguinte problema: tenho um servidor glassfish onde tenho um ejb @Stateless, e vários clientes acessam esse servidor ao mesmo tempo.
Porém não estou conseguindo sincronizar para que não ocorra acesso simultaneo em um método, por exemplo:

@Stateless
public class VendaBean implements VendaRemote {

@PersistenceContext(unitName = "Siac-persistencia")
EntityManager em;

public boolean cadastrarVenda(Venda venda) {
try {
em.persist(venda);
return true;
} catch (Exception e) {
return false;
}
}
}

Os clientes acessam esse método ao mesmo tempo e não consegue cadastrar no banco corretamente.

Por favor, como consigo resolver isso, preciso urgentemente.

Obrigado!

victorcastrojunior@yahoo.com.br
[Email]
Eder Peixoto
JavaEvangelist

Membro desde: 30/01/2007 01:53:51
Mensagens: 312
Offline

Synchronized serve?
[MSN]
asaudate
GUJ Master
[Avatar]

Membro desde: 01/09/2007 19:31:41
Mensagens: 1794
Localização: São Paulo
Offline

Pergunta básica... te ocorreu que, se o sistema é web, obviamente não se deve sincronizar acesso (já que, se você o fizer, o sistema não vai ser escalável, vai ser estupidamente lento, a operação de um usuário vai atrapalhar a de outro, etc...) ?

Já parou pra pensar que existem milhares de aplicações rodando com EJB´s e em nenhuma delas o "usuário tem problemas pra cadastrar errado" ? E que, se isso está acontecendo, existe algum erro de lógica aí?

Alexandre Saudate
__________________________

Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.

Série quickstart: Spring+Spring Security+Jersey (REST) +Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate

Evite usar Axis2!!! Leia aqui para mais detalhes!

@alesaudate
Quer ler um blog especializado em web services e SOA?

Victor
JavaChild

Membro desde: 08/11/2003 09:54:38
Mensagens: 120
Offline

Eder Peixoto, já o usei o Synchronized e não funcionou.

asaudate, o sistema nao é web é cliente/servidor, não tem como usar synchronized num sistema desses, a não ser só local? como acha q posso resolver isso?

victorcastrojunior@yahoo.com.br
[Email]
asaudate
GUJ Master
[Avatar]

Membro desde: 01/09/2007 19:31:41
Mensagens: 1794
Localização: São Paulo
Offline

Sistemas web também são cliente/servidor... ou seja, mesmo assim, você não deveria sincronizar o acesso, mas sim, descobrir porque está tendo problemas na persistência e corrigir. Sincronizar o acesso seria corrigir um problema criando outro.

[]´s

Alexandre Saudate
__________________________

Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.

Série quickstart: Spring+Spring Security+Jersey (REST) +Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate

Evite usar Axis2!!! Leia aqui para mais detalhes!

@alesaudate
Quer ler um blog especializado em web services e SOA?

 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team