Class StatefulRetryOperationsInterceptorFactoryBean

  • All Implemented Interfaces:
    org.springframework.beans.factory.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.
    See Also:
    RetryOperations.execute(org.springframework.retry.RetryCallback, org.springframework.retry.RecoveryCallback, org.springframework.retry.RetryState)
    • Constructor Detail

      • StatefulRetryOperationsInterceptorFactoryBean

        public StatefulRetryOperationsInterceptorFactoryBean()
    • Method Detail

      • setMessageKeyGenerator

        public void setMessageKeyGenerator​(MessageKeyGenerator messageKeyGeneretor)
      • setNewMessageIdentifier

        public void setNewMessageIdentifier​(NewMessageIdentifier newMessageIdentifier)
      • getObject

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

        public java.lang.Class<?> getObjectType()