`

配置IBM WEBSPHERE MQ触发器

阅读更多

        一般设置MQ触发器的目的有两种,一是自动启动发送端通道,二是监视队列消息,一旦发现新的消息,则利用触发器启动相应的处理进程。

        如果是利用触发器自动启动发送端通道,使用方法一,如果是利用触发器启动用户进程,使用方法二。

方法一:

        1.在传输通道上设置触发器,打开触发器控制,类型为"第一个"

        2.初始队列为SYSTEM.CHANNEL.INITQ,该队列为MQ专用的通道启动队列,不需要手工启动其触发监视器

        3.触发器数据为发送端通道名称,例如01.SENDER


        4.在发送端通道不活动的情况下,在传输通道放入消息测试,会发现消息依然能正常发送到远程队列对应的本地队列。

 

方法二:

        1.创建启动进入队列管理器QmgrName

crtmqm QmgrName
strmqm QmgrName
runmqsc QmgrName

        2.创建一个触发启动队列

 

DEFINE QLOCAL('JAVA.TRIGGER.QUEUE') REPLACE +
DESCR('Application queue to test triggering') +
SHARE +
TRIGGER +
TRIGTYPE (EVERY) +
INITQ('JAVA.INIT.QUEUE') +
PROCESS('JAVA.PROCESS')

        3.定义进程 所谓进程就是触发器要触发的程序。本例中进程名称为:"Notepad.exe"

DEFINE PROCESS('JAVA.PROCESS') REPLACE +
DESCR('Process to test triggering') +
APPLICID('Notepad.exe')

        4.在队列上设置触发器,一般为本地队列,打开触发器控制,类型根据自己的需要选择"第一个","每个" 还是 "根据消息数量"。

DEFINE QLOCAL('JAVA.INIT.QUEUE') REPLACE +
DESCR('Initiation queue to test triggering')

        5.启动触发监视器

runmqtrm -m QmgrName -q JAVA.INIT.QUEUE

* Note: It must be started in the directory where JavaTrigger.class 

resides so that JavaTrigger.class can be loaded from the 

current directory and resolved by "." in the classpath. 

If your java code is included in a package, then the jar may 

be added to the classpath and the location where runmqtrm is 

started does not matter.

        6.在本地队列放入消息进行测试。

        Put a message on JAVA.TRIGGER.QUEUE. The trigger information along 

with the first 20 characters of the message is displayed in the 

window where runmqtrm is active.

amqsput JAVA.TRIGGER.QUEUE QmgrName

 

        每放一条消息,都会打开一次Notepad.exe。

        方法二也可以完成方法一的工作,只需要将进程定义中的应用程序标识改为 runmqchl -m QAGWY -c 01.SENDER就可以了,但MQ中提供了专用的通道启动队列,而该队列不需要手工启动触发监视器,因此方法一比方法二的步骤要少,配置也简单,所以在利用触发器自动启动发送端通道的情况下,还是方法一更好。

        以上测试在IBM WEBSPHERE MQ7.1测试通过。

 

参考文章:http://blog.csdn.net/firefight/article/details/1886255

http://www.cnblogs.com/windows/archive/2012/09/25/2701609.html

  • 大小: 55.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics