Linked Server from SQL2K to NT Oracle

  • I have a sql2k instance XPDB55 and it has multiple linked servers. 2 of the linked servers are also sql2k and there are no problems with those. The problem I am having is that occasionally (more now than not) I am receiving an error when trying to access a linked NT Oracle server.

    The error is:

    OLE DB provider 'MSDAORA' reported an error.

    [OLE/DB provider returned message: Oracle error occurred, but error message could not be retrieved from Oracle.]

    OLE DB error trace [OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005: ].

    You can wait and try the exact query that returned the error a few minutes later and it will work.

    It seems that if the only was to correct this temporarily is to stop and re-start the service and/or reboot the server. Since this is a production server that effects ten of thousand of users on a 24-7 schedule, you can imagine the impact.

    There are no errors on the NT Oracle side. This is driving me and the rest of the SQL DBA's & developers crazy. Not to mention the endless calls from the users.

    FYI: It is also happening on more than one server.

    Any HELP would be greatly appreciated.

    Thanks - Melissa -

  • Is the listener up on the oracle side.

    Also which driver are you using the microsoft oracle driver, or the oracle one?

    Steven

  • Yes, The listener was up.

    Microsoft OLE DB Provider for Oracle

  • I just set one of these up, have seen similar. If you query the server with SQL*Net it seems to bring the connection up. Dont know why. Voodoo.

    Andy

    http://www.sqlservercentral.com/columnists/awarren/

  • No one hear remember anything like this happening in SQL 7.0...

  • quote:


    I have a sql2k instance XPDB55 and it has multiple linked servers. 2 of the linked servers are also sql2k and there are no problems with those. The problem I am having is that occasionally (more now than not) I am receiving an error when trying to access a linked NT Oracle server.

    The error is:

    OLE DB provider 'MSDAORA' reported an error.

    [OLE/DB provider returned message: Oracle error occurred, but error message could not be retrieved from Oracle.]

    OLE DB error trace [OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005: ].

    You can wait and try the exact query that returned the error a few minutes later and it will work.

    It seems that if the only was to correct this temporarily is to stop and re-start the service and/or reboot the server. Since this is a production server that effects ten of thousand of users on a 24-7 schedule, you can imagine the impact.

    There are no errors on the NT Oracle side. This is driving me and the rest of the SQL DBA's & developers crazy. Not to mention the endless calls from the users.

    FYI: It is also happening on more than one server.

    Any HELP would be greatly appreciated.

    Thanks - Melissa -


    The message Oracle "error occurred, but error message could not be retrieved from Oracle." is a generic way to say the object did not speak back to the controller in a timely manner with the error details.

    If you run it several times you will eventually get thru or get the actual error text.

    Most likely however if it does work sometimes but fails occasionally you are running into the same thing we do. Apparently something in the Oracle components locks out multiple running instances of itself. We were told it was based on client connection defined on the Oracle server but never found anything to support that. The error reads something like

    Unable to instantiate Oracle connector

    or something like that. I had the text but cannot find right now. Ours seemed to get better thou over a period of time and happens maybe once every day or so. We also updated to the Oracle 8 client.

  • dear all,

    i am also facing the same problem, any soultion to this, pls. update me.

    thanx


    Balaji

  • hi guys!

    keep it simple: anyone checked if sql*net/net8 including odbc driver was properly installed on your sql servers?

    0x80004005 is a generic COM error indicating E_FAIL (operation failed, not catastrophic) and normally happens if the programmer of a COM object does not properly care of exception handling.

    to my opinion, in this case MSDASQL (your OLEDB provider - a COM object) is looking for a driver to instanciate and cannot find the class.

    this normally has *nothing* to do with your sql servers! check this manually by creating a UDL file on your server (need MDAC installed, version irrelevant), enter your connection properties and test!

    if that works: normally you'll have to check "run in-process" for older drivers to work (under linked server advanced properties).

    best regards,

    chris.

Viewing 9 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic. Login to reply