IBM MQ:CWSMQ0082E:无法发送到 CompCode:2,原因:2017
IBM MQ: CWSMQ0082E: Failed to send to CompCode: 2, Reason: 2017
我正在尝试使用 IBM XMS for .NET 发送短信。发送大约 254 条消息后,出现以下错误:
An unhandled exception of type 'IBM.XMS.XMSException' occurred in IBM.XMS.Client.WMQ.dll
Additional information: CWSMQ0082E: Failed to send to CompCode: 2, Reason: 2017.
关于 google 的内容不多。我在 WSMQ Queue Limit
找到了一个相关的 post
post 表明最大队列存在某种限制。 post 中的链接似乎无效。我该如何克服这个错误?
MQ 有一个命令 mqrc
,其中 return 是任何原因代码或消息代码的文本。 2017意味着MQRC_HANDLE_NOT_AVAILABLE
。转到 Knowledge Center 并搜索 2017 年可以得到更好的解释。return 有几页 API 调用可以 return 2017 年,以及用于原因代码本身:
2017 (07E1) (RC2017): MQRC_HANDLE_NOT_AVAILABLE.
该页面提供了以下问题描述:
Explanation
An MQOPEN, MQPUT1 or MQSUB call was issued, but the
maximum number of open handles allowed for the current task has
already been reached. Be aware that when a distribution list is
specified on the MQOPEN or MQPUT1 call, each queue in the distribution
list uses one handle.
我们从文档中得知,并且可以从 MQ Explorer 的 QMgr 扩展属性面板中确认,默认情况下允许任何进程拥有的最大句柄数是 256。
基于所有这些以及您的程序在 254 条消息后死亡,结论是它正在为每条 PUT
消息抓取一个新句柄并且永远不会释放它们。
通常,当有一个循环应该包含 仅 PUT
和 COMMIT
但还包含 OPEN
时,通常会发生这种情况。我建议仔细检查您的代码,也可能将您的问题更新为 post 此处的代码。
我还建议研究 MQ .Net 示例程序或使用其中之一作为您自己代码的基础。
我正在尝试使用 IBM XMS for .NET 发送短信。发送大约 254 条消息后,出现以下错误:
An unhandled exception of type 'IBM.XMS.XMSException' occurred in IBM.XMS.Client.WMQ.dll
Additional information: CWSMQ0082E: Failed to send to CompCode: 2, Reason: 2017.
关于 google 的内容不多。我在 WSMQ Queue Limit
找到了一个相关的 postpost 表明最大队列存在某种限制。 post 中的链接似乎无效。我该如何克服这个错误?
MQ 有一个命令 mqrc
,其中 return 是任何原因代码或消息代码的文本。 2017意味着MQRC_HANDLE_NOT_AVAILABLE
。转到 Knowledge Center 并搜索 2017 年可以得到更好的解释。return 有几页 API 调用可以 return 2017 年,以及用于原因代码本身:
2017 (07E1) (RC2017): MQRC_HANDLE_NOT_AVAILABLE.
该页面提供了以下问题描述:
Explanation
An MQOPEN, MQPUT1 or MQSUB call was issued, but the maximum number of open handles allowed for the current task has already been reached. Be aware that when a distribution list is specified on the MQOPEN or MQPUT1 call, each queue in the distribution list uses one handle.
我们从文档中得知,并且可以从 MQ Explorer 的 QMgr 扩展属性面板中确认,默认情况下允许任何进程拥有的最大句柄数是 256。
基于所有这些以及您的程序在 254 条消息后死亡,结论是它正在为每条 PUT
消息抓取一个新句柄并且永远不会释放它们。
通常,当有一个循环应该包含 仅 PUT
和 COMMIT
但还包含 OPEN
时,通常会发生这种情况。我建议仔细检查您的代码,也可能将您的问题更新为 post 此处的代码。
我还建议研究 MQ .Net 示例程序或使用其中之一作为您自己代码的基础。