我正在设置JdbcPagingItemReader的maxItemCount属性。
我将它设置为200但我正在阅读/处理/写入203,205。
大部分时间我都会得到200分,但我总能得到200分左右。
为什么会这样?
我已经检查过,203-205处理的sortkey没有相同的timestamp值,而max.item.count字段在数据库表的batch_execution_context条目中不存在。
有一个JdbcPagingItemReader.read.count.max字段,但它设置为200.
我正在使用oracle。
<bean id="batchReader" class="org.springframework.batch.item.database.JdbcPagingItemReader" scope="step">
<property name="dataSource" ref="myDataSource"/>
<property name="queryProvider">
<bean class="org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="selectClause" value="select *" />
<property name="fromClause" value="from TRANSACTION" />
<property name="whereClause" value="where STATUS = 'OK' and TYPE = 200 " />
<property name="sortKey" value="TRANSACTION_TIMESTAMP"/>
</bean>
</property>
<!-- Inject via the ExecutionContext in rangePartitioner -->
<property name="parameterValues">
<map>
</map>
</property>
<property name="maxItemCount" value="200"/>
<property name="pageSize" value="50"/>
<property name="rowMapper">
<bean class="com.mappers.TransactionMapper" scope="step"/>
</property>
</bean>