activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher L. Shannon (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (AMQ-6603) Excessive number of consumers when used with PooledConnectionFactory and Failover transport
Date Tue, 28 Feb 2017 14:48:45 GMT

    [ https://issues.apache.org/jira/browse/AMQ-6603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15888131#comment-15888131
] 

Christopher L. Shannon edited comment on AMQ-6603 at 2/28/17 2:48 PM:
----------------------------------------------------------------------

Right, if you really want to share connections across multiple DMLCs then you'd still need
a pooled factory.  I wouldn't say using failover + pooled factory + DMLC is necessarily evil...just
that there's a lot going on there that could cause problems and it would simply things if
you didn't use a pooled connection factory (such as if you were only a small number of DMLCs)
unless you really need it.  And yes Spring doesn't really recommend doing it that way so if
you can get away with creating 1 connection per DMLC then that is usually the way to go.

The use case should still work however and there is probably some improvement here that needs
to be done in order to properly handle the failover case in this set up so that an excessive
number of consumers don't get created.


was (Author: christopher.l.shannon):
Right, if you really want to share connections across multiple DMLCs then you'd still need
a pooled factory.  I wouldn't say using failover + pooled factory + DMLC is necessarily evil...just
that there's a lot going on there that could cause problems and it would simply things if
you didn't use a pooled connection factory (such as if you were only a small number of DMLCs)
unless you really need it.

The use case should still work however and there is probably some improvement here that needs
to be done in order to properly handle the failover case in this set up so that an excessive
number of consumers don't get created.

> Excessive number of consumers when used with PooledConnectionFactory and Failover transport
> -------------------------------------------------------------------------------------------
>
>                 Key: AMQ-6603
>                 URL: https://issues.apache.org/jira/browse/AMQ-6603
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 5.14.3
>            Reporter: Tadayoshi Sato
>         Attachments: pooled-amq-client.zip, spring-amq-client.zip
>
>
> When {{PooledConnectionFactory}} is used with Failover transport, insufficient access
control settings on the broker result in an excessive number of consumer objects on the broker
once the access control settings are properly set. 
> Here is an example Spring XML configuration:
> {code:xml}
> <beans ...>
>   <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
>     <property name="brokerURL" value="failover:(tcp://localhost:61616)" />
>     <property name="userName" value="test" />
>     <property name="password" value="test" />
>   </bean>
>   <bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
>     <property name="connectionFactory" ref="jmsConnectionFactory" />
>     <property name="maxConnections" value="10" />
>   </bean>
>   <bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
>     <property name="connectionFactory" ref="pooledConnectionFactory" />
>     <property name="destinationName" value="TEST" />
>     <property name="messageListener" ref="messageListener" />
>     <property name="concurrentConsumers" value="10" />
>   </bean>
>   <bean id="messageListener" class="com.redhat.issues.amq.SpringJmsConsumer" />
> </beans>
> {code}
> In this configuration we expect only one connection and 10 consumers for {{TEST}} queue,
but after following the reproducer steps we see around 10 connections and 100 consumers for
the queue on hawtio. In the above configuration Spring DMLC is used but we can reproduce the
issue without Spring.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message