scratch that, i need jmsTemplate.setExplicitQosEnabled( true ); as well
sorry for the noise.
-D
Dan Tran wrote:
>
>
> I would like to bring discussion back where I cannot get message in my
> queue to expire.
>
> I am using JmsTemplate producer to send messages to the queue with no
> consumer ( intended), here is the snippet
>
> @Resource
> private JmsTemplate jmsTemplate;
>
> @PostConstruct
> public void afterPropertiesSet()
> {
> jmsTemplate.setDeliveryMode( DeliveryMode.NON_PERSISTENT );
> jmsTemplate.setTimeToLive( messageTimeToLive );
> }
>
> However the messages ( found in Jconsole) stay in to queue with delivery
> mode set to PERSISTENT and expired time set to 0. It seems my setup has no
> affect
>
>
> Is it the right way?
>
> -Dan
>
>
>
> Dan Tran wrote:
>>
>>
>> It turns out I am using topic and when my consumer is destroyed, all
>> messages also destroyed, but the stats still lingering in the jconsole
>> and this is were confusion starts.
>>
>> thanks
>>
>> -Dan
>>
>>
>> Dan Tran wrote:
>>>
>>>
>>> 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--tp25645401p25935492.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
|