我想使用一個SourcePollingChannelAdapter與事務傳播實現輪詢時需要,以回滾所有操作,如果發生錯誤。 setTransactionSynchronizationFactory方法未被評論... 非常感謝您的幫助!SourcePollingChannelAdapter與交易
在XML中我可以這樣做:
<int:poller fixed-rate="5000">
<int:transactional transaction-manager="transactionManager" propagation="REQUIRED" />
</int:poller>
我想用這樣的交易程序與SourcePollingChannelAdapter和PeriodicTrigger,但我不知道怎麼辦。
我有這樣的:
SourcePollingChannelAdapter adapter = new SourcePollingChannelAdapter();
adapter.setSource(source);
adapter.setTrigger(new PeriodicTrigger(5, TimeUnit.SECONDS));
adapter.setOutputChannel(channel);
adapter.setBeanFactory(ctx);
adapter.start();
當豆源被調用時,在數據庫中的一個元素被刪除,創建一個消息,並在發送outputchannel;但如果我在輸出通道之後在流中出現錯誤,我想要恢復數據庫並且元素回來了......事實上只有一個簡單事務與傳播有關。我不明白這是怎麼回事。
的ouputchannel是:
<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" />
當URL沒有響應,拋出一個異常,但沒有執行回滾,雖然我有添加DefaultTransactionSynchronizationFactory和TransactionInterceptor像你說的:(
對不起,沒有足夠的信息。 'poller'可以標記爲''。在這裏,請:http://docs.spring.io/spring-integration/docs/2.2.6.RELEASE/reference/html/transactions.html#transaction-synchronization –
我根據新鮮信息更新了我的答案 –
我更新了我的問題, 謝謝你的時間。 –