You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "hengyunabc (JIRA)" <ji...@apache.org> on 2013/05/08 14:03:20 UTC
[jira] [Created] (AMQ-4523) The durable subscriber will lose some
pending queue message
hengyunabc created AMQ-4523:
-------------------------------
Summary: The durable subscriber will lose some pending queue message
Key: AMQ-4523
URL: https://issues.apache.org/jira/browse/AMQ-4523
Project: ActiveMQ
Issue Type: Bug
Components: activemq-camel, Broker
Affects Versions: 5.8.0
Reporter: hengyunabc
With camel route, forward messages from a topic to a queue.
Just start a topic producer, such as:
ant -Durl=tcp://ip:port -Dtopic=true -Dsubject=test_topic -Ddurable=true -Dmax=10000 -DmessageSize=100 -DparallelThread=10 -Dverbose=false producer
After a while, in web console: /admin/subscribers.jsp ,can see "Pending Queue Size" not 0.
Then stop the topic producer, will found that the "Pending Queue Size" not 0!
Some messages lost.
No matter restart the activemq server, or consumer all the messages in the queue, can not get "The Pending Queue Messages'.
camel.xml:
{code}
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<!-- You can use Spring XML syntax to define the routes here using the <route> element -->
<route id="testRoute">
<description>test Route</description>
<from uri="jms1:topic:test_topic?clientId=1&durableSubscriptionName=bar1"/>
<to uri="jms1:queue:test_queue"/>
</route>
</camelContext>
<bean id="jms1" class="org.apache.camel.component.jms.JmsComponent">
<property name="configuration" ref="jmsConfig1" />
</bean>
<bean id="jmsConfig1" class="org.apache.camel.component.jms.JmsConfiguration" >
<property name="connectionFactory" ref="jmsPooledConnectionFactory1" />
<property name="transacted" value="true" />
<property name="transactionManager" ref="jmsTransactionManager1" />
<property name="cacheLevelName" value="CACHE_CONNECTION" />
<property name="cacheLevel" value="1" />
</bean>
<bean id="jmsTransactionManager1" class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory" ref="jmsPooledConnectionFactory1" />
</bean>
<bean id="jmsPooledConnectionFactory1" class="org.apache.activemq.pool.PooledConnectionFactory"
init-method="start" destroy-method="stop" >
<property name="maxConnections" value="1" />
<property name="connectionFactory" ref="jmsConnectionFactory1" />
</bean>
<bean id="jmsConnectionFactory1" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="vm://localhost?create=false&jms.prefetchPolicy.all=1" />
<property name="watchTopicAdvisories" value="false" />
</bean>
</beans>
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira