Is it possible for the Artemis JCA outbound connection pool to failover?

Solution Unverified - Updated -

Issue

Does pooled-connection-factory failover work in the following requirements?

  • A single <pooled-connection-factory> is expected to be able to connect to multiple destinations.
  • pooled-connection-factory is used only outbound connection for producers. Inbound with MDBs are not included.
  • XA transaction is required to send a message with pooled-connection-factory.

Specifically, if the following parameters are configured in standalone-full.xml, does remote-artemis pool failover connection to host2 if the JCA outbound pool can no longer connect to host1?

         <subsystem xmlns="urn:jboss:domain:messaging-activemq:13.0">
+            <external-jms-queue name="HelloQueue" entries="java:/jms/remote/HelloQueue"/>
             <server name="default">
                 <statistics enabled="${wildfly.messaging-activemq.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
                 <security-setting name="#">
...
                 <http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput">
                     <param name="batch-delay" value="50"/>
                 </http-connector>
+                <http-connector name="remote-http-connector-1" socket-binding="remote-server-1" endpoint="http-acceptor"/>
+                <http-connector name="remote-http-connector-2" socket-binding="remote-server-2" endpoint="http-acceptor"/>
                 <in-vm-connector name="in-vm" server-id="0">
                     <param name="buffer-pooling" value="false"/>
                 </in-vm-connector>
...
                 <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
                 <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>
                 <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector"/>
                 <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/>
+                <pooled-connection-factory name="remote-artemis" entries="java:/jms/remoteCF" connectors="remote-http-connector-1 remote-http-connector-2" ha="true" transaction="xa" user="jms" password="***"/>
             </server>
         </subsystem>
...
         <outbound-socket-binding name="mail-smtp">
             <remote-destination host="${jboss.mail.server.host:localhost}" port="${jboss.mail.server.port:25}"/>
         </outbound-socket-binding>
+        <outbound-socket-binding name="remote-server-1">
+            <remote-destination host="<host1>" port="8080"/>
+        </outbound-socket-binding>
+        <outbound-socket-binding name="remote-server-2">
+            <remote-destination host="<host2>" port="8080"/>
+        </outbound-socket-binding>
     </socket-binding-group>

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 7.4
  • messaging-activemq subsystem

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content