You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Ben Nisbet (JIRA)" <ji...@apache.org> on 2016/04/29 18:10:12 UTC

[jira] [Updated] (AMQ-6273) ReconnectionPolicy.getNextDelay(int attempt) always returns zero when maxSendRetries == ReconnectionPolicy.INFINITE

     [ https://issues.apache.org/jira/browse/AMQ-6273?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ben Nisbet updated AMQ-6273:
----------------------------
                Flags: Important
    Affects Version/s:     (was: 5.10.2)
                       5.12.1
          Environment: WebLogic 10.3.6, HotSpot JDK 1.7  (was: WebLogic 10.3.6, JRockit JDK 1.6)
        Fix Version/s:     (was: 5.12.1)
                           (was: 5.13.0)
          Description: 
The v.5.12.1 release of class org.apache.activemq.network.jms.JmsConnector contains a defect within method *private void doInitializeConnection(boolean local) throws Exception* that causes the *attempt* variable to
 always retain a value of zero if ReconnectionPolicy.maxSendRetries == ReconnectionPolicy.INFINITE. (irrespective of the actual number of loop iterations)

This indirectly prevents the connector from using any of the following ReconnectionPolicy configuration properties:

private long initialReconnectDelay = 1000L;
private long maximumReconnectDelay = 30000;
private boolean useExponentialBackOff = false;
private double backOffMultiplier = 2.0;

  was:
When using an OutboundQueueBridge associated with a SimpleJmsQueueConnector bean I have observed the default ReconnectionPolicy.maxSendRetries value of 10 to result in message loss if the connection to destination server is unreliable. (messages that are not delivered to destination within maxSendRetries are still acknowledged as having been consumed by processing of later messages)

Is it possible for the org.apache.activemq.network.jms.DestinationBridge.onMessage() implementation to interpret a ReconnectionPolicy.maxSendRetries property value of -1 as infinity?






          Component/s:     (was: Broker)
                       Connector
           Issue Type: Bug  (was: Improvement)
              Summary: ReconnectionPolicy.getNextDelay(int attempt) always returns zero when maxSendRetries == ReconnectionPolicy.INFINITE  (was: ReconnectionPolicy,getNextDelay(int attempt) always returns zero when maxSendRetries set to INFINITE)

> ReconnectionPolicy.getNextDelay(int attempt) always returns zero when maxSendRetries == ReconnectionPolicy.INFINITE
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-6273
>                 URL: https://issues.apache.org/jira/browse/AMQ-6273
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Connector
>    Affects Versions: 5.12.1
>         Environment: WebLogic 10.3.6, HotSpot JDK 1.7
>            Reporter: Ben Nisbet
>
> The v.5.12.1 release of class org.apache.activemq.network.jms.JmsConnector contains a defect within method *private void doInitializeConnection(boolean local) throws Exception* that causes the *attempt* variable to
>  always retain a value of zero if ReconnectionPolicy.maxSendRetries == ReconnectionPolicy.INFINITE. (irrespective of the actual number of loop iterations)
> This indirectly prevents the connector from using any of the following ReconnectionPolicy configuration properties:
> private long initialReconnectDelay = 1000L;
> private long maximumReconnectDelay = 30000;
> private boolean useExponentialBackOff = false;
> private double backOffMultiplier = 2.0;



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)