• MQ日常维护手册


    一. 简介

    1. MQ目录结构

    MQ系统错误记录目录:

    /var/mqm/errors

    MQ队列管理器目录(缺省情况下)

    /var/mqm/qmgrs/<QMName>

    注意:必须保证该目录下的任何文件不被修改,不被删除,否则MQ队列管理器将遭到致命破坏,无法恢复,本地消息全部丢失。

    二. 常用MQ系统命令

    1. 观察MQ队列管理器运行状态

    对于MQ 5.1及以下版本,通过ps –ef | grep <QMName>看下面进程是否存在:

    #amqzxma0 -m <QMName>

    MQ 5.2或以上版本,执行如下命令检查队列管理器运行状态:

    #dspmq

    显示结果中<QMName>表示MQ队列管理器的名称,STATUS表示当前运行状态。

    运行状态有:

    Starting 正在启动

    Running 正在运行

    Ending 正在停止

    Ended normally 已经正常终止

    Ended immediately 已经立即终止

    Ended preemtively 已经强制终止

    Ended unexpectively 异常终止

    注意:停止系统后必须使用dspmq命令进行状态检查

    例:

    $dspmq

    显示结果

    QMNAME(QM0000A) STATUSRunning)

    QMNAME(QM0000B) STATUSEnded normally

    三. 使用MQSC脚本命令管理

    1. 进入指定队列管理器脚本命令控制台

    #runmqsc <QMName>

    具体命令:

    以mqm用户登陆

    runmqsc <QMName>

    2. 常用MQSC脚本命令

    查看所有通道状态

    DISPLAY CHSTATUS(*)

    若通道启动失败,需要检查、分析MQ队列管理器日志文件,可能原因包括:

    (1) 配置错误,如CONNAME。对于TCP协议,需确认对方IP和侦听端口(防火墙无限制);对于LU62,需确认所用SNA session已建立且MQ正确引用。

    (2) 对应通道CCSID不一致,一般发生在新建MQ环境。

    (3) 对应通道MSN不一致,一般发生在其中一端做过变更后,如重建队列管理器、reset通道等。

    检查通道具体状态

    DISPLAY CHSTATUS(ChannelName) ALL

    检查队列配置和深度

    DIS QLOCAL(QName)

    该命令的显示结果可以看出队列当前深度

    四. 维护项目

    1. 实时监控以下文件系统使用情况:

    检查文件系统/var/mqm

    MQ应用所在文件系统。

    2. 定期报告MQ系统错误,备份清理MQ系统错误记录

    在遇到问题时,检查/var/mqm/errors目录下是否有新的FDC文件产生,如果有应当立即报告IBM技术支持部门。另外,要定期检查该目录下MQ错误日志。

    3. 监控队列深度

    DIS QLOCAL(QName)

    该命令的显示结果可以看出队列当前深度

    4. 检查死信队列

    DIS QLOCAL(DEADQName)

    5. 检查日志个数是否增长

    使用命令cd移动到MQ日志所在目录,使用ls –l|wc命令统计,如果有所增长,应立即报告IBM系统支持人员。

    6. 检查MQ队列管理器错误日志

    当系统运行不正常时首先检查:

    /var/mqm/qmgrs/<QMName>/errors/AMQERR0n.LOG

    7. 停止UNIX系统中运行的队列管理器

    (1) 首先正常停止:$endmqm  –w  <QMgr>

    如不能正常停止

    (2) $endmqm  –i  <QMgr>

    如不能正常停止

    (3) $endmqm  -p  <QMgr>

    如不能正常停止

    (4) 杀死有关进程和残留在系统内部的信号灯和共享内存:

    a) 执行ps命令找到运行的队列管理器程序进程ID。例如,如果队列管理器名为<QMgr>,那么可以使用下列命令:

    ps -ef | grep <QMgr>

    b) 终止所有仍在运行的队列管理器进程。使用 kill命令指定用 ps 命令发现的进程ID。 : 无法停止的进程可使用kill -9来终止。

    按下列次序终止各个进程:

    amqpcsea 命令服务器

    amqhasmx 记录器

    amqharmx 日志格式化器(仅 LINEAR 日志)

    amqzllp0 检查点处理器

    amqzlaa0 队列管理器代理

    amqzxma0 处理控制器

    amqrrmfa 库进程(用于群集)

    注:人工停止队列管理器可能导致FFST的发生,并在/var/mqm/errors目录中产生FDC文件。不应该将此视为队列管理器中的缺陷。甚至在使用该方法停止队列管理器后,它仍应该正常重新启动。

    c) 杀死所有残留在系统内部的信号灯和共享内存(其属主和组均为mqm,需要用rootmqm用户来杀死):

    ipcs -s| grep mqm | awk '{print $2}'|xargs -i ipcrm -s {}

    ipcs -m| grep mqm | awk '{print $2}'|xargs -i ipcrm -m {}

    注:停止队列管理器后,若重新启动失败,则可检查上次停止后是否有IPC资源未释放。若有将会导致启动失败,需要通过上述方法予以删除(注意不要误删!)。

    8. 检查、处理队列管理器pending事务

    若队列管理器启动成功后,CICS(配置XAD连接MQ)启动失败,则可以检查是否有pending事务,若有必须进行处理(可能造成数据的不一致性,必须事先加以确认),具体如下:

    $dspmqtrn –m <QMgr>

    $rsvmqtrn –m <QMgr> -a

    #resolves all internally-coordinated,in-doubt transactions

    $rsvmqtrn –m <QMgr> -b <Transaction number>

    #backout the named externally-coordinated transaction

    $rsvmqtrn –m <QMgr> -b <Transaction number>

    #commits the named externally-coordinated transaction

    $rsvmqtrn –m <QMgr> -r RMID <Transaction number>

    #For the named internally-coordinated transaction only

  • 相关阅读:
    Eth-Trunk 技术
    MSTP技术
    STP生成树原理及不足
    表示数值的字符串(python)
    字符流中第一个不重复的字符(python)
    连续子数组的最大和(python)
    和为S的两个数字(python)
    数组中重复的数字(python)
    构建乘积数组(python)
    idea中查看类层级class hierarchy
  • 原文地址:https://www.cnblogs.com/dahaoran/p/12760885.html
Copyright © 2020-2023  润新知