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 » PROPAGATE: how to get ALL messages or NO message ?

Post new topic  Reply to topic
 PROPAGATE: how to get ALL messages or NO message ? « View previous topic :: View next topic » 
Author Message
sten72
PostPosted: Thu Mar 04, 2004 5:40 am    Post subject: PROPAGATE: how to get ALL messages or NO message ? Reply with quote

Newbie

Joined: 20 Oct 2003
Posts: 7

Hi all,

I am using the PROPAGATE statement in a compute node to generate a number of output messages from the input one... (through a WHILE cicle).

What happens if an EXCEPTION verifies during the n-th iteration of the WHILE cicle ?
I noticed that all the messages propagated BEFORE the exception reach in any case the output MQ queue (while the input message is obviously sent back to the Try-Cath node...) !!!

Well, what I need instead is to have ALL messages propagated (if no exception occurs) or NO message propagated (if an exception occurs).

How? Anyone can help?

Thanks,

Antonio Formaggio

IBM Italy
AMS IT Specialist
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Thu Mar 04, 2004 6:43 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

What is the transaction mode of the Output node?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
EddieA
PostPosted: Thu Mar 04, 2004 7:45 am    Post subject: Reply with quote

Jedi

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

And the Input node.

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
Missam
PostPosted: Thu Mar 04, 2004 8:04 am    Post subject: Reply with quote

Chevalier

Joined: 16 Oct 2003
Posts: 424

I Guess your incoming message is not a persistent one.If not make sure you have transaction mode property for both input and output node properties is set to yes.
Back to top
View user's profile Send private message
sten72
PostPosted: Thu Mar 04, 2004 9:06 am    Post subject: Reply with quote

Newbie

Joined: 20 Oct 2003
Posts: 7

I tried to change the "Transaction mode" property of the Input and Output queues, but no way...

... if an exception occurs I still get the input message back to the Failure Queue and some messages (the "propagated" ones) reaching the Output queue.

If you have any other ideas... Thanks

Antonio Formaggio

IBM Italy
AMS IT Specialist
Back to top
View user's profile Send private message
Missam
PostPosted: Thu Mar 04, 2004 12:34 pm    Post subject: Reply with quote

Chevalier

Joined: 16 Oct 2003
Posts: 424

what level of csd are you working with.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Thu Mar 04, 2004 12:59 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Please tell us what you tried changing the transaction modes to, and what they were.

In addition, please tell us what you are doing within your exception handling, and how you have exception handling set up.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
kirani
PostPosted: Thu Mar 04, 2004 4:16 pm    Post subject: Reply with quote

Jedi Knight

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

Your PROPOGATED messages will rollback only when you'r catch terminals (of MQInput node or Try-catch node) processing ends with a "Throw" node/statement.
_________________
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
jgooch
PostPosted: Fri Mar 05, 2004 1:37 am    Post subject: Reply with quote

Acolyte

Joined: 29 May 2002
Posts: 63
Location: UK

Why not use a destination list instead of PROPAGATE?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Fri Mar 05, 2004 6:07 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

jgooch wrote:
Why not use a destination list instead of PROPAGATE?


Because a destination list would propagate the entire input message to every destination in the list.

The propagate function allows you to break an incoming message up into separate pieces, and forward those pieces to individual destinations.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
jgooch
PostPosted: Fri Mar 05, 2004 6:09 am    Post subject: Reply with quote

Acolyte

Joined: 29 May 2002
Posts: 63
Location: UK

True enough. It does, however, solve the transaction problem. The downstream flows/apps might be able to ignore the parts of the message that are irrelevant to them.

The information in the first post did not lead me to believe that mine was an inappropriate solution.

J.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Fri Mar 05, 2004 6:21 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Well, I read "generate a number of output messages from the input one... (through a WHILE cicle)" to mean that he's breaking an input up into multiple pieces.

But maybe I read wrong..
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
EddieA
PostPosted: Fri Mar 05, 2004 7:18 am    Post subject: Reply with quote

Jedi

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

kirani wrote:
Your PROPOGATED messages will rollback only when you'r catch terminals (of MQInput node or Try-catch node) processing ends with a "Throw" node/statement.

But, if you don't use a Catch, then (depending on Transaction modes) it should roll back.
_________________
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
sten72
PostPosted: Fri Mar 05, 2004 7:36 am    Post subject: Reply with quote

Newbie

Joined: 20 Oct 2003
Posts: 7

I did some more tests... (I'm working with WMQI 2.1 CSD 6).

As you suggested, I changed the "Transaction Mode" property (for both Input and Output nodes) from the default values to "Yes".

Anyway... I didn't know that the rollback happens ONLY IF the catch terminals (of MQInput node or Try-Catch node) end with a "Throw" node/statement.
Now IT WORKS !!!
If an exception verifies during message processing, I get only the original input message in the FAILURE queue, the one connected to the failure terminal of the MQInput node.

THANKS A LOT !!!

But now, always about the rollback/transaction issue, I am wondering two more things...

1) Which is the difference between:
- using a "TryCatch" node (catch terminal connected to "Throw" node) between MQInput and Compute;
- connecting the MQInput (catch terminal always connected to "Throw" node) directly to the Compute, without any "TryCatch" node;

2) How can I handle the exception in the rollback case? Is it possible to log (in a DB2 table or somewhere else...) the reason of the bad processing, for example the exception code / user description ?

Cheers,

Antonio Formaggio
_________________
IBM Italy
AMS IT Specialist
Back to top
View user's profile Send private message
Missam
PostPosted: Fri Mar 05, 2004 12:56 pm    Post subject: Reply with quote

Chevalier

Joined: 16 Oct 2003
Posts: 424

Quote:
1) Which is the difference between:
- using a "TryCatch" node (catch terminal connected to "Throw" node) between MQInput and Compute;
- connecting the MQInput (catch terminal always connected to "Throw" node) directly to the Compute, without any "TryCatch" node;

Either way you can catch and handle the exception
Quote:

2) How can I handle the exception in the rollback case? Is it possible to log (in a DB2 table or somewhere else...) the reason of the bad processing, for example the exception code / user description ?

you can add a compute node and handle the exception for further processing.even you can log these in to the database.
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 » PROPAGATE: how to get ALL messages or NO 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.