Използвам org.hornetq.api.core.client как мога да гарантирам съобщението, което всъщност изпращам стигна до опашката (не клиентът, а само опашката)?
producer.send("validQueue",clientMessage)
моля, имайте предвид, че опашката е валидна опашка.
това подобен въпрос се отнася за невалидна опашка. други такива като този е от значение за доставката до клиента.
Отговори:
3 за отговор № 1Наистина зависи от това как изпращате.
Първият ваш въпрос беше за Преди всичко,в JMS трябва да изпратите до невалидна опашка, тъй като производителят ще валидира съществуването на опашката. В основата api на HornetQ изпращате до адрес (а не на опашка) и може да имате опашка без връзка. да питам дали адресът има опашки или не.
Сега за потвърждение бе получено съобщението:
- Сценарий I, постоянни съобщения без транзакция
Всяко съобщение се изпраща блокирано. Клиентът ще деблокира веднага щом сървърът потвърди получаването на съобщението. Това се прави автоматично .. не е нужно да правите нищо.
- Сценарий II, непостоянни съобщения, без транзакция
По подразбиране няма потвърждения. Съобщението се изпраща асинхронно. Предполагаме, че съобщението е преходно и не е голяма работа, ако сте го загубили. Можете да го промените, като зададете block-on-non-persistent-send на ServerLocator.
- Сценарий III, трансакционен (постоянен или не).
Веднага щом се обадите на ангажимент, съобщението е на опашките.
- Сценарий IV, Изпращане на потвърждение
Задавате обратно повикване и получавате обаждане на метод веднага щом сървърът го сложи на опашките. Вижте ръководството за потвърждение за обратно извикване. Същата функция има и в JMS2.