WebSphere MQ 连接调整

2023-12-02

我有一个应用程序,它使用 MDB、激活规范和队列连接工厂从 WMQ 获取/放置消息。该应用程序预计最大负载为 80 tps。 Websphere Application Server 和 WMQ 都是集群式的,每个应用程序服务器都连接到单独的主机和通道。应用程序 onMessage 方法的实现方式使得会话和连接在消息被消费并发送响应后关闭。

根据我们的配置,我们的 WAS 版本为 8.5,IBM MQ 队列管理器版本为 7,每个节点的 Act 规范的最大服务器会话数设置为 40。每个节点的连接工厂中的最大连接数为 40,连接工厂的会话池中的最大会话数为 10。 现在,在峰值负载下,我们预计最多可创建 80 个 MQ 通道实例,但根据调查,我们可以看到它超过 200 个,这会在达到最大实例限制时导致出现问题。

发生这种情况是因为连接工厂会话池中的最大会话设置为 10 吗?

是否有可能即使我们在 onMessage 中关闭会话和连接,但一个连接仍然可以有多个会话。如果是这种情况,将此属性设置为 1 是否明智? 此外,WMQ 上设置的某些属性可能会导致 MQ 通道实例的增加。


您没有提及 WAS 或 MQ 的特定版本,并且特定版本可能存在会改变行为的已知问题,但一般来说它应该按如下所述工作。

IBM 有一个很好的技术说明“WebSphere Application Server V7 和 V8 以及 WebSphere MQ V7(及更高版本)之间的 TCP/IP 连接使用说明”其中详细介绍了这个主题。

你没有提到你有SVRCONN频道的SHARECNV设置为,如下所示,这将影响观察到的通道实例的数量,我将假设计算的默认值为 10。

请注意,下面的引用块来自技术说明


  • 我们已经设定了最大服务器会话数对于行为规范40对于每个节点

上面的链接指出:

最大会话数 = 最大服务器会话数 + 1

最大对话数 =40 + 1 = 41

该链接还指出:

TCP/IP 最大数量通道实例= 最大会话数 / 正在使用的通道的 SHARECNV

TCP/IP 最大数量通道实例 = 41 / 10 = 5(四舍五入到最近的连接)


  • 最大连接数在连接工厂中40对于每个节点
  • 会话池中的最大会话数连接工厂到10.

最大会话数 = 连接池最大连接数 + (连接池最大连接数 * 会话池最大连接数)

最大对话数 =40 + (40 * 10) = 440

TCP/IP 通道实例的最大数量 = 最大会话数 /SHARECNV对于正在使用的通道

TCP/IP 通道实例的最大数量 =440 / 10 = 44


如果您的 MQ SVRCONN 通道的SHARECNV被设置为10,那么基于连接到单独通道的每个节点,每个通道的通道实例不应超过 49 个。

如果您达到 200 个通道实例,我会怀疑您的SHARECNV小于 10。如果为 1,WAS 将尝试创建的通道实例的最大数量将达到481这将受到限制MAXINST的通道到200.


当应用程序完成 JMS 连接并将其关闭后,它就会从活动池移至空闲池,以供重用。连接池属性未使用超时定义 JMS 连接在断开连接之前将在空闲池中保留多长时间。该属性的默认值为 1800 秒,即 30 分钟。


从 WebSphere MQ 消息传递提供程序连接工厂创建的每个 JMS 连接都有一个关联的 JMS 会话池,其工作方式与连接池相同。可以从单个 JMS 连接创建的 JMS 会话的最大数量由连接工厂会话池属性最大连接数确定。该属性的默认值为 10。

首次创建 JMS 会话时开始对话,并且将保持活动状态,直到 JMS 会话关闭,因为它在空闲池中保留的时间超过了会话池的未使用超时属性的值。

当您的应用程序在 onMessage 中关闭会话和连接时,连接将移至空闲池以供重用,并且会话将移至空闲池以供重用,直到达到相应的超时后,MQ Channel 实例才会关闭。

如果您想将最大通道数保持在 200 以下,那么您可以调整您的会话池最大连接数)到 1,与您的激活规范和 SHARECNV(1) 相结合,最多可容纳 121 个通道实例。

您还可以增加通道的 SHARECNV 值,这将导致通道实例除以该数字。

您的连接或会话可能没有正确关闭,并且存在“泄漏”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebSphere MQ 连接调整 的相关文章

随机推荐

  • MySQL 和 PHP:带有西里尔字符的 UTF-8 [重复]

    这个问题在这里已经有答案了 我试图在 MySQL 表中插入西里尔字母值 但编码存在问题 Php
  • Angular-UI 路由器无法在 Ionic 应用程序中工作

    我正在开发一个使用 Ionic Framework 的应用程序 但在尝试使用 Angular ui 路由器时遇到问题 下面的第一段代码运行完美 然而 一旦我删除ng controller LoginController as login 并
  • 为什么 try {...} finally {...} 好;尝试{...}抓住{}不好?

    我见过有人说使用不带参数的 catch 是一种不好的形式 特别是如果该 catch 不执行任何操作 StreamReader reader new StreamReader myfile txt try int i 5 0 catch No
  • OpenCV 匹配模板得分不佳

    我正在尝试使用 OpenCV 进行一些图像匹配 并使用 cvMatchTemplate 函数 我拍摄了一张样本图像 然后将其一部分剪下来作为模板 然后尝试匹配它 当我这样做时 cvMatchTemplate 函数正确找到子图像并给它最好的分
  • 无法跨库项目使用 .aidl 文件吗?

    本着重用代码的精神 我正在尝试创建一些库项目 但是 我似乎在定义跨库的 aidl 文件时遇到了问题 问题是这样的 在库 A 中 我有 Foo java 和 Foo aidl Foo java 是 Parcelable 所以 aidl 声明是
  • 在 Windows XP 中安装 Xcode

    我想知道我是否可以在 Windows XP 上安装 Xcode 如果可能 还请提供文档链接 非常感谢您提前提供的帮助 这当然是可能的 有两条路线 在第二个分区 磁盘上安装 OSx86 又名 iATKOS Kalyway 并进行双引导 在 V
  • Python urllib2 进度挂钩

    我正在尝试使用 urllib2 http 客户端在 python 中创建下载进度条 我查看了 API 以及谷歌 似乎 urllib2 不允许您注册进度挂钩 然而 较旧的已弃用的 urllib 确实具有此功能 有谁知道如何使用 urllib2
  • Python 3,从 gzip 文件读取/写入压缩的 json 对象

    对于Python3 我遵循 Martijn Pieters 的代码有了这个 import gzip import json writing with gzip GzipFile jsonfilename w as fout for i in
  • 如何使用正则表达式在字符串中查找美国邮政编码?

    填写代码以检查传递的文本是否包含可能的美国邮政编码 格式如下 正好 5 位数字 有时 但并非总是 后跟带有 4 位数字的破折号 邮政编码前面至少需要一个空格 并且不能位于文本的开头 无法产生所需的输出 import re def check
  • CUDA cudaMalloc

    我已经开始编写一个新的 CUDA 应用程序 然而 我一路上遇到了一个有趣的弯路 对变量 x 调用第一个 cudaMalloc 第一次失败 但是 当我第二次调用它时 它返回 cudaSuccess 最近升级到CUDA 4 0 SDK 这是一个
  • 使用 Amazon-Lex 进行评分/意图置信度

    我尝试使用 amazon lex PostText 获取评分值或意图置信度值 但 json 文件中根本没有响应元素 https docs aws amazon com de de lex latest dg API runtime Post
  • IE 在使用 NTLM 身份验证时随机发送空 POST 正文(使用 Angular 到 Spring)

    我们发现 IE 11 中看似随机的调用缺少 POST 经过进一步检查 来自浏览器的请求包含 NTLM 协商令牌 我们有时也会在 GET 上看到此令牌 但它们不受主体问题的影响 因为它们没有主体问题 Chrome和FF没有这个问题 进一步的调
  • 选择包含 R 中每日最大值的行

    因此 我想对数据框进行子集化以选择具有每日最大值的行 Site Year Day Time Cover Size TempChange ST1 2011 97 0 0 Closed small 0 97 ST1 2011 97 0 5 Cl
  • TFS 2013 获取所有 TFS 组,包括 Windows 组

    我正在做这个TFS 2013 以获得所有TFS组的项目级别许可 但我无法获取 Windows 组 我使用以下代码列出组 var applicationGroups identityManagementService ListApplicat
  • jvisualvm:卡在“正在加载堆转储”屏幕上

    我使用以下命令使用 hprof 创建了一个堆转储文件 java agentlib hprof cp jars trove jar bin com mysite MyApp 这样就成功创建了大约 5MB 的文件 java hprof txt
  • 以声明方式描述自定义控件属性时缺少智能感知

    因此 我已经在这个项目上工作了几天 但一直无法解决为用户控件 ascx 请注意 的自定义内部属性获取智能感知支持的问题 我已经多次看到这个问题的解决方案 使用服务器控件 cs 请注意 在此写出article很好 使用 ascx 控件时 除了
  • 如何消除带括号的表达式中的子选择的歧义?

    我有以下表达式符号 expr OpenParen expr Comma expr Comma CloseParen parenExpr OpenParen simpleSelect CloseParen subSelectExpr 不幸的是
  • 无法使用 TestFlight 安装 xCode 4.3 beta 应用程序

    我刚刚升级到 xCode 4 3 并用它生成了一个 iPad 应用程序的新版本 大约 50 名 Beta 测试人员已经使用了几个月 我像往常一样通过 TestFlight 分发了测试版应用程序 大多数测试人员升级没有问题 但一些测试人员在尝
  • 如何附加和分离 Docker 的进程?

    I can attach to a docker process but Ctrl C doesn t work to detach from it exit basically halts the process 建议的工作流程是什么 让
  • WebSphere MQ 连接调整

    我有一个应用程序 它使用 MDB 激活规范和队列连接工厂从 WMQ 获取 放置消息 该应用程序预计最大负载为 80 tps Websphere Application Server 和 WMQ 都是集群式的 每个应用程序服务器都连接到单独的