Jak utworzyć żądanie synchroniczne JMS
Mam aplikację internetową, która ma pobierać i wyświetlać dane z zewnętrznej aplikacji, która jest dostępna tylko za pośrednictwem wiadomości (JMS).
Jeśli więc użytkownik prześle żądanie w przeglądarce, ten sam wątek żądania HTTP będzie musiał współdziałać z systemem przesyłania wiadomości (seria MQ), tak że ten sam wątek żądania może wyświetlać dane otrzymane z systemu przesyłania wiadomości.
Czy jest jakiś wzór, z którego mogę tutaj skorzystać? Widziałem w sieci pewne niejasne odniesienia, które używają w ten sposób „Identyfikatora korelacji”:
Msg m = new TextMsg("findDataXYZ");
String cr_id = m.setCorrelationID(id);
sendQueue.send(m).
// now start listening to the Queue for a msg that bears that specific cr_id
Response r = receiverQueue.receive(cr_id);
Czy jest tam coś lepszego? Inne wzorce, które znalazłem, oczekują asynchronicznej odpowiedzi, co nie jest dla mnie opcją, ponieważ muszę wysłać odpowiedź z powrotem na to samo żądanie HTTP.