问题标签 [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.

0 投票
1 回答
1284 浏览

java - JMS 持久订阅。订阅者收不到消息

学习持久订阅。我调整了这里给出的例子。我写了两个程序。在一个中,我创建主题并使用 PERSISTENCE 模式发送消息。在其他程序中,我为同一主题创建持久订阅者并尝试接收。

我运行第一个程序。它成功完成。然后我运行第二个(消费者)程序。但是那里没有收到任何消息。receive() 消息仍然被阻止。

我错过了什么?

生产者计划的主要部分是

消费者计划的主要部分是

0 投票
1 回答
707 浏览

ibm-mq - Websphere MQ 中的孤立 SYSTEM.MANAGED.DURABLE.* 队列

我有一个队列'SYSTEM.MANAGED.DURABLE.ABCD***109'一直在接收消息,没有人使用它。我试图获得它的订阅,但得到了以下结果,

然后我尝试通过列出的订阅 ID 查看订阅,

我没有名为 "false" 的订阅。我无法清除或删除此队列,因为它已打开。我也无法查看打开的连接。

我需要清理并删除此队列以避免磁盘空间问题。

0 投票
1 回答
703 浏览

java - 持久订阅者如何与 JMS 一起工作?

所以我正在为一个主题创建并发消费者,即多个听众。我将它们配置为耐用。

我想知道的是,
让我们假设一个事件来了,它被发布给所有 5 个订阅者。其中一个处理它,因此在处理完成之前它不会立即确认,但剩下的 4 个会立即确认,因为它们处于空闲状态。

让我们假设第二个事件来了,现在

  1. 它是否发送给 4 个订阅者并将消息保留在第 5 个订阅者的队列中,并且只有在它给出确认后才将其发送给第 5 个订阅者?

    /li>
  2. 它不发送给任何消息订阅者,而是在队列中等待,直到第 5 个订阅者也确认,然后一次发送给所有订阅者?

我正在使用 setsessiontransacted true。现在会发生什么 1 或 2 ?此外,我假设代理为每个并发订阅者维护一个内部队列,以了解消息流向该持久订阅者的流向。

有人可以解释该流程如何用于并发消费者、持久订阅和 setsessiontransacted=true 的配置吗?

0 投票
1 回答
143 浏览

java - 持久监听器/消费者的用例场景

所以我正在为一个主题创建并发消费者,即多个听众。我将它们配置为耐用。

我在想持久消费者的用例场景是

我有一个发布消息的过程,并且消息被听众拾取。我在想如果有人停止了这个过程,我又重新启动它,我不会丢失消息和它们的处理,因为 f 持久消费者。

那正确吗?

我不会丢失消息,因为消息在 KahaDB 中,并且在进程重新启动后,它会将尚未完全处理的消息重新发送给侦听器,因为它们是持久的。这是正确的解释吗?

0 投票
1 回答
71 浏览

java - 什么时候 ActiveMQ 持久订阅是个坏主意?

我的理解是持久订阅,当与 ActiveMQ 一起使用时,允许消费者接收发布到主题的所有消息,比如是否有丢失的连接,然后恢复连接。

话虽如此,似乎持久订阅也会导致 ActiveMQ 代理的消息缓冲区填满,最终为代理产生开销。

在 ActiveMQ 中不使用持久订阅的其他常见最佳实践是什么?

0 投票
0 回答
104 浏览

spring - Spring 5 动态 JMS 持久订阅

我有一个关于创建动态 JMS 持久订阅的问题,更一般地说,关于如何处理 Spring 5 和 SpringBoot 中的动态情况。例如,为了进行持久订阅,需要以下内容:

现在,如果订阅需要在 REST 端点中完成,例如:

JmsTopicSubscriberInfo 类在哪里包含 clientID、订阅名称等作为属性?是否可以在 Spring 中表达这一点,或者在这种情况下应该使用原始 JMS 吗?

0 投票
1 回答
153 浏览

apache-camel - 在 ServiceMix 上实现持久订阅

我目前正在使用 ServiceMix 使用 QPID 库来路由消息。

我的工作配置如下:

上面的配置有效。

现在我需要实现持久订阅,这样如果 servicemix 宕机,它能够在它恢复时恢复所有消息(当 servicemix 宕机时发送的消息。)

根据文档,我实现了一条路线:

但是这个实现给出了错误:

我在这里错过了什么吗?主题名称不应该与队列名称相同吗?

0 投票
1 回答
139 浏览

activemq-artemis - JBoss AMQ / ActiveMQ Artemis:预配置持久订阅者

我有一个 Red Hat AMQ(基于 ActiveMQ Artemis)代理,我想利用持久订阅(或等效)功能,这样我将有多个 OpenWire JMS 订阅者订阅我们应用程序的事件,这些事件将是可靠地交付给他们。

我想预先配置订阅者,以便在初始应用程序启动时省去我的麻烦。我想避免在我们的持久订阅者执行初始订阅之前主应用程序开始运行和发布事件的初始应用程序启动的情况。

我还想避免明确排序我的流程的启动顺序。

有什么方法可以预先配置持久订阅者?在普通的 ActiveMQ(不是 Artemis)中,有像 Virtual Topics 这样的特性(有点)解决了这个问题。

ActiveMQ Artemis 的首选解决方案是什么?

0 投票
0 回答
62 浏览

websphere - 修复 IBM MQ 中的主题目标(使用 WebSphere Application Server 8.5.5)

我有一个在 WAS 8.5.5 中运行的应用程序,它使用带有 IBM MQ 的 pub sub 和持久订阅者。在客户端站点,我们看到在服务器启动时重新打开对该主题的订阅时出现间歇性问题。

当我在 MQ Explorer 中查看当前订阅时,我看到每种情况下的“目标”(我认为最终是一个队列)都是由 MQ 动态创建的,并且具有类似于 SYSTEM.MANAGED.DURABLE 的值。 DXXX1

我想修复这个值 - 并自己设置 - 即对主题消息使用单个队列。但是我看不到任何方法可以通过 WAS 做到这一点。似乎 MQ 将始终自行管理。

任何人都可以帮忙吗?

0 投票
1 回答
734 浏览

jms - Apache ActiveMQ Artemis 持久订阅 TTL

我想配置一个持久主题,但我想配置 Apache ActiveMQ Artemis 为该主题的非活动持久订阅者保留消息多长时间。

例如,诸如“为非活动的持久订阅者保存最长 30 秒的持久消息”之类的内容。如果订阅者在 30 秒内未激活,则当他们激活时,消息将不再可供他们使用。

这是可以做到的吗?如果没有,Artemis 或 JMS 是否提供了另一种方法来完成此操作或类似的操作。