Sha*_*shi 16
我觉得"耐用"这个词更适用于主题而不是队列.持久订阅是订阅者的发布在订阅者未运行时由消息传递提供者存储的订阅.一旦订户变为活动状态,这些存储的消息将被传递给该订户.对于非持久性订阅者,如果他们不活跃,将不会收到任何出版物.
对于队列,消息被保存在队列中,直到有人收到它们或它们到期为止.消息可以是持久性的,这意味着它们将在消息传递提供程序关闭时重新启动消息传递提供程序和非持久性消息时丢失.
aca*_*pso 13
经过简短的调查,我得出了一些结论.所有观察都基于JBoss 7.1.1.Final与HornetQ Server 2.2.13.Final.
非持久队列不是临时队列.它一直存在,直到手动删除.
提交到非持久队列的所有消息在JMS提供程序重新启动/失败时消失(传递模式,即忽略提交的消息的PERSISTENT/NON_PERSISTENT).
不修改消息的JMSDeliveryMode头元素的值.特别是,如果使用PERSISTENT传递模式将消息提交到非持久队列,则该标志将设置为PERSISTENT,即使非持久队列不会保留该消息(如果JMS提供程序重新启动/失败,则会丢失该消息).
从客户端来看,这似乎是一个令人不安的前景,因为发送者可能无法知道消息的声明传递模式是否会被尊重,因为"非持久"队列存在问题.
此外,在这种情况下,术语"持久队列"似乎与"持久订阅"脱节,因为它似乎不会以任何方式影响向不活跃的消费者传递消息.
Ale*_*exR 10
JMS中的持久订阅意味着如果订阅者断开连接然后再次连接到JMS目标(队列或主题),它将接收到目前为止已发送到目标但尚未过期的所有消息.
归档时间: |
|
查看次数: |
14528 次 |
最近记录: |