SourcePollingChannelAdapter com transação

Eu gostaria de usar um SourcePollingChannelAdapter com uma propagação de transação necessária quando a pesquisa é realizada, para reverter todas as operações, se ocorrer um erro. O método setTransactionSynchronizationFactory não é comentado ... Muito obrigado pela sua ajuda!

Em XML eu posso fazer:

<int:poller fixed-rate="5000">
  <int:transactional transaction-manager="transactionManager" propagation="REQUIRED" />
</int:poller>

Eu gostaria de usar uma transação como esta programaticamente com um SourcePollingChannelAdapter e um PeriodicTrigger, mas eu não sei como.

Eu tenho isto :

SourcePollingChannelAdapter adapter = new SourcePollingChannelAdapter();
adapter.setSource(source);
adapter.setTrigger(new PeriodicTrigger(5, TimeUnit.SECONDS));
adapter.setOutputChannel(channel);
adapter.setBeanFactory(ctx);
adapter.start();

Quando a origem do bean é chamada, um elemento no banco de dados é excluído, uma mensagem é criada e enviada no outputchannel; mas se eu tiver um erro no fluxo após o ouputchannel gostaria de banco de dados restaurado e elemento voltou ... uma transação simples, de fato, com propagação. Eu não entendo como isso.

O canal de saída é:

<int:channel id="channel" >
    <int:queue />
</int:channel>
<int-http:outbound-gateway request-channel="channel"
    url="http://localhost:8081/icopitole-ws/baseactive" http-method="GET"
    reply-channel="reresponseVersionChannel" expected-response-type="java.lang.String"  />

Quando a URL não responde, uma exceção é lançada, mas nenhum Rollback é executado, embora eu tenha adicionado um DefaultTransactionSynchronizationFactory e TransactionInterceptor como você disse :(

questionAnswers(1)

yourAnswerToTheQuestion