問題の説明: "JTA/XA" モードでメッセージが camel を使用して "Source-Q" から消費され、ビジネス ロジック (エラーや例外なしで正常に処理された) を実行した後、"Destination-Q" に応答を返すことができません。
「camel」ロギングを有効にしましたが、「Destination-end point」の「エラー/例外」は見つかりませんでした。
使用済み技術スタック:
- JBoss Wildfly 10 (Windows 上)
- activemq-rar-5.11.0.redhat-630356.rar ( https://maven.repository.redhat.com/ga/org/apache/activemq/activemq-rar/による最新)
- キャメル-2.15.3
- Red Hat AMQ 7.2 (Linux)。「artemis create」を使用して、デフォルト構成でインスタンスを作成しました。
「リソース アダプター アプローチ」は、JBoss Wildfly 10 で踏襲され、Red Hat MQ 7.2 と統合されます。
JBoss Wildfly 10 のスニペット - 「standalone.xml」設定を以下に示します。
<subsystem xmlns="urn:jboss:domain:resource-adapters:4.0">
<resource-adapters>
<resource-adapter id="activemq">
<archive>
activemq-rar-5.11.0.redhat-630356.rar
</archive>
<transaction-support>XATransaction</transaction-support>
<config-property name="ServerUrl">
tcp://redhatamqhostname:61616?jms.redeliveryPolicy.maximumRedeliveries=2
</config-property>
<config-property name="UserName">
defaultUser
</config-property>
<config-property name="InitialRedeliveryDelay">
1000
</config-property>
<config-property name="Password">
defaultPassword
</config-property>
<connection-definitions>
<connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="java:/XAconnectionFactory" enabled="true" use-java-context="true" pool-name="ConnectionFactory">
<xa-pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>false</prefill>
<is-same-rm-override>false</is-same-rm-override>
</xa-pool>
</connection-definition>
</connection-definitions>
</resource-adapter>
</resource-adapters>
</subsystem>
「camel-context」構成のスニペットを以下に示します。
<bean id="JBOSSRMQ" class="org.apache.camel.component.jms.JmsComponent">
<property name="configuration">
<bean class="org.apache.camel.component.jms.JmsConfiguration">
<property name="connectionFactory" ref="connectionFactory" />
<property name="transactionManager" ref="transactionManager" />
<property name="transacted" value="false" />
<property name="concurrentConsumers" value="1" />
<property name="deliveryPersistent" value="true" />
<property name="requestTimeout" value="10000" />
<property name="cacheLevelName" value="CACHE_NONE" />
</bean>
</property>
</bean>
<jee:jndi-lookup id="connectionFactory" jndi-name="java:/XAconnectionFactory"/>
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
それを機能させるためのアイデア/考えはありますか?前もって感謝します!