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 » Error Handling - Documentation problems

Post new topic  Reply to topic
 Error Handling - Documentation problems « View previous topic :: View next topic » 
Author Message
mkza.swe
PostPosted: Sat Jul 14, 2012 8:13 am    Post subject: Error Handling - Documentation problems Reply with quote

Novice

Joined: 04 Jun 2012
Posts: 16

Hi! For many it seems that the error handling of the WMB is a bit tricky to understand. I have read many posts and it seems there are many common misunderstandings.

Especially the chart on this page gives me a headache:
http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Fac00414_.htm

What is the difference between "Node retries" and "Error logged, message rolled back"? Also the "Message put to alternative queue; node retries if the put fails", I'm not sure what that means... Does it bypass retry mechanism (backout threshold) and put directly on backoutQ/DLQ?

And in what cases does the Exception get logged, and not? That also seem a bit confusing. For "Error logged, message rolled back", it is kind of clear that exception gets logged, but what about "Node retries" etc?

Anyway... I have tried to make a schematic of what happens in different situations, according to my experience and what I read in the documentation, and I would be happy if anyone could verify it's correctness, or point out any errors in it:

For flows starting with MQ Input node. All terminal references refer to MQ Input node terminals, and assuming no other failure/catch terminals/mechanisms are present in the flow after the MQ Input node.

If FAILURE and CATCH terminal is connected:
- Message retries, when errors:
----- For BackoutCount < BOTHRESH:
---------- Error in MQInput Node -> Failure terminal
---------- Error after MQInput Node’s Out terminal -> Catch terminal
---------- Error after MQInput Node’s Catch terminal -> Rollback/retry & Error Log
---------- Error after MQInput Node’s Failure terminal -> Rollback/retry & Error Log
----- For BackoutCount >= BOTHRESH && BackoutCount < 2*BOTHRESH:
---------- Message go directly to Failure terminal.
---------- Error after MQInput Node’s Failure terminal -> Rollback/retry & Error Log (new exception type specifying retry threshold reached)
----- For BackoutCout = 2*BOTHRESH:
---------- Back Out -> BOQName or DLQ

If only FAILURE terminal is connected:
- Message retries, when errors:
----- For BackoutCount < BOTHRESH:
---------- Error in MQInput Node -> Failure terminal
---------- Error after MQInput Node’s Out terminal -> Rollback/retry & Error Log
---------- Error after MQInput Node’s Failure terminal -> Rollback/retry & Error Log
----- For BackoutCount >= BOTHRESH && BackoutCount < 2*BOTHRESH:
---------- Message go directly to Failure terminal.
---------- Error after MQInput Node’s Failure terminal -> Rollback/retry & Error Log (new exception type specifying retry threshold reached)
----- For BackoutCout = 2*BOTHRESH:
---------- Back Out -> BOQName or DLQ

If only CATCH terminal is connected:
- Message retries, when errors:
----- For BackoutCount < BOTHRESH:
---------- Error in MQInput Node -> Back Out -> BOQNAME or DLQ (No Rollback/retry???)
---------- Error after MQInput Node’s Out terminal -> Catch terminal
---------- Error after MQInput Node’s Catch terminal -> Rollback/retry & Error Log
----- For BackoutCount = BOTHRESH:
---------- Back Out -> BOQName or DLQ


Thank you! :)
Back to top
View user's profile Send private message
smdavies99
PostPosted: Sat Jul 14, 2012 11:28 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

In general you only need to attach the Catch terminal to the input node.

If you need to, you can always 'rethrow' the exception in the catch branch.

However, as you surmise, there are many facets to error handling in Broker.
You can be as simple or as comprehensive as you like. How much you do depends upon the requirements of your system.

Developing a comprehensive error handling subsystem is IMHO essential to the proper operation of a Broker system.

A simple tip is to put it all into a subflow. Then it can be maintained as a separate component. Any changed can easily be incorporated into the flow that is deployed.

A good deal of experimentation is essential. You will learn an awful lot about how broker works which will help you in future development tasks.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
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 » Error Handling - Documentation problems
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.