8 Replies Latest reply on Nov 14, 2012 1:42 PM by mofarn

    Duplicate message detection problem in Core Bridge

    mofarn

      I have two source servers server#0 and server#1, and a target server server#2. Each source servers have a core bridge to connect to server#2. (All servers are standalone and 2.2.14)

      • server#0 have a queue q#0 (source)
      • server#1 have a queue q#1 (source)
      • server#2 have a queue q#2 (target)

       

      Consider this scenario:

      1. The client (c#1) sends messages to q#0  (c#1 -> q#0)
      2. q#2 receives all messages successfully (via bridge) (q#0 -> bridge -> q#2)
      3. The client (c#1) sends messages to q#1 (c#1 -> q#1)
      4. server#2 says: duplicate message detection (for each messages) and nothing added to q#2 from q#1 (q#1 -> bridge -> dropped!!)

       

      Is it a bug? What should i do?

      configurations and simple project (message senders for q#0 and q#1 and message consumer for q#2) are attached.

       

      Server#0 (hornetq-configuration):

      <queues>
           <queue name="jms.queue.source">
                <address>jms.queue.source</address>
           </queue>
      </queues>
      
      <bridges>
           <bridge name="bridge0">
                <queue-name>jms.queue.source</queue-name>
                <forwarding-address>jms.queue.target</forwarding-address
                <reconnect-attempts>-1</reconnect-attempts>
           <static-connectors>
                <connector-ref>remote-connector</connector-ref>
           </static-connectors>
           </bridge>
      </bridges>
      
      <!-- connector to server#2 -->
      <connector name="remote-connector">
           <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory
           </factory-class>
           <param key="host" value="localhost" />
           <param key="port" value="6445" />
      </connector>
      

       

      Server#1 (hornetq-configuration):

      <queues>
           <queue name="jms.queue.source">
                <address>jms.queue.source</address>
           </queue>
      </queues>
      
      <bridges>
           <bridge name="bridge1">
                <queue-name>jms.queue.source</queue-name>
                <forwarding-address>jms.queue.target</forwarding-address>
                <reconnect-attempts>-1</reconnect-attempts>
                <static-connectors>
                     <connector-ref>remote-connector</connector-ref>
                </static-connectors>
           </bridge>
      </bridges>
      
      <!-- connector to server#2 -->
      <connector name="remote-connector">
           <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory
           </factory-class>
           <param key="host" value="localhost" />
           <param key="port" value="6445" />
      </connector>
      

       

      Server#2 (hornetq-configuration):

      <connectors>
           <connector name="netty-connector">
                <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory
                </factory-class>
                <param key="host" value="localhost" />
                <param key="port" value="6445" />
           </connector>
      </connectors>
      
      <acceptors>
           <acceptor name="netty-acceptor">
                <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory
                </factory-class>
                <param key="host" value="localhost" />
                <param key="port" value="6445" />
           </acceptor>
      </acceptors>
      

       

      Server#2 (hornetq-jms):

      <queue name="target">
           <entry name="/queue/target" />
      </queue>