XA事务支持JBoss Widlfly 10,camel-2.15.3和Red Hat AMQ 7.2

时间:2018-11-27 18:52:01

标签: apache-camel jboss-amq

问题陈述:在“ JTA / XA”模式下,当使用骆驼从“ Source-Q”中消费消息时,并且在执行业务逻辑(成功处理而没有任何错误或异常)之后,无法将响应发送回“ Destination- Q”。

已启用“骆驼”日志记录,但未找到“目标端点”的“错误/异常”。

使用过的技术堆栈:

  1. JBoss Wildfly 10(在Windows上)
  2. activemq-rar-5.11.0.redhat-630356.rar(最新https://maven.repository.redhat.com/ga/org/apache/activemq/activemq-rar/
  3. camel-2.15.3
  4. 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>

“骆驼语境”配置中的代码段如下:

    <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"/>

有什么想法/想法可以使它起作用吗?预先感谢!

0 个答案:

没有答案