Ibm mq WebSphere MQ v7.1通道正在关闭

Ibm mq WebSphere MQ v7.1通道正在关闭,ibm-mq,Ibm Mq,我所配置的两个队列管理器(运行在Redhat Linux上的WebSphere MQ v7.1)之间的发送方和接收方通道经常出现故障。知道为什么吗?我如何调试这个?谢谢。频道预计会关闭。这个想法是,只要有流量,它们就会保持活动状态,然后超时。假设已将它们配置为触发,XMitQ上出现消息会导致通道再次启动 原因是,如果被网络故障或其他不利事件中断,触发的通道通常会重新启动。但是,如果通道配置为全天候运行,则其停止的唯一方式是由于这些不良事件之一,这增加了重新启动通道需要人工干预的可能性。另一方面,

我所配置的两个队列管理器(运行在Redhat Linux上的WebSphere MQ v7.1)之间的发送方和接收方通道经常出现故障。知道为什么吗?我如何调试这个?谢谢。

频道预计会关闭。这个想法是,只要有流量,它们就会保持活动状态,然后超时。假设已将它们配置为触发,XMitQ上出现消息会导致通道再次启动

原因是,如果被网络故障或其他不利事件中断,触发的通道通常会重新启动。但是,如果通道配置为全天候运行,则其停止的唯一方式是由于这些不良事件之一,这增加了重新启动通道需要人工干预的可能性。另一方面,超时的频道可以在不活动时发生的各种恶劣网络事件中生存。允许它在不使用时超时,从而提高通道的整体可靠性

那么,如何触发通道呢?确保传输队列包含
TRIGGER
TRIGTYPE
TRIGDATA
INITQ
属性。例如,要定义到
JUPITER
QMgr的传输队列:

DEF QL(JUPITER) +
    USAGE(XMITQ) +
    TRIGGER +
    TRIGTYPE(FIRST) +
    TRIGDATA('MYQMGR.JUPITER') +
    INITQ(SYSTEM.CHANNEL.INITQ) +
    REPLACE
束中唯一的变量是
TRIGDATA
,它包含服务于此XMitQ的通道的名称

当然,通道启动器必须正在运行,但在现代版本的WMQ中,它默认启动(基于队列管理器的
SCHINIT
属性的值),因此通常会运行

无法触发处于停止状态的通道。默认情况下,
STOP CHL
命令使用
STATUS(STOPPED)
,因此大部分时间手动停止通道可防止触发。如果要停止通道,使其重新启动(例如测试触发),请使用
stop CHL(CHLNAME)STATUS(INACTIVE)
命令。如果通道已处于停止状态,则发出启动CHL命令使其立即启动,或使用停止CHL(CHLNAME)状态(非活动)将状态从停止状态更改为非活动状态,而不启动通道

通道启动后,通道的
DISCINT
属性确定在超时之前它将运行多长时间。该值以秒为单位,默认为600,即10分钟。
DISCINT
KAINT
HBINT
组合起来确定频道何时关闭。请注意,TCP规范要求使用keepalive在默认情况下禁用它们,因此如果要在通道上使用keepalive,必须在QMgr调优中启用它,如所述

有关配置详细信息,请参阅信息中心中的。如果您想了解更多关于内部和调优的信息,请查看WebSphere MQ—保持通道正常运行。(SupportPac有点过时,但调整原则仍然适用。如果存在差异,则信息中心是权威版本。)


如果您想保持频道连续运行,请设置
DISCINT(0)
,但请记住触发仍然是首选选项。一些商店需要尽量减少营业日的响应时间,因此将
DISCINT
的值设置为允许频道在夜间超时,但通常保持频道全天运行。如果由于某种原因,您的触发设置正确,并且通道在
DISCIINT
之前关闭,您应该能够在错误日志中查看原因。它们位于QMgr目录下的
errors
下。例如,在UNIX/Linux上,它们位于
/var/mqm/qmgrs/qmgrname/errors
中,而在Windows上,默认位置是
C:\ProgramFiles(x86)\WebSphere MQ\qmgrs\qmgrname\errors
。查找名为
AMQERR???.LOG
的文件,其中
??
=
01
02
03
。日志在
01
是当前日志,
02
是下一个日志的位置旋转,依此类推。如果您有一个非常繁忙的QMgr,您需要在频道关闭时立即捕获这些信息,否则它们可能会消失。

非常感谢您,非常详细和精彩。在我的例子中,通道没有启动,消息卡在传输队列中。我对我的传输队列做了几处更改,我将监视情况。我相信这就是问题所在,这就解决了问题。