Does the JMS specification or various implementations support message delivery confirmation?

Lets say that the Producer is posting a message to the "News" JMS Topic. Consumer1 is reading the message, but Consumer2 is offline, so it hasn't read the message yet.

Is there some built-in (for spec or impl) way for Producer to be notified that Consumer1 has read his post but Consumer2 hasn't? In fact, this would reflect the Email Read Notice.

It is clear that you can implement this if each user sends a confirmation, but I am looking for something already part of JMS or JMS system.

+2


source to share


1 answer


JMS FAQ says

JMS API messaging is guaranteed to deliver once and only once delivery semantics of a PERMANENT Message. In addition, message consumers can provide reliable message handling using CLIENT_ACKNOWLEDGE mode or transaction sessions. It provides reliable delivery with minimal synchronization and is the corporate messaging system most vendors and developers prefer.

The JMS API does not define the schema for system messages (such as notification delivery). If an application requires confirmation of a receive message, it can define an application-level confirmation message.

These issues are more clearly understood when viewed in the context of publishing / subscribing Applications. In this context, synchronous delivery and / or acknowledgment of receipt is not an efficient mechanism for implementing reliable applications (because there are no vendors by definition and do not want to be responsible for end-to-end message delivery).



I'm not an expert, but I think this suggests that the spec doesn't define a way for a consumer to confirm receipt by a design producer. I don't know of any implementations that do - and if they did, it looks like it would be a big departure from the model that spec captures.

+3


source







All Articles