Uploaded image for project: 'JBoss A-MQ'
  1. JBoss A-MQ
  2. ENTMQ-2274

Static Bridge Not Able to Reconnect after Downstream Broker Hard Kill

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • JBoss A-MQ 6.2.1, JBoss A-MQ 6.3
    • broker, networks
    • None
    • Hide

      This does not seem to occur with staticBridge=false, so configuring a non-static bridge excluding all but static destinations may be a potential work-around:

       
      <networkConnectors> 
        <networkConnector name="linkToDownstream" uri="static:(tcp://node11.dhawkins.redhat.com:61616)" consumerTTL="1" messageTTL="-1" duplex="true" userName="admin" password="admin" staticBridge="false"> 
          <excludedDestinations> 
            <queue physicalName=">"/> 
            <topic physicalName=">"/> 
          </excludedDestinations> 
          <staticallyIncludedDestinations> 
            <queue physicalName="AMQ.Transport.Inbound" /> 
          </staticallyIncludedDestinations> 
        </networkConnector> 
      </networkConnectors> 
      
      Show
      This does not seem to occur with staticBridge=false, so configuring a non-static bridge excluding all but static destinations may be a potential work-around: <networkConnectors> <networkConnector name= "linkToDownstream" uri= "static:(tcp://node11.dhawkins.redhat.com:61616)" consumerTTL= "1" messageTTL= "-1" duplex= "true" userName= "admin" password= "admin" staticBridge= "false" > <excludedDestinations> <queue physicalName= "> " /> <topic physicalName= "> " /> </excludedDestinations> <staticallyIncludedDestinations> <queue physicalName= "AMQ.Transport.Inbound" /> </staticallyIncludedDestinations> </networkConnector> </networkConnectors>
    • Hide

      Broker configurations attached.
      1. Configure a "proxy" broker with the activemq-proxy.xml configuration
      2. Configure a "target" broker with the activemq-downstream.xml configuration
      3. Start the brokers
      4. Connect an external queue consumer against the downstream broker for queue AMQ.Inbound.
      5. Start an external producer producing messages to the proxy broker on queue AMQ.Inbound
      6. Verify that the consumer is receiving messages
      7. Kill the downstream broker instance with SIGKILL (kill -9)
      8. Restart the downstream broker
      9. The bridge is never recovered until the upstream / proxy broker is restarted.

      Show
      Broker configurations attached. 1. Configure a "proxy" broker with the activemq-proxy.xml configuration 2. Configure a "target" broker with the activemq-downstream.xml configuration 3. Start the brokers 4. Connect an external queue consumer against the downstream broker for queue AMQ.Inbound. 5. Start an external producer producing messages to the proxy broker on queue AMQ.Inbound 6. Verify that the consumer is receiving messages 7. Kill the downstream broker instance with SIGKILL (kill -9) 8. Restart the downstream broker 9. The bridge is never recovered until the upstream / proxy broker is restarted.

      When a bridge between 2 AMQ instances (an upstream "proxy" and a downstream "target" is configured as a static bridge and message traffic exists in the network, if the downstream broker is abnormally terminated and then restarted, the bridge is never reestablished, even if the broker is accepting client connections. Instead the upstream "proxy" broker repeatedly logs the warning:

       2019-02-07 10:25:52,202 | WARN | .221:61616@52912 | DemandForwardingBridgeSupport | 139 - org.apache.activemq.activemq-osgi - 5.11.0.redhat-621222 | Network connection between vm://amq#16 and tcp://node11.dhawkins.redhat.com/10.0.0.221:61616@52912 shutdown due to a remote error: java.io.IOException: ShutdownInfo {commandId = 1, responseRequired = false} 
      

      while the downstream target broker logs:

       
      2019-02-07 16:38:44,046 | WARN | 0.12:35198@61616 | DemandForwardingBridgeSupport | 139 - org.apache.activemq.activemq-osgi - 5.11.0.redhat-621222 | Network connection between vm://amq#84 and tcp:///10.0.0.12:35198@61616 shutdown due to a remote error: java.lang.NullPointerException 
      

      This issue is reproducible in the latest AMQ-6.2.1-621222 distribution, but does not seem to reproduce in AMQ-6.3.0-630371.

        1. activemq-downstream.xml
          6 kB
          Duane Hawkins
        2. activemq-proxy.xml
          7 kB
          Duane Hawkins

              Unassigned Unassigned
              rhn-support-dhawkins Duane Hawkins
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: