首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何减少队列连接工厂的超时值(默认为2-3分钟)为8.0.0.10?

如何减少队列连接工厂的超时值(默认为2-3分钟)为8.0.0.10?
EN

Stack Overflow用户
提问于 2018-01-31 15:19:28
回答 1查看 1.8K关注 0票数 3

我是一个java开发人员。为了连接到IBM,我在WAS8.0.0.10中创建了队列连接工厂和队列。我想测试超时场景,因此,我特意关闭了IBM。大约花了2-3分钟才得到预期的超时结果。我想减少超时的值,但是我在那里找不到任何配置。

我可以知道是否可以配置超时值吗?因为我尝试了几乎所有的超时配置,但它们都没有帮助。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-10-08 06:57:04

这取决于您要配置的超时。

可以通过将Connect_Timeout值设置为希望连接等待初始连接的秒数来配置初始连接的TCP连接超时。例如,如果服务器关机,或服务器的网络连接中断,这将适用。如果服务器通过网络启动并可到达,并且只有MQ侦听器(或所有MQ)被关闭,那么服务器对到MQ侦听器端口的连接的响应将是立即“拒绝连接”,并且永远不会到达TCP连接超时。

您可以以各种方式设置Connect_Timeout,其中有两种方法:

  1. 例如,TCP节中的mqclient.ini文件(参见客户端配置文件的位置): TCP: Connect_Timeout=30
  2. 传递相当于上述内容的java系统属性,例如: -Dcom.ibm.mq.cfg.TCP.Connect_Timeout=30

如果您正在寻找如何设置到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秒,例如:

代码语言:javascript
复制
ALTER CHL(CHL.NAME) CHLTYPE(SVRCONN) HBINT(15)

请注意,该值仅在下次与通道建立客户端连接时才生效,它不会影响已经运行的通道的HBINT。

另外请注意,当连接到MQ队列管理器v6或更高版本时,客户端HB消息只在客户端处于等待操作的GET时发送,而不是在其他时间发送。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48545556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档