Próbowałem google, ale nie udało się. Jeśli używam AUTO_ACKNOWLEDGE
, a ja mam klienta klienta napisanego w Javie, kiedy jest potwierdzana wiadomość? Używam MessageListener
, który zawiera metodę onMessage
. Czy potwierdzenie jest wysyłane z powrotem na serwer przed onMessage
lub po zakończeniu onMessage
lub w innym punkcie? Z góry dziękujemy za pomoc, którą każdy może zapewnić!JMS AUTO_ACKNOWLEDGE po potwierdzeniu?
Odpowiedz
Proszę to sprawdzić one.
W trybie AUTO_ACKNOWLEDGE
potwierdzenie jest zawsze ostatnią rzeczą, która może się wydarzyć pośrednio po zwrocie handlerka onMessage()
. Klient odbierający komunikaty może uzyskać precyzyjniejszą kontrolę nad dostarczaniem gwarantowanych wiadomości, określając tryb CLIENT_ACKNOWLEDGE
w sesji konsumującej.
Użycie numeru CLIENT_ACKNOWLEDGE
umożliwia aplikacji kontrolę nad wysłaniem potwierdzenia. Na przykład aplikacja może potwierdzić komunikat - w ten sposób odciążając dostawcę JMS - i wykonać dalsze przetwarzanie danych reprezentowanych przez komunikat. Kluczem do tego jest metoda potwierdzenia() w obiekcie Message, jak pokazano na listingu 1.
Metoda acknowledge()
informuje dostawcę JMS, że wiadomość została pomyślnie odebrana przez konsumenta. Ta metoda zgłasza wyjątek do klienta, jeśli wystąpi awaria dostawcy podczas procesu potwierdzania. Awaria dostawcy powoduje zatrzymanie komunikatu przez serwer JMS w celu ponownego dostarczenia.
CLIENT_ACKNOWLEDGE
W tym trybie potwierdzenia, klient uznaje się zużywanej wiadomość poprzez wywołanie metody potwierdzić Komunikat jest.
Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
...
msg = (TextMessage) consumer.receive();
//acknowledge
msg.acknowledge();
AUTO_ACKNOWLEDGE
W tym trybie potwierdzenia, sesja automatycznie potwierdza odbiór klienta komunikatu albo gdy sesja z powodzeniem wrócił z zaproszenia do odbioru lub gdy słuchacz wiadomość sesja wezwał do procesu wiadomość powraca.
Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
- 1. Jak zasymulować ponowną dostawę wiadomości w scenariuszu sesji JMS AUTO_ACKNOWLEDGE?
- 2. ActiveMQ Sesja AUTO_ACKNOWLEDGE wpływ nieruchomość
- 3. Szyny link_to: Zrób coś po potwierdzeniu
- 4. Nieznana aplikacja po potwierdzeniu zakupu w aplikacji
- 5. Jak przejść do innej strony po potwierdzeniu wyskakującym jonowo
- 6. Wysyłanie drugiej wiadomości po potwierdzeniu pierwszego. Czy RabbitMQ gwarantuje zamówienie?
- 7. Zastępowanie ścieżki przekierowania po potwierdzeniu konta przez użytkownika - Wymyślenie
- 8. Dlaczego wywołanie zszywania protokołów OCSP jest wywoływane po potwierdzeniu oddzwonienia?
- 9. JMS rollback
- 10. Czy pocieszenie jms implementuje specyfikację JMS 2.0?
- 11. JMS QueueConnectionFactory vs ConnectionFactory
- 12. JMS for Tomcat 6
- 13. Krok po kroku Przykładowy JMS w Spring Framework
- 14. Do czego należy broker JMS w systemie JMS Eco?
- 15. Kopiowanie właściwości wiadomości JMS
- 16. Kolejka JMS jest pełna
- 17. jms serializer Wydajność wydania
- 18. Odpowiednik JMS w .Net
- 19. Odłączanie od WebLogic JMS
- 20. Plik JB TIBCO JMS
- 21. Tryb wielbłąd, JMS, CLIENT_ACKNOWLEDGE
- 22. Kolejka JMS otrzymuje wiadomość?
- 23. Spożywanie wiadomości JMS autorem node.js
- 24. Sygnalizacja wycofania z JMS MessageListener
- 25. Jak podłączyć JMS z PHP?
- 26. Liczba komunikatów w kolejce JMS
- 27. JMS Serialize @VirtualProperty nie działa
- 28. Filtrowanie wiadomości JMS według JMSCorrelationID
- 29. JMS serializator yml datetime format
- 30. Szyny 4 - Wymyśl, pomiń powiadomienie o potwierdzeniu: after_create
Co się stanie, jeśli jest wyjątek podczas przetwarzania 'onMessage()'? Czy wiadomość zostanie ponownie dostarczona, jeśli ustawiona jest opcja "AUTO_ACKNOWLEDGE"? – Geek
@Geek - Jeśli w onReceive lub JMSListener zostanie zgłoszony wyjątek, potwierdzenie nie zostanie wysłane i zostanie ponownie dostarczone. – GameSalutes
W przypadku odbierania wiadomości synchronicznie z AUTO_ACKNOWLEDGE, komunikat jest potwierdzany podczas wywoływania metody consumer.receive – Wecherowski