activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Santiago Urrizola (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-1072) "TimeToLive" doesn't work on MessageListener
Date Mon, 06 Apr 2009 21:31:34 GMT

    [ https://issues.apache.org/activemq/browse/AMQ-1072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=51062#action_51062
] 

Santiago Urrizola commented on AMQ-1072:
----------------------------------------

Context:
3 host,  (linux debian) all with DEFERENTS dates (not synchronized)

1- start a broker on machine 1
2- start a producer on machine 2
3- producer send a couple of messages with a short timeToLive (2 or 3 seconds)
4- wait for 5 seconds (or more)
5- start a messageListener on machine 3
6-  surprisingly messageListener recveibe all the messages sent by producer in step 3, when
they should not (because of the timeToLive)

The problem is the host where the listener (consumer) runs have a date two or three hours
prior of the host for the consumer, and beacause off that the Expiration is always greater
than the Listener (consumer) date.

I think expiration should be managed entirelly in the broker not in clientes (ActiveMQQueueReceiver,
 etc)


> "TimeToLive" doesn't work on MessageListener
> --------------------------------------------
>
>                 Key: AMQ-1072
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1072
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 4.0.1
>            Reporter: Joseph Leung
>            Assignee: Rob Davies
>             Fix For: 5.0.0
>
>
> When a queue message is consumed using MessageListener throught the setMessageListener
method,
> it could recieve the messages even if they are expired. (While using consumer.receive()
will discard them).
> Reproduce Steps:
> 1. deliver a number of message to a queue with a short expire time.
> 2. wait until the message should be expired.
> 3. use MessageConsumer.receive() method to receive the messages,
>      -- You should not receive any messages, and through the monitor console, you should
see some
>          messages are left and not discarded.
> 4. stop the receive() method.
> 5. add a MessageListener to the same queue, the messages which found left is received
by the
>      onMessage() method.
> ps. if step3 is skipped, likely you would receive all the expired message.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message