搭建批处理框架问题总结Spring Batch + Spring Batch Admin + Quartz

在使用Spring Batch与Spring Batch Admin搭建批处理框架时遇到事务管理问题,具体表现为Tasklet中Dao更新操作未生效。分析发现由于spring-batch-admin-manager的数据源和事务管理器与应用中的配置冲突,导致两个独立的事务管理器存在。为确保批处理框架与业务逻辑数据在同一事务中操作,需将TaskletStep的事务管理器设置为与Dao模块相同的PlatformTransactionManager。通过调整代码,使用指定名称的txManager资源解决事务提交问题。
摘要由CSDN通过智能技术生成

Transaction Manager 事务管理器问题:

问题现象:在Tasklet中调用Dao  update更新数据,发现数据库没有变。

问题分析:猜测是没有commit

原来,我用了spring batch admin作为批处理界面管理,

但是spring-batch-admin-manager*.jar内部data-source-context.xml定义了数据源和事务管理器

与我的dao模块的datasource,  transaction manager冲突了。


这里实际用了两个事务管理器:

* 1)transactionManager 用于spring batch登记BATCH_开头的框架相关表:
* 配置在spring-batch-manager.jar的data-source-context.xml中.
* JobRepository, JobRegistry, JobLauncher, JobService都是使用这个事务管理器。

* 2) 用于 控制TaskletStep中(调用dao)业务逻辑数据的提交和回滚,
* 所以必须和act-dao中的mybatis事务管理器txManager是同一个对象,才

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值