簡體   English   中英

我可以在單個JMS事務的上下文中接收消息,准備其響應並發送消息嗎?

[英]Can I receive a message, prepare its response and send a message in a context of a single JMS transaction?

學習考試后,我發現在網上瀏覽后我也無法回答任何問題。 問題是:

“服務器可以使用JMS消息接收請求,准備其響應(例如訪問數據庫)並再次使用JMS(即單個JMS事務的范圍)發送答復嗎?”

我知道我們可以在交易的上下文中發送交易消息或接收消息。 我知道我們可以在一個事務中將多個消息發送和接收分組,從而保護整個交互。 但是,JMS被設計為異步的。 因此,從理論上講,我需要一個事務將消息發送到隊列,並需要一個事務從隊列接收消息。 我說的對嗎?是否可以進行一次收發交易?

是的,可以在jMS中實現事務處理的接收器。 它們是通過控制通信的確認模式來實現的:如果所有事務操作都成功,則接收到的消息將被確認給代理,但是在失敗的情況下不會發生,因此可以重新傳遞消息。

本文將對此進行詳細說明:

消息生產者和消息使用者都可以使用事務會話。 [...]

對於消息使用者,事務處理的會話控制消息的確認。 使用者可以像CLIENT_ACKNOWLEDGE模式一樣接收多個消息。 提交關聯事務后,JMS實現將確認關聯事務中收到的所有消息。 如果事務中止,則JMS實現會將消息返回到關聯的隊列或主題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM