问题标签 [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.
spring - 处理activemq-spring连接错误
我已经配置(使用 spring)我的应用程序以使用 activemq 收听 jms que,并且一切正常。我的 activemq 服务器安装在另一台服务器上,有时它可能会脱机,我想处理连接错误。那可能吗?
这是我的弹簧配置
spring - 使用 Spring 启动和停止 JMS 侦听器
所以问题是如何临时停止和启动使用 spring 使用休闲方式创建的 jms 侦听器:
所以基本上是什么问题。我们确实有一个客户端可以随时运行的初始化/更新机制,并且在此初始化/更新期间,我想停止使用任何消息,因为此时系统无法使用,如果有消息出现,它将丢失。
那么我如何使用 API 停止侦听器或侦听器容器或整个连接。我发现一个类 AbstractJmsListeningContainer 有停止/启动但我怎么能得到它?我的意思是这些 jms: listener 和 listener-containers 都没有名字或类似的东西。
java - Java:如何从 Spring 的 DMLC 中取消订阅持久订阅者?
在普通的 JMS 中,我们可以这样做: session.unsubscribe("持久订阅的名称"); 但是我们如何通过 DMLC 做到这一点?在其中找不到任何用于此目的的特定方法。
jms - ActiveMQ / JMS 消息处理程序测试
这并不完全在 JMS 队列处理程序测试中。所以,继续阅读。
我们有一个架构,其中 spring 通道监听来自 ActiveMQ 的队列。此队列的侦听器将接收消息并具有子侦听器的静态列表(由唯一主题标识)。所有消息都将具有一些参数,包括该消息必须传递到的主题。
SMSService 将使用主题 SEND_SMS 将其消息发送到 activemq。它将被某些 HTTP 服务或 SMPP 服务监听。您甚至可以设计自己的侦听器并将其连接为具有所需“主题”的弹簧组件。
问题: 这个内部主题可能会改变的可能性更大。当没有侦听器时,这甚至不会引发显式运行时异常。有没有办法测试预期听众实际收到的这条消息?
`
apache-camel - 从 Camel 端点确认 JMS 消息的问题
我有一个简单的 Camel 应用程序,它正在跟踪 JMS 端点。我目前遇到一个问题,似乎没有确认接收到的 JMS 消息(它正在从队列中读取而没有放置任何消息,并且当前队列深度没有减少)。
关于可能导致此问题的任何想法?
追踪路线
Spring JMS 配置
Spring端点配置
编辑:
这是使用 TibcoEMS 作为代理。
我可以在日志中看到以下内容:
[2012 年 7 月 11 日 11:39:46] 调试 [] (AbstractPollingMessageListenerContainer.java:313) - 从消费者 [QueueReceiver[queue=f2b.prototype.tracer.queue] 收到类型为 [class com.tibco.tibjms.TibjmsObjectMessage] 的消息] 会话 [com.tibco.tibjms.TibjmsSession@16c143]
[2012 年 7 月 11 日 11:39:46] 调试 [] (EndpointMessageListener.java:72) - Endpoint[jmsTrace://queue:/user_dev/db/us/GTO/CIFramework/S001DEV/f2b.prototype.tracer.queue: queue] 消费者收到 JMS 消息: ObjectMessage={ Header={ JMSMessageID={ID:db_us_GTO_CIFramework_S001DEV.20D84FDA9F769B1A97:3} JMSDestination={Queue[f2b.prototype.tracer.queue]} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered= {false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={Wed Jul 11 10:53:48 CDT 2012} JMSExpiration={0} JMSPriority={4} } Properties={ } Object={com.db.cif .tracer.jpa.model.JpaTraceEventMessage@1dfe3f} }
[2012 年 7 月 11 日 11:39:46] 调试 [] (JmsTemplate.java:464) - 在 JMS 会话上执行回调:com.tibco.tibjms.TibjmsSession@16c143
[2012 年 7 月 11 日 11:39:46] 调试 [] (JmsConfiguration.java:266) - 将 JMS 消息发送到:Queue[f2b.prototype.tracer.queue] 消息:ObjectMessage={ Header={ JMSMessageID={null} JMSDestination={null} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered={false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={0} JMSExpiration={0} JMSPriority={4} } Properties={ }对象={com.db.cif.tracer.jpa.model.JpaTraceEventMessage@16119a} }
测试
[2012 年 7 月 11 日 11:39:52] 调试 [] (AbstractPollingMessageListenerContainer.java:313) - 从消费者 [QueueReceiver[queue=f2b.prototype.tracer.queue] 收到类型为 [class com.tibco.tibjms.TibjmsObjectMessage] 的消息] 会话 [com.tibco.tibjms.TibjmsSession@16c143]
[2012 年 7 月 11 日 11:39:52] 调试 [] (EndpointMessageListener.java:72) - Endpoint[jmsTrace://queue:/user_dev/db/us/GTO/CIFramework/S001DEV/f2b.prototype.tracer.queue: queue] 消费者收到 JMS 消息: ObjectMessage={ Header={ JMSMessageID={ID:db_us_GTO_CIFramework_S001DEV.20D84FDA9F769B1A97:4} JMSDestination={Queue[f2b.prototype.tracer.queue]} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered= {false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={Wed Jul 11 10:53:50 CDT 2012} JMSExpiration={0} JMSPriority={4} } Properties={ } Object={com.db.cif .tracer.jpa.model.JpaTraceEventMessage@1d81bc5} }
[2012 年 7 月 11 日 11:39:52] 调试 [] (JmsTemplate.java:464) - 在 JMS 会话上执行回调:com.tibco.tibjms.TibjmsSession@16c143
[2012 年 7 月 11 日 11:39:52] 调试 [] (JmsConfiguration.java:266) - 将 JMS 消息发送到:Queue[f2b.prototype.tracer.queue] 消息:ObjectMessage={ Header={ JMSMessageID={null} JMSDestination={null} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered={false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={0} JMSExpiration={0} JMSPriority={4} } Properties={ }对象={com.db.cif.tracer.jpa.model.JpaTraceEventMessage@3b09b4} }
spring - spring jms 侦听器将确认类型更改为非自动
好的,我正在使用 spring jms 侦听器,目前我正在使用默认确认类型 - auto,因此在导入/处理 ti 之前使用该消息。我如何将此类型更改为稍后使用此侦听器的类型,我可以手动确认何时处理此消息并将其删除
spring-ws - 将 Spring 集成 Web 服务网关与 JMS 一起使用
我需要使用spring-integration实现一个webservice客户端(然后是一个webservice服务器)。我已经使用过 spring-integration 团队提供的示例。该实现使用 HTTP 作为传输层。客户端正在发出 HTTP 请求,而服务器正在发回 HTTP 响应。我不想使用 HTTP,而是使用 JMS 作为传输层。在这种情况下,客户端将 SOAP 请求发送到队列(服务器正在侦听此队列),并且在发送时还会创建一个临时队列并将其设置在 JMS 消息头的 RepyTo 中。服务器从 Queue 进程中接收请求,然后使用 ReplyTo 队列发回 SOAP-Response。我知道我们可以使用 spring-ws 和 spring-jms 库来做到这一点。我想使用对ws和jms的spring-integration支持来做到这一点:
客户端发送请求:java 对象 -> Soap 消息 -> JMS 消息(payload 是 SOAP xml) 服务器接收请求:JMS 消息(payload 是 SOAP xml) -> Soap 消息 -> java 对象 服务器发回响应:java 对象 - > Soap 消息 -> JMS 消息(有效负载是 SOAP xml)
例如,我正在为我现在正在尝试的 web 服务客户端提供 xml 配置。你能检查一下我错过了什么吗?
在我使用的java代码中:messagingTemplate.convertSendAndReceive(MessageBuilder.withPayload(request).build())
发送请求。
但我收到此错误:
spring-ws - 将 spring-ws 实现转换为 spring-integration-ws 实现
我有一个使用 spring-ws 的 Web 服务(服务器端)实现。我想更改我的代码以使用 spring-integration-ws(ws:inbound-gateway 和 channels)。我已经尝试过示例,但仍然不确定是否可以转换我的实现。简而言之,我正在使用@Endpoint、@PayloadRoot、PayloadRootAnnotationMethodEndpointMapping 和 JMS(作为传输)。请在下面找到我的实现:
端点类(MyEndpoint.java):
spring xml文件(applicationContext.xml):
为简单起见,我删除了不必要的代码和 xml 配置。
无论如何要保持我的端点类(MyEndpoint.java)原样并使用spring-integration-ws支持(ws:inbound-gateway和channel)?
如果您需要更多信息,请告诉我。
谢谢
spring - 一段时间后activemq队列上没有新的消费者
一个月以来,我们在 activemq 和 spring 中反复出现问题。一段时间后(一天到一周之间),我们没有更多的消费者,也没有新的消费者开始,队列开始填满。
这个设置运行了一年多,没有任何问题,据我们所见,没有任何相关的改变。
我们使用的另一个队列也开始显示相同的行为,但频率较低。
来自activemq webconsole(你可以看到很多待处理的消息并且没有消费者)
我们的 bundle-context.xml 的内容
任何日志中都没有例外。有谁知道为什么一段时间后无法启动新消费者的原因。
谢谢
java - 收听 jms 主题时丢弃消息
我正在使用如下定义的 spring jms 侦听器。它通常工作正常但是我看到它根据recieveTimeout设置不断断开和重新连接。
我已经做了一些测试,当有很多消息发布到该主题时,它会丢弃一些,因为如果消息是在断开连接和重新连接之间的一小段时间内出现的,那么听众显然会错过它。
如果我将recieveTimeout 设置为0,这个问题就会消失。收听某个主题时,我应该始终将 recieveTimeout 设置为 0 吗?还是我以错误的方式处理整个过程。