You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Matt Pavlovich (Jira)" <ji...@apache.org> on 2021/07/16 17:11:00 UTC

[jira] [Updated] (AMQ-6627) Network configured via mq-fabric do not create consumers after master/slave switch

     [ https://issues.apache.org/jira/browse/AMQ-6627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matt Pavlovich updated AMQ-6627:
--------------------------------
    Labels: close-pending  (was: )

> Network configured via mq-fabric do not create consumers after master/slave switch
> ----------------------------------------------------------------------------------
>
>                 Key: AMQ-6627
>                 URL: https://issues.apache.org/jira/browse/AMQ-6627
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Network of Brokers
>    Affects Versions: 5.14.2
>            Reporter: Dominik Przybysz
>            Priority: Major
>              Labels: close-pending
>
> Hi,
> we have 6 ActiveMQ (5.14.2) brokers running on Apache Karaf:
> - amq1 (prod and dr) - master/slave
> - amq2 (prod and dr) - master/slave
> - amq3 (prod and dr) - master/slave
> These brokers are connnected with network configured via mq-fabric.
> Producer and consumers connect to amq1, amq2 or amq3 via load balancer using round robin algorithm.
> Producers connects to each broker and send messages without problems.
> Consumers are long-lived and connects to each queue and listen.
> Problem is when, for example, amq2prod goes down for a moment and switches to amq2dr. Network is established after switch, producers sends messages to, for example, queue error.history.in on each broker (including amq2), but no consumers are created for this queue on amq2. All real consumers for this queue are connected to amq1 or amq3, but amq2 do not forward messages to them.
> I hope this is configuration problem of our network. What we are doing wrong?
> ============================================
> Our Configuration
> Broker configuration is common and properties are filled by mq-fabric:
> {code}
> <beans
>   xmlns="http://www.springframework.org/schema/beans"
>   xmlns:amq="http://activemq.apache.org/schema/core"
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
> 					  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"
> >
>     <!-- Allows us to use system properties and fabric as variables in this configuration file -->
>     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>         <property name="properties">
>             <bean class="io.fabric8.mq.fabric.ConfigurationProperties" />
>         </property>
>     </bean>
>     <broker xmlns="http://activemq.apache.org/schema/core"
>             xmlns:b="http://www.springframework.org/schema/beans"
>       brokerName="${broker-name}"
>       dataDirectory="${data}"
>       useJmx="true"
>       enableStatistics="true"
>       advisorySupport="true"
>       persistent="true"
>       schedulerSupport="true"
>       start="false"
>       restartAllowed="false"
>     >
>         <managementContext>
>             <managementContext createConnector="false" />
>         </managementContext>
>         <persistenceAdapter>
>             <jdbcPersistenceAdapter dataSource="#amqDataSource">
>               <statements>
>                 <statements tablePrefix="AMQ4_" />
>               </statements>
>             </jdbcPersistenceAdapter>
>         </persistenceAdapter>
>         <plugins>
>             <jaasAuthenticationPlugin configuration="karaf" />
>             <runtimeConfigurationPlugin checkPeriod="30000" />
>         </plugins>
>     	<!-- system usage omitted -->
>         <transportConnectors>
>             <transportConnector name="openwire" uri="tcp://0.0.0.0:61696?transport.closeAsync=false" />
>         </transportConnectors>
>     </broker>
>     <!-- amqDataSource configuration omitted -->
> </beans>
> {code}
> Configuration is similar for each broker io.fabric8.mq.fabric.server-<brokername> - different is only ds-sid, ds-username and ds-password:
> {code}
> config=profile\:broker.xml
> config.checksum=${checksum:profile\:broker.xml}
> broker-name=amq1
> data=${runtime.data}/amq
> ds-sid=AMQ1
> ds-username=${profile:amq.ds.${containerEnv}/amq1Username}
> ds-password=${profile:amq.ds.${containerEnv}/amq1Password}
> connectors=openwire
> group=AMQ4
> kind=MasterSlave
> standby.pool=AMQ4
> network=AMQ4
> network.userName=amq
> network.password=${profile:amq.ds.${containerEnv}/amqNetworkPassword}
> network.messageTTL=-1
> network.consumerTTL=1
> network.networkConnectorStartAsync=true
> network.suppressDuplicateQueueSubscriptions=true
> network.suppressDuplicateTopicSubscriptions=true
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)