You may receive a 7391 error message in SQL Server 2000 when you run a distributed transaction against a linked server after you install Windows Server 2003 or Windows XP Service Pack 2 (839279)
The information in this article applies to:
- Microsoft SQL Server 2000 (all editions)
- the operating system: Microsoft Windows XP SP2
- Microsoft Windows Server 2003, Standard Edition
- Microsoft Windows Server 2003, Datacenter Edition
- Microsoft Windows Server 2003, Enterprise Edition
Important This article contains information about how to modify the registry. Make sure to back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base: 256986 Description of the Microsoft Windows registry SYMPTOMSWhen
you run a distributed
transaction against an
instance of SQL Server, you may receive an error message that is similar to the
following: Server: Msg 7391, Level 16, State 1, Line
1 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].
This problem may occur when one of following conditions is true:
- Microsoft Windows Server 2003 or Microsoft Windows XP Service Pack 2 (SP2) is installed on the
computer that initiates the distributed transaction.
- Microsoft Windows Server 2003 or Microsoft Windows XP SP2 is installed on the remote computer that is
running Microsoft SQL Server 2000, and that computer is linked to the computer that initiates the distributed transaction.
CAUSEThis problem occurs because of one or more of the following
reasons:
- Microsoft Distributed Transaction Coordinator
(MSDTC) is disabled for network transactions.
- Windows Firewall is
enabled on the computer.
By default, Windows Firewall blocks the Microsoft Distributed Transaction
Coordinator (MSDTC) program.
Note This problem may occur even when Windows
Firewall is turned off.
WORKAROUNDWarning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk. To work around this problem, follow these steps on the computer that Windows Server 2003 or Windows XP SP2 is installed on: - Make
sure that the Log On As account for the MSDTC service is the Network Service account. To do this, follow these
steps:
- Click Start, and then click
Run.
- In the Run dialog box, type
Services.msc, and then click
OK.
- In the Services window, locate the Distributed Transaction
Coordinator service under
Name in the right pane.
- Under the Log On As column, see
whether the Log On As account is Network Service or Local
System.
If the Log On As account is Network Service, go
to step 2. If the Log On As account is Local System account, continue with these steps. - Click Start, and then click
Run.
- In the Run dialog box, type
cmd, and then click OK.
- At the command prompt, type Net stop
msdtc to stop the MSDTC service.
- At the command prompt, type Msdtc -uninstall to remove MSDTC.
- At the command prompt, type regedit to open Registry Editor.
- In Registry Editor, locate the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTCregistry key.
Delete this key. - Quit Registry Editor.
- At the command prompt, type Msdtc -install to install
MSDTC.
- At the command prompt, type Net start
msdtc to start the MSDTC service.
Note that the Log
On As account for the MSDTC service is set to Network Service
account.
- Enable MSDTC to allow the network transaction. To do this, follow these steps:
- Click Start, and then click
Run.
- In the Run dialog box, type
dcomcnfg.exe, and then click
OK.
- In the Component Services window,
expand Component Services, expand Computers,
and then expand My Computer.
- Right-click My Computer, and then
click Properties.
- In the My Computer Properties dialog
box, click Security Configuration on the MSDTC tab.
- In the Security Configuration dialog
box, click to select the Network DTC Access check
box.
- To
allow the distributed transaction to run on this computer from a remote
computer, click to select the Allow Inbound check
box.
- To
allow the distributed transaction to run on a remote computer from this
computer, click to select the Allow Outbound
check box.
- Under the Transaction Manager
Communication group, click to select the No Authentication
Required option.
- In the Security Configuration dialog
box, click OK.
- In the My Computer Properties dialog
box, click OK.
- Configure Windows Firewall to include the
MSDTC program and to include port 135 as an exception. To do
this, follow these steps:
- Click Start, and then click Run.
- In the Run dialog box, type Firewall.cpl, and then click OK
- In Control Panel, double-click
Windows Firewall.
- In the Windows Firewall dialog box,
click Add Program on the Exceptions tab.
- In the Add a Program dialog box, click
the Browse button, and then locate the Msdtc.exe file. By
default, the file is stored in the <Installation drive>:\Windows\System32 folder.
- In the Add a Program dialog box, click
OK.
- In the Windows Firewall dialog box,
click to select the
msdtc option in the Programs and Services list.
- Click Add Port on the Exceptions tab.
- In the Add a Port dialog box, type 135 in the
Port number text box, and
then click to select the TCP option.
- In the Add a Port dialog box, type a name for the exception in the
Name text box, and then click
OK.
- In the Windows Firewall dialog box,
select the name
that you used for the exception in step j in the Programs and Services list, and then click
OK.
STATUSMicrosoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.REFERENCES
For more information about configuring Windows XP Service Pack 2 for use with SQL Server 2000, click the following article number to view the article in the Microsoft Knowledge Base:
841249
How to configure Windows XP Service Pack 2 for use with SQL Server
| Modification Type: | Major | Last Reviewed: | 7/15/2005 |
|---|
| Keywords: | kbRegistry kberrmsg kbDTC kbdomain kbAuthentication kbTransaction kbRPC kbprb KB839279 kbAudDeveloper |
|---|
|