我是一个java开发人员。为了连接到IBM,我在WAS8.0.0.10中创建了队列连接工厂和队列。我想测试超时场景,因此,我特意关闭了IBM。大约花了2-3分钟才得到预期的超时结果。我想减少超时的值,但是我在那里找不到任何配置。
我可以知道是否可以配置超时值吗?因为我尝试了几乎所有的超时配置,但它们都没有帮助。谢谢。
发布于 2018-10-08 06:57:04
这取决于您要配置的超时。
可以通过将Connect_Timeout值设置为希望连接等待初始连接的秒数来配置初始连接的TCP连接超时。例如,如果服务器关机,或服务器的网络连接中断,这将适用。如果服务器通过网络启动并可到达,并且只有MQ侦听器(或所有MQ)被关闭,那么服务器对到MQ侦听器端口的连接的响应将是立即“拒绝连接”,并且永远不会到达TCP连接超时。
您可以以各种方式设置Connect_Timeout,其中有两种方法:
如果您正在寻找如何设置到MQ的现有连接的超时,请注意以下几点:
默认情况下,IBM客户端/队列管理器在信道空闲时发送心跳消息。JMS通道的HBINT将定义发送心跳消息的间隔(以秒为单位),如果没有其他流量通过JMS客户端的通道。
通常,客户端应该总是启动HB,队列管理器就会响应。如果队列管理器在HBINT+5秒内没有收到HB请求,它将向客户端启动HB并期望得到响应。
超时基于2*HBINT (HBINT的不足60秒),HBINT + 60 (HBINT)的超过60秒。SVRCONN上的默认HBINT为300,因此与默认HBINT连接的MQ连接的超时时间为360秒。如果在手表上计时,您会提到2-3分钟。
如果要将超时设置为30秒,则需要将SVRCONN通道HBINT更改为15秒,例如:
ALTER CHL(CHL.NAME) CHLTYPE(SVRCONN) HBINT(15)请注意,该值仅在下次与通道建立客户端连接时才生效,它不会影响已经运行的通道的HBINT。
另外请注意,当连接到MQ队列管理器v6或更高版本时,客户端HB消息只在客户端处于等待操作的GET时发送,而不是在其他时间发送。
https://stackoverflow.com/questions/48545556
复制相似问题