結合上節使用到的MQ命令,本節系統闡述MQ的命令。html
1、MQ命令集合java
MQ命令集合有三種命令:控制命令、MQSC(MQ腳本命令)和PCF(Programmable Command Formats,可編程的命令格式)。web
2、控制命令shell
控制命令:用於管理 WebSphere MQ的系統配置,包括隊列管理器、偵聽器、通道、日誌的管理。編程
例如:建立隊列管理器(crtmqm),啓動隊列管理器(strmqm),啓動用於運行隊列管理器MQSC命令的控制檯(runmqsc)、運行通道(runmqchl)服務器
對於Linux,WebSphere MQ 控制命令都從 shell輸入和執行。app
控制命令列表以下所示:jsp
addmqinf(添加配置信息)ui
amqccert(檢查證書鏈)spa
amqmdain(WebSphere MQ 服務控制)
amqmfsck(文件系統檢查)
amqtcert(傳送證書)
crtmqcvx(數據轉換)
crtmqm(建立隊列管理器)
dltmqm(刪除隊列管理器)
dmpmqaut(轉儲權限)
dmpmqlog(轉儲日誌)
dspmq(顯示隊列管理器)
dspmqaut(顯示權限)
dspmqcsv(顯示命令服務器)
dspmqfls(顯示文件)
dspmqinf(顯示配置信息)
dspmqrte(WebSphere MQ 顯示路由應用程序)
dspmqtrc(顯示格式化的跟蹤輸出)
dspmqtrn(顯示事務)
dspmqver(顯示版本信息)
endmqcsv(結束命令服務器)
endmqlsr(結束偵聽器)
endmqdnm(中止 .NET 監視器)
endmqm(結束隊列管理器)
endmqtrc(結束跟蹤)
migmbbrk(遷移發佈/預訂信息)
mqftapp(運行文件傳輸應用程序 GUI)
mqftrcv(在服務器上接收文件)
mqftrcvc(在客戶機上接收文件)
mqftsnd(從服務器發送文件)
mqftsndc(從客戶機發送文件)
rcdmqimg(記錄介質映像)
rcrmqobj(從新建立對象)
rmvmqinf(除去配置信息)
rsvmqtrn(解決事務)
runmqchi(運行通道啓動程序)
runmqchl(運行通道)
runmqdlq(運行死信隊列處理程序)
runmqdnm(運行 .NET 監視器)
runmqlsr(運行偵聽器)
runmqsc(運行 MQSC 命令)
runmqtmc(啓動客戶機觸發器監視器)
runmqtrm(啓動觸發器監視器)
setmqaut(授予或撤銷權限)
setmqcrl(設置證書撤銷列表 (CRL) LDAP 服務器定義)
setmqprd(登記生產許可證)
setmqscp(設置服務鏈接點)
strmqcfg(啓動 WebSphere MQ 資源管理器)
strmqcsv(啓動命令服務器)
strmqm(啓動隊列管理器)
strmqtrc(啓動跟蹤)
3、MQSC
MQSC全稱爲MQ Script Command,MQ腳本命令
MQSC用於管理隊列管理器對象,包括隊列管理器自己、通道、隊列、偵聽器和進程定義。
對於Linux,若要執行MQSC,則須要啓動腳本命令控制檯;啓動方式:在shell執行控制命令runmqsc
WebSphere MQ V7.0 的MQSC列表以下所示:
ALTER AUTHINFO
ALTER BUFFPOOL
ALTER CFSTRUCT
ALTER CHANNEL
ALTER LISTENER
ALTER NAMELIST
ALTER PROCESS
ALTER PSID
ALTER QMGR
ALTER 隊列
ALTER SECURITY
ALTER SERVICE
ALTER STGCLASS
ALTER SUB
ALTER TOPIC
ALTER TRACE
ARCHIVE LOG
BACKUP CFSTRUCT
CLEAR QLOCAL
CLEAR TOPICSTR
DEFINE AUTHINFO
DEFINE BUFFPOOL
DEFINE CFSTRUCT
DEFINE CHANNEL
DEFINE LISTENER
DEFINE LOG
DEFINE MAXSMSGS
DEFINE NAMELIST
DEFINE PROCESS
DEFINE PSID
DEFINE QUEUES
DEFINE SERVICE
DEFINE STGCLASS
DEFINE SUB
DEFINE TOPIC
DELETE AUTHINFO
DELETE BUFFPOOL
DELETE CFSTRUCT
DELETE CHANNEL
DELETE LISTENER
DELETE NAMELIST
DELETE PROCESS
DELETE PSID
DELETE QUEUES
DELETE SERVICE
DELETE SUB
DELETE STGCLASS
DELETE TOPIC
DISPLAY ARCHIVE
DISPLAY AUTHINFO
DISPLAY CFSTATUS
DISPLAY CFSTRUCT
DISPLAY CHANNEL
DISPLAY CHINIT
DISPLAY CHSTATUS
DISPLAY CLUSQMGR
DISPLAY CMDSERV
DISPLAY CONN
DISPLAY GROUP
DISPLAY LISTENER
DISPLAY LOG
DISPLAY LSSTATUS
DISPLAY MAXSMSGS
DISPLAY NAMELIST
DISPLAY PROCESS
DISPLAY PUBSUB
DISPLAY QMGR
DISPLAY QMSTATUS
DISPLAY QSTATUS
DISPLAY QUEUE
DISPLAY SBSTATUS
DISPLAY SECURITY
DISPLAY SERVICE
DISPLAY STGCLASS
DISPLAY SUB
DISPLAY SVSTATUS
DISPLAY SYSTEM
DISPLAY THREAD
DISPLAY TOPIC
DISPLAY TPSTATUS
DISPLAY TRACE
DISPLAY USAGE
MOVE QLOCAL
PING CHANNEL
PING QMGR
RECOVER BSDS
RECOVER CFSTRUCT
REFRESH CLUSTER
REFRESH QMGR
REFRESH SECURITY
RESET CHANNEL
RESET CLUSTER
RESET QMGR
RESET QSTATS
RESET TPIPE
RESOLVE CHANNEL
RESOLVE INDOUBT
RESUME QMGR
RVERIFY SECURITY
SET ARCHIVE
SET LOG
SET SYSTEM
START CHANNEL
START CHINIT
START CMDSERV
START LISTENER
START QMGR
START SERVICE
START TRACE
STOP CHANNEL
STOP CHINIT
STOP CMDSERV
STOP CONN
STOP LISTENER
STOP QMGR
STOP SERVICE
STOP TRACE
SUSPEND QMGR
4、PCF
PCF,全稱爲Programmable Command Formats,可編程的命令格式。
WebSphere MQ PCF用於MQ的系統管理編程,應用程序使用PCF實現MQSC的功能,使得MQ管理任務可編寫到應用程序中,PCF 命令和MQSC 命令具備相同的命令集;例如,PCF使得能夠在程序中建立隊列和進程定義和更改隊列管理器。
下面的Java代碼描述MQ客戶機端程序經過PCF更改遠程服務器上因此的隊列的名稱,並打印到控制檯的過程。
Java代碼
public static void main (String [] args){ PCFMessageAgent agent; PCFMessage request; PCFMessage [] responses; String [] names; agent = new PCFMessageAgent ("192.168.222.132",1414,"JAVA.CHANNEL"); System.out.println ("Connected."); // Build the PCF request request = new PCFMessage (CMQCFC.MQCMD_INQUIRE_Q_NAMES); request.addParameter (CMQC.MQCA_Q_NAME, "*"); request.addParameter (CMQC.MQIA_Q_TYPE, CMQC.MQQT_ALL); System.out.print ("Sending PCF request... "); // Use the agent to send the request responses = agent.send (request); System.out.println ("Received reply."); // Extract the MQCACF_Q_NAMES parameter from the response names = (String []) responses [0].getParameterValue (CMQCFC.MQCACF_Q_NAMES); // Display the results System.out.println ("Queue names:"); for (int i = 0; i < names.length; i++) { System.out.println ("\t" + names [i]); } // Disconnect the agent System.out.print ("Disconnecting... "); agent.disconnect (); System.out.println ("Done."); }
MQAI,全稱爲MQ Administration Interface,MQ管理接口
MQAI:除了PCF的系統管理編程接口以外,WebSphere MQ還提供另一種系統管理編程接口,即:MQ管理接口(MQ Administration Interface,簡稱爲MQAI),MQAI是MQ 提供的一種簡化的、實現發送和接收PCF命令消息和回覆消息的接口,MQAI經過使用數據包(Data Bags)來處理對象的屬性,這樣比直接使用PCF更簡單。
MQAI的底層工做機制同PCF同樣,也是經過發送PCF命令消息到MQ命令服務器隊列,從而被命令服務器解釋執行,並等待回覆消息來管理WebSphere MQ,如圖所示:
MQAI是PCF的易用版本。
有關PCF和MQAI的詳細信息,請參考MQ的幫助文檔和IBM工程師編寫的MQ系統管理編程概述一文
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/loulijun/0402_mqsysm/mqsysm.html
5、其餘命令
例如amqsput(向隊列放入消息)、amqsget(從隊列取消息)爲MQ的內置樣本程序。