Hi Felix,

Thanks for the info, both of my producer and consumer's clocks are synced. 

To stop the message transfer from producer to consumer, I send a control
message to produce trigger it to stop and then shutdown the consumer
listener.  That is why we can see some messages left on the queue

thanks

-Dan


fehm wrote:
> 
> Hi Dan,
> 
> If you play with message expiration make sure that your
> consumer/broker/producer have the same time since the TimeTtoLive of the
> message is set relative to your producer. If you broker is in the future
> relative to your producer and the gap is greater than your TTL you won't
> see any messages on the consumer.
> 
> How exactly do you "stop" you consumer ?
> Remember that a the dequeue counter only increase if message has been
> acknowledged by the consumer. Inflight again means that this number of
> messages have not (yet) been acknowledged by the consumer.
> Can it be that the consumer received the message but couldn't ack the 13
> messages since you stopped it ?
> 
> 
> Cheers,
> Felix
> 
> 
> 
> 
> Dan Tran wrote:
>> 
>> 
>> Hi,  I am testing 5.3-SNAPSHOT to pick up expired message enhancement
>> where the message will be automatically removed when timed out.
>> 
>> I have multiple topics with each has a pair of producer/consumer.  All
>> messages are memory base, where 'memoryUsage' is used to do the producer
>> flow control. All producer messages are set to have time to live value. 
>> However, when I stop both producer and consumer during a heavy producer
>> to consumer communication.  Some messages are left in the queue.  The
>> jconsole shows the expiredCount only set at 0 after waiting for time to
>> expired.
>> 
>> Here is some stats at my topic.
>> 
>> enqueueCount=21699
>> dispatchCount=31698
>> dequeueCount=21685
>> inFlightCount=13
>> expriredCount=0
>> 
>> consumerCount=0
>> producerCount=0  ( still alive but does nothing )
>> 
>> queueSize=21699
>> 
>> here is my broker configuration
>> 
>>   <amq:broker useJmx="true" persistent="false" advisorySupport="false">
>> 
>>     <!-- Destination specific policies using destination names or
>> wildcards -->
>> 
>>     <amq:destinationPolicy>
>>       <amq:policyMap>
>>         <amq:policyEntries>
>>           <amq:policyEntry topic=">"  producerFlowControl="true"
>> memoryLimit="${fdb.broker.agent.memoryLimit} mb" />
>>         </amq:policyEntries>
>>       </amq:policyMap>
>>     </amq:destinationPolicy>
>> 
>>     <amq:sslContext>
>>       <amq:sslContext
>> keyStore="file:${FORTIDB_HOME}/conf/.jmsBrokerKeyStore"
>> keyStorePassword="${fdb.broker.keyStorePassword}" />
>>     </amq:sslContext>
>> 
>>     <!--  The maximum about of space the broker will use before slowing
>> down producers -->
>>     <amq:systemUsage>
>>       <amq:systemUsage>
>>         <amq:memoryUsage>
>>           <amq:memoryUsage limit="${fdb.broker.memoryUsage} mb" />
>>         </amq:memoryUsage>
>>       </amq:systemUsage>
>>     </amq:systemUsage>
>>     
>>     <amq:transportConnectors>
>>       <amq:transportConnector
>> uri="${fdb.broker.protocol}://0.0.0.0:${fdb.broker.port}" />
>>     </amq:transportConnectors>
>> 
>> 
>>   </amq:broker>
>> 
>> 
>> Any helps and suggestion are greatly appreciated.
>> 
>> -Dan
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Expired-message---does-it-work--tp25645401p25665420.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to