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&amp;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&amp;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