我的问题如下:我有一个服务,它查询数据库并检索一些记录。然后它使用该信息更新外部系统,最后更新回数据库。
使用 spring trascations 和 weblogic jta 事务管理器,我能够使用下面的示例代码不丢失任何消息,以防万一
- 没有记录被检索。(这些对于外部系统是强制性的)
- 外部系统错误
- 更新数据库失败
因此,在所有上述情况下,JMS 侦听器都会将错误消息放回队列中。
我的问题是,有没有更好的方法,使用 Spring 及其所有优点来管理它?下面的示例代码明确抛出了一个 RuntimeException,我认为这不是一个好的设计......
请您发表意见。
编辑:提交侦听器 MDP 正在轮询队列,其配置如下所示。消息被消费后,它调用服务的 registerDocument()。(另一个 Spring bean)。该服务调用 2 次 DAO 和外部系统。