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

时间:2018-01-31 15:19:29

标签: jms ibm-mq

我是一名java开发人员。我已经在WAS 8.0.0.10中创建了Queue连接工厂和队列,以便连接到IBM MQ。我想测试超时场景,因此,我故意关闭IBM MQ。获得预期的超时结果大约需要2-3分钟。我想减少超时值,但是,我找不到任何配置。

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

1 个答案:

答案 0 :(得分:0)

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

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

您可以通过多种方式设置Connect_Timeout,其中两种是:

    TCP节中的
  1. mqclient.ini文件(请参见Location of the client configuration file),例如:

    TCP:
        Connect_Timeout=30
    
  2. 传递与上述等效的java系统属性,例如:

    -Dcom.ibm.mq.cfg.TCP.Connect_Timeout=30
    

如果您正在寻找如何设置现有连接到MQ的超时,则需要注意以下几点:

缺省情况下,IBM MQ客户端/队列管理器在通道空闲时发送心跳消息。 HBINT通道的SVRCONN将定义如果没有其他流量通过JMS MQ客户端的情况下发送心跳消息的间隔(以秒为单位)。

通常,客户端应始终启动HB,队列管理器将响应。如果队列管理器在HBINT + 5秒钟内未收到HB请求,它将向客户端发起HB,并期望响应。

超时基于HBINT小于60秒的2 * HBINTHBINT大于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消息,