2012-12-19 41 views
0

我剛開始使用Weblogic JMS。我能夠將消息發送到隊列並使用messagebean將其關閉。現在我想將消息保存到數據庫。如何在隊列中保存jms消息直到它被保存?

所以我的問題是,我如何告訴JMS不要從隊列中刪除消息,直到成功將消息寫入數據庫爲止?

感謝

回答

1

我能夠將消息發送到隊列中,並用 messagebean拉他們。

我想你是在談論消息驅動bean(MDB)?

所以我的問題是,我怎麼告訴JMS不要從 隊列中刪除的消息,直到我已經成功地寫郵件到 數據庫?

MDB是隱式的容器管理的事務的一部分,並且該消息將不會被只要你的事務尚未COMMITED移除(即,只要你onMessage方法還沒有達到其結束)。

如果發生回滾(即您拋出異常或致電MessageDrivenContext上的context.setRollbackOnly()),則會重新發送消息。你可以通過事務Bean管理或使用@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)來避免這種行爲,但在你的情況下不應該如此。堅持默認配置,一切都應該如你所願。

相關問題