如何在队列中保存jms消息直到它被保存?
我刚开始使用Weblogic JMS。我能够将消息发送到队列并使用messagebean将其关闭。现在我想将消息保存到数据库。如何在队列中保存jms消息直到它被保存?
所以我的问题是,我如何告诉JMS不要从队列中删除消息,直到成功将消息写入数据库为止?
感谢
回答:
我能够将消息发送到队列中,并用 messagebean拉他们。
我想你是在谈论消息驱动bean(MDB)?
所以我的问题是,我怎么告诉JMS不要从 队列中删除的消息,直到我已经成功地写邮件到 数据库?
MDB是隐式的容器管理的事务的一部分,并且该消息将不会被只要你的事务尚未COMMITED移除(即,只要你onMessage
方法还没有达到其结束)。
如果发生回滚(即您抛出异常或致电MessageDrivenContext
上的context.setRollbackOnly()
),则会重新发送消息。你可以通过事务Bean管理或使用@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
来避免这种行为,但在你的情况下不应该如此。坚持默认配置,一切都应该如你所愿。
以上是 如何在队列中保存jms消息直到它被保存? 的全部内容, 来源链接: utcz.com/qa/258609.html