我是一名java开发人员。我已经在WAS 8.0.0.10中创建了Queue连接工厂和队列,以便连接到IBM MQ。我想测试超时场景,因此,我故意关闭IBM MQ。获得预期的超时结果大约需要2-3分钟。我想减少超时值,但是,我找不到任何配置。
我知道可以配置超时值吗?因为我尝试了几乎所有的超时配置,但它们都没有帮助。谢谢。
答案 0 :(得分:0)
这取决于您要配置的超时时间。
可以通过将Connect_Timeout
值设置为希望连接等待初始TCP连接的秒数来配置初始连接的TCP连接超时。例如,这在服务器关闭或与服务器的网络连接关闭时适用。如果服务器已启动并且可以通过网络访问,并且只有MQ侦听器(或所有MQ)都已关闭,则服务器连接到MQ侦听器端口的响应将立即变为“连接被拒绝”,您将永远不会TCP连接超时。
您可以通过多种方式设置Connect_Timeout
,其中两种是:
mqclient.ini文件(请参见Location of the client configuration file),例如:
TCP:
Connect_Timeout=30
传递与上述等效的java系统属性,例如:
-Dcom.ibm.mq.cfg.TCP.Connect_Timeout=30
如果您正在寻找如何设置现有连接到MQ的超时,则需要注意以下几点:
缺省情况下,IBM MQ客户端/队列管理器在通道空闲时发送心跳消息。 HBINT
通道的SVRCONN
将定义如果没有其他流量通过JMS MQ客户端的情况下发送心跳消息的间隔(以秒为单位)。
通常,客户端应始终启动HB,队列管理器将响应。如果队列管理器在HBINT
+ 5秒钟内未收到HB请求,它将向客户端发起HB,并期望响应。
超时基于HBINT
小于60秒的2 * HBINT
和HBINT
大于60秒的HBINT
+ 60。 HBINT
上的默认SVRCONN
为300,因此与具有默认HBINT
的通道的MQ连接的超时为360秒。您提到2到3分钟,我怀疑如果您在手表上计时会是6分钟。
如果要将超时设置为30秒,则可以将SVRCONN
频道HBINT
更改为15秒,例如:
ALTER CHL(CHL.NAME) CHLTYPE(SVRCONN) HBINT(15)
请注意,该值仅在您下次与该通道建立客户端连接时才生效,不会影响已经在运行的通道的HBINT。
另外要注意的是,当连接到MQ队列管理器v6或更早版本时,仅在客户端处于具有WAIT操作的GET中时才发送客户端HB消息,