Поддержка транзакций XA с JBoss Widlfly 10, camel-2.15.3 и Red Hat AMQ 7.2 - PullRequest
0 голосов
/ 27 ноября 2018

Постановка проблемы: В режиме «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. верблюд-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>

Фрагменты из конфигураций "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"/>

Любые идеи / мысли, чтобы заставить его работать? Спасибо в объявленииВэнс!

...