今天日常环境中出现了一个事务相关bug,具体问题是这样的:我们有一个事件监听服务,监听到的各种事件都在这个里面处理。现在我们有一个业务单元初始化的时候会同步过来一批客户信息,事件监听服务里处理这批数据并批量插入数据库中,我们业务代码调用了平台框架中提供的批量处理操作,该操作会循环处理每一条数据,因为我们每插入一条数据会相应操作好几张表单,所以每个循环都会开启一个事务,即一条处理失败不影响其他数据的插入。但是推到日常环境中去之后发现,一条插入失败,所有都失败了,这明显不符合业务需求。所以查找bug,最后终于找到问题所在,在此记录一下。
一、源码分析
图(1)