当前位置: 首页 > 知识库问答 >
问题:

spring批处理compositeitemwriter未回滚

东方英豪
2023-03-14

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

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

共有1个答案

纪佐
2023-03-14

希望这个时候能解决。但只是想检查一下您是否通过以下方式或其他方式修复了该问题?

Spring批处理CompositeItemWriter事务回滚问题

 类似资料:
  • 我使用spring批处理从数据库中读取数据(使用分区),并根据输入键-1,2,3,4将数据写入一组文件。 我创建了一个CompositeItemWriter,它是两个ClassifierCompositeItemWriter的组合。即使我已将单个Writer注册为stream,但仍然会遇到以下异常: 我甚至尝试将ItemWriter1和ItemWriter2注册为流,但这给了我一个不同的错误: 请

  • 我有一个场景,它遵循以下步骤: 1。读者将从表a中得到一个列表a。 2。处理器处理列表A以返回对象A和MimeMessage。 3.writer将对象A写入表B中,并使用MimeMessage发送邮件。 我可以在上面的场景中使用CompositeItemProcessor和CompositeItemWriter吗?如果是,我如何在步骤配置中设置输出对象,以及如何定义发送邮件的ItemWriter将

  • 我有一个spring批处理应用程序(spring boot 2.3.5版),它在spring批处理时使用一个JpaRepository将一些自定义日志消息插入数据库。这与开箱即用的spring批处理表是分开的。似乎当我从ItemProcessorAdapter抛出异常时,它会被ItemProcessListener onProcessError()方法捕获。在这个方法中,我执行一个JpaRepos

  • 在我的项目中配置了以下内容: 加载文件时,我有重复的记录,但因为我配置了在下,Spring batch不应回滚记录,但仍将回滚记录。如果我从列表中删除,那么它将抛出异常。我们正在使用Spring批处理版本: 不希望回滚记录,但会回滚记录。

  • 问题内容: 我的问题与春季批次和交易有关。 假设我为我的步骤之一选择了 50 的 提交间隔 。 还要假设我总共有1000条记录,其中一条记录将导致itemWriter失败,从而导致整个块的回滚(在我的示例中为50条记录)。 确保作业完成(并忽略有问题的块)后将49个有效记录写入数据库的状态有哪些? 问题答案: 经过研究,我得出以下结论: 如果项目编写者未能提交一个块(此处为50个项目)从而导致回滚