數據庫事務是一個熟悉的概念。JMS事務
try {
...
..
updateDB()
..
...
commit();
} catch error {
rollback();
}
如果發生任何錯誤,updateDB所做的任何更改都將被丟棄。
我想知道什麼消息隊列事務回滾將撤消。
try{
...
...
//EDIT: swapped the order of receive and send
Message m = queue1.receiveMessage(..)
..
..
queue2.sendMessage(..)
..
..
commit();
} catch error {
rollback();
}
具體而言,究竟會回滾做
- 取消消息的發送
- 未收到,即放回接收 消息回到隊列
消息還是我我把數據庫tx比喻得太過分了。
感謝
編輯:我不是暗示的發送和接收操作是相關的。我只是想說有兩個操作會改變消息代理的狀態 - 接收消息會從隊列中取出消息,如果有其他消費者,消息將不可用。
感謝您的見解。但我並不是暗示我在等待發送消息的回覆,只是想指出狀態的兩個變化。我已經添加了對我的問題的解釋並交換了接收/發送消息的順序。 – mzzzzb