Author |
Message
|
sebastian |
Posted: Mon Dec 13, 2004 11:50 am Post subject: Why is this trigger not functioning? |
|
|
 Centurion
Joined: 12 Nov 2003 Posts: 110 Location: Philadelphia
|
Dear MQSeries .net:
I am trying to configure a trigger so that when my queue of MQSI.QL.TESTDECK.NEW exceeds a queue depth level of 10, a shell script called test1.sh get executed.
I put 15 messages into the MQSI.QL.TESTDECK.NEW queue, but the test1.sh script never gets executed. I am rereading Chapter 14 of the Application Programming Guide but do not see the problem yet.
MQSeries is at level 5.3 on an HP/UX machine. I have configured the queues using Qpasa.
Any suggestions are appreciated
I have a trigger queue defined as:
DESCR( ) PROCESS(TESTDECK_PROCESS)
BOQNAME( )
INITQ(SYSTEM.DEFAULT.INITIATION.QUEUE)
TRIGDATA( ) CLUSTER( )
CLUSNL( ) QUEUE(MQSI.QL.TESTDECK.NEW)
CRDATE(2004-12-09) CRTIME(10.40.05)
ALTDATE(2004-12-13) ALTTIME(11.18.14)
GET(ENABLED) PUT(ENABLED)
DEFPRTY(0) DEFPSIST(YES)
MAXDEPTH(5000) MAXMSGL(4194304)
BOTHRESH(0) SHARE
DEFSOPT(SHARED) HARDENBO
MSGDLVSQ(PRIORITY) RETINTVL(999999999)
USAGE(NORMAL) NOTRIGGER
TRIGTYPE(DEPTH) TRIGDPTH(10)
TRIGMPRI(0) QDEPTHHI(80)
QDEPTHLO(20) QDPMAXEV(ENABLED)
QDPHIEV(DISABLED) QDPLOEV(DISABLED)
QSVCINT(999999999) QSVCIEV(NONE)
DISTL(NO) NPMCLASS(NORMAL)
DEFTYPE(PREDEFINED) TYPE(QLOCAL)
SCOPE(QMGR) DEFBIND(OPEN)
IPPROCS(0) OPPROCS(0)
CURDEPTH(2)
Default initiation queue
DESCR(MQSeries Default Initiation Queue)
PROCESS( ) BOQNAME( )
INITQ( ) TRIGDATA( )
CLUSTER( ) CLUSNL( )
QUEUE(SYSTEM.DEFAULT.INITIATION.QUEUE)
CRDATE(2003-05-15) CRTIME(10.26.50)
ALTDATE(2003-05-15) ALTTIME(13.44.51)
GET(ENABLED) PUT(ENABLED)
DEFPRTY(0) DEFPSIST(NO)
MAXDEPTH(1000) MAXMSGL(1000)
BOTHRESH(0) SHARE
DEFSOPT(SHARED) HARDENBO
MSGDLVSQ(PRIORITY) RETINTVL(999999999)
USAGE(NORMAL) NOTRIGGER
TRIGTYPE(NONE) TRIGDPTH(1)
TRIGMPRI(0) QDEPTHHI(80)
QDEPTHLO(20) QDPMAXEV(ENABLED)
QDPHIEV(DISABLED) QDPLOEV(DISABLED)
QSVCINT(999999999) QSVCIEV(NONE)
DISTL(NO) NPMCLASS(NORMAL)
DEFTYPE(PREDEFINED) TYPE(QLOCAL)
SCOPE(QMGR) DEFBIND(OPEN)
IPPROCS(1) OPPROCS(0)
CURDEPTH(0)
Process
DESCR(Empties the testdeck queue and ftp the messages)
APPLICID(/var/mqm/startup/testdeck/test1.sh)
USERDATA( ) ENVRDATA(&)
PROCESS(TESTDECK_PROCESS) ALTDATE(2004-12-13)
ALTTIME(10.21.12) APPLTYPE(UNIX) _________________ sebastian signature |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Dec 13, 2004 11:52 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Why is triggering disabled? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
vennela |
Posted: Mon Dec 13, 2004 12:42 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Also, if the trigtype is DEPTH, whenevr the app is triggered, the queue's trigger attribute will be set to NOTRIGGER. It is the duty of the application to reset the attribute back to TRIGGER.
I think this is where Jeff is trying to drive you.
Also:
http://www.mqseries.net/phpBB2/viewtopic.php?t=12988 |
|
Back to top |
|
 |
JT |
Posted: Mon Dec 13, 2004 12:43 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
I am trying to configure a trigger so that when my queue of MQSI.QL.TESTDECK.NEW exceeds a queue depth level of 10...... |
Actually, based on your queue definition, TRIGDPTH(10), the trigger event will occur when the 10th message arrives on the queue.
When triggering by depth, once the trigger condition is satisfied, the queue manager creates a trigger message and then disables triggering on that queue by changing the Trigger Control attribute to a value of NOTRIGGER. That may be the reason you're seeing the NOTRIGGER value. It may be that the trigger event did occur and attempted to start your script, but you're not seeing the end result of the script due to a failure with the script.
Verify that the script can be executed and that the id has the proper permissions for executing the script. |
|
Back to top |
|
 |
WannaBeInAParker |
Posted: Mon Dec 13, 2004 5:31 pm Post subject: |
|
|
Voyager
Joined: 09 Dec 2003 Posts: 81
|
If using the standard trigger monitor process runmqtrm, I find it helpful to start it in the foreground of a terminal. As runmqtrm attempts to trigger the process, you should see the trigger message being written to standard out. Also, any stdout from your script can also be seen.
Are there failed trigger messages on the DLQ?
Working with triggered scripts can be a challenge as the environment is not set up the same as it may be when you run the script from the command line (similar to cron). A common mistake is to use ./ when starting an application from the triggered script. You are assuming that the CWD of the script is that of the started program, which may not be the case. The CWD usually is the directory where runmqtrm was started from. You may want to fully qualify everything.
Just some things I have run into in the past, hope it helps. _________________ -WannaBe- |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Dec 13, 2004 9:16 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
As well if you are missing a number of parameters in the shell when you start the trigger monitor the java program you are trying to trigger may be hanging in the JVM.
Do a search of the site for the parms.
Enjoy  |
|
Back to top |
|
 |
|