我有一个在 ec2 上运行的 activemq。当我在未启用 JMS 事务的情况下运行测试时,测试工作正常。但是,一旦我启用了事务,就不会传递任何消息,测试就会挂起。(如果我在我的本地 activemq 上运行相同的设置,它会很好。)我想知道当我使用启用事务的 activemq 时是否需要设置一些特别的东西。有人试过这个组合吗?
谢谢,JJ
我的骆驼配置的PS片段如下:
<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>