activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kloh <kevin.lohm...@d-velop.de>
Subject Closing a consumer create more messages than sent
Date Mon, 02 Jun 2008 14:29:24 GMT

Hi *,

we're concerning with interested happenings, about which we're not sure,
wether this is caused by bad configuration, bad code or a bug.

The scenario:
ActiveMQ 5.1, persistence with the amq-store, transactional.
We have two producer, each sends 10.000 messages to the broker, to a queue.
We have 3 consumers; one of this consumers is closed every 5 seconds and a
new consumer is created and started. Each consumer just counts the messages
it recieved and commits.

What happens?
After the consumers don't recieve any messages, we take a look at the
web-console or the jmx-monitor and see, that the pending messages are
negative (about 3 to 5) and the recieved messages are not 20.000 but 20.005
(for example).

We just tried differents variants of closing the consumer, but the calls
--
consumer.close()
session.close()
--
should work. Or did we not get the point at this?

The configuration:
<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:amq="http://activemq.apache.org/schema/core"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd   
  http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">

    <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>

    <broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost" useJmx="true" persistent="true"
dataDirectory="${activemq.base}/data">

        <destinationPolicy>
            <policyMap>
                <policyEntries>
                    <policyEntry queue=">" producerFlowControl="true"
memoryLimit="50mb"/>
                    <policyEntry topic=">" memoryLimit="5mb">
                        <dispatchPolicy>
                            <strictOrderDispatchPolicy/>
                        </dispatchPolicy>
                        <subscriptionRecoveryPolicy>
                            <lastImageSubscriptionRecoveryPolicy/>
                        </subscriptionRecoveryPolicy>
                    </policyEntry>
                </policyEntries>
            </policyMap>
        </destinationPolicy>

        <managementContext>
            <managementContext connectorPort="1099"
jmxDomainName="org.apache.activemq"/>
        </managementContext>

        <networkConnectors>
            <networkConnector name="default-nc" uri="multicast://default"/>
        </networkConnectors>

	<persistenceAdapter>
            <amqPersistenceAdapter syncOnWrite="false"
directory="${activemq.base}/data" maxFileLength="20 mb"/>
        </persistenceAdapter>

        <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage limit="100 mb"/> 
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="1 gb" name="messageStorage"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="100 mb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>

        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://localhost:61616"
discoveryUri="multicast://default"/>
        </transportConnectors>

    </broker>
   
    <camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
        <package>org.foo.bar</package>
    </camelContext>

    <jetty xmlns="http://mortbay.com/schemas/jetty/1.0">
        <connectors>
            <nioConnector port="8161"/>
        </connectors>

        <handlers>
            <webAppContext contextPath="/admin"
resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true"/>
            <webAppContext contextPath="/demo"
resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true"/>
            <webAppContext contextPath="/fileserver"
resourceBase="${activemq.base}/webapps/fileserver" logUrlOnStart="true"/>
        </handlers>
    </jetty>

    <bean id="derby-ds" class="org.apache.derby.jdbc.EmbeddedDataSource">
      <property name="databaseName" value="derbydb"/>
      <property name="createDatabase" value="create"/>
    </bean>
</beans>
<!-- END SNIPPET: example -->

We are interested, if someone else has occured this or there is just one
(simple) point, that we miss.
-- 
View this message in context: http://www.nabble.com/Closing-a-consumer-create-more-messages-than-sent-tp17602690s2354p17602690.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message