结合上节使用到的MQ命令,本节系统阐述MQ的命令。
?
一、MQ命令集合
? ? MQ命令集合有三种命令:控制命令、MQSC(MQ脚本命令)和PCF(Programmable Command Formats,可编程的命令格式)。
?
二、控制命令
? ? 控制命令:用于管理 WebSphere MQ的系统配置,包括队列管理器、侦听器、通道、日志的管理。
? ? 例如:创建队列管理器(crtmqm),启动队列管理器(strmqm),启动用于运行队列管理器MQSC命令的控制台(runmqsc)、运行通道(runmqchl)
? ? 对于Linux,WebSphere MQ 控制命令都从 shell输入和执行。
?
控制命令列表如下所示:
addmqinf(添加配置信息)
amqccert(检查证书链)
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(启动跟踪)
?
三、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
?
四、PCF
? ? PCF,全称为Programmable Command Formats,可编程的命令格式。
? ? WebSphere MQ PCF用于MQ的系统管理编程,应用程序使用PCF实现MQSC的功能,使得MQ管理任务可编写到应用程序中,PCF 命令和MQSC 命令具有相同的命令集;例如,PCF使得可以在程序中创建队列和进程定义和更改队列管理器。
? ? 下面的Java代码描述MQ客户机端程序通过PCF更改远程服务器上所以的队列的名称,并打印到控制台的过程。
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
?
五、其他命令
例如amqsput(向队列放入消息)、amqsget(从队列取消息)为MQ的内置样本程序。
?
? MQ V7.0 在线帮助文档
? MQ V7.5 在线帮助文档