Author |
Message
|
AlexeiSkate |
Posted: Thu Feb 06, 2003 10:40 am Post subject: Strange issue with WMQI message flow |
|
|
Centurion
Joined: 10 Apr 2002 Posts: 123
|
When I put an xml message onto an input queue that the input node thinks is not a well-formed msg then I get errors in the Event Viewer, which is fine. But then when I put another message (and any subsequent messages) onto the same queue, the message just sits there in the queue, and I would have to reboot the machine in order to be able to run messages through my message flows again. Has anyone experience something similar and know what might be the cause of this? Thanks in advance. |
|
Back to top |
|
 |
yaakovd |
Posted: Thu Feb 06, 2003 1:01 pm Post subject: |
|
|
Partisan
Joined: 20 Jan 2003 Posts: 319 Location: Israel
|
Is Q persistetn? What is backout threshold on input Q?
If you have a big number, it can take a long time to process "bad" message. Did you set message type (XML) in input node?
Other option - you have infinite loop in compute node.
When you have one instance of flow, all messages will wait during processing previous "bad" message.
You can increase number of flow instances, but first fix the problem  _________________ Best regards.
Yaakov
SWG, IBM Commerce, Israel |
|
Back to top |
|
 |
kirani |
Posted: Thu Feb 06, 2003 7:39 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Alex,
I think your message is looping in failure path. Do you have MQInput node's Failure terminal connected? What is the BACKOUT threshold on the queue? Do you have any backout queue defined? Does your QM have DLQ?
Following thread explains backout processing for the message,
http://www.mqseries.net/phpBB2/viewtopic.php?t=7314&highlight=backout _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
AlexeiSkate |
Posted: Fri Feb 07, 2003 1:22 pm Post subject: |
|
|
Centurion
Joined: 10 Apr 2002 Posts: 123
|
Kiran,
I'm using the primitive MQInput node that listen to a queue and I'm throwing an XML message onto the queue itself. Since the queue manager doesn't take any action based on the input itself and I don't have any MQ application that manually read and check the threshold count, would it matter in this case that I leave that field empty?
It make sense that the non-well formed XML message is probably being rethrown onto the input queue. Although I do have the input queue's failure and catch nodes connected to trace nodes and I also have a DLQ defined for my QMngr so I'm not sure why the endless loop would be happening.
How would I define a backout queue?
Thanks,
Alex |
|
Back to top |
|
 |
yaakovd |
Posted: Sat Feb 08, 2003 8:52 am Post subject: |
|
|
Partisan
Joined: 20 Jan 2003 Posts: 319 Location: Israel
|
Q properties --> Storage --> Backout Requeue Name _________________ Best regards.
Yaakov
SWG, IBM Commerce, Israel |
|
Back to top |
|
 |
AlexeiSkate |
Posted: Tue Feb 11, 2003 8:43 am Post subject: |
|
|
Centurion
Joined: 10 Apr 2002 Posts: 123
|
The event viewer message states the following:
The input node 'MAINFLOW.INPUT_QUEUE' detected an error whilst processing a message. The message flow has been rolled-back and, if the message was being processed in a unit of work, it will remain on the input queue to be processed again.
Does this mean that if I select Transaction Mode as Yes for my primitive input node then my malformed XML message will remains in this infinite loop forever? This doesn't make sense to me. Is there some sort of timeout property I can set? Since I'm not using a self-written MQ application to put the XML message onto the queue, I cannot manually check against the Maximum Backout Threshold Count to re-route the message after n attempts. I'm simply throwing an XML message onto the input queue.
Is the only option for me is to select Transaction Mode as No so that I should not expect any roll back if my XML message is malformed?
Thanks for any help.
[/i] |
|
Back to top |
|
 |
yaakovd |
Posted: Tue Feb 11, 2003 10:58 pm Post subject: |
|
|
Partisan
Joined: 20 Jan 2003 Posts: 319 Location: Israel
|
Make sure that you set Message Domain in Input node as XML and
failure connector connected to some output node (FAILURE queue).
In this case non-wellformed XML will fail in first retry and doesn't matter which transaction mode you use. It working for me. _________________ Best regards.
Yaakov
SWG, IBM Commerce, Israel |
|
Back to top |
|
 |
kirani |
Posted: Sat Feb 15, 2003 12:04 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Alex,
In WMQI 2.1 Your message will not be parsed at MQInput node, it uses lazy parsing to parse messages.
Are you trying to re-parse the input message in your Trace nodes? If so, you will loop forever. Please remove any ${Root} statements from your Trace nodes in the Failure/Catch terminals. They will try to reparse your input message. I'd also recommend that you read your input message as BLOB and then use RCD node to parse using XML domain. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
|