activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erik (JIRA)" <>
Subject [jira] [Reopened] (AMQ-4468) TimeStampPlugin doesn't work with Stomp
Date Wed, 08 May 2013 03:57:15 GMT


Erik reopened AMQ-4468:

Issue not resolved. The code change fixed the issue where a stomp "timestamp" header was overwritten.
However, the TimeStampPlugin does not work as expected. I sent a message to a queue to test
the plugin. The message was not delivered to the queue; i.e. probably delivered to the DLQ.

Expected Result: The message should be sitting in the queue. There were no consumers. The
TimeStampPlugin was enabled. Although the message timestamp and expire UTCs where 1 day in
the past, the plugin should have used the difference between the expires and timestamp UTCs
to rewrite a new expires and timestamp using the Activemq server local time. The rewrite did
not occur.

Activemq Server Time: 2013-05-07 20:27:51,995
Message timestamp header: 2013-05-06T20:27:51-07:00 (1 day earlier than Activemq time)
Message expire header: 2013-05-06T22:27:51-07:00 (2 hours ahead of timestamp, still less than
Activemq UTC time)
Using activemq binary snapshot: apache-activemq-5.9-20130507.083009-49-bin.tar.gz

Here is the stomp.log:

2013-05-07 20:27:51,995 [] TRACE StompIO                        - Received:

> TimeStampPlugin doesn't work with Stomp
> ---------------------------------------
>                 Key: AMQ-4468
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: stomp
>    Affects Versions: 5.8.0
>         Environment: Ubuntu 12.04.1 LTS Precise, OpenJDK Runtime Environment (IcedTea7
2.3.3) (7u9-2.3.3-0ubuntu1~12.04.1)
>            Reporter: Erik
>            Assignee: Timothy Bish
>              Labels: JMSExpiration, JMSExpires, JMSTimestamp, TimeStampPlugin, activemq,
disableTimeStampsByDefault, expires, stomp, timestamp
>             Fix For: 5.9.0
> Stomp producers cannot set the JMSTimestamp or timestamp header. Activemq always adds
a timestamp header and overrides a set value. Therefore, the expires header cannot be recalculated
according to Activemq time according to the description for TimeStampPlugin. TimeStampPlugin
works for JMS producers because the JMSExpiration UTC can be adjusted up/down according to
the difference between JMSTimestamp and Activemq UTC.
> Example:
> ActiveMQ time is 2pm UTC
> Stomp producer time is 1:03pm UTC.
> Stomp expires time is 1:03pm + 15 minutes: 1:18pm UTC.
> ActiveMQ will throw this message away with TimeStampPlugin enabled.
> ActiveMQ will deliver this message for a JMSProducer.
> Recommendation:
> 1)
> ActiveMQ should allow Stomp producers to set a timestamp or JMSTimestamp header.
> if( Stomp Message Timestamp Header ) {
> use header
> }
> else {
> add timestamp header
> }
> 2)
> Add the disableTimeStampsByDefault=true feature to the stomp protocol URI.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message