问题标签 [spring-jms]

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 回答
352 浏览

jms - 将代理队列消费者的网络配置为永远不会是本地主机,除非代理失败

我有一对使用 ActiveMQ 5.5.1 配置为代理网络的代理。每个代理都存在于通过 WAN 进行通信的服务器上。

服务器 A 上的代理 A

服务器 B 上的代理 B

在每台服务器上,我都有一个 Java 服务正在运行,它创建以下主题和队列:

java 服务(在每个服务器上)为myQueue创建一个生产者和一个消费者,并为myTopic创建一个生产者和消费者。我希望myTopic上的两个消费者都能接收所有主题消息,它确实如此。问题在于myQueue。我只想要配置的代理消费myQueue消息。例如,如果 BrokerA 在 ServerA 上生成服务消息,我只希望 ServerB 上的 BrokerB 使用该消息。现在,在我的测试中,我看到在 ServerA 上生成的消息中约有 50% 由 BrokerA 消耗,50% 由 BrokerB 消耗。此外,如果 BrokerB 离线,BrokerA 必须同时接受来自 ServerA 和 ServerB 的所有 myQueue 消息并使用所有myQueue消息,直到 BrokerB 重新在线。

我曾考虑过使用消息组,但我想不出一个好方法来检测何时发生故障以切换消息发送到哪个组。任何建议将不胜感激!

0 投票
1 回答
6234 浏览

spring - 如何在 AUTO_ACKNOWLEDGE JMS 会话场景中模拟消息重新传递?

在以下测试中,我试图模拟以下场景:

  1. 消息队列已启动。
  2. 启动设计为在消息处理期间失败的消费者。
  3. 产生一条消息。
  4. 消费者开始处理消息。
  5. 在处理过程中抛出异常以模拟消息处理失败。失败的消费者被停止。
  6. 另一个消费者开始以获取重新传递的消息的意图。

但是我的测试失败了,消息没有重新传递给新的消费者。我会很感激这方面的任何提示。

MessageProcessingFailureAndReprocessingTest.java

任务监听器.java

MockTaskProducer.java

0 投票
0 回答
175 浏览

spring - 使用 Spring 使用来自主题的消息?

我想知道使用 Spring订阅主题的正确方法是什么。

我尝试使用DefaultMessageListenerContainer, 使用非持久订阅,但大多数时候都失败了。有一个开放的错误 ( SPR-7833 ) 似乎指出它不适用于非持久主题订阅。

是否有任何替代 DMLC 支持在发生故障时自动重新连接的方法?

顺便说一句,我正在以编程方式创建 DMLC,使用故障转移传输连接到嵌入式 ActiveMQ 5.5.1 代理以进行自动重新连接。即使在最奇怪的情况下,使用队列中的消息也可以按预期工作,但主题却没有运气。

0 投票
1 回答
958 浏览

hibernate - JMS 事务 - 开销 - 如果可能,如何避免它?

在我们的应用程序中,我们接收来自 JMS 主题的消息。

  • 首先我想知道 JMS 是否遵循 FIFO 策略。如果不是,应用程序如何确定哪个是最新消息?

我们使用消息(持久订阅者和 JMS 会话进行事务处理,大量开销),因为消息保留在 JMS 服务器上,直到事务提交/结束。我们指定交易的原因是

  • 我们正在使用缓存(休眠)技术和使用它的事务。因此,我们使用了两个事务,一个是 JMS tx,一个是缓存技术 tx。当我们使用消息并且我们希望全部或不发生任何事情时,直到消息被提交并将确认发送到 JMS。缓存 tx 将首先提交,然后立即 JMS tx 将提交下一个并确认消息,否则,两个 tx 都将回滚并重播消息。我们目前正在重播​​消息 3 次,然后如果仍然发生异常,那么我们正在将消息发送到不可处理队列。

  • 这可以正常工作,直到大量消息同时到达 JMS 并且需要我们的系统同时处理。

  • 我想知道当你遇到这种情况时你是怎么做的。因为,维护持久订阅和事务处理会话是 JMS 服务器的重大开销,并且会消耗服务器的性能。

0 投票
2 回答
2176 浏览

spring - 持久订阅消费者不能同时消费超过 1 条消息吗?

Spring Message Listener Container 文档说:

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jms/listener/AbstractMessageListenerContainer.html#setDurableSubscriptionName%28java.lang.String%29

持久订阅名称在此客户端的 JMS 客户端 ID 中必须是唯一的。默认是指定消息侦听器的类名。注意:每个持久订阅只允许 1 个并发使用者(这是此消息侦听器容器的默认值)。

我想,我们可以同时处理并发消息。我错过了什么吗?

0 投票
1 回答
750 浏览

java - java 消息传递 - 如何创建一个 ad-hoc 网络

我有3个客户。我想创建一个应用程序,显示每个客户端何时在线以及何时不基于 JMS - java 消息传递和 tomcat 服务器。到目前为止,我成功地使用 JMS (queue1) 创建了发送和接收消息。

我不知道从哪里开始才能使我的应用程序活跃起来。

谢谢你。需要帮忙。欣赏!

0 投票
1 回答
3242 浏览

spring - 使用 Open MQ 时的 Spring JMS 会话问题

我正在使用 spring-jms-3.0.6.RELEASE 并打开 MQ。关于为什么会引发以下异常的任何想法?

网页.xml:

testlistener-context-api.xml:

testmsg-context-api.xml:

0 投票
1 回答
882 浏览

spring - 如何指示 JMSTemplate.receive() 应该使用 DurableSubscriber

我想在不使用 xml 配置的情况下执行此操作。我正在玩弄 Spring JMS,看看它是否满足我的需求。无论如何使用

使其等效于纯 JMS 调用:

不需要通过xml配置?

0 投票
1 回答
768 浏览

spring - 如何在框架内调用 Spring MVC 控制器?

在我的 Spring 项目中,我确实有一个由 spring 管理的 JMS 消息侦听器:

在一个特定的消息上,我需要调用一个 Spring MVC 控制器,它是请求范围的(实际上目标是调用一个服务,它也是请求范围的并被控制器调用)。因此,我不能直接从侦听器中执行此操作,因为 Spring 根据需要管理它们并且它们不受请求范围限制(因为我无法通过@Autowireor访问控制器ApplicationContext)。一种解决方案可能是通过我的控制器映射的带有 Rest Template 到 URL 的 HTTP 调用。但是,我认为这是一种开销,所以也许还有其他方法可以避免 HTTP 协议开销并在 Spring MVC 框架中调用 Controller?

0 投票
1 回答
228 浏览

spring - 通过环境变量动态加载 SpringBean

我正在尝试找出加载 spring bean 的最佳方法,具体取决于设置的系统环境变量。我意识到这将是使用配置文件的简单任务,但不幸的是我使用的是 Spring 2.5。所以这是我的 XML 文件中的 bean 定义:

基本上,我正在寻找一种仅根据系统环境变量的存在加载该 bean 的方法,否则,忽略它。我一直在研究 BeanPostProcessors 和 BeanFactoryPostProcessors 的使用,但不能完全确定解决方案。对此的任何帮助将不胜感激。谢谢!