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 » Managing Errors in the Input Node

Post new topic  Reply to topic
 Managing Errors in the Input Node « View previous topic :: View next topic » 
Author Message
shashivarungupta
PostPosted: Sun Jan 11, 2015 3:30 pm    Post subject: Managing Errors in the Input Node Reply with quote

Grand Master

Joined: 24 Feb 2009
Posts: 1343
Location: Floating in space on a round rock.

Hi,

As per the description in the following URL, the third point says... "* Any internal exceptions that occur in the node after the message has been propagated to the Out terminal cause a rollback of the transaction. This situation is rare but could happen for some input nodes."

Which are those 'some' input nodes, if you've come across of this scenario. Kindly share/suggest.

Thanks.
_________________
*Life will beat you down, you need to decide to fight back or leave it.
Back to top
View user's profile Send private message Send e-mail
fjb_saper
PostPosted: Sun Jan 11, 2015 7:51 pm    Post subject: Re: Managing Errors in the Input Node Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

shashivarungupta wrote:
Hi,

As per the description in the following URL, the third point says... "* Any internal exceptions that occur in the node after the message has been propagated to the Out terminal cause a rollback of the transaction. This situation is rare but could happen for some input nodes."

Which are those 'some' input nodes, if you've come across of this scenario. Kindly share/suggest.

Thanks.


Think about a parsing error when doing parsing on demand...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
kimbert
PostPosted: Mon Jan 12, 2015 1:20 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

The key phrase is 'in the node'. Parsing errors that occur in a downstream node would not be 'internal exceptions that occur in the node'.

I think this is simply saying that some nodes need to do some cleanup after propagating the message to the Out terminal. If that cleanup code goes wrong then the transaction is rolled back. Obviously, this only applies if the node is one of the nodes that supports transactional behaviour.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
shashivarungupta
PostPosted: Tue Jan 13, 2015 12:26 pm    Post subject: Reply with quote

Grand Master

Joined: 24 Feb 2009
Posts: 1343
Location: Floating in space on a round rock.

kimbert wrote:

The key phrase is 'in the node'. Parsing errors that occur in a downstream node would not be 'internal exceptions that occur in the node'.


IBM Manaul says, Input Node (as MQInput) detects an internal error in following cases:
1. Parser can cause parsing/validation error, is treated as an internal error.
2. Warning on an mqget call
3. When BOT is reached.

So, I think above point is still valid.

kimbert wrote:

I think this is simply saying that some nodes need to do some cleanup after propagating the message to the Out terminal. If that cleanup code goes wrong then the transaction is rolled back. Obviously, this only applies if the node is one of the nodes that supports transactional behaviour.


If I've MQInput Node (that supports transactional behaviour) then what cleanup are you talking about , 'after' propagating msg to Out terminal ?
Is that clean up conditional ?


_________________
*Life will beat you down, you need to decide to fight back or leave it.
Back to top
View user's profile Send private message Send e-mail
kimbert
PostPosted: Tue Jan 13, 2015 1:34 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
IBM Manaul says, Input Node (as MQInput) detects an internal error in following cases:
1. Parser can cause parsing/validation error, is treated as an internal error.
2. Warning on an mqget call
3. When BOT is reached.
That does not sound correct.

The phrase 'internal error' has a very specific meaning. It is an unexpected condition that cannot be handed using a program's normal error handling strategies. Running out of memory or disk space would be an 'internal error'.

A parsing or validation error is definitely *not* an internal error. It is a normal 'recoverable exception', and is handled as described here:
http://www-01.ibm.com/support/knowledgecenter/SSKM8N_8.0.0/com.ibm.etools.mft.doc/bz90325_.htm

According to that definition, a parsing error that happens in the MQInput node is not an 'internal error'. It is a normal exception that just happened to occur in the node. I would expect it to be routed to the Failure terminal first. Then, if the Failure terminal is not wired up it will go to the Catch terminal - where it can be treated just like any other message flow exception.
Quote:
If I've MQInput Node (that supports transactional behaviour) then what cleanup are you talking about , 'after' propagating msg to Out terminal ?
Is that clean up conditional ?
I'm talking about the IBM code that implements the MQInput node. If some 'internal error' happens in that code after the node has propagated the message to the 'out' terminal, then the transaction will be rolled back.
I think that is good, safe behaviour. The node has almost finished. The entire flow has executed, and control has returned to the MQInput node.
Then something unexpected happens in code that implements the node.
It would be wrong to treat it like a normal message flow exception because the flow will have completed all of its processing already. Asking the message flow author to cope with the error would be unreasonable.
So it seems right that the entire transaction should be rolled back.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
shashivarungupta
PostPosted: Tue Jan 13, 2015 3:37 pm    Post subject: Reply with quote

Grand Master

Joined: 24 Feb 2009
Posts: 1343
Location: Floating in space on a round rock.

kimbert wrote:

Quote:
IBM Manaul says, Input Node (as MQInput) detects an internal error in following cases:
1. Parser can cause parsing/validation error, is treated as an internal error.
2. Warning on an mqget call
3. When BOT is reached.


That does not sound correct.



Quote:
As per IBM InfoCenter [v8]:
The MQInput node detects an internal error in the following situations:
* An exception occurs when the associated message parser is initialized. If the Parse timing property is set to Immediate or Complete, the parser parses the input message after initialization. This parsing can cause a parsing or validation error, which is treated as an internal error.
* A warning is received on an MQGET call.
* The backout threshold is reached when the message is rolled back to the input queue.


I think, above statement about 'internal errors' has got more indepth meaning than what it seems. And thanks for bringing it up.

kimbert wrote:
The phrase 'internal error' has a very specific meaning. It is an unexpected condition that cannot be handed using a program's normal error handling strategies. Running out of memory or disk space would be an 'internal error'.


Agree., and there could be many more such 'internal errors' which are beyond the control of message broker product itself and might change the normal behaviour of its functional product code, I think, and those are handled by product code itself as 'internal error(s)'.

kimbert wrote:

Quote:
If I've MQInput Node (that supports transactional behaviour) then what cleanup are you talking about , 'after' propagating msg to Out terminal ?
Is that clean up conditional ?

I'm talking about the IBM code that implements the MQInput node. If some 'internal error' happens in that code after the node has propagated the message to the 'out' terminal, then the transaction will be rolled back.
I think that is good, safe behaviour. The node has almost finished. The entire flow has executed, and control has returned to the MQInput node.
Then something unexpected happens in code that implements the node.
It would be wrong to treat it like a normal message flow exception because the flow will have completed all of its processing already. Asking the message flow author to cope with the error would be unreasonable.
So it seems right that the entire transaction should be rolled back.


I agree about that, that it doesn't seem reasonable to handle the Product Code Issues (as you've mentioned 'internal error') at the Application Code Level.
Keeping in mind that 'internal error' can occur 'before/after' the node has propagated the message down the stream.

Thanks for clarification.


_________________
*Life will beat you down, you need to decide to fight back or leave it.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Managing Errors in the Input 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.