gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:46:02 24 4
gpt4 key购买 nike

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

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

最佳答案

这取决于您尝试配置的超时。

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

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

  1. TCP 节中的 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 客户端/队列管理器默认情况下会在 channel 空闲时发送心跳消息。 SVRCONN channel 的 HBINT 将定义发送心跳消息的时间间隔(以秒为单位),如果没有其他流量通过 JMS MQ 客户端的 channel 。

正常情况下,客户端应该始终启动 HB,队列管理器将响应。如果队列管理器在 HBINT+5 秒内未收到 HB 请求,它将向客户端启动 HB 并期待响应。

对于小于 60 秒的 HBINT,超时基于 2*HBINT,对于 HBINT,超时基于 HBINT + 60 超过 60 秒。 SVRCONN 上的默认 HBINT 是 300,因此 MQ 连接到具有默认 HBINT 的 channel 的超时将为 360 秒。你提到 2 - 3 分钟,我怀疑如果你在 watch 上计时,它会是 6 分钟。

如果您想将超时设置为 30 秒,那么您可以将 SVRCONN channel HBINT 更改为 15 秒,例如:

ALTER CHL(CHL.NAME) CHLTYPE(SVRCONN) HBINT(15)

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

另外请注意,当连接到 MQ 队列管理器 v6 或更早版本时,客户端 HB 消息仅在客户端处于 GET with WAIT 操作时发送,其他时间不发送。

关于jms - 如何减少 WAS 8.0.0.10 中队列连接工厂的超时值(默认为 2-3 分钟)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com