【发布时间】:2015-01-19 17:16:39
【问题描述】:
我正在使用 Spring Integration (3.0.6),同时使用 message-driven-channel-adapter 时遇到问题。如果我将 2 个作业发送到 JMS 队列并确保第一个作业永远不会完成(保持循环),那么第二个作业永远不会从队列中取出。
如果我从通道适配器中删除transaction-manager,我会得到我期望的并发。有人认为我的配置方式有什么问题吗?
<int-jms:message-driven-channel-adapter
channel="jobsChannel"
connection-factory="jmsConnectionFactory"
pub-sub-domain="false"
destination-name="JOBS_QUEUE"
transaction-manager="jmsTxManager"
concurrent-consumers="5"
max-messages-per-task="1"
error-channel="errorChannel"
id="jobJmsReceiver" />
<amq:broker useJmx="false" persistent="true">
<amq:transportConnectors>
<amq:transportConnector uri="tcp://localhost:0" />
</amq:transportConnectors>
</amq:broker>
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="vm://localhost" />
</bean>
<bean id="jmsTxManager" class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory" ref="jmsConnectionFactory"></property>
</bean>
【问题讨论】:
标签: java spring jms spring-integration