Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在保存jms消息之前将其保存在队列中?_Jms_Weblogic 10.x - Fatal编程技术网

如何在保存jms消息之前将其保存在队列中?

如何在保存jms消息之前将其保存在队列中?,jms,weblogic-10.x,Jms,Weblogic 10.x,我刚开始使用WebLogicJMS。我能够将消息发送到队列,并使用messagebean将它们发送出去。现在我想将消息保存到数据库中 所以我的问题是,如何告诉JMS在成功将消息写入数据库之前不要从队列中删除消息 谢谢 我能够向队列发送消息,并使用 messagebean 我想您是在谈论消息驱动bean() 所以我的问题是,我如何告诉JMS不要从中删除消息 等待队列,直到我将消息成功写入 数据库 MDB是隐式容器管理事务的一部分,只要您的事务尚未提交(也就是说,只要您的onMessage方法尚未结

我刚开始使用WebLogicJMS。我能够将消息发送到队列,并使用messagebean将它们发送出去。现在我想将消息保存到数据库中

所以我的问题是,如何告诉JMS在成功将消息写入数据库之前不要从队列中删除消息

谢谢

我能够向队列发送消息,并使用 messagebean

我想您是在谈论消息驱动bean()

所以我的问题是,我如何告诉JMS不要从中删除消息 等待队列,直到我将消息成功写入 数据库

MDB是隐式容器管理事务的一部分,只要您的事务尚未提交(也就是说,只要您的
onMessage
方法尚未结束),消息就不会被删除

在回滚的情况下(即,在
MessageDrivenContext
上抛出异常或调用
context.setRollbackOnly()
),消息将重新传递。您可以通过管理事务bean或使用
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
来避免这种行为,但在您的情况下不应该这样。坚持默认配置,一切都应该按照您的意愿工作