1

我有一个关于频道属性的问题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

谢谢

4

1 回答 1

1

您可能希望查看信息中心主题检查通道的另一端是否仍然可用,其中更详细地介绍了决定是否关闭通道的算法。具体来说,在通道断开之前必须至少有两个心跳流,因此 HBINT 必须远小于 DISCINT 的一半才能生效。此外,通道协商必须完成,这样 MCA 都不会为 HBINT 导出零值。

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

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

于 2012-09-09T05:10:23.853 回答