通过上面的调试分析,了解到,尽管设置了某一条消息的deliveryMode,但是在底层最终发送消息时,还是会再次设置message的deliveryMode,若要指定某一条消息的deliveryMode,可以使用producer的send的另一个重载方法:
public void send(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.send(this.getDestination(), message, deliveryMode, priority, timeToLive); }
this.defaultDeliveryMode = Message.DEFAULT_DELIVERY_MODE; // 默认为2 this.defaultPriority = Message.DEFAULT_PRIORITY; // 默认为4 this.defaultTimeToLive = Message.DEFAULT_TIME_TO_LIVE; // 默认为0L