The JMS FAQ says
JMS API messaging provides guaranteed
delivery via the once-and-only-once
delivery semantics of PERSISTENT
messages. In addition, message
consumers can insure reliable
processing of messages by using either
CLIENT_ACKNOWLEDGE mode or transacted
sessions. This achieves reliable
delivery with minimum synchronization
and is the enterprise messaging model
most vendors and developers prefer.
The JMS API does not define a schema
of systems messages (such as delivery
notifications). If an application
requires acknowledgment of message
receipt, it can define an
application-level acknowledgment
message.
These issues are more clearly
understood when they are examined in
the context of publish/subscribe
applications. In this context,
synchronous delivery and/or system
acknowledgment of receipt are not an
effective mechanism for implementing
reliable applications (because
producers by definition are not, and
do not want to be, responsible for
end-to-end message delivery).
I'm no expert, but I think this is saying that the spec doesn't define a way for a consumer to confirm receipt to a producer, by design. I don't know of any implementations that do - and if they did, it looks like it'd be a big departure from the model the spec captures.