A user reports:
'm not as familiar with the JMS 1.1 spec as I should be, to be having this conversation, but I think it relates to the TIBCO implementation for non-durable subscribers (I think the API leaves this up to the implementation <
http://java.sun.com/products/jms/faq.html#msg_recov_closed_cons> ). In the TIBCO implementation, the server retains a copy of the message for Hermes until the session is closed, since Hermes does not appear to acknowledge it. I think this is because the session's acknowledge mode is CLIENT_ACKNOWLEDGE and there is no explicit Message.acknowlege() in the TopicBrowser. However, we're unable to find a config setting to change this (we might have overlooked it).
So, from our perspective (it's very possible this is a unique perspective) if the acknowledge mode is CLIENT_ACKNOWLEDGE, there should be an explicit Message.acknowledge() in the TopicBrowser. It might be useful to have a config setting which determines the acknowlege mode (again, it's possible we overlooked it).
Thanks for listening. Apologies in advance for bad assumptions, or a lack of understanding of the JMS API.
I reply:
You are correct in that the Hermes topic browser is not acknowledging messages even though the session is set to CLIENT_ACKNOWLEDGE.
Strange I've not been told or seen this before but I guess your users are leaving the session open for a long long time.
I'll get you a fix shortly whereby if the session is configured as non-transacted then the session will be opened as AUTO_ACKNOWLEDGE.