问题标签 [jmstemplate]
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.
spring - ACTIVEMQ - 订阅者在发布者之后启动时如何接收主题消息?
在我的程序中,我有两个模块:- 通过主题进行通信的发布者和订阅者。
我知道为了通过订阅者接收消息,它应该在发布者之前启动。但是可能存在订阅者由于某种原因宕机需要重新启动的情况。有什么办法,如果我在发布者之后启动订阅者,那么它也应该能够接收消息?
jms - 使用特殊字符时 JMS 编码的消息选择器不匹配
我有 2 个使用请求-回复模式的应用程序(客户端和服务器)。
客户端向服务器发送请求,消息 ID 设置为如下所示:ID=Hostname-52991-1357677886768-3:1:2:1:1
.
现在,客户端必须收听相关 ID 设置为相同值的消息。由于该值包含特殊字符 (:),因此我必须对该值进行编码(使用 UTF-8)。
设置 JMS 选择器,这是一个 SQL 92 谓词,用于过滤代理中的消息。您可能必须将特殊字符(例如 =)编码为 %3D
所以选择器应该看起来像我猜JMSCorrelationID='ID=Hostname-52991-1357677886768-3:1:2:1:1'
的编码选择器应该看起来像。JMSCorrelationID='ID%3AHostname-52991-1357677886768-3%3A1%3A2%3A1%3A1'
我现在已经挣扎了几个小时,搜索并阅读了我能找到的所有内容,但我无法让这个东西工作,它让我发疯。
abcd
仅使用类似作品的ASCII 字符。
spring - 在 Spring 注释配置中无法通过 JNDI 查找找到 JBoss ConnectionFactory
尽管 JBoss (AS 7.1.1.Final) 连接工厂的绑定似乎是成功的:
查找中的 ConnectionFactory 始终为空。任何人都可以看到问题是什么?
jms - Spring JMSTemplate - 丢失消息
我们正在使用 Spring JMSTemplate 3.0.1RELEASE 将 JMS 消息发送到 ActiveMQ 集群。
我正在使用 useAsynSend=true 来发送异步请求,因为这些都是 Fire and Forget。但是它们仍然是持久的,我可以确认它们确实首先在 AMQ Kaha-DB 上持久化,然后转发到消息侦听器。没有 CorelationID 或 JMSReplyTo,因为我没有回听任何响应。
在 ActiveMQProductBinding 类中,我们有以下方法
现在我可以在日志中看到正在打印日志。不抛出异常。仍然有些消息完全丢失了。它可能没有达到 ActiveMQ。我已将 Mule JMS 侦听器配置为侦听上面由“qName”定义的 ActiveMQ 队列上的消息。大多数消息都可以很好地传递到 AMQ,Mule 会在几分之一秒内接收到它们。然而,丢失的只是一些消息。当我检查 ActiveMQ 上的队列时,我可以看到收到的所有消息都已发送到 Mule。因此,我怀疑消息根本没有到达 ActiveMQ,或者 AMQ 正在拒绝。但是在 JMSTemplate spring 或 ActiveMQ 上没有日志。
创建的消息如下所示(在上面的方法中打印)。
我在 JMSTemplate 配置或 AMQ 上的某些行为中遗漏了什么?请帮忙!
有帮助吗?
spring - 如何在春季批处理中使用单个作业/ JMSwriter 在多个队列上发布
我是 Spring Batch 的新手,最近开始使用它。
我有一个要求,我需要使用单个作业在不同队列上发布/写入从每个数据库记录读取的消息。因为我必须使用阅读器从数据库读取消息并使用处理器来决定我必须发布哪个队列。
所以我的问题是我可以使用单个 JMSwriter 将消息发布到不同的队列上,因为我必须使用单个 Job 和 DB Reader。
提前致谢
java - TransactionSynchronization.afterCompletion 中的 IncompatibleClassChangeError
每次我使用 JmsTemplate 发送消息时,都会抛出异常。(我使用了 Spring 3.0.5.RELEASE)。我找不到不兼容的类!
我的班级路径中的弹簧罐:
错误日志:
jms - Camel jms 到外部 activeMQ 与请求-回复给出 javax.jms.InvalidDestinationException:无法发布到已删除的目的地:
我们有第三方应用程序对骆驼 cxfrs 端点进行安静的调用,然后将其路由到外部 activeMQ。有些应用程序使用这些 JMS 消息并提供 XML 响应。这一切都是使用camel InOut exchangePattern同步完成的。该架构非常简单明了。我们使用的是 activeMQ 5.5.0-fuse、camel-jms 2.8.x 和 activemq-pool 5.6。
使用此配置,我们会随机看到此异常:
当这种情况发生时,服务器会停止,我们的服务都不会响应,直到我们重新启动 activeMQ、tomcat 和所有其他服务。
骆驼配置:
骆驼路由器类://reroute from("cxfrs:/rr?resourceClasses=xyzroute.RerouteResource") .setExchangePattern(ExchangePattern.InOut) .process(new RerouteProcessor()) .to("activemq:queue:xyztmi.request") ;
下面是监听队列的应用程序的 spring 配置:xyztmi.request 使用 JMS 消息:
谷歌搜索后,我遇到了这些错误:
https://issues.apache.org/jira/browse/CAMEL-6229 https://issues.apache.org/jira/browse/AMQ-3457
基于这些,我们升级到了camel 2.10.4、activeMq 5.7和activemq-pool 5.7。即便如此,问题依然存在。
我真的被卡住了,不知道如何解决这个问题。有人可以指出可能出了什么问题吗?
谢谢。
activemq - ActiveMQ:消息侦听器未处理队列中的所有条目
我们有一个要求,我将在 n 台服务器上部署应用程序,比如 S1、S2 ......Sn。在其中一台服务器上定义了一个 activeMQ 队列,比如 S1。我已经配置了我的服务器生成消息并将它们放置在 S1 中配置的同一队列中。虽然所有服务器都配置为使用相同的队列来存储生成的消息,但我的要求是只有 n 个服务器中的一个处理来自队列的所有消息,再次假设为 S1。所以虽然所有服务器范围从 S1, S2,...Sn 可以在 S1 上配置的队列中生成和存储它们,只有 S1 应该处理所有这些。因此,我禁用了除 S1 之外的所有服务器的“MessageListener”部分。但出于某种原因,S1 并未处理所有内容。我感觉到队列正在以循环方式分发消息,尽管其他侦听器被禁用。在两台服务器访问队列的情况下,S1 会处理每条备用消息。任何解决此问题的帮助将不胜感激。
注意:如果可能有帮助,我正在使用 Spring JMS 模板并为 JMS 完成基于 Spring XML 的配置。
这是我的 XML 配置片段
上述配置存在于我的所有服务器中。我正在禁用“portfolioListener”bean,它在所有服务器中的“cscoConsumer”中的属性映射,除了根据上面的示例是 S1 的服务器。但仍然跳过消息循环赛时尚。
jms - ActiveMQ 故障转移传输 -
我在基于 Spring Web 的应用程序中使用了活动的 mq 故障转移配置。有 4 个生产活动 mq 框,我的消息生产者连接 URL 如下所示
故障转移:(tcp://hosta:61616,tcp://hostb:61616,tcp://hostc:61616,tcp://hostd:61616)
故障转移部分工作正常。当生产者尝试发送消息时,会在 4 个节点中的任何一个节点上建立连接,如果失败,它会转到另一个节点。
这里一切都很好。但是如果第二台主机发生故障,下一台主机不会被拾取,它会向客户端发送一个异常。
我只能看到一级故障转移。我们是否必须进行任何额外的配置以确保在向客户端抛出异常之前检查所有活动的 mq 主机。
任何帮助表示赞赏。谢谢。
java - JmsTemplate 中的异常处理发送
我想使用 jmstemplate(使用 activemq jms 代理)发送一条大字符串消息(3-5 MB)。在发送消息的过程中,我关闭了我的代理;为什么我不能在 catch(Exception e) 中捕获抛出的异常?我应该怎么做才能处理这个异常?
提前致谢。