Author |
Message
|
prat31 |
Posted: Sat Mar 16, 2013 12:10 am Post subject: Transaction property in Compute Node. |
|
|
Apprentice
Joined: 01 Feb 2013 Posts: 30
|
Hi,
I wanted to know about the Transaction property in Compute node in detail.
About the options Commit and Automatic init.
Thanks. |
|
Back to top |
|
 |
adubya |
Posted: Sat Mar 16, 2013 1:18 am Post subject: Re: Transaction property in Compute Node. |
|
|
Partisan
Joined: 25 Aug 2011 Posts: 377 Location: GU12, UK
|
prat31 wrote: |
Hi,
I wanted to know about the Transaction property in Compute node in detail.
About the options Commit and Automatic init.
Thanks. |
The Infocenter describes the property, perhaps if you play back your understanding of the Commit/Automatic values to us then we can fill in the gaps. |
|
Back to top |
|
 |
prat31 |
Posted: Sat Mar 16, 2013 3:32 am Post subject: |
|
|
Apprentice
Joined: 01 Feb 2013 Posts: 30
|
According to my understanding if it is in Automatic, then the DB queries in that node will be commited once the messages comes out of the node. And if it is in Commit, then the queries in compute node will be commited at the same time when it is executed.
Request you to acknowledge my understanding and add if somthing is missing/incorrect. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Mar 16, 2013 3:57 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
prat31 wrote: |
According to my understanding if it is in Automatic, then the DB queries in that node will be commited once the messages comes out of the node. And if it is in Commit, then the queries in compute node will be commited at the same time when it is executed.
Request you to acknowledge my understanding and add if somthing is missing/incorrect. |
Wrong. Automatic does not translate to autocommit. Automatic means that the operation will be committed when the flow instance ends.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
adubya |
Posted: Sat Mar 16, 2013 7:05 am Post subject: |
|
|
Partisan
Joined: 25 Aug 2011 Posts: 377 Location: GU12, UK
|
The Infocenter is pretty clear
Quote: |
Select the Transaction setting from the list. The values are:
Automatic (the default). The message flow, of which the Compute node is a part, is committed if it is successful. That is, the actions that you define in the ESQL module are performed on the message and it continues through the message flow. If the message flow fails, it is rolled back. If you choose Automatic, the ability to commit or roll back the action of the Compute node on the database depends on the success or failure of the entire message flow.
Commit. To commit the action of the Compute node on the database, irrespective of the success or failure of the message flow as a whole, select Commit. The database update is committed even if the message flow itself fails. |
|
|
Back to top |
|
 |
zpat |
Posted: Sun Mar 17, 2013 5:37 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
Don't forget the transaction starts at the MQinput node. Using the correct option there is critical. Note especially that non-persistent messages may not start a transaction depending how you set this node's properties. |
|
Back to top |
|
 |
yellowbee |
Posted: Mon Mar 18, 2013 9:35 am Post subject: |
|
|
 Acolyte
Joined: 14 Apr 2012 Posts: 58
|
Using Transactionality property we can commit or Rollback the updates whatever made in the node as part of the message flow
Commit :- If we select Commit,Whatever ever updates are made in the node are committed irrespective of the success or failure of the message flow as a whole
Automatic :- If the message flow completes success,the updates are committed. If the message flow fails, the message and the Database updates are Rolled back |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Mar 18, 2013 9:57 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
yellowbee wrote: |
Automatic :- If the message flow completes success,the updates are committed. If the message flow fails, the message and the Database updates are Rolled back |
Wire up a flow as follows:
Code: |
MQinput->FlowOrder->(first)->MQOutput
->(second)->MQOutput->Throw |
Set transaction mode on MQInput to "none". |
|
Back to top |
|
 |
yellowbee |
Posted: Tue Mar 19, 2013 9:50 am Post subject: |
|
|
 Acolyte
Joined: 14 Apr 2012 Posts: 58
|
Hi mqjeff
I have also raised the same question before.But i did not get the answer yet.
http://www.mqseries.net/phpBB2/viewtopic.php?p=347789&highlight=#347789
could you answer for the above |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Mar 19, 2013 10:08 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
yellowbee wrote: |
Hi mqjeff
I have also raised the same question before.But i did not get the answer yet.
http://www.mqseries.net/phpBB2/viewtopic.php?p=347789&highlight=#347789
could you answer for the above |
I answered that question before.
I suggested, in this thread, a very simple experiment.
I suggested this experiment as a rebuttal to your assertion that "Automatic" means that a transaction is created.
Review the documentation again.
Run the very simple experiment I mentioned.
Observe the results.
Consider the results.
Make changes to the very simple experiment.
Observe and consider the new results.
Read the documentation again.
Think about what you've seen and read. |
|
Back to top |
|
 |
yellowbee |
Posted: Thu Mar 21, 2013 12:17 pm Post subject: |
|
|
 Acolyte
Joined: 14 Apr 2012 Posts: 58
|
hi Mqjeff
I tryed that in both cases the message not getting rolledback.after the mqoutput node of second leg because of throw node..it throwng exception like this
if i select transactionality as no
File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbDataFlowNode.cpp
Line:INTEGER:1073
Function:CHARACTER:ImbDataFlowNode::createExceptionList
Type:CHARACTER:ComIbmMQInputNode
Name:CHARACTER:Transaction#FCMComposite_1_1
Label:CHARACTER:Transaction.MQ Input
Catalog:CHARACTER:BIPmsgs
Severity:INTEGER:3
Number:INTEGER:2230
Text:CHARACTER:Node throwing exception
UserException
File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\BasicNodes\ImbThrowNode.cpp
Line:INTEGER:265
Function:CHARACTER:ImbThrowNode::evaluate
Type:CHARACTER:ComIbmThrowNode
Name:CHARACTER:Transaction#FCMComposite_1_5
Label:CHARACTER:Transaction.Throw
Catalog:CHARACTER:BIPmsgs
Severity:INTEGER:1
Number:INTEGER:3001
Text:CHARACTER:User exception thrown by throw node
Insert
Type:INTEGER:5
Text:CHARACTER:
if select as Automatic
File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbDataFlowNode.cpp
Line:INTEGER:1073
Function:CHARACTER:ImbDataFlowNode::createExceptionList
Type:CHARACTER:ComIbmMQInputNode
Name:CHARACTER:Transaction#FCMComposite_1_1
Label:CHARACTER:Transaction.MQ Input
Catalog:CHARACTER:BIPmsgs
Severity:INTEGER:3
Number:INTEGER:2230
Text:CHARACTER:Node throwing exception
UserException
File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\BasicNodes\ImbThrowNode.cpp
Line:INTEGER:265
Function:CHARACTER:ImbThrowNode::evaluate
Type:CHARACTER:ComIbmThrowNode
Name:CHARACTER:Transaction#FCMComposite_1_5
Label:CHARACTER:Transaction.Throw
Catalog:CHARACTER:BIPmsgs
Severity:INTEGER:1
Number:INTEGER:3001
Text:CHARACTER:User exception thrown by throw node
Insert
Type:INTEGER:5
Text:CHARACTER: |
|
Back to top |
|
 |
adubya |
Posted: Thu Mar 21, 2013 12:31 pm Post subject: |
|
|
Partisan
Joined: 25 Aug 2011 Posts: 377 Location: GU12, UK
|
Is your MQ input queue persistent ? |
|
Back to top |
|
 |
yellowbee |
Posted: Mon Mar 25, 2013 8:59 am Post subject: |
|
|
 Acolyte
Joined: 14 Apr 2012 Posts: 58
|
|
Back to top |
|
 |
adubya |
Posted: Mon Mar 25, 2013 9:58 am Post subject: |
|
|
Partisan
Joined: 25 Aug 2011 Posts: 377 Location: GU12, UK
|
|
Back to top |
|
 |
zpat |
Posted: Mon Mar 25, 2013 10:41 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
Even when queues have default persistence, messages may not be.
I have a problem sometimes with developers sending non-persistent test messages using rfhutilc and wondering why the transaction does not work normally. |
|
Back to top |
|
 |
|