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

Gary Tully commented on AMQ-3156:
---------------------------------

with cache none, a new consumer is created for each receive, leaving no 
consumer for some duration. When there is no consumer, topic messages are 
dropped.
Use a durable consumer or CACHE_CONSUMER, with a single consumer with default 
prefetch, it makes sense to cache it.

> Active MQ lose messages which were published on topic
> -----------------------------------------------------
>
>                 Key: AMQ-3156
>                 URL: https://issues.apache.org/jira/browse/AMQ-3156
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.2.0
>            Reporter: Guy Hoshea
>         Attachments: activemq.log, activemq.xml
>
>
> We use Spring framework with Active MQ. We publish messages to a topic.
> We have one consumer. The publisher published message with attributes.
> The consumer filters messages by selector on those attributes.
> Once in a while a message does not reach the consumer. There are no errors in 
> logs. No disconnection are seen in logs.
> Spring configuration on publisher side:
>       <bean id="connectionFactory" 
> class="com.icap.dealfeed.common.jms.FailoverableCachingConnectionFactory">
>               <!--  starting with empty impl, later the real impl will be 
> injected -->
>               <property name="targetConnectionFactory">
>                       <bean 
> class="com.icap.dealfeed.common.jms.ConnectionFactoryEmptyImpl">
>                       </bean>
>               </property>
>               <property name="sessionCacheSize"      value="5"/>
>       </bean>
> Spring beans on consumer side:
>       <bean id="rangeUpdateMessageListenerContainer"
>                  
> class="org.springframework.jms.listener.DefaultMessageListenerContainer">
>               <property name="connectionFactory"     ref="connectionFactory" 
> />
>               <!-- Using the CACHE_NONE so Application Resilience will work 
> -->
>               <property name="cacheLevelName"      value="CACHE_NONE"/>
>               <property name="destinationName"     
> value="${jmsRangeUpdateTopicName}"/>
>               <property name="pubSubDomain"        value="true"/>
>               <property name="messageListener"       
> ref="rangeUpdatesMessageListener"/>
>               <property name="exceptionListener"     
> ref="rangeUpdatesMessageListener"/>
>               <!-- Because its topic there should be no concurrentConsumers, 
> so both following values are 1-->
>               <property name="concurrentConsumers"    value="1"/>
>               <property name="maxConcurrentConsumers" value="1"/>
>               <!--  starting on purpose with dummy selector -->
>               <property name="messageSelector"     value="dummy = 123"/>
>               <property name="autoStartup"         value="false"/>
>       </bean>
>       <bean id="connectionFactory" 
> class="org.springframework.jms.connection.CachingConnectionFactory">
>               <property name="targetConnectionFactory" 
> ref="emptyImplConnectionFactory"/>
>               <property name="sessionCacheSize"      value="5"/>
>       </bean>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to