Hi Michel,
I need help from you.
I am using partinor handler to read the multiple files.
I am reading and writing the multiple files(10 no of files) in DB sucessfully and there is no issue with that.
It takes within 1 min all operations (reading and wrting to DB)
When I trying to do with morethan 500 files, it takes morethan 10min to insert into DB.
It get struck for 4 to 5 mins while the reading the files..afterthat It start reading the files and wrting into DB.
I dont know why it is happening even also I set commit interval to 30000 but result is same.
One morething i am using syncTaskExecutor for inserting purpose.
Here is code below
Code:
<job id="file_partition_Job" job-repository="jobRepository" >
<step id="fileProcessStep" parent="step1:master" />
</job>
<beans:bean name="step1:master" class="org.springframework.batch.core.partition.support.PartitionStep">
<beans:property name="jobRepository" ref="jobRepository" />
<beans:property name="stepExecutionSplitter">
<beans:bean class="org.springframework.batch.core.partition.support.SimpleStepExecutionSplitter">
<beans:constructor-arg ref="jobRepository" />
<beans:constructor-arg ref="step1" />
<beans:constructor-arg>
<beans:bean class="org.springframework.batch.core.partition.support.MultiResourcePartitioner">
<beans:property name="resources" value="file:c:/data/input/splitfiles/*.SHD" />
</beans:bean>
</beans:constructor-arg>
</beans:bean>
</beans:property>
<beans:property name="partitionHandler">
<beans:bean class="org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler">
<beans:property name="taskExecutor" ref="syncTaskExecutor" />
<beans:property name="step" ref="step1" />
</beans:bean>
</beans:property>
</beans:bean>
<bean id="syncTaskExecutor" class="org.springframework.core.task.SyncTaskExecutor" />
<step id="step1">
<tasklet job-repository="jobRepository" transaction-manager="jobRepository-transactionManager">
<chunk reader="playerFileItemReader" writer="playerFileItemWriter" commit-interval="5000" />
</tasklet>
</step>
<beans:bean id="playerFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<beans:property name="resource" value="#{stepExecutionContext[fileName]}" />
<beans:property name="strict" value="false" />
<beans:property name="lineMapper">
<beans:bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<beans:property name="lineTokenizer">
<beans:bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<beans:property name="delimiter" value="="/>
<beans:property name="names" value="FieldKey,FieldValue" />
</beans:bean>
</beans:property>
<beans:property name="fieldSetMapper">
<beans:bean class="com.hsbc.readers.PlayerFieldSetMapper" />
</beans:property>
</beans:bean>
</beans:property>
</beans:bean>
Please advice. it is very urgent to reolsve this issue as per my project deadline.
Thanks