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

设置clientId时,多个主题的多个ActiveMQ侦听器无法在spring boot项目中连接

子车才捷
2023-03-14

我使用的是Spring-引导-启动-激活。

当我尝试使用多个侦听器,每个侦听器使用 clientId 侦听不同的主题时,只有一个侦听器能够随机连接到一个主题,剩余不连接说已经与给定的 clientId 连接。

以下是属性集

>

  • spring.activemq.broker-url =tcp://localhost:61616?jms.clientID=test
  • spring.jms.listener.acknowledge-mode=auto
  • spring.jms.listener.concurrency=1

    spring.jms.pub-子域=true

    ========================================================================

    错误信息

    无法刷新目标“TOPIC_1”的JMS连接-使用FixedBackoff{间隔=5000,当前尝试=5,最大尝试=无限}重试。原因:经纪人:pdt-主题-客户端:测试已从tcp://localhost:61616连接*

  • 共有1个答案

    苍宜修
    2023-03-14

    根据 JMS 规范,不能将多个客户机连接到具有相同客户机标识的代理。如果您只订阅主题而没有持久订阅,那么您不需要客户端 ID,但如果您确实需要持久,那么您的每个客户端都需要有一个唯一的 ID 才能正常工作。

     类似资料:
    • 服务器部件: 客户部分:io.js 消息组件 信息形式——发布过程的开始

    • 我是JComboBox的新手 我有4个JComboBox:专用、etudiant、annee和semestre。 每次更改所选项目并将结果添加到滚动窗格(groupe des matieres ouvertes)时,我都需要从其中的4个项目中获取所选项目

    • 我想知道如何在一个键事件中按下所有的键。例如,我想为Ctrl+F编写一个监听器,它可以切换全屏。如何检查在一个事件中是否同时按下了Ctrl和F?

    • 我有一个用例,我想在一个应用程序中创建多个监听器(6)。我想订阅多个目的地(6个主题)。所有订阅都是持久的。我为每个监听器使用单独的默认消息监听器容器(DMLC),并使用不同的客户端id,但我对如何使用连接工厂感到困惑。 我是否应该使用单个 ActiveMQ 池连接工厂,最大连接数指定为 6。或者我应该为每个侦听器使用不同的池连接工厂吗? 使用具有最大连接池连接工厂对于持久用户有什么危害吗? 源代

    • 我有Spring启动应用程序,它通过注释从组件类中侦听 IBM MQ 队列。MQ 属性(主机名、通道、端口等)是从 yaml 文件设置的。 MQ 依赖项在分级构建中添加,如下所示: 这可以正常工作,只要我使用Tomcat容器在本地运行应用程序即可侦听消息。但是,如果我将其打包为 EAR 并部署到 Wesbphere8.5 服务器,它将引发以下异常,并且侦听器未从队列中读取消息。我确认所有运行时依赖

    • 问题内容: 我正在使用EJB 3.1,并且想配置一个MDB来侦听多个队列。 我更喜欢通过XML定义队列名称,而其他通过注释定义。 能做到吗? 问题答案: 实例化后,MDB只能侦听在其目标ActivationConfigProperty中指定的资源,但是您 可以 为同一MDB创建具有不同目标的多个实例(在您的情况下为队列)。 在ejb-jar.xml中创建两个条目,它们具有不同的目的地和ejb-na