分类:
2006-07-07 13:45:29
管理“队列管理器”
共有三种命令:Control commands; MQSC commands; PCF commands.
1. Control commands
1)Queue manager commands
每个结点都应改有一个默认队列管理器
crtmqm -q MQM_NAME
每个队列管理器都应改有一个死信队列,以防止信息不能传递时阻塞通道和传输队列。
crtmqm -u dead-letter_queue MQM_NAME
每个队列管理器都应改有一个传输队列
crtmqm -d 用于指定传输队列,但是并没有创建,仍需要显式创建。
创建多个队列管理器时,要注意内存冲突
These shared memory problems do not occur if the different logical volumes
are created such that they have different minor device numbers.
EXAMPLE:
crtmqm -q -d MY.DEFAULT.XMIT.QUEUE -u SYSTEM.DEAD.LETTER.QUEUE SATURN.QUEUE.MANAGER
NOTE: 传输队列没有真正建立
备份队列管理器的配置文件
amqmdain
UNIX下面更改文件mqs.ini
关闭队列管理器
endmqm -c MQM_NAME (同 endmqm MQM_NAME)
endmqm -w MQM_NAME (等待所有的应用都停止了,队列管理器才停止)
endmqm -i MQM_NAME (立即关闭队列管理器)
endmqm -p MQM_NAME (强制关闭队列管理器,慎用)
删除队列管理器
dltmqm MQM_NAME
2)Channel commands
3)Utility commands
2. 使用MQSC
有三种模式来运行runmqsc: Verification mode; Direct mode; Indirect mode.
使用 <, > 对输入输出重定向
Example:c:>runmqsc < define.mq
1) 定义
DEFINE QLOCAL (ORANGE.LOCAL.QUEUE);
当在一行里面,命令过长时,
使用(-)表示命令从下一行的开始处链接
使用(+)表示命令从下一行的第一个非空字节开始
2) 验证命令,但是不执行。
runmqsc -v < define.mq > myprog.out
3) 如果是远程队列管理器,则
runmqsc -w MQM_NAME
4) 列出队列管理器的属性
display QMGR
5) 更改队列管理器属性
ALTER QMGR DEADQ (ANOTHERDLQ) INHIBTEV (ENABLED)
6) 显示对象属性
display queue(ORANGE.LOCAL.QUEUE) +
MAXDEPTH +
MAXMSGL +
CURDEPTH;
7) 拷贝本地队列
define qlocal (MAGENTA.QUEUE) like (ORANGE.LOCAL.QUEUE)
8) 更改队列属性
a) ALTER QLOCAL (ORANGE.LOCAL.QUEUE) MAXMSGL(10000)
b) DEFINE QLOCAL(ORANGE.LOCAL.QUEUE) MAXMSGL(10000) REPLACE
NOTE: b方法重新定义了队列,这样队列的其他属性就变成默认队列的属性了.
9) 清空队列
CLEAR QLOCAL (MAGENTA.QUEUE)
10) 删除队列
只有当队列中不含未完成提交的信息时,才能删除. 如果队列中含有已经完成提交的信息, 删除时必需添加PURGE参数
DELETE QLOCAL (PINK.QUEUE) PURGE
添加NOPURGE参数,可以防止删除含有信息的队列.
12) 定义别名队列
DEFINE QALIAS (MY.ALIAS.QUEUE) TARGQ (YELLOW.QUEUE)
ALTER QALIAS (MY.ALIAS.QUEUE) TARGQ (MAGENTA.QUEUE) FORCE
NOTE: 使用FORCE是指,即使队列正在使用中,也能够改变.
13) 定义模板队列
模板队列和本地队列的区别是, 模板队列可以指定由其产生的动态队列的生命期.
DEFINE QMODEL (GREEN.MODEL.QUEUE) DEFTYPE(PERMDYN)
14) 使用服务对象(service object)
a) server服务对象, 一个队列管理器只能有一个server服务对象在运行. 使用 display svstatus来监控他的状态.
b) command服务对象, 可以有多个同时运行, 但是不能监控状态.
3. PCF commands(Programmable Command Format)
4. 其他方法:
. The WebSphere MQ Explorer
. The Windows Default Configuration application (WebSphere MQ for Windows only)
. Use of the Microsoft Cluster Service (MSCS) (WebSphere MQ for Windows only)
5. 用于触发器的对象管理
1) 定义用于触发器的应用队列
DEFINE QLOCAL(MOTOR.INSURANCE.QUEUE) +
PROCESS(MOTOR.INSURANCE.QUOTE.PROCESS) +
MAXMSGL(2000) +
DEFPSIST(YES) +
INITQ(MOTOR.INS.INIT.QUEUE) +
TRIGGER +
TRIGTYPE(DEPTH) +
TRIGDPTH(2) +
TRIGMPRI(5)
2) 定义初始化队列
DEFINE QLOCAL(MOTOR.INS.INIT.QUEUE) +
GET(ENABLED) +
NOSHARE +
NOTRIGGER +
MAXMSGL(2000) +
MAXDEPTH(1000)
3) 定义过程
DEFINE PROCESS (MOTOR.INSURANCE.QUOTE.PROCESS) +
DESCR('Insurance request message processing') +
APPLICID('/home/sean/HP_UX/test/mq/2session/mqgeta') +
USERDATA('open, close, 235')