调用MessageProducer.setTimeToLive()
与TextMessage.setJMSExpiration()
之间有区别吗?
我从文档中可以看到javax.jms.MessageProducer.setTimeToLive()表示
那个javax.jms.Message.setJMSExpiration()说
这些对我来说听起来是一样的。我应该继续将两者设置为相同的值吗?
最佳答案
有一个关键的区别,MessageProducer.setTimeToLive()
在该生产者发送的所有消息上设置相同的消息到期时间。另一方面,TextMessage.setJMSExpiration()
设置每个消息的消息到期时间。在每条消息上设置的过期时间将覆盖在MessageProducer
上设置的过期时间。
JMS还指定了一种在调用MessageProducer.send
方法时设置消息到期时间的方法。
void send(Message message, int deliveryMode,int priority, long timeToLive)
您可以在
MessageProducer
或TextMessage
上设置消息到期时间。无需同时设置两者。