C# 在关闭和断开IBM MQ.NET客户端时设置超时
是否可以为以下代码设置超时时间:C# 在关闭和断开IBM MQ.NET客户端时设置超时,c#,.net,ibm-mq,C#,.net,Ibm Mq,是否可以为以下代码设置超时时间: private MQQueueManager queueManager; private MQQueue queue; ... queue.Close(); queueManager.Disconnect(); 原因是有时连接在试图关闭时会被卡住。关闭()或断开()时线程被阻塞 更新 客户端使用托管客户端、CCDT文件、群集队列管理器和其他可能导致不同设置的功能 请提供代码示例 我们是否可以通过如下API使用类似的方法更改超时设置: int o
private MQQueueManager queueManager;
private MQQueue queue;
...
queue.Close();
queueManager.Disconnect();
原因是有时连接在试图关闭时会被卡住。关闭()或断开()时线程被阻塞
更新
客户端使用托管客户端、CCDT文件、群集队列管理器和其他可能导致不同设置的功能
请提供代码示例
我们是否可以通过如下API使用类似的方法更改超时设置:
int openOptions = Set possible settings here
var properties = new Hashtable
{
Set possible settings here
};
_queueManager = new MQQueueManager(_queueManagerName, properties);
_queue = _queueManager.AccessQueue(QUEUE_NAME, openOptions);
MQ客户端和MQ服务器决定连接超时的方式是基于正在运行的
SVRCONN
通道的协商心跳(HBINT
)值。协商的HBINT
始终是SVRCONN
和客户端应用程序之间协商的最高值
注意:SVRCONN
HBINT
的默认值为300
超时通过以下两种方式之一确定:
HBINT
小于60,则超时为2xHBINT
HBINT
大于或等于60,则超时为HBINT
+60特定于与
HBINT
相关的.NET客户端区域:
APAR IT26614纠正了以下三个问题:
HBINT
将使用SVRCONN
通道的值。实际上,如果不使用CCDT,客户端的HBINT
默认为300
,因此这是您将看到的最低HBINT
HBINT
不能低于SVRCONN
HBINT
连接将因2059而失败。该问题影响有无CCDT
- 使用CCDT时,您无法将
CLNTCONN
设置为小于HBINT
SVRCONN
HBINT
- 如果
SVRCONN
设置为HBINT
或更高,则没有CCDT,您将受到影响301
- 9.0.0.7
- 9.1.3
除非您使用的是包含上述APAR的
amqmdnet.dll
版本,或者您要求IBM为您提供任何较低版本的IFIX,实现低于300 HBINT的唯一方法是将SVRCONN
HBINT
与使用CCDT的客户端一起设置为较低值,并将CLNTCONN
HBINT
设置为较低值。基于非托管或托管.NET,您有两个选项:
CLNTCONN
HBINT
设置为1
,并允许客户端始终协商到SVRCONN
HBINT
值。然后需要MQ管理员将SVRCONN
HBINT
设置为所需的值SVRCONN
HBINT
设置为所需值,然后需要将CCDTCLNTCONN
HBINT
设置为与SVRCONN
HBINT
相同的值如果您使用的是包含上述APAR的
amqmdnet.dll
版本,或者您要求IBM为您提供适用于任何较低版本的IFIX,则以下是工作原理:
HBINT(1)
,并协商到SVRCONN
值CLNTCONN
可以将HBINT
设置为1
,这将在不使用CCDT时导致与上述相同的行为,HBINT
将协商到SVRCONN
值CLNTCONN
HBINT
设置为1
的CCDT,还是不使用客户端将使用HBINT(1)
的CCDT,您都需要请求MQ管理员将SVRCONN
HBINT
设置为较低的值,以缩短超时时间
在CCDT
CLNTCONN
通道上设置HBINT
的示例:
DEFINE CHL(CLIENT_CHL) CHLTYPE(CLNTCONN) CONNAME('1.2.3.4(9999)') QMNAME(ABC) HBINT(1)
一旦你将另一个超时问题的内容合并到这个问题中,我将提供一个包含上述详细信息的答案,并在适用的情况下参考KC页面。@JoshMc感谢您提供的信息。一旦问题解决,我将关闭另一个。请提供代码示例和web链接,以便我可以详细阅读,因为我对本主题不熟悉。请提供CCDT的CLNTCONN频道显示,如下所示:
DIS CHL(频道名称)HBINT
。我现在无法提供,直到下周一。这些信息是否会影响解决方案?如果没有这些信息,您能否提供答案?
DEFINE CHL(CLIENT_CHL) CHLTYPE(CLNTCONN) CONNAME('1.2.3.4(9999)') QMNAME(ABC) HBINT(1)