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