Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Not A Problem
-
5.8.0
-
None
-
Ubuntu 12.04.1 LTS Precise, OpenJDK Runtime Environment (IcedTea7 2.3.3) (7u9-2.3.3-0ubuntu1~12.04.1)
Description
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.