JMS队列/主题问题

时间:2013-01-01 01:31:54

标签: java jms message-queue jms-topic

我有两个关于JMS的问题:

1)当队列关闭且发布者尝试发送消息时会发生什么。我会得到什么错误?

2)当消息可用而消费者不是时,会发生什么?消息是否会被无限期等待直到被消耗掉?

1 个答案:

答案 0 :(得分:0)

1)通常,您可以期待某种形式的(运行时)连接异常,因为您的代码(假设Java)正在尝试连接到您的JMS代理。确切的例外很大程度上取决于您使用的任何框架(即Spring)。您需要决定在这种情况下要做什么(即将异常抛回客户端)。如果客户端不关心消息发布的实际时刻,则可以选择缓存要发布的消息并尝试一定的时间间隔。

2)没什么,你的消息只会排在队列中,直到删除它为止。在成功监听和处理之后,这可能是消费者,或者它可能是经纪人(我认为有一个称为生存时间的JMS属性,可以在发布时设置,以便消息在此之后消失,如果不消耗)。