/ / hornetq garante que a mensagem chegou à fila - hornetq

hornetq garante que a mensagem chegou na fila - hornetq

Estou usando org.hornetq.api.core.client como posso garantir a mensagem que estou enviando realmente atingiu a fila (não o cliente, apenas a fila)?

producer.send("validQueue",clientMessage)

observe que a fila é uma fila válida.

esta pergunta semelhante está se referindo a fila inválida. outros como este é relevante para a entrega ao cliente.

Respostas:

3 para resposta № 1

Realmente depende de como você está enviando.

A sua primeira pergunta foi sobre Em primeiro lugar,no JMS, você deve enviar para uma fila inválida, pois o produtor validará a existência da fila. Na API do HornetQ, você envia para um endereço (não para uma fila) e pode ter uma fila não acoplada. para consultar se o endereço tem filas ou não.

Agora, para confirmação, a mensagem foi recebida:

  • Cenário I, mensagens persistentes, não transacionalmente

Toda mensagem é enviada bloqueada. O cliente irá desbloquear assim que o servidor confirmar o recebimento da mensagem. Isso é feito automaticamente. Você não precisa fazer nada.

  • Cenário II, mensagens não persistentes, não transacionalmente

Não há confirmações por padrão. A mensagem é enviada de forma assíncrona. Assumimos que a mensagem é transitória e não é grande coisa se você a perdeu. Você pode mudar isso definindo o bloqueio em envio não persistente no ServerLocator.

  • Cenário III, transacional (persistente ou não).

Assim que você chama commit, a mensagem está nas filas.

  • Cenário IV, envio de confirmação

Você define um retorno de chamada e recebe uma chamada de método assim que o servidor a registrou nas filas. Procure no manual o retorno de chamada de confirmação. Também há o mesmo recurso no JMS2.