Chinaunix首页 | 论坛 | 博客
  • 博客访问: 222931
  • 博文数量: 80
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 790
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 14:16
文章分类

全部博文(80)

文章存档

2007年(40)

2006年(40)

我的朋友

分类:

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')

阅读(1325) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~