Distributed Transactions

One Star

Distributed Transactions

Hi,
Can we achive Distributed Transactions in Talend ETL?
I am fetching data from a oracle database and want to move the data to other two different oracle databases. I need to start a transaction before the the data movement starts and complete the tranction after it is successfull in both of the output databases and that must be committed in a coordinated way.
The size of data is not big.
Can any body suggest how to accomplish it.
Thanks and Regards,
Pravu Mishra.
Employee

Re: Distributed Transactions

Hello,
You have to use tOracleConnection, tOracleCommit and tOracleRolloback to handle your use process.
Regards,
One Star

Re: Distributed Transactions

Hi,
Thanks for your reply.
The commit and rollback provided by Talend ETL can be used for a single connection.
I need to have multiple output connections and the the transactions needs to use all the connections for doing commit and rollback in a coordinated way. In case the insert is not successfull for any of the output connections, the transaction must rollback.
Could you please let me know how to achive it in a form of ETL diagram ?

Thanks and Regards,
Pravu Mishra.
Employee

Re: Distributed Transactions

I didn't check your post title.
I agree that we are missing a JTA/XA distributed transaction mechanism.
You can open a feature request on our bugtracker
Regards,
One Star

Re: Distributed Transactions

Hi,
I think you can achieve your task with Talend. See screenshot. tmap is used as an example, you may use what you want.
regards,
Youssef
One Star

Re: Distributed Transactions

Hi,
Thanks for your reply.
The diagram looks wrong.
Because you have done it in the input not in the output. The input is used for fetching data.
I need to have a transaction for both the outputs. If some thing goes wring in any of the output then it should rollback and if all the data gets stored in both the outputs successfully then it should commit.

Thanks and Regards,
pravu Mishra.
One Star

Re: Distributed Transactions

Hi,
What i'm trying to do is to open 2 connections for the 2 destinations (databases). then, the job loads data into your 2 destinations DB. If something goes wrong during the whole loading process "on SubJob Error" (input and output) the 2 transactions will roll Back, if not (on SubJob Ok) the job commits the two transactions.
I think this is a good work around for what you want to do.
Regards,
Youssef