| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <meta http-equiv="X-UA-Compatible" content="ie=edge"> |
| <title>ActiveMQ</title> |
| <link rel="icon" type="image/png" href="/assets/img/favicon.png"> |
| |
| <link rel="stylesheet" href="/css/main.css"> |
| <script defer src="https://use.fontawesome.com/releases/v5.0.8/js/all.js" integrity="sha384-SlE991lGASHoBfWbelyBPLsUlwY1GwNDJo3jSJO04KZ33K2bwfV9YBauFfnzvynJ" crossorigin="anonymous"></script> |
| <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> |
| <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> |
| </head> |
| |
| <body> |
| <nav class="navbar navbar-expand-lg navbar-light fixed-top"> |
| <div class="container"> |
| <!-- <a class="navbar-brand mr-auto" href="#"><img style="height: 50px" src="assets/img/apache-feather.png" /></a> --> |
| <a class="navbar-brand mr-auto" href="/"><img src="/assets/img/activemq_logo_black_small.png" style="height: 50px"/></a> |
| <button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target="#navbarContent" aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation"> |
| <span class="navbar-toggler-icon"></span> |
| </button> |
| |
| <div class="ml-auto collapse navbar-collapse" id="navbarContent"> |
| <ul class="navbar-nav ml-auto"> |
| <li class="nav-item"> |
| <a class="nav-link active" href="/index.html">Home</a> |
| </li> |
| <li class="nav-item dropdown"> |
| <a class="nav-link" id="navbarDropdownComponents" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Components</a> |
| <ul class="dropdown-menu dropdown-menu-center" aria-labelledby="navbarDropdownComponents"> |
| <div class="row"> |
| <div class="col-12"> |
| <ul class="multi-column-dropdown"> |
| <li class="nav-item"><a class="dropdown-item" href="/components/classic">ActiveMQ 5</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="/components/artemis/">ActiveMQ Artemis</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="/components/nms">NMS Clients</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="/components/cms">CMS Client</a></li> |
| </ul> |
| </div> |
| </div> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a class="nav-link" id="navbarDropdownCommunity" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Contact</a> |
| <ul class="dropdown-menu dropdown-menu-center multi-column columns-1" aria-labelledby="navbarDropdownCommunity"> |
| <div class="row"> |
| <div class="col-12"> |
| <ul class="multi-column-dropdown"> |
| <li class="nav-item"><a class="dropdown-item" href="/contact#mailing">Mailing Lists</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="/contact#chat">Chat</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="/contact#issues">Report Issues</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="/contact#contributing">Contributing</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="/security-advisories.html">Security</a></li> |
| </ul> |
| </div> |
| </div> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a class="nav-link" id="navbarDropdownTeam" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Apache</a> |
| <ul class="dropdown-menu dropdown-menu-center multi-column columns-1" aria-labelledby="navbarDropdownTeam"> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <ul class="multi-column-dropdown"> |
| <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org">The Apache Software Foundation</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/licenses/">License</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="/security-advisories.html">Security</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/events/current-event">Events</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="https://people.apache.org/phonebook.html?pmc=activemq">PMC & Committers</a></li> |
| <li class="nav-item"><a class="dropdown-item" href="/team/reports">Board Reports</a></li> |
| </ul> |
| </div> |
| </div> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </nav> |
| |
| <div class="content"> |
| <div class="page-title-activemq5"> |
| <div class="container"> |
| <h1>Redelivery Policy</h1> |
| </div> |
| </div> |
| <div class="container" > |
| <div class="row" style="margin-top: 30px"> |
| <div class="col-12 activemq5"> |
| <p><a href="features">Features</a> > <a href="consumer-features">Consumer Features</a> > <a href="redelivery-policy">Redelivery Policy</a></p> |
| |
| <h2 id="redelivery-policy">Redelivery Policy</h2> |
| |
| <p>Detail on when messages are redelivered to a client can be found in the <a href="message-redelivery-and-dlq-handling">Message Redelivery and DLQ Handling</a> section. You can configure the <a href="http://svn.apache.org/viewvc/activemq/trunk/activemq-client/src/main/java/org/apache/activemq/RedeliveryPolicy.java?view=markup">RedeliveryPolicy</a> on your <a href="http://svn.apache.org/viewvc/activemq/trunk/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java?view=markup">ActiveMQConnectionFactory</a> or <a href="http://svn.apache.org/viewvc/activemq/trunk/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnection.java?view=markup">ActiveMQConnection</a> to customize exactly how you want the redelivery to work.</p> |
| |
| <p>You can use Java code, Spring or the <a href="connection-configuration-uri">Connection Configuration URI</a> to customize this.</p> |
| |
| <h3 id="available-properties">Available Properties</h3> |
| |
| <table> |
| <thead> |
| <tr> |
| <th>Property</th> |
| <th>Default Value</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td><code class="highlighter-rouge">backOffMultiplier</code></td> |
| <td><code class="highlighter-rouge">5</code></td> |
| <td>The back-off multiplier.</td> |
| </tr> |
| <tr> |
| <td><code class="highlighter-rouge">collisionAvoidanceFactor</code></td> |
| <td><code class="highlighter-rouge">0.15</code></td> |
| <td>The percentage of range of collision avoidance if enabled.</td> |
| </tr> |
| <tr> |
| <td><code class="highlighter-rouge">initialRedeliveryDelay</code></td> |
| <td><code class="highlighter-rouge">1000L</code></td> |
| <td>The initial redelivery delay in milliseconds.</td> |
| </tr> |
| <tr> |
| <td><code class="highlighter-rouge">maximumRedeliveries</code></td> |
| <td><code class="highlighter-rouge">6</code></td> |
| <td>Sets the maximum number of times a message will be redelivered before it is considered a <strong>poisoned pill</strong> and returned to the broker so it can go to a Dead Letter Queue. Set to <code class="highlighter-rouge">-1</code> for unlimited redeliveries.</td> |
| </tr> |
| <tr> |
| <td><code class="highlighter-rouge">maximumRedeliveryDelay</code></td> |
| <td><code class="highlighter-rouge">-1</code></td> |
| <td>Sets the maximum delivery delay that will be applied if the <code class="highlighter-rouge">useExponentialBackOff</code> option is set. (use value <code class="highlighter-rouge">-1</code> to define that no maximum be applied) (v5.5).</td> |
| </tr> |
| <tr> |
| <td><code class="highlighter-rouge">redeliveryDelay</code></td> |
| <td><code class="highlighter-rouge">1000L</code></td> |
| <td>The delivery delay if <code class="highlighter-rouge">initialRedeliveryDelay=0</code> (v5.4).</td> |
| </tr> |
| <tr> |
| <td><code class="highlighter-rouge">useCollisionAvoidance</code></td> |
| <td><code class="highlighter-rouge">false</code></td> |
| <td>Should the redelivery policy use collision avoidance.</td> |
| </tr> |
| <tr> |
| <td><code class="highlighter-rouge">useExponentialBackOff</code></td> |
| <td><code class="highlighter-rouge">false</code></td> |
| <td>Should exponential back-off be used, i.e., to exponentially increase the timeout.</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h2 id="redeliverypolicy-per-destination">RedeliveryPolicy per Destination</h2> |
| |
| <p>As of ActiveMQ v5.7.0 you can now configure a <a href="http://svn.apache.org/viewvc/activemq/trunk/activemq-client/src/main/java/org/apache/activemq/RedeliveryPolicy.java?view=markup">RedeliveryPolicy</a> on a per-destination bases. The <code class="highlighter-rouge">ActiveMQConnection</code> factory class now exposes a <a href="http://svn.apache.org/viewvc/activemq/trunk/activemq-client/src/main/java/org/apache/activemq/broker/region/policy/RedeliveryPolicyMap.java?view=markup">RedeliveryPolicyMap</a> property that allows to assign a RedeliveryPolicy using named destinations or using destination wildcards. The code snipped below shows how to configure a different <a href="http://svn.apache.org/viewvc/activemq/trunk/activemq-client/src/main/java/org/apache/activemq/RedeliveryPolicy.java?view=markup">RedeliveryPolicy</a> for Topics and Queues.</p> |
| <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ActiveMQConnection connection ... // Create a connection |
| |
| RedeliveryPolicy queuePolicy = new RedeliveryPolicy(); |
| queuePolicy.setInitialRedeliveryDelay(0); |
| queuePolicy.setRedeliveryDelay(1000); |
| queuePolicy.setUseExponentialBackOff(false); |
| queuePolicy.setMaximumRedeliveries(2); |
| |
| RedeliveryPolicy topicPolicy = new RedeliveryPolicy(); |
| topicPolicy.setInitialRedeliveryDelay(0); |
| topicPolicy.setRedeliveryDelay(1000); |
| topicPolicy.setUseExponentialBackOff(false); |
| topicPolicy.setMaximumRedeliveries(3); |
| |
| // Receive a message with the JMS API |
| RedeliveryPolicyMap map = connection.getRedeliveryPolicyMap(); |
| map.put(new ActiveMQTopic(">"), topicPolicy); |
| map.put(new ActiveMQQueue(">"), queuePolicy); |
| </code></pre></div></div> |
| |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="row sitemap"> |
| <div class="col-sm-12"> |
| <div class="container"> |
| <div class="row"> |
| <div class="col-sm-12"> |
| <div class="row"> |
| <div class="col-sm-3"> |
| <div > |
| <img class="float-left" style="max-height: 100px" src="/assets/img/activemq_logo_white_vertical_small.png"/> |
| </div> |
| </div> |
| <div style="text-align: center; margin-bottom: 0px; margin-top: 30px; font-size: 65%" class="col-sm-6"> |
| <p>Apache ActiveMQ, ActiveMQ, ActiveMQ Artemis, Apache, the Apache feather logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. Copyright © 2019, The Apache Software Foundation. Licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p> |
| </div> |
| <div class="col-sm-3"> |
| <div > |
| <a href="https://www.apache.org"><img class="float-right" style="margin-top: 10px; max-height: 80px" src="/assets/img/apache-logo-small.png"/></a> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| </body> |
| </html> |