Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302602
  • 博文数量: 45
  • 博客积分: 1429
  • 博客等级: 上尉
  • 技术积分: 422
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-19 09:12
文章分类

全部博文(45)

文章存档

2021年(1)

2020年(1)

2019年(1)

2016年(4)

2015年(3)

2011年(4)

2010年(31)

我的朋友

分类: 服务器与存储

2015-06-15 16:26:35

http://ludefw-qq-com.iteye.com/blog/1463314

一. 简介 
1. MQ目录结构 
MQ系统错误记录目录: 
/var/mqm/errors 

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


二. 常用MQ系统命令 
1. 观察MQ队列管理器运行状态 
对于MQ 5.1及以下版本,通过ps –ef | grep 看下面进程是否存在: 
#amqzxma0 -m  
对MQ 5.2或以上版本,执行如下命令检查队列管理器运行状态: 
#dspmq 
显示结果中表示MQ队列管理器的名称,STATUS表示当前运行状态。 
运行状态有: 
Starting 正在启动 
Running 正在运行 
Ending 正在停止 
Ended normally 已经正常终止 
Ended immediately 已经立即终止 
Ended preemtively 已经强制终止 
Ended unexpectively 异常终止 

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

例: 
$dspmq 
显示结果 
QMNAME(QM0000A) STATUS(Running) 
QMNAME(QM0000B) STATUS(Ended normally) 


三. 使用MQSC脚本命令管理 
1. 进入指定队列管理器脚本命令控制台 
#runmqsc  

具体命令: 
以mqm用户登陆 
runmqsc  
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//errors/AMQERR0n.LOG 


7. 停止UNIX系统中运行的队列管理器 
(1) 首先正常停止:$endmqm  –w   
如不能正常停止 
(2) $endmqm  –i   
如不能正常停止 
(3) $endmqm  -p   
如不能正常停止 
(4) 杀死有关进程和残留在系统内部的信号灯和共享内存: 
a) 执行ps命令找到运行的队列管理器程序进程ID。例如,如果队列管理器名为,那么可以使用下列命令:
ps -ef | grep  
b) 终止所有仍在运行的队列管理器进程。使用 kill命令指定用 ps 命令发现的进程ID。 注: 无法停止的进程可使用kill -9来终止。 
按下列次序终止各个进程: 
amqpcsea 命令服务器 
amqhasmx 记录器 
amqharmx 日志格式化器(仅 LINEAR 日志) 
amqzllp0 检查点处理器 
amqzlaa0 队列管理器代理 
amqzxma0 处理控制器 
amqrrmfa 库进程(用于群集) 
注:人工停止队列管理器可能导致FFST的发生,并在/var/mqm/errors目录中产生FDC文件。不应该将此视为队列管理器中的缺陷。甚至在使用该方法停止队列管理器后,它仍应该正常重新启动。 
c) 杀死所有残留在系统内部的信号灯和共享内存(其属主和组均为mqm,需要用root或mqm用户来杀死): 
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  
$rsvmqtrn –m -a 
#resolves all internally-coordinated,in-doubt transactions 
$rsvmqtrn –m -b  
#backout the named externally-coordinated transaction 
$rsvmqtrn –m -b  
#commits the named externally-coordinated transaction 
$rsvmqtrn –m -r RMID  
#For the named internally-coordinated transaction only 
阅读(1927) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~