问题标签 [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.
jakarta-ee - AWS Elastic Beansalk 可以用于分布式消息处理吗?
我打算使用一个简单的 java web 应用程序来引导和加载我的 Spring JMS 客户端,它将侦听队列上的消息并处理传入的消息。我的 Web 应用程序仅用于加载 JMS 客户端;将没有用户访问此应用程序。
如果我要在 AWS Beanstalk 上部署此应用程序,假设作业队列已加载消息并且 Web 应用程序中的 jms 作业侦听器正在使用所有可用资源 - 内存,它会自动扩展吗?线程等?即使负载均衡器上没有流量,AWS 是否会启动应用程序的新实例。
spring - Spring-JMS(Websphere MQ)
我在 Spring 中有以下配置,它工作正常但性能太低(20 条消息需要 1 分钟)。您能否建议我进行更改以提高性能。
我从春天打电话给
我的发件人程序是:
java - 当客户端停止工作时,JMS 有 javax.jms.InvalidDestinationException
我使用 JMS 将请求从客户端发送到服务器。
我的客户端向服务器发送请求。当服务器处理我的请求时,我的客户端在服务器完成之前停止(网络问题)。
当服务器完成后,它会返回给客户端,但服务器看不到向服务器发送请求的客户端,此时服务器将在日志文件中返回异常。
例外是:
我的问题是:在这种情况下我需要做什么?我可以捕获或禁用此异常吗?我该怎么做?
(对不起,如果我的英语不好。)
java - 试图测试队列持久性。消费者断点时无法发送消息
我正在尝试测试 ActiveMQ 的队列持久性。
我有一个具有独特消费者的嵌入式 ActiveMQ 服务器。此嵌入式服务器从许多其他 JVM 应用程序接收 JMS 消息。
它工作正常,消费者应用程序接收通知。
所以我试图测试消息的持久性。我在消费者的 MessageListener 上放置了一个(远程)断点,以便我可以将许多消息排入队列并使 ActiveMQ 服务器崩溃。在服务器重新启动时,我希望所有排队的消息都能够被使用,而不是丢失。
然后我尝试了那个测试。我在第一条消息发送时进入了那个断点。但是对于我尝试发送的所有消息,我在生产者端得到以下堆栈跟踪:
我不明白为什么当我的消费者处于断点时我的生产者会被阻止。
我的经纪人 uri 是:mobilepush.activemq.broker.transport.connector.uri=tcp://0.0.0.0:61616
生产者通过 tcp 连接到代理。与代理共处一地的消费者通过vm://localhost
.
我的配置很简单:
distributed-transactions - 可以使用 JMS 进行跨机器事务吗?
案例:开始:创建交易
- 将数据插入数据库(机器 A)
- 将同步 JMS 消息发送到队列(机器 A)
- 从队列接收 JMS 消息(机器 B)
- 将数据插入数据库并返回(机器 B)
- (机器A)中的进一步处理
结束:提交事务
机器 A 和 B 中的进程能否处理一个事务。因此,如果进程 B 回滚,则进程 A 回滚,反之亦然?
有什么例子吗?需要任何额外的服务器/组件吗?
java - 在 RESTFull Web 服务中使用 JMS
我正在用Java+Spring开发Rest Full服务,可供移动应用程序(iPhone+Android)和 Web 应用程序使用。
选择JMS(Java Messasing 服务)来向移动应用程序和 Web 应用程序发送异步和可靠的电子邮件消息是更好的选择,还是除了 JMS 之外还有更好的选择来进行异步消息传递。请帮忙。
编辑 :
我希望我的 RESTFull Web 服务发送电子邮件消息,这些消息不仅提供电子邮件消息传递的保证,而且还使用异步消息传递模式,这样服务器就不会等待接收者接收消息。另外请建议如果我在服务器端使用 JMS 来发布/生成队列中的消息,移动应用程序将如何从 JMS 队列接收消息?iPhone/Android/PHP Web 应用程序是否可以接收 JAVA 服务器发布的消息。
谢谢,
阿伦·库马尔
java - DefaultMessageListenerContainer,关于要监听的队列的知识
在 onMessage 方法中是否有可能知道 MessageListener 正在侦听哪个队列?
我的 Spring-config(它的一部分):
我的听众班:
有没有开箱即用的解决方案?或者任何自定义解决方案来获取队列/目标名称?
在后续的批处理中确实需要队列...
spring - Active MQ 停止在大量消息上分派消息
我有一个基于 Spring JMS 和 Active MQ (5.6) 的系统构建,它有大约 12 个 Spring 默认消息侦听器容器(每个最多 20 个并发实例),它们都连接到同一个活动 mq 目标(队列)。
系统通过每个处理程序(容器)从发送给自己的队列中获取消息,使用选择器,完成其工作,然后将消息放回队列中,直到所有工作完成。
我正在做一个基准测试,发送 25,000 条消息,每条消息都需要通过 9 个不同的处理程序。
每次我运行测试时,只有大约 11300 条消息通过我的所有处理程序,但活动 MQ 不再发送任何消息。
在我当前的测试结束时,我可以看到我的队列的以下统计信息: Enqueue Count: 120359 Dequeue Count: 106693 Dispatch Count: 106693 Inflight Count: 0 Queue Size: 13666
除非我重新启动代理,否则 Active MQ 不会再分派消息。
下面是我的 active-mq 配置:
这是我的处理程序的弹簧配置示例:
ActiveMQ 的日志文件没有显示任何异常,这表明它停止调度的原因。
有谁知道为什么不会发送更多消息或有任何建议来进一步诊断问题?
spring - 如何使用 Spring JmsTemplate 延迟 JMS 消息到达队列
我不想用接收器超时来阻止消息使用者,因为据我了解,这“绑定”了队列服务器池中的一个线程(并且我们配置了多个队列)。那么如何在没有自定义线程的情况下延迟发送消息(工作由 EJB 2 会话 bean 执行)?如果有帮助,JBoss Messaging 1.x 就是提供者。
java - Lingo JMS Producer 无法自动重新连接到 WLS JMS
我使用 WLS 10.3.4.0 作为我的 JMS 提供程序。我的应用程序使用 Lingo 和 Spring Remoting 配置了生产者和消费者。我的 Producer 是org.logicblaze.lingo.jms.JmsProxyFactoryBean
,而我的 Consumer 是org.logicblaze.lingo.jms.JmsServiceExporterMessageListener
。我在 WLS 上为生产者和消费者启用了自动重新连接。奇怪的是,我所有的消费者都自动重新连接,但我的生产者似乎没有。
我尝试使用重置连接javax.jms.ExceptionListener
的方法配置一个。onException
但是,一旦 WLS JMS 再次可用并且生产者未重新连接,则永远不会触发异常侦听器。LostServerException
但是当我尝试使用生产者发送消息时,我确实看到了多个s。这让我相信 WLS 根本没有通知连接工厂,关于重新连接。我尝试过使用javax.jms.ConnectionFactory
带有 noExceptionListener
和org.springframework.jms.connection.CachingConnectionFactory
with 的普通旧版本ExceptionListener
。
以下是相关代码:
CachingConnectionFactory
配置
在我的 tomcat 容器内的多个 Web 应用程序中使用的通用 JNDI 查找
我的生产者和消费者配置:
callProducer
我的部分业务逻辑通过反射调用 myService异步方法。
在我的应用程序保持活动状态的同时重新启动 WLS JMS 后,我看到一系列消息说"DefaultMessageListenerContainer - Successfully refreshed JMS Connection"
. 然后,当我尝试通过生产者发送消息时,我在我的 tomcat 日志中发现了一系列 WLS jms 异常。
有什么想法吗?这个问题已经挑战了我一整天。
PS - 相关代码将有助于那些尝试将 WLS JMS 与 Spring 应用程序客户端一起使用的人。除了生产者的自动重新连接外,我已经完成了端到端的工作。