我在ec2上运行了activemq。当我在没有启用JMS事务的情况下运行我的测试时,测试工作正常。但是,一旦启用了事务,就不会传递任何消息,测试就会挂起。 (如果我在我的本地activemq上运行相同的设置,它就可以了。)我想知道当我使用activemq并启用事务时,我是否需要设置一些特殊内容。有没有人尝试过这种组合?
谢谢, JJ
P.S。我的骆驼配置片段如下:
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbcDriver}"/>
<property name="username" value="${jdbcUserName}"/>
<property name="password" value="${jdbcPassword}"/>
<property name="url" value="${jdbcUrl}"/>
<property name="initialSize" value="${jdbcMaxPoolSize}"/>
</bean>
<bean id="jmsConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${activeMQBrokerURL}"/>
</bean>
<bean id="pooledConnectionFactory"
class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
<property name="maxConnections" value="8" />
<property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>
<bean id="jmsConfig"
class="org.apache.camel.component.jms.JmsConfiguration">
<property name="connectionFactory" ref="pooledConnectionFactory"/>
<property name="concurrentConsumers" value="10"/>
</bean>
<bean id="transactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory" ref="pooledConnectionFactory"/>
</bean>
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="transacted" value="true"/>
<property name="transactionManager" ref="transactionManager"/>
<property name="concurrentConsumers" value="5"/>
<!--
<property name="connectionFactory" ref="pooledConnectionFactory"/>
<property name="configuration" ref="jmsConfig"/>
-->
</bean>