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.

Similar Messages

  • 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 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

  • 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

  • ERROR: The operation could not be performed because the file can't be accessed or doesn't exist. Please contact your web developer to correct the problem.

    Only on one page, the client is receiving this error:
    Error - The operation could not be performed because the
    file cant be accessed or doesnt exist. Please contact your web
    developer to correct the problem.
    I tested it with a couple different usernames and a couple different browsers and it works fine on my end.. but none the less it is happening to him. This is the second time it happened to two different clients.
    ??? Any ideas ??? Anyone else had this happen?

    Here's the setup on the two machines in particular...
    Machine #1:
    XP Pro
    Was IE7, now latest FF
    No antivirus
    Firewall – Windows Firewall, Downloaded AVG free trial ver., but not installed
    Machine #2:
    XP Pro
    IE7
    Again, No AV… had Kaspersky… but uninstalled it
    Windows Firewall
    Maybe that could be of some assistance... not seeing anything that could possibly block or inhibit the ICE. Each machine is independent of the other, separate networks, different locations, JavaScript enabled, no cookie blockers, etc.
    ....STUMPED!!!   

  • Error help- "the operation could not be performed ...file... doesn't exist"?

    Hi,
    I am experiencing some probmels with ICE and can't find a reason for why.  I was able to edit the pages on the site through ICE about a month ago, but the client just let me know they can't do anything for any page.  I also can't do anything for any pages I was able to previously edit.  Basicall, I get this error message after being able to log in, edit page, and click save draft/ changes I get the following error:
    "The operation could not be performed because the file can't be accessed or doesn't exist..."
    I have looked extensively at these threads: http://forums.adobe.com/thread/444356?tstart=60
    and http://forums.adobe.com/thread/432559?tstart=0
    From that I have tried the following:
    Made sure passive FTP was working properly
    Verified FTP Dreamweaver connection with same FTP account: all is good and i can change and put the pages in question on the server.
    Verified tags in page (I think I have most pages correct.- although I know some are still not div tagged correct, but don't think thee issues are related.)
    verified that the directory settings on the adobe account (which is the root) is only "/"
    Tried editing in both Safari and FF and the client tried in IE and FF (all most recent versions I think)
    No progress has been made.  Actually now my adobe account for managing my sites is not allowing me to manage "settings" for this site either.  The tab is there but doesn't have the word settings on it and therefore I can't click it anymore
    Here is the site: www.extremecommunitymakeover.org.  I know for sure I WAS able to edit the index, get involved, and contact us pages a moth ago and now I get the error.
    Also- another maybe related problem is that I can't actually duplicate or create new pages via ICE.  Everything I try to name the new page gets kicked back and the dialog box says error says the "file extension is invalid".
    So- I seem to have a couple problems possibly all related to each other and your help would be much appreciated.
    Thanks,
    Sean

    Here's the setup on the two machines in particular...
    Machine #1:
    XP Pro
    Was IE7, now latest FF
    No antivirus
    Firewall – Windows Firewall, Downloaded AVG free trial ver., but not installed
    Machine #2:
    XP Pro
    IE7
    Again, No AV… had Kaspersky… but uninstalled it
    Windows Firewall
    Maybe that could be of some assistance... not seeing anything that could possibly block or inhibit the ICE. Each machine is independent of the other, separate networks, different locations, JavaScript enabled, no cookie blockers, etc.
    ....STUMPED!!!   

  • Hi Friends... I'm trying to delete a back-up file on mu TC but I get the message "The operation could not be completed because the item "bands" is in use. I'd like to start the Back from scratch, could help me out with deleting the current file?

    Hi Friends...
    I’m trying to delete a back-up file on mu TC but I get the message “The operation could not be completed because the item “bands” is in use. I’d like to start the Back from scratch, could help me out with deleting the current file?

    Sorry, I am very confused. I asked the following question....
    Is this the only backup file on your Mac, or do you have other backup files and data on the Time Capsule disk?
    The answer that you gave was....
    This is the only one
    Now you are saying that....
    But I have lots of other files on Time Capsule! The back up file is only one of them.
    Can you clarify, please?

  • The share operation "master file" has failed. the operation could not be completed because an error occurred creating Frame 93164 (error-1). how can i find the frame?

    The share operation "master file" has failed. the operation could not be completed because an error occurred creating Frame 93164 (error-1). how can i find the frame?

    https://discussions.apple.com/thread/6219522

  • The operation could not be completed because an item with the name xyz already exists

    I am trying to make a click and drag backup on an external FAT 32 drive to compliment my Time Machine backup (long story) and I've done this each time by dragging my critical folders into the drive. I get a message asking me to stop, replace or skip, and whether to apply to all items. i click replace, apply all, and let it go.
    however, one stubborn folder refuses to comply. every single time I click and drag a group of folder that includes that one, I get a message saying "the operation could not be completed because an item with the name xyz already exists" even after I selected the the "apply all" prompt. at which point, the Mac stops transferring ALL the other files.
    I figured, OK, i'll just transfer the other folders individually and then deal with this folder later. so I do that, and once I get to the offending folder, I try to transfer just that one folder into the drive. no good; I get the operation message again. I decide to just transfer the contents of the folder, rather than the folder itself. No good, I just get the operation message about one of the folders within the main folder.
    anyone know the cause, or at least a fix?

    If you've installed a system modification called "TotalFinder," remove it according to the developer's instructions after backing up all data. Log out, log back in, and try again.
    Otherwise, open the Info dialog on both the source and the destination volumes. What is the Format of each? For example, it might be "Mac OS Extended (Journaled)".
    For some other possible solutions, see:
    operation can't be completed because an...: Apple Support Communities

  • The operation could not be completed because there is not enough space on the destination disk

    I have 124Gig of space left on my HD, when I try to export my movie i get this error "The operation could not be completed because there is not enough space on the destination disk"  I have read some of the threads went in and deleted the iMovie Preference file but no luck.. any Ideas?  Thanks!

    You need the System DVDs that originally came w/the computer in order to troubleshoot.  All Macs prior to & including ML came w/System DVDs. 
    You can get replacement System Install & Restore CD/DVDs from Apple's Customer Support - in the US, (800) 767-2775 - for a nominal S&H fee. You'll need to have the model and/or serial number of your Mac available. 
    If you're not in the US, you may need to go through the regional Apple Store that serves your location to find the contact number. Here's a list of links to all of those - http://store.apple.com/Catalog/US/Images/intlstoreroutingpage.html  Another resource:  International Support Phone #s.

  • The operation could not be completed because an error occurred when creating frame 6105 (error -1).

    I am trying to share a project and after the 3% of sharing the project it appears this message.
    The operation could not be completed because an error occurred when creating frame 6105 (error -1).
    What can I do?? I need some help please!!

    You need to set the FCP X Preferences to count in frames, locate that frame, delete the clip around it and replace with a fresh one.

  • The operation could not be completed because an error occurred when creating frame 19788 (error -1).

    When attempting to build a quicktime movie from my video project on final cut pro I got this message    "The operation could not be completed because an error occurred when creating frame 19788 (error -1)".

    Kathy ...
    Better to post your topic in the Final Cut Pro community here.

  • The operation could not be completed because an error occurred when creating frame 570 (error -1)

    Hi everybody,just started with FCPX and the following occured:
    The operation could not be completed because an error occurred when creating frame 570 (error -1)
    Result is that i can not share to my hard disk.
    If anybody could help me out here....?

    CHange General preferences to show frames. Check what's happenING at the frame number. Maybe replace the shot.

  • The operation could not be completed because an error occurred when creating frame 2829 (error -1)

    I'm getting this error code in Final Cut Pro.  The operation could not be completed because an error occurred when creating frame 2829 (error -1). What does this mean and how can I fix it?  This code comes up when exporting. 

    Final Cut Pro X 10.0.8 and I'm running it on OS X 10.9.1.  I have been doing nothing different for the past few months. I have been creating a weekly video and exporting the same way and everything, but it just did this today for the first time. I have never had this error code before.

  • The operation could not be completed because an error occurred when creating frame 30256 (error -1).

    When trying to export a project from FCPX, I get this error
    The operation could not be completed because an error occurred when creating frame 30256 (error -1).
    Has anyone any ideas?
    Many Thanks

    Switch your FCP preferences to show frames and see what's happen at that frame number. Try trash any render files. Switch off background rendering. Don't render. Try replacing the clip at the problem area.

Maybe you are looking for