MSDTC, distributed applications and XA compatability

We have an application comprising of two discrete components (a .NET 1.1 COM+ component, and a legacy ODBC component), which operate on the same SQL Server data (same database rows) within the same distributed transaction. We use the ITransactionExport/Import interfaces to propagate the DTC transaction from the COM+ component to the legacy ODBC component. All works fine.

This soluton deploys to Windows and we support SQL Server only.

However, we have a requirement to retain the COM+ component, but to deploy the legacy ODBC component onto a Unix platform and to use a Unix RDBMS (Oracle). I envisage we will use an Oracle ADO.NET Data Provider to provide data access for the COM+ component and Oracle's UNIX RM proxy (OCI) for the legacy ODBC component.

My question is this -is the DTC capable of fully managing/co-ordinating an XA transaction where a non-Windows component needs to enlist it's database connection(s) on the XA transaction managed by the DTC?

If so, how is communication achieved between the DTC and the Unix RM proxy?

Any / all help gratefully received.

Nick Rumble

[1151 byte] By [NickRumble] at [2008-3-3]
# 1

Yes, MSDTC supports XA transactions (cf. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cossdk/html/2077ac86-5c04-489d-b902-a4ce25dfe6d2.asp). You could write your own XA switch to communicate with your RM; but this is not for the faint of heart.

You have some other options, however. Depending on the version, Oracle supports Microsoft native transactions beginning with Oracle 9x (I believe).On earlier Oracle versions (and still supported), Oracle published an Oracle client that will use XA to communicate with MSDTC through our OCI (MtxOci.DLL) that is fully integrated with COM+.

Hope this helps,

-Richard

RichardBartel-MSFT at 2007-8-30 > top of Msdn Tech,Software Development for Windows Vista,Transactions Programming...

Software Development for Windows Vista

Site Classified