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

Spring JMS/AQ。如何创建对多个使用者队列的持久订阅。Grails

伍昱
2023-03-14

我试图在Oracle中创建对多使用者队列的持久订阅。使用JMS Spring支持。这是一个Grails应用程序。

我的spring代码如下:

myQueueConnectionFactory(uk.my.MyQueueConnectionFactory) {
                dataSource = ref("dataSourceListener")
            }

            myMessageListener(uk.my.MyMessageListener)

            jms.'listener-container'( 'client-id':'clientid', 'connection-factory':'myQueueConnectionFactory', 'acknowledge':'auto', 'concurrency':'1', 'destination-type': 'topic' ) {
                jms.'listener'( destination:'my.queue', ref:'myMessageListener', subscription: 'subscription' )
            }

谁能给我指出正确的方向来创建一个持久订阅。我原以为我的“客户ID”和“订阅”值会为我做这件事。我需要在其他地方指定这些吗?

谢谢!

共有1个答案

隗翰海
2023-03-14

好吧,我找到了解决办法。将我的目标类型更新为“持久主题”起到了一定的作用。

 类似资料:
  • 我需要为ActiveMQ创建一个主题和一个持久订阅者,我的问题是我不知道在哪里指定它。我可以创建主题并使用消息,但是当我关闭订阅者然后继续发送消息并再次打开订阅者时,它不会读取它们。 这是我目前掌握的情况: 发送消息: 接收消息: 我已经阅读了这篇文章,我明白我需要创建持久订阅者。 我也读过spring文档 我认为它与(我没有实现,我使用的是默认配置)有关,文档显示: 但是我似乎找不到在哪里创建持

  • 我认为最初的作者认为这将创建一个持久的队列,但显然不是。我找不到这方面的好文档,想知道是否有人能证实/否认这一点。 提前谢了。

  • 这里是clustered-stability-subscription的示例,这里是clustered-static-discovery的示例,其中clustered-static-discovery只与一台服务器连接(使用集群配置,集群自动与另一台服务器连接)。根据文档 通常,持久订阅存在于单个节点上,并且在任何时候只能有一个订阅者,但是,使用ActiveMQ Artemis,可以在集群的不同节

  • 我们有一个ActiveMQ代理,它使用JMS、AMQP和MQTT从非常不同的客户端连接到。出于某种原因,我们还没有弄清楚一组特定的MQTT客户端经常(不总是)持久订阅。这是一个测试环境,客户端经常被添加和删除,后者有时通过拔掉插头或重新启动嵌入式设备,因此它们无法正确取消订阅。效果(IIUC)是代理为可能再也见不到的设备堆积“离线持久订阅”(我可以在超文本传输协议下看到这些),永远保留关于这些主题

  • 我正在尝试编写一个基本的 ActiveMQ 客户端来侦听一个主题。我正在使用Spring启动活动MQ。我有一个基于各种教程构建的实现,它使用默认Jms列表容器工厂,但是我在使其正常工作时遇到了一些问题。 一切都很好,直到我尝试获得一个持久的订阅。当我这样做时,我发现在容器工厂中设置了客户机id,我得到了一个关于如何在共享连接上设置客户机id的错误。 <code>原因:共享连接的代理不支持setCl

  • 因为正如我在Active MQ Artemis文档中看到的,持久值是一个布尔值,但在amqpnetlite库中它是一个uint,我的理解是,超过0的所有内容都应该是true,而0应该是false。 起初,这种行为非常奇怪:即使当Aretemis Web界面显示为持久队列时,一旦没有用户连接,它也会被删除。 我发现:ActiveMQ Artemis queue在关闭消费客户机后被删除,这描述了即使是