一般设置MQ触发器的目的有两种, 一是自动启动发送端通道, 二是监视队列消息, 一旦发现新的消息, 则利用触发器启动相应的处理进程 如果是利用触发器自动启动发送端通道, 使用方法1, 如果是利用触发器启动用户进程, 使用方法2 方法1 A 在传输通道上设置触发器, 打开触发器控制, 类型为"第一个" B 初始队列为SYSTEM.CHANNEL.INITQ, 该队列为MQ专用的通道启动队列, 不需要手工启动其触发监视器 C 触发器数据为发送端通道名称, 例如 QAG.50 D 在发送端通道不活动的情况下, 在传输通道放入消息测试 方法2 A 创建一个触发启动队列, 其模板为SYSTEM.DEFAULT.INITIATION.QUEUE
runmqsc define qlocal (MQ.TRIGER.INIQUEUE) like (SYSTEM.DEFAULT.INITIATION.QUEUE) B 定义进程 所谓进程就是触发器要触发的程序。本例中进程名称:TRIGER.PROGRAM 应用程序标识为:"Notepad.exe" C 在队列上设置触发器, 一般为本地队列, 打开触发器控制, 类型根据自己的需要选择"第一个", "每个" 还是 "根据消息数量" D 初始队列选择A中创建的触发启动队列, 例如MQ.TRIGER.INIQUEUE, 进程名称设置为B中定义的进程名称, 例如TRIGER.PROGRAM E 启动触发监视器 runmqtrm -m QAGWY -q MQ.TRIGER.INIQUEUE F 在本地队列放入消息进行测试 方法2也可以完成方法1的工作, 只需要将进程定义中的应用程序标识改为 runmqchl -m QAGWY -c QAG.50 就可以了, 但MQ中提供了专用的通道启动队列, 而该队列不需要手工启动触发监视器, 因此方法1比方法2的步骤要少, 配置也简单, 所以在利用触发器自动启动发送端通道的情况下, 还是方法1更好. 以上测试在IBM WEBSPHERE MQ6.0测试通过.
[ 本帖最后由 luckyleo 于 2008-10-14 11:28 编辑 ] |
|