As we know transaction mean either commit or rollback. It will insert into db or return with exception (Rollback).
There are several requests or some part of data come at single point where its wait for another partial transaction data, once the data arrived, BizTalk merge the related data and make a singleton transaction and then that transaction will commit and roll back. I think its pretty much for distributed transaction lets start how can we use it in BizTalk Server.
Global Transaction itself mean that data from different places meet at one given point and then process further as per our requirement.
I had to explore global transaction in Biztalk but i haven't found any blog so I have started to explore BizTalk artifacts. By studying all of its artifacts and tool I came up with the solution that we can make global transaction in BizTalk by using our head.
Now in this blog I am proposing a correlation in BizTalk with the long transaction so that different Business process or services meet at one single point at BizTalk hand and BizTalk will wait or dehydrate those for long period until their partner data comes to complete a transaction , once the partner data arrived at BizTalk it will identify through a one single property and then BizTalk may use resource manger to complete a transaction from that coming data and insert in to the database , i.e SQL SERVER OR ORACLE, MYSQL OR SYBASE ETC.
Step for your conveniency.
(1) We have to use parallel shape ( parallel convoy )in our work flow so that we can welcome a different business services at BizTalk.
In my case there are four different business have to meet at BizTalk , each having partial data and BizTalk will merge their data make a singleton transaction and will use all their data as a single transaction.
I have use correlation because BizTalk has to Wait until and unless whole data from all business come at BizTalk, So it is independent on business.
(2) Now we can use Long Running Transaction in BiZtalk because if our transaction fail at any single point we can compensate that. Or we can also use Exception block. i.e If transaction get fails to insert data due to any network glitch to the whole coming data will roll back.
(3) As we cant use Request-Response in our Correlation because we cant return response on the spot because BizTalk dehydrate our work flow until all business send their request. So I have use a SMTP dynamic email adapter of Biztlk which email about the process of data either success or fails.
Make life eays :). Please email me if any query , i will send you the whole project.
No comments:
Post a Comment