Link to home
Start Free TrialLog in
Avatar of meyerc74
meyerc74

asked on

distributed transaction error

i am trying to execute a stored proc into a tempory table using a linked server.
code below:
create table #tmp_nowOrders( origText varchar(100), total int, paid int, canceled int, completed int, creditCard int, eCheck int, wu int, mg int,
                        lockbox int, agentStoreFront int, ace int, prePaidCard int, account int )
insert into #tmp_nowOrders( origText, total, paid, canceled, completed, creditCard, eCheck, wu, mg, lockbox, agentStoreFront, ace, prePaidCard, account )
EXEC ls_oms.orderManagement.dbo.report_InsideSalesPrepaidOrders '11/22/2004', '11/22/2004', 1

select * from #tmp_nowOrders

drop table #tmp_nowOrders

i keep getting this error:
Server: Msg 7391, Level 16, State 1, Line 7
The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].

however, when i execute the contents of the stored proc, it works fine.

i have been poking around and found many references to sql2000 on win2k3 but that is not relivant.

both servers are running sql2000 the host is win2k adv serv the ls is win2k server.  msdtc is running on both, and neither has enforce dtc checked.

any ideas?
Avatar of muzzy2003
muzzy2003

1. Do you have a firewall between the two servers?
2. Are both machines able to resolve the IP address of the opposite end of the transaction (try pinging the machine names each way and see if an IP address is resolved)?
Avatar of meyerc74

ASKER

there is no firewall between the two servers, and the two servers can communicate.  the query within the stored proc, and the stored proc work fine on the host machine.  i get the error when i try to insert the proc results into a temporary table
Sorry to bang on but you are sure that both machines can resolve the other machine's host name to an IP address without needing to manually specify a DNS suffix? Also, are they set to communicate using TCP/IP or named pipes? Try TCP/IP if the latter.
host names are not being used, but i chaecked anyhow and yes they resolved.  the linked server connects via the backend ip (10.X.X.X).

the servers can communicate fine, EXEC ls_oms.orderManagement.dbo.report_InsideSalesPrepaidOrders '11/22/2004', '11/22/2004', 1
by itself returns a recordset

i only get the error when i try to insert the results directly into a temp table
ASKER CERTIFIED SOLUTION
Avatar of muzzy2003
muzzy2003

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
makes sense...wasn't aware that the ls acted like this...added the name of the host to the ls's hosts file and i worked....thanks
Hate to say I told you so, but ...

Glad it worked.