首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JmsListener的Spring JMS消息传递--它是如何扩展的?

使用JmsListener的Spring JMS消息传递--它是如何扩展的?
EN

Stack Overflow用户
提问于 2018-07-04 00:56:09
回答 1查看 435关注 0票数 2

我正在尝试以一种可伸缩的方式将Spring JMS消息传递与@JmsListener结合使用,但我并没有看到它的实现。我有一个JMS,它返回一个工厂,该工厂通过ConnectionFactory和一个数据库DataSource池连接到Oracle Advanced队列。

当每个@JmsListener接收器再次连接到JMS (从而连接到数据库池)时,问题就开始了。我的理解是,我可以有许多@JmsListener方法,每个服务一个,但在这种方式下,我非常有限。

共享连接是打开的,但是因为每个@JmsListener创建不同的DefaultMessageListenerContainer,所以每个都有一个数据库连接。

如果我还想让服务并发处理消息并设置container.setConcurrency("3-5"),那么它会打开3 * numberOfListeners连接。

如果我使用container.setCacheLevel(DefaultMessageListenerContainer.CACHE_NONE),那么从每秒开始,每个侦听器容器都会与JMS/数据库连接和断开。

我想要连接一次(或者多次,如果有并发作业要处理)到JMS/数据库的东西,而不是连接侦听器次数,也不是每个侦听器每秒都连接-断开连接。

EN

回答 1

Stack Overflow用户

发布于 2018-07-04 01:18:21

您可以使用SingleConnectionFactory包装供应商工厂,所有容器都将使用相同的连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51159635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档