Results 1 to 9 of 9
  1. #1
    Join Date
    Aug 2004
    Location
    Manchester, UK
    Posts
    143

    Unanswered: OLE DB provider 'MSDAORA' was unable to begin a distributed transaction

    Dear all,

    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:

    Code:
    "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:

    Code:
    "CREATE VIEW dbo.NLPG_VIEW
    AS
    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,

  2. #2
    Join Date
    Aug 2002
    Location
    Scotland
    Posts
    1,578

  3. #3
    Join Date
    Aug 2004
    Location
    Manchester, UK
    Posts
    143
    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?

  4. #4
    Join Date
    Feb 2004
    Location
    In front of the computer
    Posts
    15,579
    Provided Answers: 54
    On the SQL Server, start the SQL Services Manager. Change the Service to Distributed Transaction Coordinator. Play to your heart's content!

    FYI, with Oracle 7.3 I needed to use SET REMOTE_PROC_TRANSACTIONS to make things happy.

    -PatP

  5. #5
    Join Date
    Aug 2004
    Location
    Manchester, UK
    Posts
    143
    Would SET_REMOTE_PROC_TRANSACTIONS have to be coded into the app, as I can't put it in the SQL in the view can I?

  6. #6
    Join Date
    Aug 2002
    Location
    Scotland
    Posts
    1,578
    http://www.microsoft.com/technet/pro.../c08ppcsq.mspx a guide to the solution.
    Also check whether compatible Oracle driver is being used to connect, try with latest drivers.
    --Satya SKJ
    Microsoft SQL Server MVP
    [IMG]http://sqlserver-qa.net/google_bart.gif[/IMG]

  7. #7
    Join Date
    Aug 2004
    Location
    Manchester, UK
    Posts
    143
    When you said remote procedure transactions, is that the same as setting remote procedure call in the GUI in enterprise manager? RPC and RPC OUT?

    Thanks,
    Paula

  8. #8
    Join Date
    Feb 2004
    Location
    In front of the computer
    Posts
    15,579
    Provided Answers: 54
    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:
    Code:
    SET REMOTE_PROC_TRANSACTIONS OFF
    GO
    CREATE VIEW dbo.NLPG_VIEW
    AS
    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.

    -PatP

  9. #9
    Join Date
    Aug 2004
    Location
    Manchester, UK
    Posts
    143
    Thanks very much, I'll try it. Can't test it until next week, but Il'l let you know the results.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •