我们遇到了许多应用程序连接到 MQ 服务器而没有正确断开连接的问题。因此,我们在服务器连接 channel 上引入了 DISCINT,其值为 1800 秒,我们发现这对于我们的交易来说是理想的选择。但我们的 Keep Alive 间隔相当高,为 900 秒。我们希望按照 mqconfig util 的建议将其减少到 300 以下。但在这样做之前,我想知道这是否会影响我们的断开连接间隔值,以及它是否会覆盖我们的断开连接间隔值并进行更频繁的断开连接,这会对我们的性能造成影响。
这两个值如何发挥作用以及它们如何相关?
谢谢
最佳答案
TCP KeepAlive 工作在协议(protocol)栈应用层以下,因此不会影响 DISCINT 配置的 channel 断开。 然而,如果您的网络不可靠,例如数据包不流动的间歇性非常短的时间(比当前的 KeepAlive 短,但比新的长),降低该值可能会导致更频繁的断开连接。
我认为主要区别在于,DISCINT 用于断开技术上工作的 channel ,该 channel 在给定时间内不使用,而 KeepAlive 用于检测不工作的 TCP 连接。 MQ 也提供了在应用层检测不工作连接的方法,通过心跳间隔进行配置。
这些可能有帮助:
http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.con.doc/q015650_.htm
http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ref.con.doc/q081900_.htm
http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html
http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ref.con.doc/q081860_.htm
关于ibm-mq - WebSphere MQ 服务器中 DISCINT 和 Keep Alive 间隔之间的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31167124/