最近有人问我一个问题,让我不禁思考。。希望得到社区对同一问题的看法。
我有一个CustomerEJB,它有一个createCustomer方法。我的EJB作为web服务公开,因此createCustomer是其操作之一。
当请求命中createCustomer时,需要执行2个操作
现在的问题是我想将这两个任务耦合到一个事务中。如果任何一个任务失败,我也会回滚另一个任务。
没有提到任何热门技术,例如Spring/Hibernate,我可以遵循什么方法来进行事务管理
我的想法:1.我可以使用JTA,划定事务边界并相应地执行提交和回滚。JDBC 可用于 SQL 任务 2。我可以使用DAO
欢迎您的友好建议/评论
您需要将创建的文件包装在支持 XA 的 JCA 连接器中(不确定是否有现成的连接器,一个快速的好处只找到了这个尚不支持事务的 fsconnector),并为数据库事务使用 XA 驱动程序(大多数数据库将能够处理这个问题),然后将您的 EJB 包装在 XA 事务中(应该很简单)。
只要两个资源都可以处理XA事务,您就可以获得两阶段提交的好处,这正是您所追求的。