Wildfly 14 + Artemis объединенное соединение завод JMSXA выпуск - PullRequest
0 голосов
/ 18 марта 2019

Настроил Artemis с политикой ha, как показано ниже:

Machine1: artemis-server1-master

<ha-policy>
   <shared-store>
      <master>
         <failover-on-shutdown>true</failover-on-shutdown>
      </master>
   </shared-store>
</ha-policy>

Machine2: artemis-server2-master

<ha-policy>
   <shared-store>
      <master>
         <failover-on-shutdown>true</failover-on-shutdown>
      </master>
   </shared-store>
</ha-policy>

server1-slave & server2-slave

<ha-policy>
   <shared-store>
      <slave>
         <failover-on-shutdown>true</failover-on-shutdown>
         <restart-backup>true</restart-backup>
         <allow-failback>true</allow-failback>
      </slave>
   </shared-store>
</ha-policy>

В Wildfly настроены следующие параметры Artemis:

<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
    <server name="default">
        <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
        <remote-connector name="remote-artemis1" socket-binding="remote-artemis1"/>
        <remote-connector name="remote-artemis2" socket-binding="remote-artemis2"/>
        <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="remote-artemis1 remote-artemis2" client-failure-check-period="1000" reconnect-attempts="-1" retry-interval="1000" ha="true"/>
        <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="remote-artemis1 remote-artemis2" client-id="Wildfly-14" transaction="xa" user="admin" password="admin" client-failure-check-period="1000" reconnect-attempts="-1" retry-interval="1000" ha="true"/>
    </server>
</subsystem>

В ушном приложении имеется MDB для получения сообщения.Также используется java:/jmsXA для поиска фабрики соединений.

После выполнения вышеуказанной конфигурации и запуска Wildfly, он успешно обрабатывается и отправляет сообщение (т.е. создает соединение с использованием фабрики соединений jmsXA) в очередь.Но при обработке нескольких файлов и между выключением любого мастера Artemis, mdb получит сообщение успешно, но с помощью java:/jmsXA фабрика соединений не сможет отправить сообщение, хотя другой мастер не выключен.

...