关注MQ通道属性心跳间隔

时间:2012-09-09 04:24:45

标签: ibm-mq mq

我对频道属性 Heartbeat Interval(HBINT) 有疑问。根据信息中心的说法,当间隔条件成熟且MCA未被阻塞时,它会导致信道断开。我在本地QMGR中进行了一些测试,但我发现频道(发送方 - 接收方)没有按预期更改为非活动。那么这里的问题是什么?请帮帮我。      频道定义细节如下:

 CHANNEL(EDISONQM.GRACEQM.C1)            CHLTYPE(SDR)
 ALTDATE(2012-09-09)                     ALTTIME(11.50.52)
 BATCHHB(0)                              BATCHINT(0)
 BATCHLIM(5000)                          BATCHSZ(50)
 COMPHDR(NONE)                           COMPMSG(NONE)
 CONNAME(localhost(1414))                CONVERT(NO)
 DESCR( )                                DISCINT(300)
 HBINT(30)                               KAINT(AUTO)
 LOCLADDR( )                             LONGRTY(999999999)
 LONGTMR(1200)                           MAXMSGL(4194304)
 MCANAME( )                              MCATYPE(PROCESS)
 MCAUSER( )                              MODENAME( )
 MONCHL(QMGR)                            MSGDATA( )
 MSGEXIT( )                              NPMSPEED(FAST)
 PASSWORD( )                             PROPCTL(COMPAT)
 RCVDATA( )                              RCVEXIT( )
 RESETSEQ(NO)                            SCYDATA( )
 SCYEXIT( )                              SENDDATA( )
 SENDEXIT( )                             SEQWRAP(999999999)
 SHORTRTY(10)                            SHORTTMR(60)
 SSLCIPH( )                              SSLPEER( )
 STATCHL(QMGR)                           TPNAME( )
 TRPTYPE(TCP)                            USEDLQ(YES)
 USERID( )                               XMITQ(EDISONQM.GRACEQM.X1)

 CHANNEL(EDISONQM.GRACEQM.C1)            CHLTYPE(RCVR)
 ALTDATE(2012-09-09)                     ALTTIME(11.51.42)
 BATCHSZ(50)                             COMPHDR(NONE)
 COMPMSG(NONE)                           DESCR( )
 HBINT(30)                               KAINT(AUTO)
 MAXMSGL(4194304)                        MCAUSER( )
 MONCHL(QMGR)                            MRDATA( )
 MREXIT( )                               MRRTY(10)
 MRTMR(1000)                             MSGDATA( )
 MSGEXIT( )                              NPMSPEED(FAST)
 PUTAUT(DEF)                             RCVDATA( )
 RCVEXIT( )                              RESETSEQ(NO)
 SCYDATA( )                              SCYEXIT( )
 SENDDATA( )                             SENDEXIT( )
 SEQWRAP(999999999)                      SSLCAUTH(REQUIRED)
 SSLCIPH( )                              SSLPEER( )
 STATCHL(QMGR)                           TRPTYPE(TCP)
 USEDLQ(YES)


 C:\windows\system32>dspmqver
 Name:        WebSphere MQ
 Version:     7.1.0.1
 Level:       p710-001-120524
 BuildType:   IKAP - (Production)
 Platform:    WebSphere MQ for Windows
 Mode:        32-bit
 O/S:         Windows 7 Home Premium x64 Edition, Build 7600
 InstName:    Installation1

由于

1 个答案:

答案 0 :(得分:1)

您可能希望查看信息中心主题 Checking that the other end of the channel is still available ,其中详细介绍了决定是否关闭频道的算法。具体来说,在通道断开之前必须至少有两个心跳流,因此HBINT必须远小于DISCINT的一半才能生效。此外,通道协商必须完成,以使MCA都不为HBINT导出零值。

您的帖子未包含匹配的RCVR频道列表。我怀疑你没有更新HBINT吗?如果显示正在运行的通道的状态,您将看到在启动时,通道代理会协商其两个HBINT值的更大。因此,如果您没有在RCVR上更新HBINT,那么即使您在SDR上将其设置为30,正在运行的通道也将具有300的HBINT。

此外,实际时间并不准确。目的是通道将在中超过两个HBINT间隔,但实际超时将超过此数量。例如,我将HBINT设置为10,并在大约40秒后看到通道断开连接。通道超时和断开旨在提高通道的可靠性和收获孤立通道,但确切的时间并不像消息或事务处理那样重要。这个想法是,如果你有大量的孤儿通道,你可以通过修复损坏的程序或通过调整防火墙的超时来解决这个问题,而不是将HBINT设置为一个非常低的值并期望精确度。如果您需要在通道断开时确切的时间安排,那么在其他地方需要解决根本原因。