我有一个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>
希望这个时候能解决。但只是想检查一下您是否通过以下方式或其他方式修复了该问题?
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个项目)从而导致回滚