【发布时间】:2018-12-20 09:19:55
【问题描述】:
我有一个针对第三方服务处理事务的 JMS 使用者。
当调用此第三方服务时出现异常,例如 java.net.ConnectException。我希望队列重新发送此消息。
可以通过两种明显的方法进行重新交付。
回滚事务上下文:队列重新传递消息,但 JPA 事务被回滚(但是,我希望数据库有事务记录以防止重复消息(如果有)。
重新发送来自消费者的消息并带有重新传递时间:保留事务上下文(记录保存在数据库中)。
将消息从消费者重新发送到队列而不是不确认是否存在任何性能问题?
【问题讨论】:
-
您需要用您的数据库实现某种“ReplayServer”。您不能重新请求并重新发送丢失的消息吗?
标签: java jpa jms message-queue spring-jms