Microsoft Distributed Transactions from Informix with Linux
From the comments, it sounds like you're trying to:


Load from Informix into SQL Server
Use a distributed transaction to wrap the entire load
Roll back and retry the loads if they fail


In that case, the answer isn't a distributed transaction - it's a staging database and a 2-step extract/transform/load (ETL) process:


Select the data out of Informix into a temporary staging database (this could be in SQL Server - but don't bother with a transaction)
Move the data from your staging database into your final destination - and if you do want to use a transaction to accomplish this, that's a separate debate, but at least it'll work


Benefits of this approach include:


If the Informix read portion fails for some reason and you have to retry it, the production data warehouse users still aren't affected
If the production data warehouse (SQL Server) write portion fails for some reason and you have to retry it, the Informix users aren't affected either


I know that you're going to say, "But I need to write it this way." Thing is, the reason you're not finding any results for your question out there is that people don't write it that way. As your data grows, your server grows, and your career grows, you're going to need to extract data from multiple sources and you won't be able to take locks across all of them at once to accomplish the load. That's why the ETL (extract/transform/load) design is so popular.