org.apache.camel.processor
Class RedeliveryPolicy

java.lang.Object
  extended by org.apache.camel.processor.DelayPolicy
      extended by org.apache.camel.processor.RedeliveryPolicy
All Implemented Interfaces:
Serializable, Cloneable

public class RedeliveryPolicy
extends DelayPolicy

The policy used to decide how many times to redeliver and the time between the redeliveries before being sent to a Dead Letter Channel

The default values are:

Setting the maximumRedeliveries to a negative value such as -1 will then always redeliver (unlimited). Setting the maximumRedeliveries to 0 will disable redelivery.

Version:
$Revision: 1532 $
See Also:
Serialized Form

Field Summary
protected  double backOffMultiplier
           
protected  double collisionAvoidanceFactor
           
protected  int maximumRedeliveries
           
protected  long maximumRedeliveryDelay
           
protected static Random randomNumberGenerator
           
protected  LoggingLevel retriesExhaustedLogLevel
           
protected  LoggingLevel retryAttemptedLogLevel
           
protected  boolean useCollisionAvoidance
           
protected  boolean useExponentialBackOff
           
 
Fields inherited from class org.apache.camel.processor.DelayPolicy
delay
 
Constructor Summary
RedeliveryPolicy()
           
 
Method Summary
 RedeliveryPolicy backOffMultiplier(double multiplier)
          Enables exponential backoff and sets the multiplier used to increase the delay between redeliveries
 RedeliveryPolicy collisionAvoidancePercent(double collisionAvoidancePercent)
          Enables collision avoidance and sets the percentage used
 RedeliveryPolicy copy()
           
 double getBackOffMultiplier()
           
 double getCollisionAvoidanceFactor()
           
 short getCollisionAvoidancePercent()
           
 long getInitialRedeliveryDelay()
          Deprecated. use delay instead. Will be removed in Camel 2.0.
 int getMaximumRedeliveries()
           
 long getMaximumRedeliveryDelay()
           
protected static Random getRandomNumberGenerator()
           
 long getRedeliveryDelay(long previousDelay)
           
 LoggingLevel getRetriesExhaustedLogLevel()
           
 LoggingLevel getRetryAttemptedLogLevel()
           
 RedeliveryPolicy initialRedeliveryDelay(long initialRedeliveryDelay)
          Deprecated. use delay. Will be removed in Camel 2.0.
 boolean isUseCollisionAvoidance()
           
 boolean isUseExponentialBackOff()
           
 RedeliveryPolicy maximumRedeliveries(int maximumRedeliveries)
          Sets the maximum number of times a message exchange will be redelivered
 RedeliveryPolicy maximumRedeliveryDelay(long maximumRedeliveryDelay)
          Sets the maximum redelivery delay if using exponential back off.
 RedeliveryPolicy retriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel)
          Sets the logging level to use for log messages when retries have been exhausted.
 RedeliveryPolicy retryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel)
          Sets the logging level to use for log messages when retries are attempted.
 void setBackOffMultiplier(double backOffMultiplier)
          Sets the multiplier used to increase the delay between redeliveries if setUseExponentialBackOff(boolean) is enabled
 void setCollisionAvoidanceFactor(double collisionAvoidanceFactor)
          Sets the factor used for collision avoidance if enabled via setUseCollisionAvoidance(boolean)
 void setCollisionAvoidancePercent(double collisionAvoidancePercent)
          Sets the percentage used for collision avoidance if enabled via setUseCollisionAvoidance(boolean)
 void setInitialRedeliveryDelay(long initialRedeliveryDelay)
          Deprecated. use delay instead. Will be removed in Camel 2.0.
 void setMaximumRedeliveries(int maximumRedeliveries)
          Sets the maximum number of times a message exchange will be redelivered.
 void setMaximumRedeliveryDelay(long maximumRedeliveryDelay)
          Sets the maximum redelivery delay if using exponential back off.
 void setRetriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel)
          Sets the logging level to use for log messages when retries have been exhausted.
 void setRetryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel)
          Sets the logging level to use for log messages when retries are attempted.
 void setUseCollisionAvoidance(boolean useCollisionAvoidance)
          Enables/disables collision avoidance which adds some randomization to the backoff timings to reduce contention probability
 void setUseExponentialBackOff(boolean useExponentialBackOff)
          Enables/disables exponential backoff using the getBackOffMultiplier() to increase the time between retries
 boolean shouldRedeliver(int redeliveryCounter)
          Returns true if the policy decides that the message exchange should be redelivered
 long sleep(long redeliveryDelay)
          Calculates the new redelivery delay based on the last one then sleeps for the necessary amount of time
 String toString()
           
 RedeliveryPolicy useCollisionAvoidance()
          Enables collision avoidance which adds some randomization to the backoff timings to reduce contention probability
 RedeliveryPolicy useExponentialBackOff()
          Enables exponential backoff using the getBackOffMultiplier() to increase the time between retries
 
Methods inherited from class org.apache.camel.processor.DelayPolicy
delay, getDelay, setDelay
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

randomNumberGenerator

protected static transient Random randomNumberGenerator

maximumRedeliveries

protected int maximumRedeliveries

maximumRedeliveryDelay

protected long maximumRedeliveryDelay

backOffMultiplier

protected double backOffMultiplier

useExponentialBackOff

protected boolean useExponentialBackOff

collisionAvoidanceFactor

protected double collisionAvoidanceFactor

useCollisionAvoidance

protected boolean useCollisionAvoidance

retriesExhaustedLogLevel

protected LoggingLevel retriesExhaustedLogLevel

retryAttemptedLogLevel

protected LoggingLevel retryAttemptedLogLevel
Constructor Detail

RedeliveryPolicy

public RedeliveryPolicy()
Method Detail

toString

public String toString()
Overrides:
toString in class DelayPolicy

copy

public RedeliveryPolicy copy()
Overrides:
copy in class DelayPolicy

shouldRedeliver

public boolean shouldRedeliver(int redeliveryCounter)
Returns true if the policy decides that the message exchange should be redelivered


sleep

public long sleep(long redeliveryDelay)
Calculates the new redelivery delay based on the last one then sleeps for the necessary amount of time


getRedeliveryDelay

public long getRedeliveryDelay(long previousDelay)

maximumRedeliveries

public RedeliveryPolicy maximumRedeliveries(int maximumRedeliveries)
Sets the maximum number of times a message exchange will be redelivered


initialRedeliveryDelay

public RedeliveryPolicy initialRedeliveryDelay(long initialRedeliveryDelay)
Deprecated. use delay. Will be removed in Camel 2.0.

Sets the initial redelivery delay in milliseconds on the first redelivery


useCollisionAvoidance

public RedeliveryPolicy useCollisionAvoidance()
Enables collision avoidance which adds some randomization to the backoff timings to reduce contention probability


useExponentialBackOff

public RedeliveryPolicy useExponentialBackOff()
Enables exponential backoff using the getBackOffMultiplier() to increase the time between retries


backOffMultiplier

public RedeliveryPolicy backOffMultiplier(double multiplier)
Enables exponential backoff and sets the multiplier used to increase the delay between redeliveries


collisionAvoidancePercent

public RedeliveryPolicy collisionAvoidancePercent(double collisionAvoidancePercent)
Enables collision avoidance and sets the percentage used


maximumRedeliveryDelay

public RedeliveryPolicy maximumRedeliveryDelay(long maximumRedeliveryDelay)
Sets the maximum redelivery delay if using exponential back off. Use -1 if you wish to have no maximum


retriesExhaustedLogLevel

public RedeliveryPolicy retriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel)
Sets the logging level to use for log messages when retries have been exhausted.


retryAttemptedLogLevel

public RedeliveryPolicy retryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel)
Sets the logging level to use for log messages when retries are attempted.


getBackOffMultiplier

public double getBackOffMultiplier()

setBackOffMultiplier

public void setBackOffMultiplier(double backOffMultiplier)
Sets the multiplier used to increase the delay between redeliveries if setUseExponentialBackOff(boolean) is enabled


getCollisionAvoidancePercent

public short getCollisionAvoidancePercent()

setCollisionAvoidancePercent

public void setCollisionAvoidancePercent(double collisionAvoidancePercent)
Sets the percentage used for collision avoidance if enabled via setUseCollisionAvoidance(boolean)


getCollisionAvoidanceFactor

public double getCollisionAvoidanceFactor()

setCollisionAvoidanceFactor

public void setCollisionAvoidanceFactor(double collisionAvoidanceFactor)
Sets the factor used for collision avoidance if enabled via setUseCollisionAvoidance(boolean)


getInitialRedeliveryDelay

public long getInitialRedeliveryDelay()
Deprecated. use delay instead. Will be removed in Camel 2.0.


setInitialRedeliveryDelay

public void setInitialRedeliveryDelay(long initialRedeliveryDelay)
Deprecated. use delay instead. Will be removed in Camel 2.0.

Sets the initial redelivery delay in milliseconds on the first redelivery


getMaximumRedeliveries

public int getMaximumRedeliveries()

setMaximumRedeliveries

public void setMaximumRedeliveries(int maximumRedeliveries)
Sets the maximum number of times a message exchange will be redelivered. Setting a negative value will retry forever.


getMaximumRedeliveryDelay

public long getMaximumRedeliveryDelay()

setMaximumRedeliveryDelay

public void setMaximumRedeliveryDelay(long maximumRedeliveryDelay)
Sets the maximum redelivery delay if using exponential back off. Use -1 if you wish to have no maximum


isUseCollisionAvoidance

public boolean isUseCollisionAvoidance()

setUseCollisionAvoidance

public void setUseCollisionAvoidance(boolean useCollisionAvoidance)
Enables/disables collision avoidance which adds some randomization to the backoff timings to reduce contention probability


isUseExponentialBackOff

public boolean isUseExponentialBackOff()

setUseExponentialBackOff

public void setUseExponentialBackOff(boolean useExponentialBackOff)
Enables/disables exponential backoff using the getBackOffMultiplier() to increase the time between retries


getRandomNumberGenerator

protected static Random getRandomNumberGenerator()

setRetriesExhaustedLogLevel

public void setRetriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel)
Sets the logging level to use for log messages when retries have been exhausted.


getRetriesExhaustedLogLevel

public LoggingLevel getRetriesExhaustedLogLevel()

setRetryAttemptedLogLevel

public void setRetryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel)
Sets the logging level to use for log messages when retries are attempted.


getRetryAttemptedLogLevel

public LoggingLevel getRetryAttemptedLogLevel()


Copyright © 2009 IONA Open Source Community. All Rights Reserved.