2014-09-04 69 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时,您当前无法在交易中过期部分组。