Event ID 53304 — Transactions Processing

Applies To: Windows Server 2008 R2

The Microsoft Distributed Transaction Coordinator service (MSDTC) can coordinate transactions for a variety of protocols.

Event Details

Product: Windows Operating System
ID: 53304
Source: Microsoft-Windows-MSDTC
Version: 6.1
Symbolic Name: MSG_XATM_W_GETXASWITCHEXCEPTION
Message: The XA Transaction Manager called the "GetXaSwitch" function in the XA resource manager DLL. The call to the "GetXaSwitch" function failed with a user exception: File=%1 Line=%2.%0

Resolve

Check XA registry keys

An error condition may have resulted from a problem with a registry key for an X/Open Distributed Transaction Processing Standard (XA) provider. Check whether the registry keys are appropriate for your XA provider, and then restart the Microsoft Distributed Transaction Coordinator service (MSDTC) service.

The XA specification requires that xa_open be called on any thread that attempts to perform an xa_* operation, such as xa_prepare. The MSDTC XA implementation does not do this. Instead, the MSDTC implementation of XA uses a thread pool to process the XA operations. Currently, there is no guarantee that the xa_open is done on the same thread that does an xa_prepare or other xa_* operation.

To enforce the XA specification requirement for an xa_open call on every thread, add the XAMultiThreaded registry key.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

Open Registry Editor on the server and check the registry key

To open Registry Editor on the server and check the registry key:

Caution: Incorrectly editing the registry might severely damage your system. Before making changes to the registry, you should back up any valued data.

  1. Click Start, click Run, and then type regedit. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
  2. Click HKEY_LOCAL_MACHINE, expand Software, expand Microsoft, expand MSDTC, and then click XADLL. Check whether the registry key is appropriate for your XA provider.
  3. To change the registry key, in the details window, right-click the provider information that you want to change, and then click Modify.
  4. Make the required changes to the entry in Value data, and then click OK.

Add the XAMultiThreaded registry key

To add the XAMultiThreaded registry key:

Caution: Incorrectly editing the registry might severely damage your system. Before making changes to the registry, you should back up any valued data.

  1. Click Start, click Run, and then type regedit. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
  2. Click HKEY_LOCAL_MACHINE, expand Software, expand Microsoft, and then expand MSDTC.
  3. Right-click MSDTC, click New, and then click DWORD (32-bit) Value.
  4. In Name, type XAMultiThreaded.
  5. Double-click the new XAMultiThreaded key that you just entered. In the Edit DWORD (32-bit) Value dialog box, type 1 in Value data, and then click OK.

Restart MSDTC

To restart MSDTC:

  1. Click Start, and then click Command Prompt.
  2. At the command prompt, type net start msdtc, and then press ENTER.

Verify

To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To verify that the Microsoft Distributed Transaction Coordinator service (MSDTC) is running properly:

  1. Click Start, and then click Command Prompt.
  2. At the command prompt, type sc query msdtc, and then press ENTER.
  3. The system responds with information about the service. Confirm that these two items appear: SERVICE_NAME: msdtc and STATE : 4 RUNNING.

Transactions Processing

Application Server