What is the difference between automatic and commit transaction modes in WMB 8.0 compute node ?
We have developed a message flow with a compute node which inserts records into Oracle DB tables. The flow looks like
MQInputNode (Out terminal) --- > Compute Node
MQInputNode (Catch terminal) --- > Error handling flow
The properties which we have set in that flow are as below.
- MQ Input node has transaction property as "Yes"
- Compute node transaction property as "Automatic"
- MQ Input Node catch terminal is connected to already developed error handling sub flow
In compute node, we are just parsing the message and inserting the records into tables. Consider the scenario that the message is having 2 records. First record is valid and second record is invalid.
When we set, transaction property as "Automatic", first record is getting inserted and committed properly eventhough the insertion of second record throwing exception. We consider that it is a successfull flow because we have catched that exception and handled properly using MQ Input catch terminal.
But when we set, transaction property as "Commit", even first record is not getting inserted. WMB developers who work with me have told that "Commit" is a node level property, so when the second records inserts, it throwing exception and first record is getting roled back from DB.
I have gone through the WMB info center. No where mentioned that Automatic is Commit is node level and if any exception in that node will rollback the records inserted.
Please clarify.