Is it possible for the Artemis JCA outbound connection pool to failover?
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.