Argumentos para uso de JMS para concorrência em ambiente JEE

1 resposta
P

Pessoal,

Estamos trabalhando em um projeto onde existe um processamento batch que toma um longo tempo para ser executado. Esse processo pode ser facilmente dividido em tarefas menores e executado em paralelo. Sabendo que o uso de Threads diretamente a partir de uma aplicação JEE é desencorajado, optamos pelo uso de JMS/MDB.
Quando o usuário dispara um processo o código no servlet container envia mensagens JMS solicitando o processamento de tarefas menores. Dessa maneira o próprio conteiner cria (ou provavelmente criará) vários threads para controlar o processamento.

Tudo isso é meio óbvio e aceitável.

No entanto algumas pessoas no cliente não aceitam essa solução e gostaríamos de argumentar que essa é a solução padrão para esse tipo de problema e para isso precisamos mostrar algum site da SUN ou de alguma outra grande empresa dizendo que esse enfoque está correto.

Alguém sabe onde encontrar isso??

Obrigado

1 Resposta

fantomas

MINHA OPINIÃO!!!

  1. Você tem que descobrir, mediante comprovação (testes), a verdadeira causa da demora no processamento.
  2. Threads é para processamento paralelo (como vc mesmo disse), você ganha tempo se a máquina possuir mais de um processador; caso contrário não irá adiantar quase nada, a máquina iria executar as threads sequencialmente obedecendo as prioridades.
  3. Para as threads do JMS não participar do processo que executa seu sistema teria que ser executado em uma outra virtual machine logo fatalmente você irá gastar mais recursos com esta estratégia.
  4. JMS deve ser utilizado apenas para envio e consumo de mensagens, nada mais do que isto; só pra isso a coisa já é chata rsrsrsr porisso tente evitar pendurar outras coisas nele.

Você poderia dizer porque esse processamento é demorado pra gente tentar uma outra idéia.

flws

Criado 9 de dezembro de 2009
Ultima resposta 9 de dez. de 2009
Respostas 1
Participantes 2