Java消息服务的传递消息方式
JMS 有两种传递消息的方式。标记为 NON_PERSISTENT 的消息最多投递一次,而标记为 PERSISTENT 的消息将使用暂存后再转送的机理投递。如果一个 JMS 服务离线,那么持久性消息不会丢失,但是得等到这个服务恢复联机时才会被传递。所以默认的消息传递方式是非持久性的。即使使用非持久性消息可能降低内务和需要的存储器,并且这种传递方式只有当你不需要接收所有的消息时才使用。
虽然 JMS 规范并不需要 JMS 供应商实现消息的优先级路线,但是它需要递送加快的消息优先于普通级别的消息。JMS 定义了从 0 到 9 的优先级路线级别,0 是最低的优先级而 9 则是最高的。更特殊的是 0 到 4 是正常优先级的变化幅度,而 5 到 9 是加快的优先级的变化幅度。举例来说: topicPublisher.publish (message, DeliveryMode.PERSISTENT, 8, 10000); //Pub-Sub 或 queueSender.send(message, DeliveryMode.PERSISTENT, 8, 10000);//P2P 这个代码片断,有两种消息模型,映射递送方式是持久的,优先级为加快型,生存周期是10000 (以毫秒度量 )。如果生存周期设置为零,这则消息将永远不会过期。当消息需要时间限制否则将使其无效时,设置生存周期是有用的。