我有一个关于通道属性的问题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:windowssystem32>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
感谢
您可能希望查看信息中心主题检查通道的另一端是否仍然可用,这将详细介绍决定是否关闭通道的算法。具体来说,在通道断开连接之前,必须至少有两个心跳,因此HBINT必须远小于DISCINT的一半才能生效。此外,信道协商必须完成,这样两个MCA都不能为HBINT导出零值。
您的帖子中没有列出匹配的RCVR频道。我怀疑你没有更新那里的重型作战情报?如果显示正在运行的通道的状态,您将看到通道代理在启动时协商其两个HBINT值中的较大。因此,如果你没有在RCVR上更新HBINT,那么即使你在SDR上将其设置为30,运行通道的HBINT也将为300。
此外,实际时间并不准确。其目的是通道将在内超时,不少于两个HBINT间隔,但实际超时将超过此数量。例如,我将HBINT设置为10,并在大约40秒后看到通道断开。通道超时和断开连接旨在提高通道的可靠性并获得孤立通道,但准确的时间并不像消息或事务处理那样重要。这个想法是,如果你有大量的孤立通道,你可以通过修复损坏的程序或调整防火墙的超时来解决这个问题,而不是将HBINT设置为一个非常低的值并期望精度。如果您需要通道断开的确切时间,那么需要解决其他地方的根本原因。