ActiveMQ Spring CLIENT_ACKNOWLEDGE无法正常工作

时间:2015-04-21 20:41:34

标签: java spring activemq

我似乎无法弄清楚这一点...... 这在JAVA中非常有效:

// Create a Session
Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE); // << means we have to acknowledge that we processed it!

但是当我创建一个Spring Bean时,我无法让CLIENT_ACKNOWLEDGE工作。它似乎是自动确认所有消息。

<bean id="testListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer" lazy-init="true">
<property name="connectionFactory" ref="amqConnectionFactory" />
    <property name="destinationName" value="MyQueue" />
    <property name="messageListener" ref="testListener" />
    <property name="autoStartup" value="false"/>
    <property name="sessionAcknowledgeModeName" value="CLIENT_ACKNOWLEDGE"/>
    <property name="sessionTransacted" value="true"/>
    <property name="concurrency" value="2"/>
</bean>

我遗失了什么?

1 个答案:

答案 0 :(得分:0)

Spring中的DMLC在您的配置中启用了事务,而在Java示例中,您禁用了事务。事务会覆盖任何确认模式。因此,选择是否应该使用交易或客户交易,因为您无法同时选择这两种交易。