spring 下 配置jms messageListener 的事务及相关问题

根据官方文档(http://static.springsource.org/spring/docs/2.5.x/reference/jms.html中19.4.5一节)的说明,配置异步消息接收(即,监听消息) 的事务很简单:  
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="connectionFactory"/>
    <property name="destination" ref="destination"/>
    <property name="messageListener" ref="messageListener"/>
    <property name="sessionTransacted" value="true"/>
</bean>
其中,messageListener bean 是java.jms.MessageListener接口的实现,其中包含了方法onMessage()用以处理接收到的消息

相关说明:
 1、这里事务指的是:如果onMessage方法失败,该消息将回滚到JMS服务器中。回滚也包含那些已经向JMS服务器发送的任何response
但对其它本地资源的操作将无法改变。所以,如果已经正确处理完消息,但是onMessage()却因其它原因失败,那么可能会造成对该消息重复
的处理。
 2、在onMessage()方法上设置了 事务后,由于存在“消息预取”的机制,所以该session将预取的消息全部处理完,
如果没有设置消息的超时时间的话。所以,在没有超时的情况下,又有事务的onMessage()方法中,最好不要让onMessage长期阻塞,
或者等待时间太长。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值