Can I cancel a message I've sent?

We are using iMQ to send a message that will invoke a translet. One of our

requirements is to be able to cancel translets and specific messages once a

message has been sent to the broker. For example, lets say three messages

are sent to a broker, message 1, message 2 and message 3.While all three

messages are sitting in the queue waiting for the client, we would like to

be able to cancel one of the messages prior to being sent to the client,

for example message 2. Once the client becomes available message 1 and

message 3 would be the only messages available. (We will also be

implementing point to point synchronous queues). So far this does not

appear possible.From what I have found the API's do not seem to support

this. Do you know if this can be done?

[837 byte] By [christenscreen] at [2007-11-25 8:07:13]
# 1

The JMS API does not allow the producer of a message to 'recall' the message.

The producer can set different priorities and expiration times on messages to

affect handling of the messages relative to other messages that the are

generated by the same producer.

Can you give more concrete examples of the contents of the 3 messages and why

you would want message #2 deleted?

You can acheive a somewhat equivalent behavior without the message actually

having to be explicitly deleted by setting different properties when they are

produced and having the client use selectors, in which case message 2 would

not be available to the receiving client and could eventually be expired (by

setting an expiration when it was produced) and thus be deleted from the

system.

christenscreen at 2007-7-1 13:57:59 > top of Java-index,Application & Integration Servers,Sun Java System Message Queue...