activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eddie Epstein (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQCPP-186) CMSExpiration computed incorrectly (?)
Date Thu, 03 Jul 2008 15:27:00 GMT

    [ https://issues.apache.org/activemq/browse/AMQCPP-186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43910#action_43910
] 

Eddie Epstein commented on AMQCPP-186:
--------------------------------------

Re-tested this scenario with AMQ 5.1.0. There are two changes in behavior:

1. the Java consumer is now the same as cpp
2. the broker moves the messages to the DLQ.

So with 5.1.0 the behavior is broken for both Java and cpp: message expiration is affected
by the clock differences between producer and consumer machines. Is this a known limitation?

https://issues.apache.org/activemq/browse/AMQ-1162 made the same comment last year, but that
issue is marked fixed. Doesn't look fixed as of 5.1.0.

Should this issue be moved to a different category?

Thanks,
Eddie

> CMSExpiration computed incorrectly (?)
> --------------------------------------
>
>                 Key: AMQCPP-186
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-186
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>    Affects Versions: 2.1.3
>            Reporter: Eddie Epstein
>            Assignee: Nathan Mittler
>
> The C++ consumer is treating messages as expired in situations where the Java consumer
is not.
> It could be that the problem is due to the code in connector/openwire/commands/ActiveMQMessageBase.h
which compares the CMSExpiration time specified by producer.setTimeToLive()  with the local
clock on the consumer machine.
>         /**
>          * Returns if this message has expired, meaning that its
>          * Expiration time has elapsed.
>          * @returns true if message is expired.
>          */
>         virtual bool isExpired() const {
>             long long expireTime = this->getCMSExpiration();
>             long long currentTime = decaf::util::Date::getCurrentTimeMilliseconds();
>             if( expireTime > 0 && currentTime > expireTime ) {
>                 return true;
>             }
>             return false;
>         }

-- 
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