Java 如何在MQSimpleConnectionManager中设置请求超时?
在am中,使用MQSimpleConnectionManager进行连接池,并在获取MQQueueManager时,由于某些网络ISUE,线程进入无限等待状态 有人能帮我设置请求超时吗Java 如何在MQSimpleConnectionManager中设置请求超时?,java,ibm-mq,Java,Ibm Mq,在am中,使用MQSimpleConnectionManager进行连接池,并在获取MQQueueManager时,由于某些网络ISUE,线程进入无限等待状态 有人能帮我设置请求超时吗 提前谢谢 你确定这是无限的等待吗?默认情况下,SVRCONN频道的HBINT值为300秒。默认情况下,使用IBM MQ Class for Java或IBM MQ Class for JMS的应用程序使用SVRCONN值的HBINT(仅当您对客户端通道def使用CCDT时,才可以指定客户端值,但即使您这样做,最高
提前谢谢 你确定这是无限的等待吗?默认情况下,
SVRCONN
频道的HBINT
值为300
秒。默认情况下,使用IBM MQ Class for Java或IBM MQ Class for JMS的应用程序使用SVRCONN
值的HBINT
(仅当您对客户端通道def使用CCDT时,才可以指定客户端值,但即使您这样做,最高值也是在开始时协商的值,因此默认值为300
时的SVRCONN
将是您可以拥有的最低值)。如果队列管理器或客户端没有从心跳消息中得到响应,则通道将超时(假定SVRCONN
通道在v7.0或更高版本模式下运行)HBINT
值基于HBINT
值。如果HBINT
小于60秒,则TIMEOUT
为2*HBINT
,如果HBINT
为60秒或更大,则TIMEOUT
为HBINT+60
。给定此公式,Java或JMS客户端将连接到SVRCONN
>默认HBINT
为300
的频道将在360
秒(6
分钟)内超时。因此,当你说这是无限等待时,你是否等待了6
分钟?如果这是你所说的,那么我可以发布一个答案来解释它,或者投票关闭它,作为我在同一主题上发布的类似答案的副本。以上评论是关于MQ在建立连接后检测网络问题。还有一个设置可以放在mqclient.ini中,Java和JMS API将查看初始连接失败的时间。如果没有此设置,MQ默认为底层操作系统默认值。对于Linux,这大约是189秒,其他操作系统会有所不同。感谢大家提供此必要信息。isue问题是r解决了。问题与内存有关。我在运行9个应用程序的同时设置了524 MB的最大内存。这就是应用程序被挂起的原因。