Posted by joeNOSPAM@BEA.com on 02/01/07 15:41
On Feb 1, 7:30 am, "rbg" <rbg....@gmail.com> wrote:
> Hi,
> On My local SQL server I have added a linked server to another SQL
> server (remoteserver) in another Windows NT Domain.
>
> When I run this code
> select count(*) from remoteserver.mosaics.dbo.Location
>
> This works fine.
>
> However when I use
> begin transaction
> select count(*) from remoteserver.mosaics.dbo.Location
>
> It errors out saying that
> The operation could not be performed because the OLE DB provider
> 'SQLOLEDB' was unable to begin a distributed transaction.
> New transaction cannot enlist in the specified transaction
> coordinator. ]
> OLE DB error trace [OLE/DB Provider 'SQLOLEDB'
> ITransactionJoin::JoinTransaction returned 0x8004d00a].
>
> My question is even though I am just reading data from the
> remoteserver, why does the local transaction get promoted to a
> distributed transaction.
> Any help will be grately appreciated.
>
> TIA...Rohit
It is because you have a transaction established when you do the
query. The
other DBMS has to establish it's part of the transaction. This step
comes
before the DBMS does anything with the SQL, even before parsing it. I
bet the same would happen if you tried a remote 'select 1'.
Joe Weinstein at BEA Systems
[Back to original message]
|