调用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)

您可以在MessageProducerTextMessage上设置消息到期时间。无需同时设置两者。

09-11 20:20