Re: temporary non persistent queues: how to detect a dead peer
Tuesday, November 4, 2003 02:54 AM
When your requestor dies (or disconnects) and the SwiftMQ router detects that, the temp queue is deleted as part of the connection close (this is required by the JMS spec; temp queues live as long as the connection lives).
If some other client sends to a non-existing temp. queue from the same router, it gets a InvalidDestinationException during the send (or commit).
If some other client sends to a non-existing temp. queue from a remote router, the send/commit succeeds but the message is dropped at the destination router.
Thus in the latter case there is no way to detect whether a remote temp. queue still exists or not. Of course, you could retrieve this info via the CLI Admin API from the remote router but that's too complicated. A better and more JMS-like (vendor independent) way would be to use some kind of application level 'keepalive' messages.