Spring AMQP

org.springframework.amqp.rabbit.config
Class StatefulRetryOperationsInterceptorFactoryBean

java.lang.Object
  extended by org.springframework.amqp.rabbit.config.AbstractRetryOperationsInterceptorFactoryBean
      extended by org.springframework.amqp.rabbit.config.StatefulRetryOperationsInterceptorFactoryBean
All Implemented Interfaces:
FactoryBean<org.aopalliance.aop.Advice>

public class StatefulRetryOperationsInterceptorFactoryBean
extends AbstractRetryOperationsInterceptorFactoryBean

Convenient factory bean for creating a stateful retry interceptor for use in a message listener container, giving you a large amount of control over the behaviour of a container when a listener fails. To control the number of retry attempt or the backoff in between attempts, supply a customized RetryTemplate. Stateful retry is appropriate if your listener is using a transactional resource that needs to be rollback on an exception (e.g. a stateful connection to a back end server). JPA is the canonical example. The semantics of stateful retry mean that a listener exception is propagated to the container, so that it can force a rollback. When the message is redelivered it has to be recognised (hence the MessageKeyGenerator strategy), and when the retry attempts are exhausted it will be processed using a MessageRecoverer if one is provided, in a new transaction. If a recoverer is not provided the message will be logged and dropped.

Author:
Dave Syer
See Also:
RetryOperations.execute(org.springframework.retry.RetryCallback, org.springframework.retry.RecoveryCallback, org.springframework.retry.RetryState)

Constructor Summary
StatefulRetryOperationsInterceptorFactoryBean()
           
 
Method Summary
 org.springframework.retry.interceptor.StatefulRetryOperationsInterceptor getObject()
           
 Class<?> getObjectType()
           
 boolean isSingleton()
           
 void setMessageKeyGeneretor(MessageKeyGenerator messageKeyGeneretor)
           
 void setNewMessageIdentifier(NewMessageIdentifier newMessageIdentifier)
           
 
Methods inherited from class org.springframework.amqp.rabbit.config.AbstractRetryOperationsInterceptorFactoryBean
getMessageRecoverer, getRetryOperations, setMessageRecoverer, setRetryOperations
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StatefulRetryOperationsInterceptorFactoryBean

public StatefulRetryOperationsInterceptorFactoryBean()
Method Detail

setMessageKeyGeneretor

public void setMessageKeyGeneretor(MessageKeyGenerator messageKeyGeneretor)

setNewMessageIdentifier

public void setNewMessageIdentifier(NewMessageIdentifier newMessageIdentifier)

getObject

public org.springframework.retry.interceptor.StatefulRetryOperationsInterceptor getObject()

getObjectType

public Class<?> getObjectType()

isSingleton

public boolean isSingleton()
Specified by:
isSingleton in interface FactoryBean<org.aopalliance.aop.Advice>
Overrides:
isSingleton in class AbstractRetryOperationsInterceptorFactoryBean

Spring AMQP

Copyright © 2011. All Rights Reserved.