首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JmsTemplate批处理问题

JmsTemplate批处理问题
EN

Stack Overflow用户
提问于 2017-04-29 00:13:45
回答 1查看 536关注 0票数 0

我当前的用例在我的侦听器中,它会:

  1. 使用队列中的事件(我们称之为原始事件),此事件包括重放事件列表(让我们称其为子事件)。
  2. 在批处理中将这些重放事件(子事件)生成到其他队列。
  3. 更新卡桑德拉。

我可以根据Gary提到的内容生成所有的重播事件,如果在生成过程中出现任何异常,则可以回滚所有重播事件。

使用一个带有ProducerCallback的执行方法. SessionCallback和ProducerCallback 然后,在ProducerCallback.doInJms()方法中. 使用生产者发送多条消息。当回调退出时,事务将被提交。

但是,如果在步骤3中出现异常,我们只能回滚原始事件,而不能回滚那些重播事件,因为在步骤2中,我们已经在回调退出之后提交了那些重放事件,而那些重播事件已经在另一个队列中了,不能回滚。

如果步骤3有异常,是否有人对我们如何回滚一切有更好的了解?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-29 12:39:56

你必须在同一个会话内做所有的事情;消耗,生产.,卡桑德拉。

都在doInJms()..。

  • session.createConsumer()

尝试{

  • consumer.receive()
  • 制片人派() ..。
  • 卡桑德拉更新

最后{

  • consumer.close()

}

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43690507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档