【问题标题】:spring batch compositeitemwriter not rolling back春季批量compositeitemwriter不回滚
【发布时间】:2015-05-28 14:05:44
【问题描述】:

我有一个compositeItemWriter,它有2 个委托作者: 1. HeaderWriter 将我的对象中的一些字段写入 Header Table 2. DetailWriter 将文件写入明细表。

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


仅供参考,我正在使用 Informix 并且不得不将一些 Spring 批处理类扩展为 让 Spring 在 Informix 上工作。

我的配置如下:

我的 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>

上下文.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>

【问题讨论】:

  • 你能分享你的配置吗?

标签: transactions spring-batch


【解决方案1】:

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

Spring Batch CompositeItemWriter Transaction Roll back issue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    相关资源
    最近更新 更多