0

我有 ActiveMQ 代理(5.6.0)和 spring-JMS 生产者。我使用的是 JMS 队列,而不是主题。它工作得很好,但是当 JMS 生产者有很多消息要发送时,我有时会得到:

'org.springframework.jms.UncategorizedJmsException: Uncategorized
exception occured during JMS processing; nested exception is
javax.jms.JMSException:
org.apache.activemq.transport.RequestTimedOutIOException'

尽管所有消息实际上都被发送到代理。

4

2 回答 2

1

使用配置有普通连接工厂的 JMSTemplate 从 Java EE 容器中发送大量消息绝不是一个好主意。它会为每条消息启动大量网络连接、建立新会话等。

阅读ActiveMQ 中的JMSTemplate Gotchas了解一些背景知识并帮助解决问题。

只需配置 PooledConnectionFactory 和 CachingConnectionFactory 可能会解决您的问题。

也就是说,我不知道它是否会解决您的问题RequestTimedOutIOException,但这是一个很好的起点。

于 2013-06-02T10:38:20.020 回答
0

我有同样的错误。在我的情况下,我只需将 connectionFactory 的 sendTimeout 参数值从 2000 增加到 5000 或更高。

于 2015-02-13T14:27:02.063 回答