ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ API Support » "Not a valid trigger message"

Post new topic  Reply to topic Goto page 1, 2  Next
 "Not a valid trigger message" « View previous topic :: View next topic » 
Author Message
MikeClark
PostPosted: Wed Feb 23, 2005 3:23 pm    Post subject: "Not a valid trigger message" Reply with quote

Apprentice

Joined: 17 Feb 2004
Posts: 27
Location: Olympia, WA

I've been getting this message upon triggering, and there's not enough information I can find to determine what is actually going wrong.

The application to be run upon trigger occuring is never started. There are no Event messages being thrown. There is nothing relevant in AMQERROR1.log. Upon the message arriving, this message pops off, and the message gets thrown into the DLQ. That's all I'm seeing.

Anyone have an idea what might be going on? Or can point me to any other places to look for ideas?

Thanks!

Process and triggered queue definitions follow:

1 : DISPLAY PROCESS(OFM.TQM.AFRSEDIT.RESPONSE.PROCESS)
AMQ8407: Display Process details.
DESCR(Starts up the AFRSResponder)
APPLICID(c:\program files\afrsresponder\afrsresponder.exe)
USERDATA(Server1;platform_subseqation_dv;roninr;xyzabc)
ENVRDATA( )
PROCESS(OFM.TQM.AFRSEDIT.RESPONSE.PROCESS)
ALTDATE(2005-02-23) ALTTIME(13.51.46)
APPLTYPE(WINDOWSNT)

2 : DISPLAY QLOCAL(OFM.TQM.AFRSEDIT.REPLY.QL)
AMQ8409: Display Queue details.
DESCR(WebSphere MQ Default Local Queue)
PROCESS(OFM.TQM.AFRSEDIT.RESPONSE.PROCESS)
BOQNAME( )
INITQ(SYSTEM.DEFAULT.INITIATION.QUEUE)
TRIGDATA( ) CLUSTER( )
CLUSNL( ) QUEUE(OFM.TQM.AFRSEDIT.REPLY.QL)
CRDATE(2004-08-13) CRTIME(12.34.52)
ALTDATE(2005-02-23) ALTTIME(13.51.57)
GET(ENABLED) PUT(ENABLED)
DEFPRTY(0) DEFPSIST(YES)
MAXDEPTH(5000) MAXMSGL(64000000)
BOTHRESH(0) SHARE
DEFSOPT(SHARED) HARDENBO
MSGDLVSQ(PRIORITY) RETINTVL(999999999)
USAGE(NORMAL) TRIGGER
TRIGTYPE(FIRST) TRIGDPTH(1)
TRIGMPRI(0) QDEPTHHI(80)
QDEPTHLO(20) QDPMAXEV(ENABLED)
QDPHIEV(DISABLED) QDPLOEV(DISABLED)
QSVCINT(999999999) QSVCIEV(NONE)
DISTL(NO) DEFTYPE(PREDEFINED)
TYPE(QLOCAL) SCOPE(QMGR)
DEFBIND(OPEN) IPPROCS(1)
OPPROCS(0) CURDEPTH(0)
_________________
"...a long habit of not thinking a thing wrong, gives it a superficial appearance of being right..." [Tom Paine]
Back to top
View user's profile Send private message Visit poster's website
EddieA
PostPosted: Wed Feb 23, 2005 3:40 pm    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

Have you tried running the Trigger Monitor in a window, instead of the background. That way you might be able to see what is causing this.

Cheers,
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
MikeClark
PostPosted: Wed Feb 23, 2005 3:42 pm    Post subject: Reply with quote

Apprentice

Joined: 17 Feb 2004
Posts: 27
Location: Olympia, WA

Oh, yes. It is very uninformative. Just "Not a valid trigger message" and not one thing more. Maddening.
_________________
"...a long habit of not thinking a thing wrong, gives it a superficial appearance of being right..." [Tom Paine]
Back to top
View user's profile Send private message Visit poster's website
JT
PostPosted: Wed Feb 23, 2005 4:44 pm    Post subject: Reply with quote

Padawan

Joined: 27 Mar 2003
Posts: 1564
Location: Hartford, CT.

Mike,

What queue is monitored by the trigger monitor? Based on the IPPROCS value, it looks like it's your local triggered queue, OFM.TQM.AFRSEDIT.REPLY.QL, and not the SYSTEM.DEFAULT.INITIATION.QUEUE ?
Back to top
View user's profile Send private message
MikeClark
PostPosted: Wed Feb 23, 2005 5:00 pm    Post subject: Reply with quote

Apprentice

Joined: 17 Feb 2004
Posts: 27
Location: Olympia, WA

Sorry, but you've lost me. IPPROCS is "1"... What does this have to do with the queue the trigger monitor is monitoring?

To repeat, the definition of the qlocal says the process and initq are:
PROCESS(OFM.TQM.AFRSEDIT.RESPONSE.PROCESS)
INITQ(SYSTEM.DEFAULT.INITIATION.QUEUE)

which appear to be correct...
_________________
"...a long habit of not thinking a thing wrong, gives it a superficial appearance of being right..." [Tom Paine]
Back to top
View user's profile Send private message Visit poster's website
clindsey
PostPosted: Wed Feb 23, 2005 5:43 pm    Post subject: Reply with quote

Knight

Joined: 12 Jul 2002
Posts: 586
Location: Dallas, Tx

If you are starting the trigger monitor from a command prompt, the -q parm should be SYSTEM.DEFAULT.INITIATION.QUEUE and not your local queue. If you defined the trigger monitor via MQ Services gui, put SYSTEM.DEFAULT.INITIATION.QUEUE in the queue name field, not your local queue. That is what JT was saying.

Charlie
Back to top
View user's profile Send private message
kevinf2349
PostPosted: Wed Feb 23, 2005 7:08 pm    Post subject: Reply with quote

Grand Master

Joined: 28 Feb 2003
Posts: 1311
Location: USA

Mike
Quote:
Sorry, but you've lost me. IPPROCS is "1"... What does this have to do with the queue the trigger monitor is monitoring?


I believe that what he means is that because IPPROCS is 1 it would suggest that the queue is open for input by something...possibly the trigger monitor...this is incorrect...you monitor the initiation queue. In any case even if you are not monitoring the OFM.TQM.AFRSEDIT.REPLY.QL queue then as something has the queue open for input and no trigger message will be generated.

From the APG chapter 14

Quote:
For triggering of type FIRST or DEPTH, no program has the application queue open for removing messages (that is, the OpenInputCount local queue attribute is zero).


Hope this helps
Back to top
View user's profile Send private message
JT
PostPosted: Wed Feb 23, 2005 7:54 pm    Post subject: Reply with quote

Padawan

Joined: 27 Mar 2003
Posts: 1564
Location: Hartford, CT.

MikeClark wrote:
Sorry, but you've lost me. IPPROCS is "1"... What does this have to do with the queue the trigger monitor is monitoring?

As Kevin stated, something has your local queue open for input. If it's not the application, then it's probably the Trigger Monitor. Putting a message to a local queue while it's being examined by the Trigger Monitor will result in the 'Not a valid trigger message', as the message that was put to the local queue more than likely doesn't conform to the MQTM strcuture.
Back to top
View user's profile Send private message
Nigelg
PostPosted: Thu Feb 24, 2005 3:38 am    Post subject: Reply with quote

Grand Master

Joined: 02 Aug 2004
Posts: 1046

The error msg is produced because the msg the trigger monitor has read from the queue is not a trigger msg, for one of 3 reasons:
1. It is the wrong length
2. The eyecatcher, the first 4 bytes, is not "TM "
3. The version number, the next 4 bytes, is not 1

This would be the case if the trigger monitor was reading the local queue, not the initiation queue.
Is this the case? What init queue is the trigger monitor reading?
JT has asked this twice without a reply.

Do you have the browse output of the msg in the DLQ?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Thu Feb 24, 2005 6:44 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Basically, every one else is asking if you actually understand triggering - because the error your getting only happens when someone doesn't understand triggering.

Here's the basics of triggering, in a nutshell. Triggering requires two queues, a trigger monitor, and a process definition to function. The first queue that is needed is the application queue - the queue to be processed by the application that is going to be triggered.

The second queue is the INITIATION queue. This is the queue that the Trigger Monitor processes. Applications do not write to or read from this queue.

When a message is placed on the Application queue (and certain conditions have been met), then the MQ system will write a message to the Initiation queue. That message will contain an MQTM structure, which includes all of the information from the Process Definition defined on the application queue, as well as the name of the application queue itself.

The trigger monitor reads this trigger message, and launches the process in the process definition. It also passes an MQTMC2 structure to the application on it's command line.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
MikeClark
PostPosted: Thu Feb 24, 2005 9:52 am    Post subject: Reply with quote

Apprentice

Joined: 17 Feb 2004
Posts: 27
Location: Olympia, WA

Quote:
Basically, every one else is asking if you actually understand triggering - because the error your getting only happens when someone doesn't understand triggering.


I freely admit I may not understand triggering. Your explanation clarifies a few points I was cloudy on, for which I thank you. However, and in answer to JT's question, I started the trigger monitor without specifying an initiation queue, thusly:

runmqtrm -m <qmgrname>

Although MQ does seem to support doing this, is it a mistake nevertheless?

In response to clindsey, who wrote:

Quote:
If you defined the trigger monitor via MQ Services gui, put SYSTEM.DEFAULT.INITIATION.QUEUE in the queue name field, not your local queue. That is what JT was saying.


As you can see from the definitions in the original posting that the INITQ is specified as the SYSTEM.DEFAULT.INITIATION.QUEUE.

In answer to Nigelg, who asked if I have the browse output of the message in the DLQ, the answer is Yes. Assuming that the tab "Dead-Letter Header" is of interest in this, it shows the Reason: "MQFB_TM_ERROR". I don't find this message in the Messages manual, nor any other in my possession, so I don't know its significance in context with the problem I'm having.
_________________
"...a long habit of not thinking a thing wrong, gives it a superficial appearance of being right..." [Tom Paine]
Back to top
View user's profile Send private message Visit poster's website
JT
PostPosted: Thu Feb 24, 2005 10:06 am    Post subject: Reply with quote

Padawan

Joined: 27 Mar 2003
Posts: 1564
Location: Hartford, CT.

What's the name of the 'Destination Queue' on the dead-letter header?

Are there any other trigger monitors running?

Also, post the message from the dead-letter queue.


Last edited by JT on Thu Feb 24, 2005 10:18 am; edited 2 times in total
Back to top
View user's profile Send private message
EddieA
PostPosted: Thu Feb 24, 2005 10:11 am    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

Quote:
Although MQ does seem to support doing this, is it a mistake nevertheless?

No. Without the -q, it will assume SYSTEM.DEFAULT.INITIATION.QUEUE is the Q it will monitor.
Quote:
As you can see from the definitions in the original posting that the INITQ is specified as the SYSTEM.DEFAULT.INITIATION.QUEUE.

Again, no. clindsey was taking about the TriggerMonitor in the Services GUI, where you can define a Trigger Monitor, not the Q where you specify which Q to write the TM to.
Quote:
"MQFB_TM_ERROR". I don't find this message in the Messages manual

It's in the Application Programming Reference:
Quote:
MQFB_TM_ERROR
MQTM structure not valid or missing.
The Format field in MQMD specifies MQFMT_TRIGGER, but the message does not begin with a valid MQTM structure. For example, the StrucId mnemonic eye-catcher may not be valid, the Version may not be recognized, or the length of the trigger message may be insufficient to contain the MQTM structure.

On z/OS, the CKTI CICS transaction is an example of an application that processes trigger messages and can generate this feedback code.

As to why you would get this if everything else is set up correctly certainly is strange. But, to rephase a question that was asked earlier. What program had the Q open when you did the DIS Q above, because IPPROCS is 1.

Cheers,
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
kevinf2349
PostPosted: Thu Feb 24, 2005 10:23 am    Post subject: Reply with quote

Grand Master

Joined: 28 Feb 2003
Posts: 1311
Location: USA

Mike

I repeat


Quote:
From the APG chapter 14

Quote:
For triggering of type FIRST or DEPTH, no program has the application queue open for removing messages (that is, the OpenInputCount local queue attribute is zero).




You will need to find out (as Eddie is suggesting) what has the queue open for input.

You can do this using MQExplore by highlighting the queue and then right clicking and selecting "ALL TASKS" and then "STATUS".



Hope this helps
Back to top
View user's profile Send private message
EddieA
PostPosted: Thu Feb 24, 2005 10:39 am    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

OK, how about this, to see EXACTLY what message is being written to the Q.

Don't start the Trigger Monitor. Instead use RFHUTIL (SupportPac IH03) and issue a READQ on SYSTEM.DEFAULT.INITIATION.QUEUE. This should come up with "No messages in queue". Do not exit RFHUTIL. At this point, it will keep the Q open, which satisfies one of pre-reqs for the Trigger Message to be written. Now put a message on the Triggered Q, which should cause a TM to be written. You should then be able to READ/BROWSE the message on the Initiation Q.

Cheers,
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » IBM MQ API Support » "Not a valid trigger message"
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.