EJB 3, mensagem Bean controlado por cooperar com um bean de sessão com informações de estado?

StackOverflow https://stackoverflow.com/questions/632990

Pergunta

Hey! Eu sou relativamente novo para ambos Java EE e Stackowerflow, por favor seja gentil :-)

Eu tenho um monte de dispositivos de accionamento mensagens Java para ser enviado em qualquer mudança de estado. Estes dispositivos são normalmente activo durante cerca de 30-90 intervalos de um minuto. Cada mensagem de evento contém uma ID de dispositivo, além dos detalhes do evento.

Central na minha candidatura são um veículo mensagem de subscrição de feijão a esses eventos. Toda vez que recebo um evento que eu tem que bater o banco de dados para procurar algumas informações sobre o dispositivo.

Seria absolutamente fantástico se eu pudesse associar um session bean com estado com cada dispositivo ativo! Se isso tivesse sido uma aplicação web eu teria usado a sessão http para armazenar uma alça ou referência para o bean stateful (eu sou I certo?). Existe alguma maneira que eu posso arquivar este do meu feijão mensagem?

Foi útil?

Solução

Seria bom, exceto que ele não pode ser feito como você explicou. MDBs (e SLSBs) são apátridas, por definição, por isso é seguro para manter uma conversa apenas durante a invocação.

Você poderia eventualmente quebrar a especificação e criar um lugar atributo estática (talvez no próprio MDB), mas isso certamente não ser portátil, nem escalável.

A minha sugestão é para habilitar o cache no nível do JPA (consulte o provedor de persistência de preferência para os detalhes), assim você pode consultar todos os dados que você precisa muito rápido (muito rápido). Esta é portátil e amiga do cluster. Essa é a maneira que eu uso para fazer isso em meus projetos e estou muito feliz com isso.

Hope isso ajuda.

Outras dicas

Eu não sou tão confortável recomendar produtos específicos, mas não é o servidor Terracotta adressing necessidades como este?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top