You may receive a 7391 error message in SQLOLEDB when you run a distributed transaction against a linked server after you install Windows XP Service Pack 2 or Windows XP Tablet PC Edition 2005 (873160)
The information in this article applies to:
- Microsoft Windows XP Professional Service Pack 2 (SP2)
- Microsoft Windows XP Tablet PC Edition 2005
Important This article contains information about modifying the registry.
Before you modify the registry, make sure to back it up and make sure that you
understand how to restore the registry if a problem occurs. For information
about how to back up, restore, and change 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
start 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 XP Service Pack 2 (SP2) or Microsoft Windows XP Tablet PC Edition 2005 is installed on
the computer that initiates the distributed transaction.
- 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.
Note The Windows XP SP2 features and components are included in Windows XP Tablet PC Edition 2005. CAUSEThis problem occurs for 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 MSDTC program.
Note This problem may occur even when Windows Firewall is turned off.
WORKAROUNDWarning If you use Registry Editor incorrectly, you may cause serious
problems that may require you to reinstall your operating system. Microsoft
cannot guarantee that you can solve problems that result from using Registry
Editor incorrectly. Use Registry Editor at your own risk.To work
around this problem, follow these steps on the computer that 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, 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, and then delete the following subkey:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC - Close 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 The Log On As account for the
MSDTC service is set to the Network Service account.
- To allow the network transaction, you must enable MSDTC. 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 Browse, 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.
Modification Type: | Minor | Last Reviewed: | 7/8/2005 |
---|
Keywords: | kbFirewall kbSecurity kbadmin kbnetwork kbconnectivity kbtshoot kbDTC kberrmsg kbRPC kbTransaction kbAuthentication kbnofix kbBug kbRegistry KB873160 kbAudEndUser kbAudITPRO kbAudDeveloper |
---|
|