问题标签 [jms-topic]

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 投票
2 回答
1821 浏览

java - Weblogic jms分布式主题

使用 java 应用程序,我正在尝试在 jms 统一分布式主题上创建持久订阅。

jms 服务器在 weblogic 10.3.5 上运行,主题分布在 2 个服务器上。

如果我正在开发一个消息驱动的 bean,它就可以工作。我在两台服务器上都有一个具有相同订阅名称的持久订阅。

使用独立的 java 应用程序,我可以使用普通主题(非分布式)来完成这项工作。但无法管理它与分布式主题一起使用。

给我

在 weblogic 控制台中,第一个订阅是创建的testSubscriptionmyJmsModule!jmsserver1@myTopic而不是第二个。

我能做些什么 ?

0 投票
0 回答
101 浏览

jms - 为什么 ActiveMQ 管理 UI 上的主题订阅者不断变化?

我有一个具有多个订阅者的 JMS 非持久主题(使用 ActiveMQ)。

每个订阅者都是部署在单独的 Tomcat 实例上的 Web 应用程序。当消息到达时,我希望它传递给所有订阅者(有点像分布式缓存实现)。

我注意到并非总是将消息传递给所有订阅者。在查看 ActiveMQ 管理 UI 时,我看到主题订阅者列表(以及连接列表)不断变化。例如,我看到 17 个订阅者,我刷新 ActiveMQ 管理 UI,然后我看到 19 个订阅者,我再次刷新 - 我看到 18 个等等。

怎么了?我知道所有的雄猫一直都在。我对 JMS 主题的理解是,如果应用程序启动,则应该始终传递消息。我误解了什么吗?我认为该订户“闪烁”没有合乎逻辑的原因。

PS我宁愿不尝试持久主题 - 如果应用程序未启动,我不需要传递消息。

0 投票
1 回答
698 浏览

jms - JMS 主题订阅 Tomee 1.7.1

我正在试验消息驱动 Bean,以便从外部 ActiveMQ 实例接收主题订阅消息。

我的测试首先从 Queue 订阅开始,效果很好。

然后我想尝试主题订阅,但我无法让它工作。

这就是我所拥有的:

conf/tomee.xml

这是 MDB:

我不知道为什么,但从日志中我可以看到 TomEE 创建了一个队列而不是一个主题:

另一个证明是当我添加持续时间配置时服务器不会启动:

然后服务器抱怨这不适合配置的类型 javax.jms.Queue。

我还尝试用一个愚蠢的简单邮件方法制作一个 TopicConsumer,它运行良好。此外,当我从整个配置文件中删除队列配置(MyQueue)时,这并没有什么不同。

有人知道我在做什么错吗?

0 投票
1 回答
824 浏览

spring - 一个 JMS 消费者停止监听活动的 mq 主题,而第二个没有

在我的项目中,弹簧石英工艺每 15 分钟运行一次,即每天运行 96 次。这会从数据库中获取某些记录并将其发布到 REST 服务(在 JBoss 7 上运行)。这些记录一般有 50 到 100 条。

在 REST 服务上,有 jms 事件发布者在主题上发布此消息。这个话题有两个消费者。

  1. 该处理消息并在移动设备上发送推送通知消息
  2. 与第三方通话(通常需要 4 到 5 秒才能完成通话)

由于它是主题,因此两个消费者都会接收所有消息,但它们会根据某些属性将它们过滤掉,因此很少有消息由一个消费者处理,而由另一个消费者休息。

我的问题是;这是最近一周以来观察到的;消费者 #1 多次收到来自 APNS 的响应作为无效令牌;令牌用于向手机发送推送通知;一段时间后,该消费者停止并且根本不响应,而第二个消费者继续运行。

下面是配置:

我搜索了另一个发布的问题,但找不到任何相关内容。 你的想法会很有帮助。

0 投票
1 回答
804 浏览

java - 异步读取消息时检查 JMS 类型

我的 JMS 中有一个队列。在向队列发送消息时,我将 JMStype 称为“XYZ”。在消费者端,我有一个 onMessage 监听器。我想知道的是以下

  1. 在 onMessage 侦听器中,如何在不使消息出队的情况下检查消息的 JMStype。如果我正在运行的实例发现 JMStype 不是“XYZ”,那么它不应该做任何事情并且不应该将它从我的队列中出列。只有需要 JMStype 'XYZ' 消息的实例才应将消息出列并进一步处理它。

感谢您抽出宝贵时间阅读我的查询。

0 投票
1 回答
69 浏览

spring - 使用 Spring 将在 Topic 上发送的 JMS 消息保存到 Gemfire

问题在于我在 Topic 上接收 JMS 消息,并且我需要将消息结构保存到 GemFire(经典)区域 MessageStructInfo 中。

消息的结构中包含数据,例如 < messagenotification > < fieldidentifierEndDate="2014-12-24" fieldidentifierStartDate="2014-12-07" fileName="filenotification.xml" directory="../filehostdirectory" /> </messagenotification >

我需要从消息中提取字段数据并保存到 GemFire 区域。
MessageStructInfo fieldidentifierStartDate,
fieldidentifierEndDate, fileName, directory, Status - Additional (Received, Processed, Completed)

我需要这个帮助。

谢谢瑞诗

0 投票
1 回答
222 浏览

java - 多个 servlet 请求无法调用 JMS 对象的方法

我有一个附加到请求对象的 JMS 对象,并且在 doPost() 方法中,正在调用对象的 get 方法来获取当前主题数据,这些数据将连续发送给客户端作为响应。

同时在另一个用户请求中,我在 doPost() 方法中看不到被调用的 get 消息,或者更确切地说,正在从调用中接收空/空字符串。

如何使该方法响应并发请求/用户。

关于调试:在 eclipse 中调试时,我有时会看到两个线程交替接收 getMessage 数据。

同时调用topicObject.getMessage()的正确方法是什么

0 投票
0 回答
174 浏览

jms - 持久主题订阅和 dead.letter.address 和消息重新传递

我有 jms 主题,它有一个或多个持久订阅。当一个订户导致回滚和另一个成功时,我遇到了这种情况。消息到达死信地址。

在我解决错误并且消息应该能够继续之后,我想将消息移回原始目的地(主题)。问题是,在我这样做之后,所有订阅者都会收到消息,而不仅仅是一个失败的消息。

有没有可能以某种方式解决它?

仅供参考。我使用带有 HornetQ 的 JBoss eap 6.1 作为 jms 提供程序。

0 投票
2 回答
1480 浏览

asynchronous - 在 tibco ems 中实现异步发布订阅主题

我的情况是,我作为电影发行商,需要向我的客户更新新电影,我发布有关具有持久订阅者的主题的信息,并且想要购买电影的客户会表达他们的兴趣。

但是,这就是事情的发展方向,我的发布者实现在收到第一个回复后立即停止侦听。任何帮助将不胜感激。谢谢你。

request(Message message) 发送请求并等待回复。临时主题用于 JMSReplyTo 目的地;返回第一个回复,并丢弃任何后续回复。

https://docs.oracle.com/javaee/6/api/javax/jms/TopicRequestor.html

0 投票
1 回答
187 浏览

java - JMS 主题订阅者重新连接

我将 Glassfish 3.1.2.2 与 OpemMQ 4.5.2(远程模式)一起使用。在我的应用程序中,有一个 JMS 主题的订阅者,它使用MessageListener.

当 broker 停止并在一段时间后启动时,订阅者不会收到重新启动后发布到 JMS 主题的消息。

恢复主题订阅者的最佳方法是什么?

我试过ExceptionListener了,但显然在 Glassfish 上运行我的应用程序时不支持它。