在chunck orientad步骤

时间:2015-06-10 20:37:18

标签: spring-batch

我有一个名为Job1的“读取器/处理器/写入器”形式的面向块的处理器。如果可能,我必须在同一事务中结束此作业后执行数据库EJB操作。我有其他工作(由Tasklets实现),我可以简单地做到这一点。在完成exeute方法之前,我只是在tasklet中调用此操作。但在这种情况下,我不知道正确的方法。在第一次尝试中,我通过步骤监听器(外部事务)实现它。但我不能,因为我的公司有uma架构规则不要在监听器中调用数据库操作。我可以在这个步骤之后在tasklet的另一个步骤中执行它,如果我找不到更好的那个,我会这样做,但是如果有可能我想在Job1的同一个事务中执行这个操作。

1 个答案:

答案 0 :(得分:0)

一对夫妇注意到:

  1. 在基于块的步骤(读取器/处理器/写入器)中,通常您将拥有多个事务。每个块一个。
  2. 由于1,您通常无法在与处理项目相同的事务处理的步骤结束时执行数据库调用。它们在多个事务中处理。
  3. 话虽如此,从听起来来看,最好的选择是将你的电话放在基于块的一个之后的另一个步骤。