What's happening in this test is the messages are sent, then almost immediately they
are received by the connection consumer (which lives on the client side) - at this point
they are not expired.
Later on the connection consumer passes the messages onto the message listener and a delay
is introduced, but by this time the messages are already on the client so won't get
expired since JBossMQ doesn't do an extra client side check.
I haven't actually run this test against JBoss Messaging but we do an extra client
side expiration check as well as a server side one. This is particularly important to us
since we buffer messages on the client side, therefore I would expect this test to pass
for JBM.
However, having said all that, the JMS spec is pretty loose about JMSExpiration:
anonymous wrote :
| When GMT is later than an undelivered message?s expiration time, the
| message should be destroyed. JMS does not define a notification of message
| expiration.
| Clients should not receive messages that have expired; however, JMS does not
| guarantee that this will not happen.
|
Since there are no guarantees I would say the JBossMQ is sub-optimal but not incorrect and
is fully spec compliant.
You can't expect a general jms provider to fully honour JMSExpiration in all
circumstances.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4042650#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...