View Javadoc

1   /*** 
2    * 
3    * Copyright 2004 Protique Ltd
4    * 
5    * Licensed under the Apache License, Version 2.0 (the "License"); 
6    * you may not use this file except in compliance with the License. 
7    * You may obtain a copy of the License at 
8    * 
9    * http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS, 
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
14   * See the License for the specific language governing permissions and 
15   * limitations under the License. 
16   * 
17   **/
18  package org.codehaus.activemq.service;
19  
20  /***
21   * Represents the redelivery policy which is used when a rollback() occurs
22   * (either JMS or XA). Various options are possible which this policy tries to capture
23   * the main variants.
24   * If enabled, a typical redelivery policy could be to use a back-off timeout period.
25   *
26   * @version $Revision: 1.1 $
27   */
28  public class RedeliveryPolicy {
29      private int maximumRetryCount = 5;
30      private boolean backOffMode = true;
31      private long initialRedeliveryTimeout = 1000L;
32      private double backOffIncreaseRate = 2.0;
33  
34      /***
35       * Returns whether or not we use a back-off timeout (increasing the timeout
36       * by the {@link #getBackOffIncreaseRate()} each time).
37       */
38      public boolean isBackOffMode() {
39          return backOffMode;
40      }
41  
42      public void setBackOffMode(boolean backOffMode) {
43          this.backOffMode = backOffMode;
44      }
45  
46      /***
47       * Returns the initial redelivery timeout
48       */
49      public long getInitialRedeliveryTimeout() {
50          return initialRedeliveryTimeout;
51      }
52  
53      public void setInitialRedeliveryTimeout(long initialRedeliveryTimeout) {
54          this.initialRedeliveryTimeout = initialRedeliveryTimeout;
55      }
56  
57      /***
58       * Returns the maximum retry count on a single message before its forwarded
59       * to a Dead Letter Queue
60       */
61      public int getMaximumRetryCount() {
62          return maximumRetryCount;
63      }
64  
65      public void setMaximumRetryCount(int maximumRetryCount) {
66          this.maximumRetryCount = maximumRetryCount;
67      }
68  
69      public double getBackOffIncreaseRate() {
70          return backOffIncreaseRate;
71      }
72  
73      public void setBackOffIncreaseRate(double backOffIncreaseRate) {
74          this.backOffIncreaseRate = backOffIncreaseRate;
75      }
76  }