Spring Batch - Issue with PageSize in JdbcPagingItemReader -


hi working on spring batch, processes skus in sku table , send request inventory system inventory details. send invetory details need send 100 ski ids @ time have set pagesize 100.

in reader log: see

select * (select s_id ,s_prnt_prd,sq, rownum tmp_row_num xxx_sku sq>=:min , sq <=:max order sq asc) rownum <= 100]

but observe in writer time 100 sku sent , requests 1 sku sent.

public void write(list<? extends xxxpagingbean> pitems) throws xxxskipitemexception { if (mlogger.isloggingdebug()) { mlogger.logdebug("xxxinventoryservicewriter.write() method starting, itemslist size:{0}" +pitems.size()); } .... .... } 
  • pagesize , commitinterval set 100 (are these suppose same?)
  • sortkey (seq_id) should same column use in partitiner?

bean configurations in xml:

<!-- inventoryservice writer configuration -->  <bean id="inventorygridservice" class="atg.nucleus.spring.nucleusresolverutil" factory-method="resolvename"> <constructor-arg value="/com/xxx/gigaspaces/inventorygrid/service/inventorygridservice" /> </bean>  <bean id="inventorywriter" class="com.xxx.batch.integrations.xxxxxx.xxxxinventoryservicewriter" scope="step"> <property name="jdbctemplate" ref="batchdstemplate"></property> <property name="inventorygridservice" ref="inventorygridservice" /> </bean>  <bean id="pagingreader" class="org.springframework.batch.item.database.jdbcpagingitemreader" xmlns="http://www.springframework.org/schema/beans" scope="step"> <property name="datasource" ref="datasource" /> <property name="queryprovider"> <bean id=" productqueryprovider" class="org.springframework.batch.item.database.support.sqlpagingqueryproviderfactorybean"> <property name="datasource" ref="datasource" /> <property name="selectclause" value="select s_id ,s_prnt_prd" /> <property name="fromclause" value="from xxx_sku" /> <property name="sortkey" value="seq_id" /> <property name="whereclause" value="seq_id>=:min , seq_id &lt;=:max"></property> </bean> </property> <property name="parametervalues"> <map> <entry key="min" value="#{stepexecutioncontext[minvalue]}"></entry> <entry key="max" value="#{stepexecutioncontext[maxvalue]}"></entry> </map> </property> <property name="pagesize" value="100" /> <property name="rowmapper"> <bean class="com.xxx.batch.integrations.endeca.xxxpagingrowmapper"></bean> </property> </bean> 

please suggest.

remove whereclause productqueryprovider bean definition , rid of parametervalues , should work. pagingqueryprovider takes care of paging automatically you. there's no need manually yourself.


Comments

Popular posts from this blog

Hatching array of circles in AutoCAD using c# -

ios - UITEXTFIELD InputView Uipicker not working in swift -

Python Pig Latin Translator -