问题标签 [durable-subscription]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
activemq - 如何处理重复的持久 Stomp 订阅者?
我有多个 Ruby 进程启动并尝试使用 Stomp 通过持久订阅者连接到主题。
第一个进程成功,并读取消息(耶)。
后续进程失败,并反复尝试重新连接。
我的进程如何发现持久订阅者已经连接,并退出尝试连接?
可能的虚构代码片段:
环境:
- 红宝石 1.9.3
- stompgem 1.3.2
代码:
java - JMS 对一个主题的多次持久订阅
我现在开始 JMS 一个星期了。我使用 Netbeans、maven 和 glassfish 创建了 JMS。
我有一个生产者和一个持久消费者,我想在同一主题中添加另一个持久消费者(而不是队列)。有可能这样做吗?因为我希望所有消费者都消费生产者发送的所有消息,无论消费者是否离线。
有什么建议吗?谢谢
}
error-handling - 关于 Spring 消息驱动通道适配器的查询
我正在使用 Spring 的消息驱动通道适配器。我的组件正在使用来自 Tibco 主题的消息并发布到 RabbitMQ 主题
所以消息流如下:Tibco->(订阅者)组件(发布到)-> RabbitMQ
服务激活器如下所示:正如我们所见,有一个输入通道和一个输出通道。bean storeAndForwardActivator 将具有业务逻辑(在方法 createIssueOfInterestOratorRecord 内)
我还有一个 message=driven-channel-adapter。此适配器将在调用服务适配器之前调用。
即特别是容器(如下所示)将保存要使用的主题名称 - 这是 DefaultMessageListenerContainer
这个设置工作得很好。但是在某些情况下,我的消费者/组件会收到“流氓”消息。即一个空的有效负载或 HashMap 的消息类型(而不是纯 TextMessage) - 当我们得到这个时 - 我观察到的是 - 在 DefaultMessageListener 级别捕获了一个异常(即我没有像我的业务 bean 一样,即 storeAndForwardActivator ),因此我的组件没有发回 ACK - 因为这是一个持久的主题 - 在主题上有一个消息的构建 - 这是不可取的。无论天气如何,我有没有办法立即确认消息,在 DefaultMessageListener 级别捕获异常?
还是应该在 DefaultMessageListener 中引入错误处理程序?处理这个问题的最佳方法是什么,有什么建议吗?
问候 D
更新:
我尝试将 errorHandler 添加到 org.springframework.jms.listener.DefaultMessageListenerContainer ,如下所示
myErrorHandler 是一个 bean,如下面的 shpwn
MyErroHandler 实现 ErrorHandler
}
我注意到异常被捕获(当订阅者使用流氓消息时)。我一直在循环中看到此日志
即由于事务未提交 - 来自持久主题的相同消息被一次又一次地消耗。我的目标是在使用消息后将 ACK 发送回代理(无论天气如何,都会捕获到异常)。
明天我将尝试错误通道。
问候 D
java - 在 ActiveMQ 中使用具有虚拟主题的持久订阅者,订阅恢复策略是否起任何作用?
我对如何正确使用 ActiveMQ 有点困惑。
我想要做什么
我有系统 A,它为虚拟主题生成消息。然后是系统 B 和 C,它们都使用来自同一个虚拟主题的消息。系统 B 或 C 可能会脱机。所以当他们重新上线时,我需要他们接收离线期间产生的所有消息。
到目前为止我尝试过的
我已阅读有关持久订阅者的信息(http://activemq.apache.org/how-do-durable-queues-and-topics-work.html和虚拟主题/队列和持久性)。这似乎符合我的问题描述,并且在做了一些实施之后,一切似乎都按照我最初想要的方式工作。
是什么造成了混乱
然后我阅读了订阅恢复政策 ( http://activemq.apache.org/subscription-recovery-policy.html )。这是我应该配置的东西还是我完全误解了一些东西?例如,如果我想存储指定数量的消息,我应该配置 aFixedCountSubscriptionRecoveryPolicy
还是应该查看 some pendingMessageLimitStrategy
?
java - 持久订阅 ActiveMQ
我正在尝试为我的消息设置持久订阅者,以便即使在服务器重新启动后它们也会在主题中持续存在。
但在配置过程中,我收到与 xml 相关的错误:
这是我的配置xml:
但是在message-driven-channel-adapter
以下属性中给出了错误:
它说:
在此行找到多个注释:
- cvc-complex-type.3.2.2:属性“subscription-durable”不允许出现在元素“int-jms:message-driven-channel-adapter”中。
- cvc-complex-type.3.2.2:属性“durable-subscription-name”不允许出现在元素“int-jms:message-driven-channel-adapter”中。
但在更多示例中,我可以看到以下属性工作正常。
subscription-durable="true"
durable-subscription-name="myDurableSubscription"
那么我的配置可能有什么问题。
编辑:POM.xml 中的 Spring 集成依赖项
编辑:
java - 使用 ActiveMQ 取消订阅持久订阅者
我正在尝试从 TOPICS 中取消订阅持久订阅者。
我的应用程序是一种社交网络:每个用户都是其他用户的主题。因此,每次用户在做某事时,都会通知他的朋友。当然,订阅者可能会取消订阅某个主题,不想再收到有关用户的通知。
每次我试图取消订阅某个主题的订阅者时,都会收到一条错误消息,告诉我:“ javax.jms.JMSException: Durable consumer is in use ”
这是我的 2 节课,SENDER 一节和 RECEIVER 一节。有人可以告诉我我做错了什么吗?
发件人类别:
接收器类:
javascript - 使用 ActiveMQ 的 js api,如何指定持久主题订阅?
我正在使用 ActiveMQ 的 amq.js 订阅客户端 js 中的主题。我通过这样的电话这样做:
...但我想指定此主题订阅是持久的。
我怎么做?我假设我会?propertyName=propertyValue
在主题名称的末尾添加一个查询字符串,但我找不到有关适当属性名称和值的文档。
(仅供参考,我使用的是 ActiveMQ 5.8.0)
activemq - Spring - ActiveMQ - 持久订阅 - 关闭连接并重新订阅以获取离线消息
我想在 Spring-JMS 中使用 activeMQ 实现一个解决方案,我想在其中创建对主题的持久订阅。目的是,如果订阅者关闭订阅一段时间并再次使用相同的客户端 ID 和订阅名称重新创建持久订阅,订阅者应该收到在订阅关闭期间传递的所有消息。
我想为持久订阅实现 ORACLE URL 中提到的以下逻辑:https ://docs.oracle.com/cd/E19798-01/821-1841/bncgd/index.html
但我无法使用 spring-jms 执行此操作。根据 URL,我需要获取 messageConsumer 实例并在该方法上调用 close() 以暂时停止从主题接收消息。但我不确定如何获得它。
以下是我的配置。请让我知道如何修改配置以执行此操作。
jboss - ActiveMQ - 客户端已连接相同的 clientId 错误
我们有一个连接到 ActivMQ apache-activemq-5.14.3 的 JBoss EAP 7.0.0.GA 设置。我们正在尝试使用以下配置设置持久订阅者:
但是,我们在 JBoss 服务器控制台中遇到以下异常
同时如果我们在 activmq 看到如下日志:
ActiveMQManagedConnectionFactory 设置如下(尝试将 max-pool-size 设置为 1,但没有效果):
请向 AMQ 专家寻求帮助。