[
https://issues.apache.org/jira/browse/AMQ-3156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guy Hoshea closed AMQ-3156.
---------------------------
Resolution: Fixed
There are 2 issues here:
1.
When configuring
org.springframework.jms.listener.DefaultMessageListenerContainer 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.
Using CACHE_CONSUMER solves this issue.
2.
This below exception in activeMQ log:
INFO | jvm 1 | 2011/01/27 11:35:56 | java.net.SocketException: Software
caused connection abort: recv failed
INFO | jvm 1 | 2011/01/27 11:35:56 | at
java.net.SocketInputStream.socketRead0(Native Method)
INFO | jvm 1 | 2011/01/27 11:35:56 | at
java.net.SocketInputStream.read(SocketInputStream.java:129)
INFO | jvm 1 | 2011/01/27 11:35:56 | at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:50)
INFO | jvm 1 | 2011/01/27 11:35:56 | at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:58)
INFO | jvm 1 | 2011/01/27 11:35:56 | at
java.io.DataInputStream.readInt(DataInputStream.java:370)
INFO | jvm 1 | 2011/01/27 11:35:56 | at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269)
INFO | jvm 1 | 2011/01/27 11:35:56 | at
org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:210)
INFO | jvm 1 | 2011/01/27 11:35:56 | at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:202)
INFO | jvm 1 | 2011/01/27 11:35:56 | at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
INFO | jvm 1 | 2011/01/27 11:35:56 | at
java.lang.Thread.run(Thread.java:619)
This exception is because we have applicative keep alive that creates
connection and session each 2 seconds and than close them.
> 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.