OLEDB provider VFPOLEDB for linked server returned message "Invalid path or file name"

Hello,
I'm hoping someone can shed some light on this.  I'd researched this error for days, reading all the post in this forum, however none of them address my issue.
We use VFP 9 .dbf tables (free tables).  I setup a linked server to query the tables.  As first we were not able to view the tables in SQL Server Mgmt Studio (MSMS) until I sorted out the permissions.  I can query the tables if I copy over
to the server so they are local tables.  However, across the network I am continually getting the error above and the following error:
"Cannot initialize the data source object of OLE DB provider VFPOLEDB for linked server XXX."
Here are the steps I've performed...
Installed a 32 bit instance of SQL Server Express 2008 R2 using Windows Authentication on server 2 (the 64 bit instance could not see the VFP OLE DB provider, as we all know, because the provider is only 32 bit)
Installed the latest VFP OLE DB from http://www.microsoft.com/en-us/download/details.aspx?id=14839.
In the VFPOLEDB provider, I enabled Nested queries, Level zero only, Allow inprocess, and Supports 'Like' operator.
Setup a linked server using the following query:
EXEC master.dbo.sp_addlinkedserver
@server = N'LinkedAC',
@srvproduct = N'Visual FoxPro 9',
@provider = N'VFPOLEDB',
@datasrc = N'"\\server1\share\TIW\KOKAC"',
@provstr = N'VFPOLEDB.1'
At first I could not view the tables when expanding default>Tables, it failed due to a "catastrophic failure".  That can't be good ;-).  After digging around, I surmised it was because I'd set the SQL Instance to run as NT Authority\NetworkService.
I created a new user, LinkedVFP, and added to the SQL Instance (using Windows Authentication), mapped the user to the master database with the db_datareader role.  I also added the LinkedVFP user to the network share.  I was then able to browse
the tables in MSMS and query the data when local, but still not across the network.
I'm using Crystal Reports to try and query the data from my local workstation using SELECT * FROM OPENQUERY(mylinkedserver, 'select * from table1').  This produces the two errors I mentioned above.
To clarify, the VFP tables are on server 1 and the linked server is on server 2.  I've read about service account delegation, but unclear if this is the issue.  I went into our domain controller (neither server 1 or 2), AD User and Computers, and
for server 2 I enabled 'Trust this computer for delegation to any service (Kerberos only)'. 
Can anyone shed some light on this for me?
Thanks!
Aaron McVanner

Hi Aaron,
Thank you for your question. I am trying to involve someone more familiar with this topic for a further look at this issue. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated. 
If you have any feedback on our support, please click
here.
Regards,
Elvis Long
TechNet Community Support

Similar Messages

  • OLE DB provider "Microsoft.ACE.OLEDB.15.0" for linked server "(null)" does not support the required transaction interface

    Hi All,
    I am trying to execute a stored procedure and store its result in an excel.
    My query to execute stored proc and store sresults in excel
    INSERT INTO
    openrowset('Microsoft.ACE.OLEDB.15.0',
    'Excel 8.0;Database=C:\TC\DataAnalysisFiles\DataAnalysisResult.xls;OLE DB Services=-4','select * from [Sheet1$]')
    EXEC UspUnitTest_Test_CheckDuplicateModelNumberSerialNumber
    I am getting error
    The requested operation could not be performed because OLE DB provider "Microsoft.ACE.OLEDB.15.0" for linked server "(null)" does not support the required transaction interface.
    I have enabled below things by running scripts
    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'Ad Hoc Distributed Queries', 1;
    GO
    RECONFIGURE;
    GO
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.15.0', N'AllowInProcess', 1
     GO
     EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.15.0', N'DynamicParameters', 1
     GO
    Please help and let me know if this can be resolved
    Supriya Thigale

    because OLE DB provider "Microsoft.ACE.OLEDB.15.0" for linked server "(null)" does not support the
    required transaction interface.
    Hello,
    When you insert data from SQL Server into a linked server, then a distributed transaction should be started and here it seems this fails.
    See
    Distributed Transactions (Database Engine) for more Details +
    Distributed Queries
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "Excel_Test"

    Here,
    I have created a Linked Server Called Excel_Test And its working fine ( For Retrieving data from excel to Sql Server Database Table ) ...
    I have written a Stored Procedure for inserting data , When i Execute that stored procedure it is inserting data to Table Which i have
    given.
    And the data which is in table should be shown in the application,
    But, Am getting the following error.
    Cannot
    initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "Excel_Test".
     Please help me on this.
     Thanks in Advance....

    Even am able to retrieve the data from Sql Server management studio.
    The same retrieved data should be shown in the application (Dashbord).
    Query : Select * from OpenQuery(Excel_Test,'Select * from [Sheet1$]')
    Am getting the output excatly the data in the excel sheet.
    But when am opening that application where the above data should be shown am getting the below error.
    Cannot
    initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "Excel_Test".
     Is this error is because of problem in Dot Net Coding or in the linked server.
    Thanks in Advance.....

  • OLE DB provider "SQLNCLI10" for linked server "(null)

    Hi guys,
     I am keep getting this error message when I am trying to connect to one SQL 2008R2  Instance which is clustered from SSIS ( SQL Server Data tools)...
    Exception from HRESULT: 0xC0202009
    Error at Data Flow Task [OLE DB Source [548]]: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E14.
    An OLE DB record is available.  Source: "Microsoft OLE DB Provider for SQL Server"  Hresult: 0x80040E14  Description: "Named Pipes Provider: Could not open a connection to SQL Server [2]. ".
    An OLE DB record is available.  Source: "Microsoft OLE DB Provider for SQL Server"  Hresult: 0x80040E14  Description: "OLE DB provider "SQLNCLI10" for linked server "(null)" returned message "A network-related
    or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server
    Books Online.".".
    An OLE DB record is available.  Source: "Microsoft OLE DB Provider for SQL Server"  Hresult: 0x80040E14  Description: "OLE DB provider "SQLNCLI10" for linked server "(null)" returned message "Login timeout
    expired".".
    Any workaround for this error message if anyone has encountered before?
    Thank you 
    Please Mark As Answer if it is helpful. \\Aim To Inspire Rather to Teach A.Shah

    Hi Logicinisde,
    In addition to Olaf's answer, if package configurations are enabled, the issue may occur because the package configurations are not applied correctly. Please give that a check.
    Regards,
    Mike Yin
    TechNet Community Support

  • Microsoft Access Text Driver missing! and ...Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

    In order to use OpenRowSet, I installded Microsoft Access Database Engine 2010. However, I could not find Microsoft Access Text Driver in Drivers of ODBC Data Source Administrator.  Could I get some help with that?
    Thank you very much!

    I am local admin and try to run the following script, but I got an error. Could anyone help me look at it?
    EXEC sp_configure 'show advanced options', 1
    go
    RECONFIGURE
    GO
    EXEC sp_configure 'ad hoc distributed queries', 1
    go
    RECONFIGURE
    GO
    SELECT * FROM OPENROWSET('MSDASQL',
    'Driver={Microsoft Access Text Driver (*.txt, *.csv)};
    DefaultDir=D:\;','SELECT * FROM Test.csv')
    Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
    Configuration option 'Ad Hoc Distributed Queries' changed from 1 to 1. Run the RECONFIGURE statement to install.
    OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
    Msg 7303, Level 16, State 1, Line 1
    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

  • The requested operation could not be performed because OLE DB provider "MSOLAP" for linked server does not support the required transaction interface.

    I am getting the following error when attempting to INSERT the results of an "EXEC(@MDXQuery) at SSAS LinkedServer":
    The requested operation could not be performed because OLE DB provider "MSOLAP" for linked server does not support the required transaction interface.
    Here is code that illustrates what I am doing:
    DECLARE @MDX varchar(max);
    SET @MDX='
    SELECT
    [Measures].[Extended Service Count]
    } ON COLUMNS,
    NON EMPTY [Organization].[By Manufacturer].[Manufacturer]
    ON ROWS
    FROM (
    SELECT
    {[Organization].[Org Tree].&[2025],[Organization].[Org Tree].&[2040]} ON 0
    FROM [MyCube]
    /* Test 1 */
    EXECUTE(@MDX) at SSASLinkedServer;
    /* Test 2 */
    DECLARE @ResultsB TABLE (
    Manufacturer varchar(255)
    , ExtendedServiceCount float
    INSERT INTO @ResultsB (Manufacturer, ExtendedServiceCount) EXECUTE(@MDX) at SSASLinkedServer;
    Test 1 succeeds, returning expected results, and Test 2 fails returning the error mentioned above.
    Other articles I've found so far don't seem to apply to my case.  I am not creating any explicit transactions in my code.   When I use OPENQUERY, I am able to do the insert just fine, but not when I use EXEC @MDX at LinkedServer.
    Unfortunately in some variations of the query, I run into the 8800 character limit on OPENQUERY, so I need to use this other approach.
    Any ideas?
    -Tab Alleman

    Hi Tab,
    In this case, SQL Server Analysis Services doesn’t support Distributed Transactions by design. Here is a similar thread about this issue for your reference, please see:
    http://social.technet.microsoft.com/Forums/en-US/8b07be45-01b6-49d4-b773-9f441c0e44c9/olaplinked-server-error-msolap-for-linked-server-olaplinked-server-does-not-support-the?forum=sqlanalysisservices
    One workaround is that use SQLCMD to execute the EXEC AT command and saved the results to a file, then import using SSIS.
    If you have any feedback on our support, please click
    here.
    Regards,
    Elvis Long
    TechNet Community Support

  • Error' OLE DB provider "SQLNCLI10" for linked server "SOURCE" was unable to begin a distributed transaction'

    Hi,
    We are getting below error wile run open query to execute the procedure.
    example:- 
    SELECT * FROM openquery ([PSNSQLN04],'SET FMTONLY OFF;exec [PSNSQLN04]. AltDataHub.dbo
    .Report_Attendance_FullTimer_YUM 107,264593,1909,''2015-02-24'',''2015-02-24''')
    error:- 
    Msg 7357, Level 16, State 1, Line 4
    Cannot process the object "SET FMTONLY OFF;exec [PSNSQLN04]. AltDataHub.dbo
    .Report_Attendance_FullTimer_YUM 107,264593,1909,'2015-02-24','2015-02-24'". The OLE DB provider 
    "SQLNCLI10" for linked server "PSNSQLN04" indicates that either the object has no columns or the current user 
    does not have permissions on that object.
    SQL detail:- 
    Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64) 
    Apr 22 2011 19:23:43 
    Copyright (c) Microsoft Corporation
    Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
    I had tried with re-install MSDTC services and Local DTC Properties , security changes but getting the still same error.
    Please help if some can help.
    Thanks
    Subhash

    Hi Subhash,
    According to your description, you fail to use OpenQuery function to execute the procedure, and permission is not the cause. Based on my research, the issue could be due to that your procedure Report_Attendance_FullTimer_YUM is used to update,
    delete or insert records and the OpenQuery requires a result set to be returned, but UPDATE, delete and INSERT statements that are used with OpenQuery do not return a result set.
    You could work around this issue in the following ways:
    1. Change the code to the following: execute ('exec AltDataHub.dbo.Report_Attendance_FullTimer_YUM 107,264593,1909,''2015-02-24'',''2015-02-24''') AT PSNSQLN04;
    2. Instead of using the procedure Report_Attendance_FullTimer_YUM, you could reference the OpenQuery function as the target table of an INSERT, delete, or UPDATE and use 'update openquery', 'insert openquery', or delete openquery to achieve your goal. For
    more information about the process, please refer to the article:
    https://msdn.microsoft.com/en-us/library/ms188427.aspx?f=255&MSPPError=-2147217396
    Regards,
    Michelle Li
    Lydia Zhang
    TechNet Community Support

  • Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "database name".

    I have an application which has linked servers to mdb databases on Sql Server. Development machines which have access to full version of Office can intialise the data source as expected, however, machines using the Office 2010 runtime throw the above exception.
    Have checked the HKEY_CLASSES_ROOT\Microsoft.ACE.OleDb.12.0\CLSID which has value {3BE7860-0366-4F5C-9434-25CF162E475E} as expected, however that CLSID cannot be found in HKEY_CLASSES_ROOT\CLSID on the machines using the runtime.
    How can I ensure PCs using the 2010 runtime can access the linked server(s).

    To add a login, execute this procedure:
    sp_addlinkedsrvlogin
    See some examples here:
    http://msdn.microsoft.com/en-us/library/ms189811.aspx

  • OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Unspecified error".

    I am trying to execute this Select against my excel file
    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0; HDR=NO; IMEX=1; Database=C:\Temp\test.xlsx', 'SELECT * FROM [Sheet1$]')
    I have followed every single step according to this article here
    http://visakhm.blogspot.ca/2013/12/how-to-solve-microsoftaceoledb120-error.html
    but still getting the same error as metioned in the title. Can anyone suggest what else could be wrong?
    The environment is SQL 2005 64 bit with Office 64 Bit drivers (Access 64 bit engine installed)

    I am trying to execute this Select against my excel file
    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0; HDR=NO; IMEX=1; Database=C:\Temp\test.xlsx', 'SELECT * FROM [Sheet1$]')
    I have followed every single step according to this article here
    http://visakhm.blogspot.ca/2013/12/how-to-solve-microsoftaceoledb120-error.html
    but still getting the same error as metioned in the title. Can anyone suggest what else could be wrong?
    The environment is SQL 2005 64 bit with Office 64 Bit drivers (Access 64 bit engine installed)
    Hi ,
    I think this help u little to run excel file in ssis.In instal  Access bit not work well on ssis any version.you need to change debugging 1 option from  true to false.
    This is the step for change it:
    1. Right click on your project then go to properties.
    2.then go to debugging.
    3.Then there is a option debug.go there and change "Run64bitRuntime"  true to false.
    I think your problem solve.
    Told me if u not understand anything my English so bad
    Thanks
    Muzahid.

  • Cannot create an instance of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)"

    Windows Server 2008
    SQL Express 2012
    Tried opening a .csv and a .xls file, without success. File is located on the local server and not somewhere else.
    I know, I know, the forums are full of this error message. But sometimes when you follow all of the rules, stuff still happens, or in this case Doesn't happen.
    I installed the proper ACE drivers (64 bit) and reconfigured SQL Server to allow Ad Hoc Queries. Hell I even rebooted the server after the install.
    I have successfully installed these drivers on several machines (work stations and servers), and all have worked just fine. So, I am at a loss as to why it won't work on this system. I might have forgotten some obscure setting, but I don't think so.
    Ted

    Registry fix was also tried?
    EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
    GO
    EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
    GO

  • Linked Server Error message

     Hi,
    I have 3 SQL servers, A, B, and C.
    i am able to establish a linked server from A to C and C to A
    i am able to establish a linked server from B to C and C to B.
    but when i try to establish a linked server from A to B, i have been getting this error, i am goin nuts because if there is any problem with A, then even C shud not ne able to connect but its connecting, if theres any problem with B , C shud not connect but its connecting.
    C is connecting to both A and B without errors.
    Also A is connecting to C and B is connecting to C.
    But the problem is between A and B Servers.
    when i test the connection from B to A i get this message,
    A is SQl 2000, B is 2008, c is 2008.
    Pls suggest wat do i do.
    Y is there a problem of connection between only A to B and B to A.
    While making a linked Server from B to A without using Security, i get the error
    The OLE DB provider "SQLNCLI10" for linked server "A" reported an error. Authentication failed.
    Cannot initialize the data source object of OLE DB provider "SQLNCLI10" for linked server "A".
    OLE DB provider "SQLNCLI10" for linked server "A" returned message "Invalid authorization specification". (.Net SqlClient Data Provider)
    when i connect using the sa account i get the folowing error,
    VIA Provider: The specified module could not be found.
    OLE DB provider "SQLNCLI10" for linked server "A" returned message "Login timeout expired".
    OLE DB provider "SQLNCLI10" for linked server "A" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.". (.Net SqlClient Data Provider)
    Thanks a Ton for any kind a help

    Muchas gracias por la ayuda con el problema:
    The OLE DB provider "SQLNCLI10" for linked server "A" reported an error. Authentication failed.
    Cannot initialize the data source object of OLE DB provider "SQLNCLI10" for linked server "A".
    OLE DB provider "SQLNCLI10" for linked server "A" returned message "Invalid authorization specification".
    Esto me ayudo a resolverlo:
    https://sites.google.com/site/greateindiaclub/software-zones/database-community/sql-server/cannotinitializethedatasourceobjectofoledbprovidersqlncli10forlinkedserver
    Pero despues me apareció el siguiente problema:
    The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "B" was unable to begin a distributed transaction.
    OLE DB provider "SQLNCLI10" for linked server "B" returned message "El administrador de transacción ha deshabilitado su soporte para transacciones de red o remotas.".
    Y lo resolví con esto:
    EXEC sp_serveroption @server = 'ServerB',@optname = 'remote
    proc transaction promotion', @optvalue = 'false' ;
    Fuente:  http://www.sqlservercentral.com/Forums/Topic1102122-146-1.aspx#bm1102224
    Saludos...
    Desarrollador en .NET

  • Linked Server [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

    Hi  I have SQL2012 installed on my local machine and have also installed MySQL 5.6.23 installed with a test database.
    I also have my SQL connector installed and MYSQL ODBC Driver 3.51.   
    Which happily connects to the Mysqldb.
    The Datasource Name : mySQL conn
    TCP/IP Server : localhost and Port :3306
    User root
    with pwd
    On the SQL side I have used the following
    EXEC master.dbo.sp_addlinkedserver
      @server = N'MYSQLSRV',
      @srvproduct=N'mySQL conn',
      @provider=N'MSDASQL',
      @datasrc=N'mySQL conn'
    However when I try to selet using open query
    SELECT * FROM OPENQUERY ( [MYSQLSRV], 'SELECT * FROM students' )
    it comes back with
    OLE DB provider "MSDASQL" for linked server "MYSQLSRV" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
    Msg 7303, Level 16, State 1, Line 1
    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "MYSQLSRV".
    I cant understand what I have done wrong .   Any help in this would be great as Ive hit a bit of a brick wall

    Hi Robert3975,
    In addition to other post, please also note the following things.
    1. If you use the 32-bit driver on a 64-bit machine, please run the 32bit version of "odbcad32.exe" by running "c:\Windows\SysWOW64\odbcad32.exe"
     from Start/Run menu and
    create your ODBC DSN. However, for the 64-bit driver, use c:\windows\system32\odbcad32.exe to create your ODBC DSN. For more details, please review this similar
    thread.
    2. Expand the folder Providers under Linked server directory in SSMS and go to properties of MSDASQL provider and configure it properly as described in this blog:
    Creating Linked server to MYSQL from SQL Server.
    Thanks,
    Lydia Zhang
    If you have any feedback on our support, please click
    here.
    Lydia Zhang
    TechNet Community Support

  • Linked Server :: OLE DB provider "OraOLEDB.Oracle" for linked server "ABC" returned message "New transaction cannot enlist in the specified transaction coordinator. ".

    Hello All,
    As mentioned in title, i am stuck up with that articular error from last three days,
    i have following scenario, my SQL server 2008, my oracle 10g are on both same machine with OS Windows Server 2008.
    the following error generated on my management studio when i execute my procedure written in my SQL server. Following is original source code snippet after error massage.
    OLE DB provider "OraOLEDB.Oracle" for linked server "ORCL" returned message "New transaction cannot enlist in the specified transaction coordinator. ".
    Msg 50000, Level 16, State 2, Procedure PROC_MIGRATE_MST_FRM_ORA_SQLSERVER, Line 43
    The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" for linked server "ORCL" was unable to begin a distributed transaction.
    BEGIN TRY
    -- MIGRATION OF PR_COMPANY_MH START
    BEGIN TRANSACTION T1
    PRINT 'mILAN NNNNNNNNN 11'
    INSERT INTO PROD.PR_COMPANY_MH
    SELECT * FROM OPENQUERY(ORCL, 'SELECT * FROM PR_COMPANY_MH WHERE SQL_FLG = ''N'' ')
    PRINT 'mILAN NNNNNNNNN 12'
    UPDATE OPENQUERY(ORCL, 'SELECT SQL_FLG FROM PR_COMPANY_MH WHERE SQL_FLG = ''N''')
    SET SQL_FLG = 'Y'
    --EXECUTE ('UPDATE PROD.PR_COMPANY_MH SET SQL_FLG = ''Y'' ') AT [ORCL]
    PRINT 'mILAN NNNNNNNNN 13'
    COMMIT TRANSACTION T1
    -- MIGRATION OF PR_COMPANY_MH END
    END TRY
    BEGIN CATCH
    PRINT 'mILAN NNNNNNNNN 14'
    ROLLBACK TRANSACTION T1
    PRINT 'mILAN NNNNNNNNN 15'
    SELECT
    @ErrorNumber = ERROR_NUMBER(),
    @ErrorSeverity = ERROR_SEVERITY(),
    @ErrorState = ERROR_STATE(),
    @ErrorLine = ERROR_LINE(),
    @ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
    PRINT 'mILAN NNNNNNNNN 16'
    SELECT @ErrorMessage = ERROR_MESSAGE();
    RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState, @ErrorNumber, @ErrorProcedure)
    PRINT 'mILAN NNNNNNNNN 17'
    END CATCH
    this perticular part is raising that error, and i had tried every configuartion on my local machine related to MS DTC.
    When i remove my transaction code, its work just fine no exception raise, but when i use then i.e. BEGIN TRAN, COMMITE TRAN, AND ROLLBACK TRAN. its giving me error, other wise its fine.
    Please Help or disscus or suggest why my transaction base code is not woking????
    thanks in advance.
    Regards,
    Milan

    Sorry again, I am new on any kind of forum, so i am learning now, following is the error massage generated by SQL Server. and its not
    an architecture problem, i had just included my complete architecture to be more informative while asking for the solution or suggestion. My real problem is T-SQL, i think and its related to Distributed queries raise in SQL Server in Oracle Link Server.
    OLE DB provider "OraOLEDB.Oracle"
    for linked server "ORCL" returned message "New transaction cannot enlist in the specified transaction coordinator. ".
    Msg 50000, Level 16, State 2, Procedure PROC_MIGRATE_MST_FRM_ORA_SQLSERVER,
    Line 43
    The operation could not be performed because OLE
    DB provider "OraOLEDB.Oracle" for linked server "ORCL" was unable to begin a distributed transaction.

  • The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" for linked server ...

    Our setup is that we have two databases; a SQL Server 2008 database and an Oracle database (11g). I've got the oracle MTS stuff installed and the Oracle MTS Recovery Service is running. I have DTC configured to allow distributed transactions. All access to the Oracle tables takes place via views in the SQL Server database that go against Oracle tables in the linked server.
    (With regard to DTC config: Checked-> Network DTC Access, Allow Remote Clients, Allow Inbound, Allow Outbound, Mutual Authentication (tried all 3 options), Enable XA Transactions and Enable SNA LU 6.2 Transactions. DTC logs in as NT AUTHORITY\NetworkService)
    Our app is an ASP.NET MVC 4.0 app that calls into a number of WCF services to perform database work. Currently the web app and the WCF service share the same app pool (not sure if it's relevant, but just in case...)
    Some of our services are transactional, others are not.
    Each WCF service that is transactional has the following attribute on its interface:
    [ServiceContract(SessionMode=SessionMode.Required)]
    and the following attribute on the method signatures in the interface:
    [TransactionFlow(TransactionFlowOption.Allowed)]
    and the following attribute on every method implementations:
    [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
    In my data access layer, all the transactional methods are set up as follows:
    using (IDbConnection conn = DbTools.GetConnection(_configStr, _connStr))
    using (IDbCommand cmd = DbTools.GetCommand(conn, "SET XACT_ABORT ON"))
    cmd.ExecuteNonQuery();
    using (IDbCommand cmd = DbTools.GetCommand(conn, sql))
    ... Perform actual database work ...
    Services that are transactional call transactional DAL code. The idea was to keep the stuff that needs to be transactional (a few cases) separate from the stuff that doesn't need to be transactional (~95% of the cases).
    There ought not be cases where transactional and non-transactional WCF methods are called from within a transaction (though I haven't verified this and this may be the cause of my problems. I'm not sure, which is part of why I'm asking here.)
    As I mentioned before, in most cases, this all works fine.
    Periodically, and I cannot identify what initiates it, I start getting errors. And once they start, pretty much everything starts failing for a while. Eventually things start working again. Not sure why... This is all in a test environment with a single user.
    Sometimes the error is:
    Unable to start a nested transaction for OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLSERVERNAME". A nested transaction was required because the XACT_ABORT option was set to OFF.
    This message, I'm guessing is happening when I have non-transactional stuff within transactions, as I'm not setting XACT_ABORT in the non-transactional code (that's totally doable, if that will fix my issue).
    Most often, however, the error is this:
    System.Data.SqlClient.SqlException (0x80131904): The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLSERVERNAME" was unable to begin a distributed transaction.
    Now, originally we only had transactions on SQL Server tables and that all worked fine. It wasn't until we added transaction support for some of the Oracle tables that things started failing. I know the Oracle transactions work. And as I said, most of the time, everything is just hunky dorey and then sometimes it starts failing and keeps failing for a while until it decides to stop failing and then it all works again.
    I noticed that our transactions didn't seem to have a DistributedIdentifier set, so I added the EnsureDistributed() method from this blog post: http://www.make-awesome.com/2010/04/forcibly-creating-a-distributed-net-transaction/
    Instead of a hardcoded Guid (which seemed to cause a lot of problems), I have it generating a new Guid for each transaction and that seems to work, but it has not fixed my problem. I'm wondering if the lack of a DistribuedIdentifier is indicative of some other underlying problem. I've never dealt with an environment quite like this before, so I'm not sure what is "normal".
    I've also noticed that the DistributedIdentifier doesn't get passed to WCF. From the client, I have a DistributedIdentifier and a LocalIdentifier in Transaction.Current.TransactionInformation. In the WCF server, however there is only a LocalIdentifier set and it is a different Guid from the client side (which makes sense, but I would have expected the DistributedIdentifier to go across).
    So I changed the wait the code above works and instead, on the WCF side, I call a method that calls Transaction.Current.EnlistDurable() with the DummyEnlistmentNotification class from the link above (though with a unique Guid for each transaction instead of the hardcoded guid in the link). I now havea  DistributedIdentifier on the server-side, but it still doesn't fix the problem.
    It appears that when I'm in the midst of transactions failing, even after I shut down IIS, I'm unable to get the DTC service to shutdown and restart. If I go into Component Services and change the security settings, for example, and hit Apply or OK, after a bit of a wait I get a dialgo that says, "Failed ot restart the MS DTC serivce. Please examine the eventlog for further details."
    In the eventlog I get a series of events:
    1 (from MSDTC): "The MS DTC service is stopping"
    2 (From MSSQL$SQLEXPRESS): "The connection has been lost with Microsoft Distributed Transaction Coordinator (MS DTC). Recovery of any in-doubt distributed transactions
    involving Microsoft Distributed Transaction Coordinator (MS DTC) will begin once the connection is re-established. This is an informational
    message only. No user action is required."
    -- Folowed by these 3 identical messages
    3 (from MSDTC Client 2): 'MSDTC encountered an error (HR=0x80000171) while attempting to establish a secure connection with system GCOVA38.'
    4 (from MSDTC Client 2): 'MSDTC encountered an error (HR=0x80000171) while attempting to establish a secure connection with system GCOVA38.'
    5 (from MSDTC Client 2): 'MSDTC encountered an error (HR=0x80000171) while attempting to establish a secure connection with system GCOVA38.'
    6 (From MSDTC 2): MSDTC started with the following settings: Security Configuration (OFF = 0 and ON = 1):
    Allow Remote Administrator = 0,
    Network Clients = 1,
    Trasaction Manager Communication:
    Allow Inbound Transactions = 1,
    Allow Outbound Transactions = 1,
    Transaction Internet Protocol (TIP) = 0,
    Enable XA Transactions = 1,
    Enable SNA LU 6.2 Transactions = 1,
    MSDTC Communications Security = Mutual Authentication Required, Account = NT AUTHORITY\NetworkService,
    Firewall Exclusion Detected = 0
    Transaction Bridge Installed = 0
    Filtering Duplicate Events = 1
    This makes me wonder if there's something maybe holding a transaction open somewhere?

    The statement executed from the sql server. (Installed version sql server 2008 64 bit standard edition SP1 and oracle 11g 64 bit client), DTS enabled
    Below is the actual sql statement issued
    SET XACT_ABORT ON
    BEGIN TRAN
    insert into XXX..EUINTGR.UPLOAD_LWP ([ALTID]
              ,[GRANT_FROM],[GRANT_TO],[NO_OF_DAYS],[LEAVENAME],[LEAVEREASON],[FROMHALFTAG]
              ,[TOHALFTAG] ,[UNIT_USER],[UPLOAD_REF_NO],[STATUS],[LOGINID],[AVAILTYPE],[LV_REV_ENTRY])
              values('IS2755','2010-06-01',
    '2010-06-01','.5',     'LWOP'     ,'PERSONAL'     ,'F',     'F',     'EUINTGR',
    '20101',1,1,0,'ENTRY')
    rollback TRAN
    OLE DB provider "ORAOLEDB.ORACLE" for linked server "XXX" returned message "New transaction cannot enlist in the specified transaction coordinator. ".
    Msg 7391, Level 16, State 2, Line 3
    The operation could not be performed because OLE DB provider "ORAOLEDB.ORACLE" for linked server "XXX" was unable to begin a distributed transaction.
    Able to execute the above statement successfully without using transaction.We need to run the statement with transaction.

  • Cannot get data of the row from OLE DB provider "OraOLEDB.Oracle" for linked server

    I have created a stored procedure in SQL Server for a report that uses parameters.  In the report I am linking an Oracle table.  I use a subquery like this to query the Oracle table:  (select * from openquery(oracle_linked_server, 'select
    partno, description from oracletable')).  If I run the subquery it works fine every time.  The linked server uses an oracle account which has access to the oracle table.  When I first created the Stored Procedure it worked fine for me.  When
    I test the report, it worked fine.  Then I asked another user to test it and it broke with the below error message.  
    OLE DB provider "OraOLEDB.Oracle" for linked server "XXXX_ORACLE" returned message "ORA-01403: no data found".
    Msg 7346, Level 16, State 2, Procedure usp_report_XXXXXX, Line 15
    Cannot get the data of the row from the OLE DB provider "OraOLEDB.Oracle" for linked server "XXXX_ORACLE".
    Now when I try the report or the stored procedure, I get the same error.  I tested the oracle subquery in the stored procedure and it still works.  The report uses a service account to execute the stored procedure.
    I am using SQL Server 2012 Developer Edition 64 bit (11.0.5058) Management Studio to develop the stored procedure.  The SQL Server I am accessing and running the stored procedure is SQL Server 2008R2 Developer Edition 64bit (10.50.2550).  The user
    that tested the report for me has SQL Server 2008R2 but that shouldn't matter since he is running the report in Internet Explorer.
    What is changing that it works for a while and then stops?
    Fred
    Fred Schmid

    I found the answer.  It was in the query.  I put the TRIM statement on the part# field in the Oracle subquery and took the LTRIM function out of the ON clause that joined my SQL Server table with the Oracle linked server table.  Now everything
    works.  The query looks like this:
    SQL_Server_Table sst
    LEFT OUTER JOIN
    (SELECT * FROM OPENQUERY(OracleLinkedServer, 'SELECT TRIM(partNo) AS partNo, partDesc FROM OracleTable')) ols
    ON sst.partNo = ols.partNo
    Thanks for pointing me in the right direction.
    Fred Schmid

Maybe you are looking for

  • OVM 3.3.1:  NFS storage is not available during repository creation

    Hi, I have OVM Manager  running on a separate machines managing 3 servers running OVM server  in a server pool. One of the server also exports a NFS share that all other machines are able to mount and read/write to. I want to use this NFS share to cr

  • [SOLVED] Problems in permissions for accessing files

    Hi everyone let's say I want to copy a folder to /etc/ the problems is my user can't copy files anywhere other then it's home it doesn't even have access to any file or folder other then home. on the other hand I can use root to view and copy or acce

  • Loop #  of times, stop at specific frame

    Hi there, I'm having trouble finding the answer to a simple (I hope) question. I made a flash banner and have successfully added an action that will loop it 3 times, stopping on the last frame. Here is the code I entered in a separate action layer: I

  • Web Dynpro ALV hide field

    Hi, Does anyone knwo how i can hide a field in a web dynpro by the abap code?

  • Gone standard application after the upgrade 7.1.2

    Some days ago,I decided to update your Ipad 2 to version 7.1.2. During the upgrade, the child took the cord from the computer. After I finished the update and I lost the standard application(settings,Safari,Apple store and other). Can I restore it,if