ActiveMQ / JMS - 如果无法发送消息,请勿重试

时间:2014-01-19 19:58:28

标签: java jms activemq

我正在使用JMS和ActiveMQ。我在一台服务器上运行ActiveMQ代理,它创建一个队列和一个消息使用者,用于接收来自其他服务器的消息。如果另一台服务器尝试向队列发送消息并且由于某种原因(例如服务器之间的网络出现故障)失败,那么我不希望该服务器重试发送消息。只需发送一次,如果失败则不重试。这可能与ActiveMQ / JMS一起使用吗? javax.jms.Session类有3种确认模式(AUTO_ACKNOWLEDGE,CLIENT_ACKNOWLEDGE,DUPS_OK_ACKNOWLEDGE),所有这些模式都表明JMS消息生产者将在失败时重试。

1 个答案:

答案 0 :(得分:1)

如果您的客户端未使用故障转移传输,则尝试发送时连接失败意味着客户端将不会尝试重新连接,因此在连接恢复后不会尝试重新发送消息。

如果使用故障转移传输且客户端遇到网络故障,则发送传输时将尝试重新连接,客户端将阻止发送,直到重新建立连接并且消息将再次发送给代理。