cancel
Showing results for 
Search instead for 
Did you mean: 

UPDATE inside distributed transaction

Former Member
5,590

Hello!

I have SQL Anywhere 11 database linked to MS SQL Server 2008 as a ‘linked server’. When I don’t use distributed transactions (via MSDTC) all is working fine (updates to remote SQL Anywhere committed without any problems). When I start using distributed transactions (and make only SELECTs inside distributed transaction) all is working fine again (I control transactions using @@trancount statement in MS SQL Server code). Such experiments bring two major results: SQL Anywhere as Linked Severs and MSDTC working correctly in these simple configurations.

But when I start using UPDATEs inside distributed transaction all completed with The OLE DB provider "SAOLEDB.11" for linked server "link" reported an error committing the current transaction error on line with UPDATE statement.

Note: when I link two MS SQL Servers any UPDATES in one distributed transactions working fine.

What should I do to make code below working correctly?

set implicit_transactions on; -- necessary for autocommit shootdown 
set xact_abort on;

begin try
    begin distributed tran; 
    select @@trancount TranCount;

    --select * from link..amos.address where addressid = 1000001;

    update          link..amos.address 
    set             ad.addressstatus = 1 
    from            link..amos.address ad
    where           ad.addressid = 1000001;

    select @@trancount TRANCOUNT;
    commit tran;
    select @@trancount TRANCOUNT;
end try
begin catch
    rollback tran;
    select error_number() AS ErrorNumber, 
           error_message() AS ErrorMessage, 
           error_line () AS ErrorLine;
end catch;

Query Output:

TranCount: 2

ErrorNumber: 7394   
ErrorMessage: The OLE DB provider "SAOLEDB.11" for linked server "link" reported an error committing the current transaction.
ErrorLine: 10

P.S. Sorry for my English.

Accepted Solutions (0)

Answers (2)

Answers (2)

VolkerBarth
Contributor
0 Kudos

You may look at the following FAQ.

The fixes mentioned there were introduced in newer EBFs than you are using, so it might be worthwhile to test with a newer EBF. Note, I can't claim that these issues are related to the behaviour you are seeing.

Former Member
0 Kudos

Precisely which release and build of SQL Anywhere 11 are you using? Does your SAOLEDB.11 library have the same build number?

Former Member
0 Kudos

Server

Server Version: 11.0.1.2331 (it's a Developer Edition)

BuildChange: 625781 (value taken from Database server properties list in Sybase Central)

Provider

SQL Anywhere OLE DB Provider 11 (dboledb11.dll)

Version: 11.0.1.2331

Last Modified: 10/14/‎2009.

SQL Anywhere OLE DB Provider Catalog Assist (dboledba11.dll)

Version: 11.0.1.2331

Last Modified: 10/14/‎2009.

Engine version and provider version look like same. Also I check (in Windows Registry) keys for SAOLEDB.11 provider - its point on correct files.

reimer_pods
Participant
0 Kudos

While I can't say something concerning the specific problem I would recommend updating to a recent EBF. In the last 2 years many modifications and fixes have been made. So possibly that could fix this issue.