我配置的两个队列管理器(在Redhat Linux上运行的WebSphere MQ v7.1)之间的发送方和接收方通道经常发生故障.知道为什么吗?我该怎么调试呢?谢谢.
渠道预计会下降.这个想法是,只要有交通然后超时,它们就会保持活跃状态.假设它们已被配置为触发,则XMitQ上存在消息会导致通道再次启动.
这样做的原因是,如果被网络故障或其他不利事件中断,触发通道通常会重新启动.但是,如果某个通道配置为24x7全天候运行,则它停止运行的唯一方法是由于这些不良事件之一,这会增加重启频道所需的人为干预的可能性.另一方面,超时的通道可以承受在不活动时发生的各种令人讨厌的网络事件.允许它在不使用时超时因此提高了通道的整体可靠性.
那么如何引发频道?确保传输队列包含TRIGGER,TRIGTYPE,TRIGDATA和INITQ属性.例如,要为JUPITERQMgr 定义传输队列:
DEF QL(JUPITER) +
USAGE(XMITQ) +
TRIGGER +
TRIGTYPE(FIRST) +
TRIGDATA('MYQMGR.JUPITER') +
INITQ(SYSTEM.CHANNEL.INITQ) +
REPLACE
Run Code Online (Sandbox Code Playgroud)
该串中唯一的变量是TRIGDATA包含为此XMitQ提供服务的通道的名称.
当然,通道启动器必须正在运行,但在WMQ的现代版本中,它默认启动(基于队列管理器SCHINIT属性的值),因此通常会运行.
STOPPED无法触发处于状态的通道.默认情况下,该STOP CHL命令使用STATUS(STOPPED)大部分时间手动停止通道阻止触发.如果要以重启(例如测试触发)的方式停止通道,请使用该STOP CHL(CHLNAME) STATUS(INACTIVE)命令.如果通道已处于STOPPED状态,请发出START CHL命令使其立即启动,或使用STOP CHL(CHLNAME) STATUS(INACTIVE)更改状态STOPPED从而INACTIVE不启动它.
通道启动后,通道的DISCINT属性决定在超时之前运行多长时间.该值以秒为单位,默认为600,即10分钟.的DISCINT,KAINT并HBINT共同决定在通道下来.请注意,TCP规范要求使用keepalive来默认禁用它们,因此如果要在通道上使用keepalive,则必须按照此处所述在 QMgr调整中启用它.
有关配置详细信息,请参阅信息中心中的触发通道.如果您想了解有关内部和调整的更多信息,请查看SupportPac MD0C WebSphere MQ - 保持通道正常运行.(SupportPac有点过时,但调整的原则大多仍然适用.如果存在差异,则信息中心是权威版本.)
如果您想要持续保持频道,请设置DISCINT(0)但请记住,触发仍然是首选选项.一些商店需要在工作日期间最小化响应时间,因此设置DISCINT为允许频道在晚上超时但通常使它们全天保持运行的值.如果出于某种原因,您已经触发设置正确并且通道已关闭,DISCIINT您应该能够检查错误日志中的原因.它们位于QMgr的目录下errors.例如,在UNIX/Linux上,它们位于/var/mqm/qmgrs/qmgrname/errorsWindows的默认位置C:\Program Files(x86)\WebSphere MQ\QMgrs\qmgrname\errors.找到名为的文件AMQERR??.LOG,其中??= 01,02或03.日志在01当前,02下一个等处旋转.如果你有一个非常繁忙的QMgr,你需要在通道关闭或它们可以滚动时立即捕获它们.
| 归档时间: |
|
| 查看次数: |
8522 次 |
| 最近记录: |