You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Максим Козлов <dr...@gmail.com> on 2015/12/16 14:15:02 UTC
Error in JPA based idempotent repository
Hi community,
This current project use JPA based idempotent repository and have exception:
[Camel (camel-1) thread #0 -] WARN
org.apache.camel.component.file.FileConsumer - Consumer
Consumer[file://D:%5C1?idempotent=true&idempotentRepository=%23jpaStore]
failed polling endpoint:
Endpoint[file://D:%5C1?idempotent=true&idempotentRepository=%23jpaStore].
Will try again at next poll. Caused by:
[org.apache.openjpa.persistence.InvalidStateException - This broker is not
configured to use managed transactions.]
<openjpa-2.4.0-r422266:1674604 nonfatal user error>
org.apache.openjpa.persistence.InvalidStateException: This broker is not
configured to use managed transactions.
at
org.apache.openjpa.kernel.BrokerImpl.syncWithManagedTransaction(BrokerImpl.java:1569)
at
org.apache.openjpa.kernel.DelegatingBroker.syncWithManagedTransaction(DelegatingBroker.java:948)
at
org.apache.openjpa.persistence.EntityManagerImpl.joinTransaction(EntityManagerImpl.java:558)
at
org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository$2.doInTransaction(JpaMessageIdRepository.java:131)
at
org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository$2.doInTransaction(JpaMessageIdRepository.java:128)
at
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at
org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository.contains(JpaMessageIdRepository.java:128)
at
org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository.contains(JpaMessageIdRepository.java:120)
at
org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository.contains(JpaMessageIdRepository.java:47)
at
org.apache.camel.component.file.GenericFileConsumer.isValidFile(GenericFileConsumer.java:544)
at
org.apache.camel.component.file.FileConsumer.pollDirectory(FileConsumer.java:96)
at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:119)
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Code:
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("idempotentDb");
JpaMessageIdRepository jpaStore = new JpaMessageIdRepository(emf,
"AlphaConsumer");
SimpleRegistry reg = new SimpleRegistry();
reg.put("jpaStore", jpaStore);
CamelContext context = new DefaultCamelContext(reg);
*<?**xml version=**"1.0" **encoding=**"UTF-8" *
*?> *<*persistence **version=**"2.0" **xmlns=*
*"http://java.sun.com/xml/ns/persistence
<http://java.sun.com/xml/ns/persistence>" **xmlns:**xsi**=*
*"http://www.w3.org/2001/XMLSchema-instance
<http://www.w3.org/2001/XMLSchema-instance>" *
*xsi:schemaLocation=**"http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd
<http://java.sun.com/xml/ns/persistence%20http:/java.sun.com/xml/ns/persistence/persistence_2_0.xsd>"*
>
<*persistence-unit **name=**"idempotentDb" **transaction-type=*
*"RESOURCE_LOCAL"*>
<*class*>org.apache.camel.processor.idempotent.jpa.MessageProcessed
</*class*>
<*properties*>
<*property **name=**"openjpa.ConnectionURL" **value=*
*"jdbc:oracle:thin:@*****"*/>
<*property **name=**"openjpa.ConnectionDriverName" **value=*
*"oracle.jdbc.driver.OracleDriver"*/>
<*property **name=**"openjpa.ConnectionUserName" **value=*
*"***"*/>
<*property **name=**"openjpa.ConnectionPassword" **value=**"***"*
/>
<*property **name=**"openjpa.Log" **value=**"DefaultLevel=WARN,
Tool=INFO"*/>
<*property **name=**"openjpa.Multithreaded" **value=**"true"*/>
</*properties*>
</*persistence-unit*>
</*persistence*>
--
Best regards Max Kozlov aka dream-x