Execute stored procedure (linked server) within another stored procedure

I have 2 linked servers and need to call a stored procedure on 1 linked server within a stored procedure of another server.  Everytime I attempt this i get the following error:
[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].
The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.

I know the 2 servers are linked because i can execute the remote stored procedure in a sql editor but not within another stored procedure.  I also followed all steps outlined in: http://support.microsoft.com/kb/816701  but continue to get this exception. Any help would be greatly appreciated.

Thanks
egdigitalAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

OtanaCommented:
My guess is that both stored procedures use a transaction. If you execute one inside the other, those transactions will interfere. Try removing the use of transactions from at least one of them.
0
popa_duhuCommented:
First, you should check that MSDTC service is up and running
0
popa_duhuCommented:
Then, in linked server properties / server options, check the RPC and RPC out, after all you try to run a stored proc on another comp.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

popa_duhuCommented:
can you post the piece of code that troubles you ?
0
popa_duhuCommented:
sorry :D
i did not read all
ok.
so you did as in the article.

but then,
you still have to make some configs on both servers.
i assume that you have win2003

so, you have to go to:
Administrative Tools / Component services / Computer / My Computer

Right click on My Computer / Properties
And there is MSDTC tab.

There you should see Transaction Configuration and a button Security Configuration.

Clik the button, and in the window that appears, there are some options:
You check all "Allow/Enable" options
And there are 3 choices for Authentication, and you choose "No Authentication required."
0
egdigitalAuthor Commented:
otana -
Im not sure what u mean by removing a transaction from one of the procedures.

popa duhu -
RPC and RPC Out are both checked in the server options of the linked server.  I do not see MSDTC in the list of services however it enabled under the application server (Enable network DTC access - checked)

The code that is causing a problem is this:

Procedure x (on server b2)
   ..... some code
   Insert Into #Temp
                EXEC j19.location.eg.sp_LocTagSearch @Tags
  .... some more code
end

Now when on server b2 in sql editor I can execute:
EXEC j19.location.eg.sp_LocTagSearch 'X'
And this returns results as expected.

0
egdigitalAuthor Commented:
popa duhu -

I set all all/enable options as well as the no authentication required on both servers and still receive:
[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].
The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
0
popa_duhuCommented:
sorry,
when i said MSDTC i meant Distributed Transaction Coordinator (msdtc.exe is the file name)
So, there should be a service named Distributed Transaction Coordinator

After you checked everything on both servers in Component Services, you should restart the DTC service on both servers.
0
egdigitalAuthor Commented:
That was running on both servers but I restarted anyway and still get the same error
0
popa_duhuCommented:
well...
maybe i miss something
but i know that i've solved once this problem.

check this link: http://support.microsoft.com/kb/873160
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.