Unanswered: OLE DB provider 'MSDAORA' was unable to begin a distributed transaction
I have been attempting to set up a linked server in SQL Server 2000 to point to an Oracle database (a very old Oracle database, v7!).
The linked server set up works fine. Then I created a database on the same SQL Server. Within that database I created a view which reads information from a view in the Oracle database (linked server). When I attempted to create this view in Enterprise Manager, I get the following error:
"The operation could not be performed because the OLE DB provider 'MSDAORA' was unable to begin a distributed transaction."
And so I created the view in Query Analyzer. This worked perfectly, no errors, and I can now go into Enterprise Manager and call up the view, which happily goes off to the view in the Oracle linked server and pulls back the info. BUT, when I attempt to do the same thing through an application on a different machine (using OLE Db, and a UDL to connect) the same error as above appears.
Does anyone know what this error means, and where I went wrong? Any help greatly appreciated. My view onto the linked server looks like this:
"CREATE VIEW dbo.NLPG_VIEW
SELECT * from openquery(sadaslink, 'select * from NLPG_VIEW')"
Many thanks in advance for your wisdom!
P.S I wondered whether I need to check if the distributed transaction co-ordinator is running but don't know how.
Thanks, I've already had aread through this. I did create the view in query analyzer but the problem now is that I can't get it to work from a remote application. I think I need to look into the distributed transaction co-ordinator, but I don't know how or where. How do I see if it is running? How do I get it running?
No Polly, the concepts are related, but definitely not the same.
The problem is that SQL Server uses many flavors of locks in order to acheive true data consistancy... Some locks prohibit writing, some prohibit any access at all, and some do things that are difficult to describe in English, but make the engine behave as well as possible.
I haven't tried this in a long time, and no longer have an Oracle 7.x server to even test with, but I think you could get by with:
SET REMOTE_PROC_TRANSACTIONS OFF
CREATE VIEW dbo.NLPG_VIEW
SELECT * from openquery(sadaslink, 'select * from NLPG_VIEW')
All I can suggest that you do is to try it... I don't see how the attempt could hurt anything.