Thursday, July 3, 2003 07:12 PM
If you are using JMS queues, the message will be kept in the queue until a consumer connects to the queue, receives the message, and acknowledges reception. All this can be done in a transaction so this virtually guarantees the message will reach the consumer.
As far as crashes, this is app server specific. Most app servers offer a way to make the queues persistent. This means that even if the server crashes, the messages are stored inside a database and will be recoverable when the server restarts.
Topics, on the other hand, publish messages whether or not consumers are connected. So there is no way to guarantee that the messages actually got consumed.