Transactions spring batch compositeitemwriter未回滚

Transactions spring batch compositeitemwriter未回滚,transactions,spring-batch,Transactions,Spring Batch,我有一个compositeItemWriter,它有两个代理编写器: 1.HeaderWriter将一些字段从我的对象写入头表 2.DetailWriter将文件写入详细信息表 问题是,当DetailWriter中发生异常时,数据不会从Headerwriter回滚。看起来数据正在两个不同的事务中更新。 如何通过在同一事务中进行两次更新来加强数据完整性 仅供参考,我正在使用Informix,必须将一些Spring批处理类扩展到 让Spring在Informix上工作 我的配置如下: my rep

我有一个compositeItemWriter,它有两个代理编写器: 1.HeaderWriter将一些字段从我的对象写入头表 2.DetailWriter将文件写入详细信息表

问题是,当DetailWriter中发生异常时,数据不会从Headerwriter回滚。看起来数据正在两个不同的事务中更新。 如何通过在同一事务中进行两次更新来加强数据完整性


仅供参考,我正在使用Informix,必须将一些Spring批处理类扩展到 让Spring在Informix上工作

我的配置如下:

my reportjob.xml中的部分:

<bean id="programHeaderWriter"   
class="com.bah.discrepancy.writer.ProgramHeaderWriter">
    <property name="dataSource" ref="dataSource" />  
    <property name="itemSqlParameterSourceProvider">
    <bean   
 class="com.bah.discrepancy.parametermapper.ProgramHdrParameterMapper"/>
    </property>
 </bean>
<bean id="programDetailWriter"  
class="com.bah.discrepancy.writer.ProgramDetailWriter">
    <property name="dataSource" ref="dataSource" />  
    <property name="itemSqlParameterSourceProvider">
    <bean 
 class="com.bah.discrepancy.parametermapper.ProgramDetailParamMapper" />
    </property>
 </bean>

Context.xml:

<bean id="transactionManager"       
class="org.springframework.batch.support.transaction.ResourcelessTransaction
    Manager" />

<bean id="batchDefaultSerializer"  
class="org.springframework.batch.core.repository.dao.
DefaultExecutionContextSerializer" />

<bean id="dataSource"  
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.informix.jdbc.IfxDriver"
         />
        <property name="url" value="<URL>" />
        <property name="username" value="<UserID>" />
        <property name="password" value="<Password>" />
    </bean>



    <bean id="jobRepository"  
     class="com.bah.batch.informixsupport.InformixJobRepositoryFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="databaseType" value="Informix"/>
        <property name="incrementerFactory" ref="informixIncrementer"/>
        <property name="transactionManager" ref="transactionManager"/>
        <property name="tablePrefix" value="BATCH_" />
    </bean>

希望这个问题能在这个时候得到解决。但是,我只是想检查一下,您是否已通过以下方式或任何其他方式解决了此问题


您能分享您的配置吗?