Hi,
I am getting the below error message when using the JpaPagingItemReader
Below is the configuration for the JpaPagingItemReaderCode:03-10 15:41:16 ERROR [main] step.AbstractStep - Exception while closing step execution resources org.springframework.batch.item.ItemStreamException: Error while closing item reader at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.close(AbstractItemCountingItemStreamItemReader.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy32.close(Unknown Source) at org.springframework.batch.item.support.CompositeItemStream.close(CompositeItemStream.java:86) at org.springframework.batch.core.step.item.ChunkMonitor.close(ChunkMonitor.java:100) at org.springframework.batch.item.support.CompositeItemStream.close(CompositeItemStream.java:86) at org.springframework.batch.core.step.tasklet.TaskletStep.close(TaskletStep.java:360) at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:255) at org.springframework.batch.core.job.AbstractJob.handleStep(AbstractJob.java:348) at org.springframework.batch.core.job.flow.FlowJob.access$100(FlowJob.java:43) at org.springframework.batch.core.job.flow.FlowJob$JobFlowExecutor.executeStep(FlowJob.java:137) at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:60) at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:144) at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:124) at org.springframework.batch.core.job.flow.FlowJob.doExecute(FlowJob.java:105) at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:250) at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:110) at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:48) at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:105) at org.nmdp.b2b.gateway.job.launcher.TestJobLauncher.main(TestJobLauncher.java:22) Caused by: org.hibernate.SessionException: Session was already closed at org.hibernate.impl.SessionImpl.close(SessionImpl.java:275) at org.hibernate.ejb.EntityManagerImpl.close(EntityManagerImpl.java:125) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365) at $Proxy39.close(Unknown Source) at org.springframework.batch.item.database.JpaPagingItemReader.doClose(JpaPagingItemReader.java:140) at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.close(AbstractItemCountingItemStreamItemReader.java:98) ... 29 more
My first batch read was successful and this happens only in the second batch.Code:<bean id="jpaItemReader" class="org.springframework.batch.item.database.JpaPagingItemReader" scope="step"> <property name="entityManagerFactory" ref="txEntityManager"/> <property name="queryString" value="select tc from table tc where tc.column_name='value'"/> </bean> <bean id="txEntityManager" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceUnitName" value="persistence-unit-name" /> </bean>
Your help is much appreciated.
Thanks.


Reply With Quote