私は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>