What is
Triggering:
Triggering is a
mechanism that is used by websphere MQ to automatically start applications or
channels only when there are trigger messages arrived on queue. It can can save
system resources because an application doesn't need to be running continuously
and sitting in a long running mqget call waiting for messages to appear on its
input queue.
Why we go
for Triggering:
In order to automate the channel and application we go for
triggering.
·
In general
we need to start the channel manually. I dont want manual intervention to start
the channel and need not be continuously running, no need to waste the cpu
utilization for the channel to be running if no messages or flowing through
that channel.
·
Application
don't need to be connected continuously even if messages are not coming to the
queue. So to avoid such scenarios we go for application triggering.
Types of
triggering:
There are three types of
trigger
1.
Channel
triggering
2.
Application
Triggering
3.
Client
Triggering
what is
TRIGTYPE and what are the different values in TRIGTYPE?
TrigType is an attribute under transmission queue or local queue
to enable triggering mechanism. There are three different values available for
this attribute.
1.
FIRST: for
the very first message only the trigger fires and trigger message will be
generated by the queue manager.
2.
DEPTH: For
depth after the depth condition satisfied then only the trigger fires.
3.
EVERY: For
every message trigger fires and queue manager will generate the trigger
message.
Trigger Message:
Whenever
Trigger event generated (when certain
conditions are met) Trigger message will generate and this trigger message hold
by initiation Queue. This trigger message is generated by the queue manager. If
in case the trigger fails the message will go to dead latter queue.
Channel Triggering: When certain conditions are satisfied
on transmition queue(xmitq) the trigger message will be generated by the queue
manager and will plays this message on to the initiation queueu(initq), the
channel initiator will be continuously monitoring this initq once trigger
message generated it will intimate to the sendermca to pic the messages from
xmitq and start the channel.
Syntax for
channel triggering:
ALTER
QLOCAL(XMITQNAME) TRIGGER TRIGTYPE (FIRST /EVERY/DEPTH) TRIGDPTH(1)TRIGDATA(SENDER
CHANNELNAME) INITQ(SYSTEM.CHANNEL.INITQ)
Note: we need to mention trigdpth value when ever we mention trig type(depth) other wise we should keep the trig depth as default.
Application Triggering: When ever certain conditions are met on the local queue the trigger message will be generated by the queue manager which will keeps on initiation queue, trigger monitor is the program which will continuously monitor the initation queue for trigger message which in turn starts an application by reading the application details from the process definition.
Syntax for application triggering:
ALTER
QLOCAL(LOCAL QNAME) TRIGGER TRIGTYPE(FIRST/EVER/DEPTH) TRIGDEPTH(5) INITQ(SYSTEM.DEFAULT.INITIATION.QUEUE)
PROCESS(PROCESS NAME)
DEFINE PROCESS(PROCESS NAME) APPLICID('C:\APPLICATION.EXE') APPLTYPE(WINDOWS OR UNIX)
Client
Triggering: If you want to run a script on a remote machine when the queue is
on the server machine , for this we have one solution here is client
triggering. These means that you run a client trigger monitor on the remote
machine. when something lands on the
queue on the server the client trigger monitor will run the script on the
remote machine.
Setup:
On server
1) Create a
new client channel with chltype(svrconn)
2) Create a
new INITQ
3) Create a
process with applicid as it would be if you run the command on remote machine
4) Create a
new queue with the new INITQ and Process.
Client side:
1)Set the MQ
SERVER environmental variable
Syntax:
MQSERVER ='CLIENT CHANNEL/TCP/IPADDRESS(PORT)
2) Check that
the remote machine can talk to the server.
3) start the
client trigger monitor.
Syntax:
RUNMQTMC -M QMANAGERNAME -Q INITQNAME
No comments:
Post a Comment