Question

I have two standalone HornetQ servers on same the machine! I followed jms-bridge example in HornetQ examples for configuring source server and target server (I copied configurations from example to my servers). When i want running target server (that contains jms bridge) It can not find TransactionManager property of JMSBridge bean, because com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple is not in server classpath. What should i choose instead of this implementation of TransactionManager? Or what jar files required for com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple?

   <!-- The JMS Bridge -->
   <bean name="JMSBridge" class="org.hornetq.jms.bridge.impl.JMSBridgeImpl">
           <constructor>
               <!-- Source ConnectionFactory Factory -->
               <parameter>
                   <inject bean="SourceCFF"/>
               </parameter>
               <!-- Target ConnectionFactory Factory -->
               <parameter>
                   <inject bean="TargetCFF"/>
               </parameter>
               <!-- Source DestinationFactory -->
               <parameter>
                   <inject bean="SourceDestinationFactory"/>
               </parameter>
               <!-- Target DestinationFactory -->
               <parameter>
                   <inject bean="TargetDestinationFactory"/>
               </parameter>
               <!-- Source username (no username here) -->
               <parameter><null /></parameter>
               <!-- Source password (no password here)-->
               <parameter><null /></parameter>
               <!-- Target username (no username here)-->
               <parameter><null /></parameter>
               <!-- Target password (no password here)-->
               <parameter><null /></parameter>
               <!-- Selector -->
               <parameter><null /></parameter>
               <!-- Interval to retry in case of failure (in ms) -->
               <parameter>5000</parameter>
               <!-- Maximum number of retries to connect to the source and target -->
               <parameter>10</parameter>
               <!-- Quality of service -->
               <parameter>ONCE_AND_ONLY_ONCE</parameter>
               <!-- Maximum batch size -->
               <parameter>1</parameter>
               <!-- Maximum batch time (-1 means infinite) -->
               <parameter>-1</parameter>
               <!-- Subscription name (no subscription name here)-->
               <parameter><null /></parameter>
               <!-- client ID  (no client ID here)-->
               <parameter><null /></parameter>
               <!-- concatenate JMS messageID to the target's message header -->
               <parameter>true</parameter>
               <!-- register the JMS Bridge in the JMX MBeanServer -->
               <parameter>
                   <inject bean="MBeanServer"/>
               </parameter>
               <parameter>org.hornetq:service=JMSBridge</parameter>
           </constructor>
           <property name="transactionManager">
               <inject bean="TransactionManager"/>
           </property>

           <!-- HornetQ JMS Server must be started before the bridge -->
           <depends>JMSServerManager</depends>

       </bean>
      <!-- TransactionManager -->
      <bean name="TransactionManager" class="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple">
       </bean>
Was it helpful?

Solution 2

I added these jar files and error gone:

  1. jta.jar
  2. narayana-jta.jar

OTHER TIPS

you could chek out the new HornetQ book at

HornetQ Messaging Developer's Guide

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top