当前位置: 首页 > 知识库问答 >
问题:

ActiveMQ/jms-如果消息发送失败,请不要重试

周越泽
2023-03-14

我正在使用带有ActiveMQ的JMS。我在一台服务器上运行ActiveMQ代理,它创建一个队列和一个消息使用者,用于接收来自其他服务器的消息。如果另一个服务器试图向队列发送消息,但由于某种原因失败(比如服务器之间的网络中断),那么我不希望该服务器重试发送消息。只发送一次,如果失败,不要重试。这在ActiveMQ/JMS中可能吗?javax.JMS.session类有3种确认模式(auto_acknowled、client_acknowled、dups_ok_acknowled),所有这些模式都表明JMS消息生成器将在失败时重试。

共有1个答案

祁雪峰
2023-03-14

如果客户端没有使用故障转移传输,则尝试发送时连接失败意味着客户端不会尝试重新连接,从而在连接备份后不会尝试重新发送消息。

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

 类似资料:
  • 我想使用SpringBoot向ActiveMQ队列发送消息。应用程序应在发送后终止,但仍保持活动状态。 这是我的申请代码: 在没有任何父节点的情况下使用以下依赖项(Maven): 和一行

  • 如何延迟JMS消息发送或在不确定的时间内继续? 我使用的是Weblogic,正如您所知,在JMS发送之后,接收方将异步处理消息,但是,此时或有时外部资源还没有为接收方做好准备,因此,我想使用一些检查逻辑来延迟发送或处理消息。我猜例如:我将消息放入挂起队列,然后频繁检查资源可用性,一旦发送或继续消息? 大家都知道Weblogic是否支持这一点,或者如何实现它吗?

  • 问题内容: 有没有一种方法可以抑制ActiveMQ服务器上定义的队列上的重复消息? 我尝试手动定义JMSMessageID((message.setJMSMessageID(“ uniqueid”)),但是服务器忽略此修改并使用内置的JMSMessageID传递消息。 根据规范,我没有找到有关如何删除邮件重复数据的参考。 在HornetQ中,要解决此问题,我们需要在消息定义中声明HQ特定的属性or

  • 因此,我使用Spring integration链接JMS和ActiveMQ,如下所示:- 如何使其工作,以便发送到此队列并从中接收消息?请帮忙。

  • 我错过了什么? AMQ版本5.13.2 Java 1.8.0\u 74 Windows 10 给定一个简单的测试用例,传输两条Object消息,一条带有数据,另一条是数据结束标记。只有数据结束标记被接收。 队列在作业开始时创建,并在作业完成后销毁。 如果我运行更多的事务,我会看到大约50%的接收率。 日志清楚地显示接收器在第一条消息被放入队列之前就已启动,两条消息都被放入队列,但实际上只有第二条消

  • 我正在使用WerbLogic 10.3.5和Spring 3.0实现JMS队列。我有以下Spring配置: 我的消息创建代码如下所示: 我的听众是这样的: 消息被正确创建,侦听器的onMessage()方法被调用,但是如果逻辑失败,我抛出RuntimeException(),消息不会被重新传递。我尝试了上述代码的许多细微变化(例如设置SessionAcknowledgeMemodeName=SES