Websphere MQ触发器

本文详细介绍了WebSphere MQ的队列触发机制,包括设置触发队列、定义触发进程、启动队列和监控器的配置。触发类型分为EVERY、FIRST和DEPTH,适用于不同场景的消息处理需求。通过实例演示了如何自动启动发送端通道,以及各种触发类型的适用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.队列触发机制:

设置一个本地队列(模版为SYSTEM.DEFAULT.INITIATION.QUEUE)为触发队列,在有消息到达时,事件被触发,这时队列管理器会发一个触发消息到初始化队列。该触发消息包括了应用程序名(进程定义process),用于处理消息。然后触发监控器从初始化队列中取出消息,启动应用程序,如A,然后A打开本地队列,并处理队列中的消息。


以下文字转载自http://www.cnblogs.com/windows/archive/2011/03/23/1992602.html

假定定义好了队列管理器:MQ manager:  MQ.ORANGE,  本地队列MQ queue:  QU.LOCAL;

(1)在进程里定义一个触发进程(例如 TrigGetMessage),在“应用程序标识”处输入应用程序路径(例如"E:\Release\GetMessge.exe");

(2)建立一个启动队列 QU.INI。启动队列也是本地队列,类型为 WebSphere MQ Default Initiation Queue;将触发器控制设置为“打开”状态,根据应用需要选择相应的触发逻辑条件(例如,“第一个”、“每个”,“深度”);

(3)打开本地队列QU.LOCAL, 选择触发,在进程名称处输入上面建好的进程名 TrigGetMessage,在初始队列处输入:QU.INI;将触发器控制设置为“打开”状态,根据应用需要选择相应的触发逻辑条件(例如,“第一个”、“每个”,“深度”);

(4)前三部分属于配置准备,现在要打开触发监控器,在cmd命令行里输入MQSC命令:runmqtrm -m MQ.ORANGE    -q  QU.INI

(5)现在可以根据触发条件测试。


2.自动启动发送端通道机制。

A 在传输队列上设置触发器, 打开触发器控制, 类型为"第一个"。

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

C 触发器数据为发送端通道名称, 例如 QM1.TO.QM2。

D 在发送端通道不活动(状态为stop时,不会启动)的情况下, 在传输通道放入消息测试。

这是就能自动启动发送端通道。


触发类型

EVERY:当本地队列中每接收到一个消息时,都将产生触发消息。如果应用程序仅处理一个消息就结束时,可采用这种触发类型。

FIRST:当本地队列中的消息从0变为1才会发生触发事件。如果当队列中的一个消息到达时启动应用程序,直到处理完所有消息就结束,则采用这种触发类型。

DEPTH:当应用队列中的消息数目和TriggerDepth的属性值相同时,才会产生触发事件。当一系列请求的恢复都收到时,才启动应用程序,则采用这种触发类型。

当采用depth触发时,产生触发消息后,队列将被修改成非触发方式,如果需要再次触发,将要重新设置成允许触发。

队列的TriggerDepth属性表示引起depth触发事件发生时,队列中的消息数目。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值