|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
Database commit in flow |
« View previous topic :: View next topic » |
Author |
Message
|
kirani |
Posted: Tue Sep 23, 2003 8:44 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
cfryett wrote: |
One of my colleagues is working with my message flow and is getting rollback to occur with the failure terminal wired on the MQInput node. From my understanding in order to properly get transactional rollback no failure terminal can be wired and no Try/Catch node/terminal can be wired correct? So, what gives?
|
I was talking about Compute node's failure terminal. If you have that attached then please make sure that path ends with Throw.
cfryett wrote: |
So, I fully understand this in order to obtain transactional rollback the message needs to come back to the MQInput Node. If the catch terminal is wired the transactional rollback will not occur, but if the failure terminal is wired it seems to work fine. This seems to go against what Craig has mentioned above or I have mis-interpreted it.
|
You can still wire your catch terminal, but again it should end with Throw. You may choose to wire this terminal to do some error handling. I didn't go thru Criag's post completely
And most importantly, if you want your DB updates to coordinate with MQ then you need to use 2-phase commit. _________________ 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 |
|
 |
EvolutionQuest |
Posted: Thu Sep 25, 2003 6:13 am Post subject: |
|
|
 Voyager
Joined: 18 Sep 2001 Posts: 88 Location: Billings, MT
|
The resolution to the overall problem is as follows:
1. The MQInput node only had the out terminal wired.
2. The Compute node which called the 1-n SQL stored procedures reviewed the return codes and if it was an error it threw a user exception which forced the failure terminal on the compute node to become active.
3. We then constructed our error message, wrote it to an output error queue, and threw an exception to cause a transactional rollback
4. The error queue would be handled by another flow which would update an error table with the proper content
5. The MQInput node's queue backout count was set to 1 so the message would be thrown
_________________ Don't blame technology, for technology was created by humans! |
|
Back to top |
|
 |
|
|
|
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
|
|
|
|