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 » WebSphere Message Broker (ACE) Support » Backout processing error in MQINPUT node

Post new topic  Reply to topic
 Backout processing error in MQINPUT node « View previous topic :: View next topic » 
Author Message
Cliff
PostPosted: Mon Jan 21, 2002 4:29 am    Post subject: Reply with quote

Centurion

Joined: 27 Jun 2001
Posts: 145
Location: Wiltshire

Having upgraded from 2.0.1 to 2.0.2 CSD1, I thought I'd try out the 'validate' functionality in the MQINPUT node to parse an incoming message. It would appear that backout processing is not working correctly if there is an error trapped in the MQINPUT node:

Define an input queue IN with backout threshold=0 and requeue queue name=BACKOUT. Define local queue BACKOUT.
Create a message flow with an MQINPUT node with its out terminal wired to an MQOUTPUT node, message domain=XML, transaction mode=yes and check the 'validate' box.

So, I would expect an incoming persistent message in invalid XML format to fail parsing, be rolled back onto IN, be processed again and this time routed to the BACKOUT queue. But no, the message flow loops.

Now I thought I had a pretty good handle on MQSI's transactionality and backout processing, but I'm baffled. It would seem that when the error is in the input node itself, it all goes horribly wrong. I have wired trace nodes to the catch and fail terminals to be absolutely sure the message is not propagated there (it isn't) and a debug level trace records the parser error on the first iteration (expected) but on subsequent iterations of the loop only records that it has created an XML parser.

Can anyone comment on this? Is this a known error? Have I missed a trick somewhere?

Thanks in advance - Cliff
Back to top
View user's profile Send private message Send e-mail
EddieA
PostPosted: Tue Jan 22, 2002 12:55 pm    Post subject: Reply with quote

Jedi

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

Cliff,

You you to set the Backout Threshold higher than 0.

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
Cliff
PostPosted: Wed Jan 23, 2002 3:11 am    Post subject: Reply with quote

Centurion

Joined: 27 Jun 2001
Posts: 145
Location: Wiltshire

Sorry Eddie, but that makes no difference. If a subflow is wired to the failure terminal processing is not propagated there, either.

I suspect IBM have introduced a 'feature' here! This behaviour certainly breaks the documented rules. Can anyone from IBM comment? At the moment, I'll have to advise my client not to use this function.

Cheers - Cliff
Back to top
View user's profile Send private message Send e-mail
MVO
PostPosted: Mon Oct 21, 2002 12:53 pm    Post subject: Reply with quote

Centurion

Joined: 09 Sep 2001
Posts: 131

Yes, I encountered the same problem:
- set backoutthreshold to 1
- set backout queue to an existing local queue

MQSI goes into an infinite loop when the input message failed MRM parser.

I couldn't stop the broker, had to kill the DataFlowEngine processes. Restarting the broker did not help.

Any help will be very appreciated.

Thanks
Back to top
View user's profile Send private message
titus
PostPosted: Mon Oct 21, 2002 1:38 pm    Post subject: Reply with quote

Novice

Joined: 14 Oct 2002
Posts: 23

I do have the same problem. I have a backout out queue and put threshold count =1. Still i am getting same result as before. Any body from IBM knows about this?.
Back to top
View user's profile Send private message
vmcgloin
PostPosted: Tue Oct 22, 2002 12:57 am    Post subject: Reply with quote

Knight

Joined: 04 Apr 2002
Posts: 560
Location: Scotland

Try removing any parsing of the message following the failure or catch route from the MQInput node.

I found this technote saying that if the backout is due to a ParserException then this is working as designed. I am about to try it myself to get around a similar problem.
http://www-1.ibm.com/support/entdocview.wss?rs=0&context=SW900&q=count%2Bbackout&uid=swg21054789
(You need some kind of IBM support userid to access this link.)

Cheers,
Vicky
Back to top
View user's profile Send private message
JLRowe
PostPosted: Tue Oct 22, 2002 4:03 am    Post subject: Reply with quote

Yatiri

Joined: 25 May 2002
Posts: 664
Location: South East London

Cliff,

Looks like a bug to me,

If you still want to use the validate functionality you could set the timing to deferred and force the parser to parse the tree further on with a trace node or with a recursive ESQL procedure.
Back to top
View user's profile Send private message Send e-mail
MVO
PostPosted: Wed Oct 23, 2002 4:10 pm    Post subject: Reply with quote

Centurion

Joined: 09 Sep 2001
Posts: 131

Hi, just noticed that MQSI will loop if you have the followings:

MQInput (validate Content and Value, timing Immediate or Complete) >> Compute node (validate Content and Value on)

I set Validate to None in my Compute node and MQSI does not loop any more.

Anyone from IBM can explain this ???

Back to top
View user's profile Send private message
lung
PostPosted: Thu Oct 24, 2002 9:42 pm    Post subject: Reply with quote

Master

Joined: 27 Aug 2002
Posts: 291
Location: Malaysia

MVO,

If MQSI doesn't loop anymore, where does the message end up in? The Backout Queue?

Also, by setting Validate to None in the Compute node, does this affect anything?

Thanks!
_________________
lung
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger MSN Messenger
MVO
PostPosted: Sat Oct 26, 2002 6:30 am    Post subject: Reply with quote

Centurion

Joined: 09 Sep 2001
Posts: 131

I have the following set up:

MQInput (MRM parser, complete validation on) >> Compute node (more MRM field parsing, validate none) with a failure terminal and an out terminal defined.

I also define a backout queue.

1) if the message fails parsing on MQInput, it goes to the backout queue. MQSI validates the message thoroughly i.e. syntax, data value ...
2) if the field fails parsing in the Compute node, it goes to the failure terminal - not the Backout queue. With Validate None, MQSI only validates field length but does not take into account data value, syntax... You will have to add logic to validate the others in subsequent Compute node.
Back to top
View user's profile Send private message
kirani
PostPosted: Sun Oct 27, 2002 11:24 am    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

MVO wrote:

- set backout queue to an existing local queue


Use another queue as backout queue than your input queue. Failed message once sent to backout queue will be picked up again for processing by MQInput node thus, going into infinite loop.
Following thread explains more about message rollback ..
http://www.mqseries.net/phpBB2/viewtopic.php?t=5632&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
View user's profile Send private message Visit poster's website
MVO
PostPosted: Mon Oct 28, 2002 5:40 am    Post subject: Reply with quote

Centurion

Joined: 09 Sep 2001
Posts: 131

Kiran,

of course we're setting the backout queue different from the input queue !!! The problem here is MQSI still loops if you turn Validation on on subsequent nodes. That's why I had to set Validate to NONE !!!

Unless we were not very clear in all posts !!!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Backout processing error in MQINPUT node
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.