QMGR 产生 trigger message, 并且将它放入 INITQ, trigger monitor时刻在运行着,当它发现INITQ里面有消息后就会去读取里面的消息并且分析它, 然后就启动了这支trigger的程式并将trigger message作为变量传过去,如果这支程式因为某种原因不能启动则 INITQ就将trigger message放入到dead queue里面去,
trigger message里面包括application queue, process, qmgrname的信息,这里需要注意的是application queue里的triggerdata 这个可以将通道的名称作为值,即可用了触发通道了
下面记录一个使用remote queue结合trigger 通道的一个例子:
DEFINE QREMOTE ('APS04.REPLY') DESCR(' ') PUT(ENABLED) DEFPRTY(0) DEFPSIST(NO) SCOPE(QMGR) XMITQ('TO.KPBAPS04') RNAME('CPCSPLCMI') RQMNAME('KPBAPS01') CLUSTER(' ') CLUSNL(' ') DEFBIND(OPEN) REPLACE
DEFINE QLOCAL ('TO.KPBAPS04') USAGE(XMITQ) TRIGGER TRIGTYPE(FIRST) TRIGDPTH(1) TRIGMPRI(0) TRIGDATA('KPMAPS02.TO.KPBAPS04') INITQ('SYSTEM.CHANNEL.INITQ') REPLACE
DEFINE CHANNEL ('KPMAPS02.TO.KPBAPS04') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('10.10.2.24(62006)') XMITQ('TO.KPMAPS01') REPLACE
DEFINE CHANNEL ('KPMAPS02.TO.KPBAPS04') CHLTYPE(RCVR) TRPTYPE(TCP) REPLACE
transmit queue TO.KPBAPS04的TRIGDATA 填入的是一个通道的名称,而这个通道则是本地QMGR和远端QMGR之间传输消息的通道
阅读(1920) | 评论(0) | 转发(0) |