0
我剛開始使用Weblogic JMS。我能夠將消息發送到隊列並使用messagebean將其關閉。現在我想將消息保存到數據庫。如何在隊列中保存jms消息直到它被保存?
所以我的問題是,我如何告訴JMS不要從隊列中刪除消息,直到成功將消息寫入數據庫爲止?
感謝
我剛開始使用Weblogic JMS。我能夠將消息發送到隊列並使用messagebean將其關閉。現在我想將消息保存到數據庫。如何在隊列中保存jms消息直到它被保存?
所以我的問題是,我如何告訴JMS不要從隊列中刪除消息,直到成功將消息寫入數據庫爲止?
感謝
我能夠將消息發送到隊列中,並用 messagebean拉他們。
我想你是在談論消息驅動bean(MDB)?
所以我的問題是,我怎麼告訴JMS不要從 隊列中刪除的消息,直到我已經成功地寫郵件到 數據庫?
MDB是隱式的容器管理的事務的一部分,並且該消息將不會被只要你的事務尚未COMMITED移除(即,只要你onMessage
方法還沒有達到其結束)。
如果發生回滾(即您拋出異常或致電MessageDrivenContext
上的context.setRollbackOnly()
),則會重新發送消息。你可以通過事務Bean管理或使用@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
來避免這種行爲,但在你的情況下不應該如此。堅持默認配置,一切都應該如你所願。