org.springframework.amqp.rabbit.config
Class StatefulRetryOperationsInterceptorFactoryBean
java.lang.Object
org.springframework.amqp.rabbit.config.AbstractRetryOperationsInterceptorFactoryBean
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, Gary Russell
- See Also:
RetryOperations.execute(org.springframework.retry.RetryCallback, org.springframework.retry.RecoveryCallback,
org.springframework.retry.RetryState)
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
StatefulRetryOperationsInterceptorFactoryBean
public StatefulRetryOperationsInterceptorFactoryBean()
setMessageKeyGeneretor
@Deprecated
public void setMessageKeyGeneretor(MessageKeyGenerator messageKeyGeneretor)
- Deprecated. Use
setMessageKeyGenerator(MessageKeyGenerator) instead
setMessageKeyGenerator
public void setMessageKeyGenerator(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