1

我有一个在 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>
4

0 回答 0