Hi Christian Here is a nice trace.
As you can see the whole batch is rolled back when redelivery gets exhausted. [rip.adapters.rap.PublicationIn] DefaultErrorHandler WARN Failed delivery for exchangeId: ID-W14523-2657-1320391149162-0-141. On delivery attempt: 0 caught: java.lang.RuntimeException: unable to parse publication with id 1234 [rip.adapters.rap.PublicationIn] DefaultErrorHandler WARN Failed delivery for exchangeId: ID-W14523-2657-1320391149162-0-141. On delivery attempt: 1 caught: java.lang.RuntimeException: unable to parse publication with id 1234 [rip.adapters.rap.PublicationIn] DefaultErrorHandler WARN Failed delivery for exchangeId: ID-W14523-2657-1320391149162-0-141. On delivery attempt: 2 caught: java.lang.RuntimeException: unable to parse publication with id 1234 [rip.adapters.rap.PublicationIn] DefaultErrorHandler WARN Failed delivery for exchangeId: ID-W14523-2657-1320391149162-0-141. On delivery attempt: 3 caught: java.lang.RuntimeException: unable to parse publication with id 1234 [rip.adapters.rap.PublicationIn] rap ERROR Exchange[Id:ID-W14523-2657-1320391149162-0-141, ExchangePattern:InOnly, Properties:{CamelToEndpoint=log://dk.dr.drip.adapters.rap?level=ERROR&showAll=true, CamelBatchComplete=false, CamelBatchSize=100, CamelCreatedTimestamp=Fri Nov 04 08:19:14 CET 2011, CamelBatchIndex=70, CamelExceptionCaught=java.lang.RuntimeException: unable to parse publication with id 1234}, Headers:{CamelRedelivered=true, CamelRedeliveryMaxCounter=3, CamelRedeliveryCounter=3, CamelInterceptedEndpoint=log://dk.dr.drip.adapters.rap?level=ERROR&showAll=true, CamelJpaTemplate=org.springframework.orm.jpa.JpaTemplate@192e317, breadcrumbId=ID-W14523-2657-1320391149162-0-142}, BodyType:dk.dr.drip.adapters.rap.PublicationIn, Body:PublicationIn [sekvens=71, publicationId=1234, runningOrderId=3229431], CaughtExceptionType:java.lang.RuntimeException, CaughtExceptionMessage:unable to parse publication with id 1234, StackTrace:java.lang.RuntimeException: unable to parse publication with id 1234 at dk.dr.drip.adapters.rap.PublicationBuilder.buildPublication(PublicationBuilder.java:56) at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:329) at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:231) at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:169) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:171) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.Debug$1.process(Debug.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:305) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.Pipeline.process(Pipeline.java:116) at org.apache.camel.processor.Pipeline.process(Pipeline.java:79) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209) at org.apache.camel.spring.spi.TransactionErrorHandler.processByErrorHandler(TransactionErrorHandler.java:206) at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:166) at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.apache.camel.spring.spi.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:159) at org.apache.camel.spring.spi.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:120) at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:94) at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:103) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:171) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.Debug$1.process(Debug.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:305) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85) at org.apache.camel.component.jpa.JpaConsumer.processBatch(JpaConsumer.java:142) at org.apache.camel.component.jpa.JpaConsumer$1.doInJpa(JpaConsumer.java:97) at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1$1.doInJpa(JpaTemplateTransactionStrategy.java:82) at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:183) at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:146) at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1.doInTransaction(JpaTemplateTransactionStrategy.java:80) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy.execute(JpaTemplateTransactionStrategy.java:78) at org.apache.camel.component.jpa.JpaConsumer.poll(JpaConsumer.java:80) at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:133) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:88) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) , Out: null] [rip.adapters.rap.PublicationIn] DefaultErrorHandler ERROR Failed delivery for exchangeId: ID-W14523-2657-1320391149162-0-141. Exhausted after delivery attempt: 4 caught: java.lang.RuntimeException: unable to parse publication with id 1234. Processed by failure processor: FatalFallbackErrorHandler[Channel[sendTo(Endpoint[log://dk.dr.drip.adapters.rap?level=ERROR&showAll=true])]] java.lang.RuntimeException: unable to parse publication with id 1234 at dk.dr.drip.adapters.rap.PublicationBuilder.buildPublication(PublicationBuilder.java:56) at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:329) at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:231) at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:169) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:171) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.Debug$1.process(Debug.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:305) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.Pipeline.process(Pipeline.java:116) at org.apache.camel.processor.Pipeline.process(Pipeline.java:79) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209) at org.apache.camel.spring.spi.TransactionErrorHandler.processByErrorHandler(TransactionErrorHandler.java:206) at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:166) at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.apache.camel.spring.spi.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:159) at org.apache.camel.spring.spi.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:120) at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:94) at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:103) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:171) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.Debug$1.process(Debug.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:305) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85) at org.apache.camel.component.jpa.JpaConsumer.processBatch(JpaConsumer.java:142) at org.apache.camel.component.jpa.JpaConsumer$1.doInJpa(JpaConsumer.java:97) at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1$1.doInJpa(JpaTemplateTransactionStrategy.java:82) at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:183) at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:146) at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy$1.doInTransaction(JpaTemplateTransactionStrategy.java:80) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy.execute(JpaTemplateTransactionStrategy.java:78) at org.apache.camel.component.jpa.JpaConsumer.poll(JpaConsumer.java:80) at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:133) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:88) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) [rip.adapters.rap.PublicationIn] TransactionErrorHandler WARN Transaction rollback (0x5113f0) for ExchangeId: ID-W14523-2657-1320391149162-0-141 due exception: java.lang.RuntimeException: unable to parse publication with id 1234 [rip.adapters.rap.PublicationIn] ultPollingConsumerPollStrategy WARN Consumer Consumer[jpa://dk.dr.drip.adapters.rap.PublicationIn?consumeLockEntity=false&consumer.query=select+p+from+dk.dr.drip.adapters.rap.PublicationIn+p+order+by+sekvens&maximumResults=100] could not poll endpoint: Endpoint[jpa://dk.dr.drip.adapters.rap.PublicationIn?consumeLockEntity=false&consumer.query=select+p+from+dk.dr.drip.adapters.rap.PublicationIn+p+order+by+sekvens&maximumResults=100] caused by: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:476) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:147) at org.apache.camel.component.jpa.JpaTemplateTransactionStrategy.execute(JpaTemplateTransactionStrategy.java:78) at org.apache.camel.component.jpa.JpaConsumer.poll(JpaConsumer.java:80) at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:133) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:88) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: javax.persistence.RollbackException: Transaction marked as rollbackOnly at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:51) at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:467) -- View this message in context: http://camel.465427.n5.nabble.com/Misleading-jmx-statistics-on-jpa-component-tp4960503p4963230.html Sent from the Camel - Users mailing list archive at Nabble.com.