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

从ActiveMQ Artemis接收带有artemis-jms-client抛出InvalidDestinationException

岳均
2023-03-14

我的代码里有这个

consumer = session.createConsumer(session.createQueue("myQueue"));
javax.jms.InvalidDestinationException: AMQ119019: Queue already exists test_simple_transaction_receiver
        at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:406)
        at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:304)
        at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.createQueue(ActiveMQSessionContext.java:546)
        at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.internalCreateQueue(ClientSessionImpl.java:1622)
        at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.createQueue(ClientSessionImpl.java:249)
        at org.apache.activemq.artemis.jms.client.ActiveMQSession.createConsumer(ActiveMQSession.java:628)
        at org.apache.activemq.artemis.jms.client.ActiveMQSession.createConsumer(ActiveMQSession.java:331)
        at consumeMessage(ReceiverClient.java:143)

共有1个答案

楚博雅
2023-03-14

Artemis 2.0.0有一个新的寻址模型。如果需要向后兼容性,则必须以旧客户端连接的方式配置接受器。

所以,我建议只是更新你的客户。

 类似资料:
  • 我正在开发一个使用JMS作为消息传递层的应用程序。我还使用glassfish来托管jms/mq后端。该应用程序能够使用我最初设置的glassfish 3.1服务器中的连接工厂和主题进行发布/订阅消息传递。我现在有了glassfish (4.1)的另一个实例,它托管了一组新的应用程序使用的新功能,但是我仍然需要使用第一个glassfish服务器广播的消息。事实上,客户端使用特定于glassfish

  • 否定确认的行为是将接收消息的可见性超时更改为0。其中,在为JMS创建SQS工厂时,NACK_TIMEOUT的值是不可配置的。 https://github.com/awslabs/amazon-sqs-java-messaging-lib/blob/master/src/main/java/com/amazon/sqs/javamessaging/acknowledge/NegativeAckno

  • 我目前正在将Spring Boot2.x应用程序从ActiveMQ5.x迁移到Artemis,但是在Artemis和时遇到了一个问题。 对于ActiveMQ5,我使用主题查看当前是否连接了具有特定clientId的客户端。连接到这个主题时,我首先收到所有当前连接的客户端,然后,如果客户端脱机或联机,我会收到和的通知。 不幸的是,Artemis不支持这种行为。侦听只提供有关在侦听主题时创建或关闭会话

  • 我已经尝试只使用一个节点,它正在工作。现在我必须修改代码中的,以便它能够与集群连接。 在ActiveMQ Artemis文档中,我发现了如下内容: JavaDoc表示:

  • 我正在尝试连接到EAP 7.1上的ActiveMq Artemis,它具有传统配置(远程:4447)。我可以使用JMSToolBox通过端口5445连接,但是当我想从我的Spring Boot应用程序使用remote://xxx:4447访问服务器时,我得到了这个警告 对于目标“java:/队列/参与方”,JMS 消息侦听器调用程序的安装失败 - 尝试恢复。原因:无法将org.apache.act

  • 我有一个单节点ActiveMQ实例,其中两个相互竞争的使用者连接到一个主题。主题订阅是根据JMS 2.0规范共享的。共享订阅确实保证只有其中一个订阅服务器(使用相同的订阅名称)获取消息。但我注意到的是,它不能保证只有在第一条消息得到确认的情况下才能传递第二条消息。如果第一个消费者需要时间来确认消息,则第二条消息甚至在消费者向代理发送第一条消息的确认之前就被传递给免费消费者。这是标准行为吗?有没有办