Here are some details.
We are using Camel 2.14.1. The JDK version is 1.6.
In our persistence.xml file, the persistence units configuration is:
<persistence-unit name="sourcePersistenceUnit"
transaction-type="RESOURCE_LOCAL">
<class>com.xfab.eip.route.dbpolling.model.FraPollSource</class>
<class>org.apache.camel.processor.idempotent.jpa.MessageProcessed</class>
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.SQLServerDialect" />
<property name="hibernate.connection.driver_class"
value="net.sourceforge.jtds.jdbc.Driver" />
<property name="hibernate.connection.url"
value="jdbc:jtds:sqlserver://..." />
<property name="javax.persistence.jdbc.user"
value="..." />
<property name="javax.persistence.jdbc.password"
value="..." />
<property name="hibernate.hbm2ddl.auto" value="/*
validate */" />
<property name="hibernate.default_schema" value="dbo" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
</properties>
</persistence-unit>
<persistence-unit name="idempotentPersistenceUnit"
transaction-type="RESOURCE_LOCAL">
<class>org.apache.camel.processor.idempotent.jpa.MessageProcessed</class>
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.DB2Dialect" />
<property name="hibernate.connection.driver_class"
value="com.ibm.db2.jcc.DB2Driver" />
<property name="hibernate.connection.url"
value="jdbc:db2://..." />
<property name="javax.persistence.jdbc.user"
value="..." />
<property name="javax.persistence.jdbc.password"
value="..." />
<property name="hibernate.hbm2ddl.auto" value="/*
validate */" />
<property name="hibernate.default_schema" value="PILOT"
/>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
</properties>
</persistence-unit>
In our camel-context.xml file, the configuration is:
<bean id="jpa.source"
class="org.apache.camel.component.jpa.JpaComponent">
<property name="entityManagerFactory"
ref="jpa.source.entityManagerFactory" />
<property name="transactionManager" ref="jpa.source.txManager"
/>
</bean>
<bean id="jpa.source.txManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory"
ref="jpa.source.entityManagerFactory" />
</bean>
<bean id="jpa.source.entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName"
value="sourcePersistenceUnit" />
</bean>
<bean id="jpaStore"
class="org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository">
<constructor-arg index="0"
ref="jpa.idempotent.entityManagerFactory" />
<constructor-arg index="1" value="dbpollingConsumer" />
</bean>
<bean id="jpa.idempotent.txManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory"
ref="jpa.idempotent.entityManagerFactory" />
</bean>
<bean id="jpa.idempotent.entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName"
value="idempotentPersistenceUnit" />
</bean>
In our route, we inject the jpaStore, and create idempotent consumer like
this:
from(jpa.source:com.xfab.eip.route.dbpolling.model.FraPollSource)
// Sets message id exchange's message-id property
.process(uniqueMessageIdCalculator)
.idempotentConsumer(simple("${property.message-id}"), jpaStore)
--
View this message in context:
http://camel.465427.n5.nabble.com/Idempotent-consumer-and-JpaMessageIdRepository-with-two-databases-tp5808258p5808259.html
Sent from the Camel - Users mailing list archive at Nabble.com.