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.

Reply via email to