Pessoal
Minha dúvida sobre MDBs:
Qual é a diferença entre associar MDBs a Queues ou a Topics?
Se for Queue as messagens vão ser despachadas em ordem de chegada para os MDBs?
Pessoal
Minha dúvida sobre MDBs:
Qual é a diferença entre associar MDBs a Queues ou a Topics?
Se for Queue as messagens vão ser despachadas em ordem de chegada para os MDBs?
Basicamente a diferença entre um topico e uma fila é a seguinte:
Enviando uma mensagem para um tópico vários consumidores podem receber essa mensagem
Enviando para uma fila , somente um consumidor vai recebe-la.
Ou seja: Tópico = um para muitos
Fila = um para um
Espero ter ajudado
Não tenho certeza, mas todas as mensagens tanto para tópicos quanto para filas irão ser enviadas em ordem.
Você quer dizer que se um MDB estiver associado a uma fila, o container nunca vai criar mais do que uma instância deste MDB?
Pois aí, se ele criasse múltiplas instâncias do MDB, teríamos múltiplos consumidores recebendo, não é?
Além disso, com múltiplas instâncias, a próxima mensagem seria enviada para a próxima instância, antes que a primeira instância tivesse terminado de processar a mensagem anterior…
Esta parte para mim é a mais confusa, porque me parece que os app servers podem criar mais do que uma instância do MDB sim.
É importante estar ciente também do comportamento do JMS quando têm 2 ou mais servidores em cluster:
1) Since JMS topics use the publich/subscribe model, it's possible thata a message sent to a JMS [b]topic [/b]will be delivered to more than one consumer.
2) Many containers will create a pool of many message-driven bean instances to process multiple messages concurrently.
3) A container that subscribes to a [b]topic[/b] consumer any given message only once, in other words, just to one bean instance of that MDB.
4) The JMS subsystem will treat each JMS message-driven bean container as a separate subscriber to the message.
5) This means that if the same JMS message-driven bean is deployed to many containers in a cluster, then each deployment of the LMS message-driven bean will consume a message from the [b]topic[/b] it subscribes to.
6) If this is not the behavior that you want, you need to consume messages of a [b]queue[/b] instead of a [b]topic[/b].
Desculpe por não ter traduzido para português…
Abraço.
Certo Berkamps
Mas imaginando um cenário sem cluster:
Você poderia informar de onde copiou o texto que você colou no post anterior?
Obrigado.
Não tenho a referência web das anotações anteriores, mas se encontrar do um post aki.
Abraço