欢迎来到天天文库
浏览记录
ID:6046890
大小:156.50 KB
页数:6页
时间:2018-01-01
《第 2 部分6:安装和配置》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、触发当有消息发送到应用程序时,应用程序不必运行——它可以稍后启动。WebSphereMQ提供了一个功能,允许应用程序在有消息可供检索时自动启动。该功能称为触发。概述让我们通过研究如图14所示的示例并理解其流程来开始讨论触发。图4.触发流程其中的操作顺序为:1.ApplicationA在启用了触发的应用程序队列上放置一条消息。2.如果满足触发条件,则发生触发事件,队列管理器检查该应用程序队列所引用的流程对象。流程对象确定要启动的应用程序,在此例中为ApplicationB。3.队列管理器创建一个触发器消息,其字段包含从该流
2、程对象的某些属性复制的信息和该应用程序队列。队列管理器将触发器消息放在一个启动队列上。4.一个称为触发器监视器的长期运行程序获得触发器消息,检查其内容,然后……5....启动ApplicationB,并将整个触发器消息作为参数来传递。6.ApplicationB打开应用程序队列并从中获得消息。触发器监视器可以在它自己的执行单元中同步启动该应用程序,或者作为一个单独执行单元来异步启动它。触发器监视器由WebSphereMQ提供,但用户也可以编写他们自己的触发器监视器。回页首控制触发的队列属性要定义用于触发的应用程序队列,D
3、EFINEQLOCAL命令必须包含以下参数:TRIGGER启用触发。PROCESS(string)流程对象名称,用于确定可提供应用程序队列的应用程序。INITQ(string)发起队列的名称。还可以指定控制触发的其他参数。分别是:TRIGMPRI(integer)触发器的阈值消息优先级。在决定某个触发器事件是否应该发生时,队列管理器忽略其优先级低于此阈值的消息。TRIGTYPE(triggertype)·当队列从空队列变为包含一个消息时,触发器类型FIRST导致触发器事件发生。·当队列上的消息数量达到TRIGDPTH参数
4、所指示的值时,触发器类型DEPTH导致触发器事件发生。当由depth触发时,队列管理器通过在创建触发器消息后将应用程序队列设置为NOTRIGGER来禁用触发。通过使用MQSET调用来重新启用触发是应用程序的职责。·触发器类型NONE指示不发生任何触发器事件。·触发器类型EVERY导致为队列上放置的每条消息发生一个触发器事件。TRIGDPTH(integer)为TRIGTYPE(DEPTH)引发触发器事件前队列上必须有的消息数量。TRIGDATA(string)复制到触发器消息中的数据。回页首流程属性流程对象使用MQSC命
5、令DEFINEPROCESS来定义。其同义词为DEFPRO。它有一个关键字APPLICID,用于指定要启动的应用程序。以下命令:DEFINEPROCESS(MY_PROCESS)APPLICID('C:MyAppmyprogram.exe')定义一个名为MY_PROCESS的流程,此流程指向APPLICID中指定的程序。回页首触发器事件的条件必须满足以下列出的所有条件才会发生触发器事件:·在队列上放置一条消息。·消息优先级不低于队列的TRIGMPRI属性中指定的值。·先前队列上的消息数量对该触发器类型来说是正确的。·
6、队列尚未打开以接受输入(仅针对TRIGTYPE(FIRST)和TRIGTYPE(DEPTH))。·队列启用了Get请求。·存在一个流程对象。·启动队列存在并且启用了Put和Get请求。·触发器监视器已将启动队列打开以接受输入。·队列被定义为TRIGGER。·队列未被定义为TRIGTYPE(NONE)。回页首触发器监视器WebSphereMQ提供了几个触发器监视器。触发器监视器runmqtrm由大多数WebSphereMQ队列管理器使用。不带参数执行的runmqtrm控制命令对缺省队列管理器启动触发器监视器,并使用缺省启动
7、队列(SYSTEM.DEFAULT.INITIATION.QUEUE)。它还提供了用于指定队列管理器和启动队列的参数。回页首触发器监视器错误产生与触发器监视器操作相关的消息的原因有两个:·报告正常活动,例如在触发器监视器启动和结束的时候。这些消息通常不需要任何用户操作。·报告异常条件,例如在触发器监视器未能打开启动队列或在它未能启动指定应用程序的时候。这些消息通常指示需要用户操作来纠正相关条件。触发器监视器消息可写到标准输出设备,或写到具有更多信息的错误日志。回页首实现触发(动手练习)在本部分中,您将设置并测试一个简单触
8、发应用程序。您还将使用一个请求-应答场景,并了解如何使用应答队列。您将用于实现触发的两个示例应用程序为amqsreq和amqsech。amqsreq示例程序从命令提示符进行调用,完全与amqsput一样,只不过要接受第三个输入参数。该程序从标准输入设备读取文本行,将它们转换为请求消息,并将消息放在指定的队列上。每条请
此文档下载收益归作者所有