1,mq的相關命令
檢視佇列管理器執行狀態
# dspmq
顯示結果中qmname表示mq佇列管理器的名稱,status表示當前執行狀態。
執行狀態有如下幾種:
starting 正在啟動
running 正在執行
ending 正在停止
ended normally 已經正常終止
ended immediately 已經立即終止
ended preemtively 已經強制終止
ended unexpectively 異常終止
注:停止mq後建議使用dspmq命令進行狀態檢查是否成功關閉。
二.檢視通道執行狀態與啟停通道
$ runmqsc qmgrname
dis chl(*); 檢視所有通道定義
dis chs(*); 檢視所有通道狀態,如果沒有查詢到通道狀態,或報錯amq8420: channel status not found,請啟動通道
dis chs(channelname); 檢視通道channelname的狀態
通道狀態有如下幾種:
starting 正在啟動
binding 正在繫結
initializing 正在初始化
running 正常
stopping 正在停止
retrying 重試
paused 等待
stopped 已停止
requesting 請求
啟停通道與重置通道序號的方法:
$ runmqsc qmgrname
start chl(channelname); 啟動通道
stop chl(channelname); 停止通道
reset channel(channelname); 重置通道序號。
三.檢視通道監聽狀態與啟停監聽
$ runmqsc qmgrname
dis listener(*); 檢視通道監聽定義
dis lsstatus(listnername); 檢視監聽狀態
啟動與停止監聽的方法:
$ runmqsc
start lstr(listnername); 啟動監聽
stop lstr(listnername); 停止監聽
四.檢視佇列深度
如果佇列深度不斷增加,不見減少,那麼可能就有問題了,請檢查並分析其原因。
$runmqsc qmgrname
dis q(*); 檢視所有各類佇列的屬性
dis qlocal(qname); 檢視所有本地佇列的屬性
佇列深度屬性為:curdepth
五.檢視死信佇列深度
如果死信佇列深度不斷增加,那就需要分析其原因。
$runmqsc qmgrname
dis qlocal(deadqname)
2、相應的指令碼
linux:
out = run_cmd('su - {} -c "{}if 'windows' in platform.system():with open('channelnum.in', 'w') as f:
f.write('dis queue(\'{}\') curdepth;\nend'.format(name))
cmd = 'runmqsc {}< "channelnum.in" > "channelnum.out"'.format(qname)
#print cmd
run_cmd(cmd)[1]
with open("channelnum.out", 'r') as f:
out = ''.join(f.readlines())
#windows需要寫入檔案,去執行,替換相應的命令即可
自動化指令碼編寫規範
自動化測試指令碼編寫規範 1 為了使所有的測試工程師在進行自動化設計和測試時能夠使編寫的指令碼風格一致 步驟一致,能夠把大家的設計和 組裝在一起,因此有必要對自動化測試指令碼編寫進行統一的規範化,下面就先來介紹我們的專案組整理編寫的自動化指令碼編寫的規範。1 自動化指令碼編寫的規範 1 基本資訊 在...
自動化測試指令碼編寫規範(1)
11.8自動化測試指令碼編寫規範 1 為了使所有的測試工程師在進行自動化設計和測試時能夠使編寫的指令碼風格一致 步驟一致,能夠把大家的設計和 組裝在一起,因此有必要對自動化測試指令碼編寫進行統一的規範化,下面就先來介紹我們的專案組整理編寫的自動化指令碼編寫的規範。1 自動化指令碼編寫的規範 1 基本...
論自動化思想及指令碼除錯
本段文章所寫純屬於個人愚見。望大家勿噴。自動化思想 1 指令碼是為業務服務的,是為測試服務的。一些開發寫的 確實夠炫夠酷,但不重要,也確實存在很多開發人員瞧不起測試人員的情況存在。但請開發人員尊重業務,尊重測試的思想,至少我們的自動化指令碼也是要覆蓋用例的。而用例是經過測試人員按照測試思想來編寫的,...