Subject Re: [firebird-support] isc_prepare_transaction 2PC
Author Vlad Khorsun
> I've been using firebird for the last 6 years in every
> developement I make with great success. Thanks guys!.
> I am considering developing a distributes application using
> Firebird and MsSQL in C#. For Firebird I use de Firebird ADO.NET data
> providers I downloaded fron Firebird web page.
> I am considering the following scenario
> start a transaction
> insert a reccord in Firebird Database
> insert a record in MsSQL Database
> commit
> I have to do this using a two-phase commit (2PC) to keep integrity
> in both databases (Firebird and MSSql). How con I implement 2PC from
> the firebird side in this scenario?

Short answer - noway, sorry.

To make 2PC work both data sources (in your case FB and MSSQL) must be
directed by the same transaction coordinator. FB's coordinator is fbclient.dll
while MSSQL worked together with MS DTC. So, to make its work we need to
implement support for external transaction coordinators.

It is probably will be implemented after 2.5 release as part of support of FB's
distributed queries mechanism. In 2.5 it is done via extended EXECUTE STATEMENT
but without support for 2PC and without support of non-FB datasources.