2014-09-04 67 views
1

我見過的聚合器的代碼,並據我瞭解,它下面的OPS:如果組可以釋放事務和聚合

增加消息組 則: 完整的組,並將其發送到輸出/應答通道 如果(到期團) 刪除組和消息從消息存儲 否則只刪除

這裏我需要一些ACID事務支持做全有或全無的消息

,但閱讀文檔後,我不能」不知道該怎麼做。您能否告訴我,如果可能,如果是,我該如何實現?

在此先感謝

方面 古斯曼

+0

你想在交易範圍內做什麼?所有的增加和釋放?或者是其他東西。 – 2014-09-04 15:54:45

+0

添加一條消息並刪除發佈後組中的所有消息 – gllambi 2014-09-04 16:08:31

回答

0

可以使入站(直接)通道匯聚事務...

<tx:advice id="txAdvice" transaction-manager="transactionManager"> 
    <tx:attributes> 
     <tx:method name="send" /> 
    </tx:attributes> 
</tx:advice> 

<aop:config> 
    <aop:pointcut id="aggTx" expression="execution(* *.send(..)) &amp;&amp; bean(toAggChannel)" /> 
    <aop:advisor advice-ref="txAdvice" pointcut-ref="aggTx" /> 
</aop:config> 

將處理正常分娩和釋放。

若要使exipiring部分組交易,請使用MessageGroupStoreReaper並以類似的方式使MessageGroupStore.expireMessageGroups()方法事務性。

使用group-timeoutgroup-timeout-expression時,您當前無法在交易中過期部分組。