首页 > 解决方案 > Spring 事务是否也适用于正常(非 DB)操作?

问题描述

我已经在应用程序的服务层上应用了 spring 事务。有一种方法可以执行以下两个操作
1) 向 SQS 发送消息。
2)并将该条目记录在数据库中。
那么,如果发生任何异常,则在数据库中添加日志时,操作(1)将回滚吗?或者 Spring 将在非数据库操作上应用事务?

标签: javaspring-transactions

解决方案


异常情况下的回滚应用于由该事务管理的任何内容。向 SQS 发送消息不受数据库事务管理,因此不会回滚。

要实现这一点,您需要在回滚中创建一个挂钩,并执行相当于将消息发送到 SQS 的回滚。


推荐阅读