Uploaded image for project: 'AMQ Clients'
  1. AMQ Clients
  2. ENTMQCL-13

AMQP 1.0 jms client ignores failover.useReconnectBackOff value

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • Minor
    • None
    • None
    • qpid-jms
    • None
    • Compatibility/Configuration, User Experience
    • Hide

      1) Set broker to start - stop in a loop
      $ while true; do service qpidd start; sleep 3; service qpidd stop; done;

      2) Connect qpid-jms client to this broker and send messages in a longer time span with reconnectBackOff=true and reconnectBackOffMultiplier to any value (actually, even strings are accepted by client)
      $ ./aac1_sender.java.sh --broker-uri "failover:amqp://localhost:5672?jms.password=guest&failer.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest" --duration 20 --count 20 --log-msgs dict -a "test_reconnect_tx_rx"

      ....
      15:11:45,280 DEBUG Connection attempt:[1] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress
      15:11:45,289 INFO Connection attempt:[1] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed
      15:11:45,290 TRACE Next reconnect attempt will be in 10 milliseconds
      15:11:45,301 DEBUG Connection attempt:[2] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress
      15:11:45,305 INFO Connection attempt:[2] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed
      15:11:45,307 TRACE Next reconnect attempt will be in 20 milliseconds
      15:11:45,327 DEBUG Connection attempt:[3] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress
      15:11:45,331 INFO Connection attempt:[3] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed
      15:11:45,333 TRACE Next reconnect attempt will be in 40 milliseconds
      15:11:45,373 DEBUG Connection attempt:[4] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress
      15:11:45,378 INFO Connection attempt:[4] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed
      15:11:45,378 TRACE Next reconnect attempt will be in 80 milliseconds
      15:11:45,379 TRACE Task send -> JmsOutboundMessageDispatch

      {dispatchId = ID:dhcp-75-219.lab.eng.brq.redhat.com-51347-1439903502229-0:1:1:1-2}

      held until connection recovered:
      15:11:45,459 DEBUG Connection attempt:[5] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress
      15:11:45,464 INFO Connection attempt:[5] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed
      15:11:45,465 TRACE Next reconnect attempt will be in 160 milliseconds
      ....
      <see attached log file>

      Show
      1) Set broker to start - stop in a loop $ while true; do service qpidd start; sleep 3; service qpidd stop; done; 2) Connect qpid-jms client to this broker and send messages in a longer time span with reconnectBackOff=true and reconnectBackOffMultiplier to any value (actually, even strings are accepted by client) $ ./aac1_sender.java.sh --broker-uri "failover:amqp://localhost:5672?jms.password=guest&failer.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest" --duration 20 --count 20 --log-msgs dict -a "test_reconnect_tx_rx" .... 15:11:45,280 DEBUG Connection attempt: [1] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress 15:11:45,289 INFO Connection attempt: [1] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed 15:11:45,290 TRACE Next reconnect attempt will be in 10 milliseconds 15:11:45,301 DEBUG Connection attempt: [2] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress 15:11:45,305 INFO Connection attempt: [2] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed 15:11:45,307 TRACE Next reconnect attempt will be in 20 milliseconds 15:11:45,327 DEBUG Connection attempt: [3] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress 15:11:45,331 INFO Connection attempt: [3] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed 15:11:45,333 TRACE Next reconnect attempt will be in 40 milliseconds 15:11:45,373 DEBUG Connection attempt: [4] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress 15:11:45,378 INFO Connection attempt: [4] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed 15:11:45,378 TRACE Next reconnect attempt will be in 80 milliseconds 15:11:45,379 TRACE Task send -> JmsOutboundMessageDispatch {dispatchId = ID:dhcp-75-219.lab.eng.brq.redhat.com-51347-1439903502229-0:1:1:1-2} held until connection recovered: 15:11:45,459 DEBUG Connection attempt: [5] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest in-progress 15:11:45,464 INFO Connection attempt: [5] to: amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=true&failover.maxReconnectAttempts=-1&failover.reconnectBackOffMultiplier=ASD&jms.username=guest failed 15:11:45,465 TRACE Next reconnect attempt will be in 160 milliseconds .... <see attached log file>

    Description

      When client (re)connects using ReconnectBackOff set to false/0/off - this value is always ignored and default value of 2 of reconnectBackOffMultiplier is used.
      Also failover.reconnectBackOffMultiplier is ignored when reconnectBackOff is set to true.

      Connection=failover:amqp://localhost:5672?jms.password=guest&failover.useReconnectBackOff=false&failover.maxReconnectAttempts=-1&jms.username=guest

      I always end up with the same reconnect configuration of the client.
      Note: All connections have been made to MRG-M broker
      qpid-cpp-server-0.34-1.el6.x86_64

      Attachments

        Activity

          People

            tross1@redhat.com Ted Ross
            mtoth@redhat.com Michal Toth
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: