[UNIX、Linux、Windows、IBM i]

TCP 客户端配置文件的段落

使用 TCP 配置段来指定 TCP 网络协议的配置参数。

注: 此节的每个属性的描述指示哪些 IBM® MQ 客户机可以读取该属性。 有关所有 IBM MQ MQI client 配置文件段落的汇总表,请参阅 《各客户端可读取的 IBM MQ 属性》

TCP 段落中可以包含以下属性:

ClntRcvBuffSize = 编号|0
客户端-服务器连接通道中,客户端端使用的 TCP/IP 接收缓冲区的字节大小。

此属性可由C、非托管 .NETIBM MQ classes for JavaIBM MQ classes for JMSIBM MQ classes for Jakarta Messaging、托管 .NET 和托管 XMS .NET 客户端读取。

如果没有设置值,则使用 IBM MQ 默认值32768。

如果该值设置为零,那么将使用操作系统缺省值。 值为零表示操作系统将管理缓冲区大小,而不是由 IBM MQ固定缓冲区大小。

[ MQ 9.4.0.10 Feb 2025][ MQ 9.4.2 Feb 2025]IBM MQ 9.4.2Continuous Delivery ,从 IBM MQ 9.4.0 Fix Pack 10Long Term Support ,如果 IBM MQ Java 客户端将该值设为零, Java Message Queuing Interface (JMQI) 就会使用网络层提供的缓冲区大小。 此修复解决了先前的一个问题:当将该属性设置为零时,JMQI在与队列管理器通信时,会错误地使用大小为 32K 的 TCP/IP 接收缓冲区。 接收缓冲区大小会被写入, IBM MQ classes for JMS, 或 IBM MQ classes for Jakarta Messaging 日志文件中的 JMSCS0062 消息中 IBM MQ classes for Java

ClntSndBuffSize = 编号|0
客户端-连接服务器-连接通道中,客户端端使用的 TCP/IP 发送缓冲区的字节大小。

此属性可由C、非托管 .NETIBM MQ classes for JavaIBM MQ classes for JMSIBM MQ classes for Jakarta Messaging、托管 .NET 和托管 XMS .NET 客户端读取。

如果没有设置值,则使用 IBM MQ 默认值32768。

如果该值设置为零,那么将使用操作系统缺省值。 值为零表示操作系统将管理缓冲区大小,而不是由 IBM MQ固定缓冲区大小。

[ MQ 9.4.0.10 Feb 2025][ MQ 9.4.2 Feb 2025]IBM MQ 9.4.2Continuous Delivery ,从 IBM MQ 9.4.0 Fix Pack 10Long Term Support ,如果 IBM MQ Java 客户端将该值设为零, Java Message Queuing Interface (JMQI) 就会使用网络层提供的缓冲区大小。 此修复解决了先前的一个问题:此前,若将该属性设置为零,JMQI在与队列管理器通信时,会错误地使用大小为 32K 的 TCP/IP 发送缓冲区。 发送缓冲区大小会被写入, IBM MQ classes for JMS, 或 IBM MQ classes for Jakarta Messaging 日志 IBM MQ classes for Java文件中的 JMSCS0061 消息中。

Connect_Timeout = 数字
连接套接字尝试超时前的最大秒数。

此属性由C语言、非托管 .NETIBM MQ classes for Java以及 IBM MQ classes for JMS 客户端读取。

若为非零值 Connect_TimeoutIBM MQ 则要求操作系统最多等待此秒数后返回失败状态。

如果远程端立即告知本地操作系统该端口上没有任何进程在监听,则连接尝试通常会立即失败,无论你为 Connect_Timeout. 设置了什么值。 (此时 Windows,操作系统通常需要1-2秒才能通知 IBM MQ 此状态。)

如果本地操作系统未收到来自远程端口的任何数据(这种情况发生在您指定了离线或不存在的机器地址时),通常 Connect_Timeout 经过数秒后,操作系统才会 IBM MQ 通知该故障状态。 若将该参数 Connect_Timeout 设为零(此为默认值),则最大耗时为20秒。

IPAddressVersion = MQIPADDR_IPV4 | MQIPADDR_IPV6
指定要用于通道连接的 IP 协议。

此属性可以由 C ,非受管 .NET,受管 .NET和受管 XMS .NET 客户机读取。

它具有可能的字符串值 MQIPADDR_IPV4MQIPADDR_IPV6。 这些值与 ALTER QMGR IPADDRVMQIPADDRV 环境变量中的 IPV4IPV6 具有相同的含义。

KeepAlive = 是|
打开或关闭KeepAlive功能。 KeepAlive=YES 这会促使 TCP/IP 定期检查连接的另一端是否仍可访问。 如果没有,则关闭通道。

此属性可以由 C ,非受管 .NETIBM MQ classes for JavaIBM MQ classes for JMS,受管 .NET和受管 XMS .NET 客户机读取。

[Windows]Library1 = DLL名称 | WSOCK32
[Windows]( Windows 仅) TCP/IP 套接字 DLL 的名称。

此属性可由 C 和非受管 .NET 客户机读取。

[ MQ 9.4.3 Jul 2025][ MQ 9.4.0.10 Feb 2025]DNSResolutionOrder=list|IPV6,IPV4,ANY (默认值)
IBM MQIPv6IPv4 混合环境中查找主机名的顺序。 如果 AMQ_NO_IPV6 环境变量,则无论配置了什么值, IBM MQ 都会像设置了 DNSResolutionOrder=IPV4 一样运行。
此属性可由 C 和非受管 .NET 客户机读取。
DNSResolutionOrder 的值是一个以逗号分隔的列表,其值为 IPV6, IPV4ANY 的顺序排列。 这些值对应于 IPv6IPv4 和未指定地址系列 DNS 查询,其中未指定查询可同时解析 IPv6IPv4 地址。 每个值最多只能在列表中出现一次。 如果 IPV4IPV6 在列表中缺失, IBM MQ 会隐式添加 ANY ,以确保能解析所有地址类型。
将列表值设置为 "ANY "可能会提高性能。 IPV6IPV4 可按顺序排列,以反映它们在本地网络中的重要性。