Link to home
Start Free TrialLog in
Avatar of swapnil_mohile
swapnil_mohile

asked on

SQL server 2008 Distributed transaction problem

Code executed on the SQL 2008 server (Installed on Windows 2008 OS)
Insert into Temp table
Exec [sql 2005 server].Dbname.dbo.Spname  (SQL 2005 is installed on Windows 2003)

The Execute SP statement when executed alone runs fine, however when called with the Insert statement gives the following error

Server: Msg 7391, Level 16, State 2, Line 1
The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "servername" was unable to begin a distributed transaction.
OLE DB provider "SQLNCLI10" for linked server "servername" returned message "No transaction is active.".

On both the servers the Ad Hoc Distributed Queries is enable @ sql level.
Windows level MS DTC remote service is running with no authentication on both the servers. The firewall is set to off. Also the linked server created has Data access, RPC in & RPC out set to true.

 

Avatar of Raja Jegan R
Raja Jegan R
Flag of India image

Check whether MSDTC is configured as mentioned below:

http://support.microsoft.com/kb/839279

In SQL Server 2005, a bug was fixed for Linked Server connectivity in Service Pack 2.
Hence installing either SP2 or SP3 for that SQL Server 2005 machine is recommended to resolve this issue.

Avatar of swapnil_mohile
swapnil_mohile

ASKER

On the SQL 2005 server SP2 is already installed
Can you confirm whether this one was working:

select * from [sql 2005 server].Dbname.dbo.Spname

If it is then

begin distributed tran
select * from [sql 2005 server].Dbname.dbo.Spname
commit tran

If second query is not working, then kindly provide the error message so that we can fix it out.
SPname here stands for Stored procedure name, so i have replaced the select with the execute command.

The first query runs fine, while running the second query the same error is encountered as mentioned in the above problem

Server: Msg 7391, Level 16, State 2, Line 2
The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "servername" was unable to begin a distributed transaction.
OLE DB provider "SQLNCLI10" for linked server "servername" returned message "No transaction is active.".
Have you configured Steps 1 and 2 in Workaround mentioned in the link below:

http://support.microsoft.com/kb/839279

This is the same link which I mentioned above. If the second one works that means that MSDTC is configured properly, otherwise it is not.

Restart your 2003 machine for these changes to come into effect.
This is already configured as mentioned earlier. I get the error only when the insert statement statement is executed from sql server 2008 (windows 2008).

When the same query is executed from any sql 2005 the same works fine.
ASKER CERTIFIED SOLUTION
Avatar of Raja Jegan R
Raja Jegan R
Flag of India image

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
While installing the Application server got the following warning

could not enable the distributed transaction coordinator firewall rule

The windows firewall was off while installing the application server

The DTC was already configured. After restarting the DTC service the event log looks like below

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) = 1,
  Enable XA Transactions = 1,
  MSDTC Communications Security = No Authentication Required,
 Account = NT AUTHORITY\NetworkService,
  Firewall Exclusion Detected = 0

 Transaction Bridge Installed = 0
 Filtering Duplicate Events = 1


Am still getting the same error after configuring the mentioned steps
Enable Windows Firewall, Configure it as mentioned in the link and then Disable Windows Firewall.
Give it a try and might help.
Thanks the issue is reolsved