IBM Support

SQL Server requires XA transactions to be enabled and registered

Question & Answer


Question

If you use IBM Records Manger with a Microsoft SQL Server database management system (DBMS), then an attempt to log on to the IBM Records Manager Administrator client can generate the following error: [IBM][SQLServer JDBC Driver][SQLServer]xa_open (0) returns -3DSRA0010E: SQL State = HY000, Error Code = 20,001 Description: [IBM][SQLServer JDBC Driver][SQLServer]xa_open (0) returns -3DSRA0010E: SQL State = HY000, Error Code = 20,001 Source: com.ibm.gre.engine.dao.sqlserver.UserSQLDAO.authenticate(UserSQLDAO.java:113) Code: 20001 Application: 2

Cause

By default, Microsoft Windows Server 2003 disables XA transactions. The Microsoft Distributed Transaction Coordinator (MS DTC) requires you to create registry values for all XA DLLs that you intend to use.

Answer

To use SQL Server with IBM Records Manager, you must do the following:

  • Enable support for XA transactions.
  • Register (a registry named-value) each XA DLL file.

To enable support for XA transactions:
The Connect JDBC Drivers (DataDirect Connect JDBC and IBM WebSphere embedded Connect JDBC) have the XA DLL sqljdbc.dll that is typically installed with SQLServer_Install_Root\MSSQL\Binn (typically in C:\Program Files\Microsoft SQL Server\MSSQL\Binn). The registry values that are required for XA transactions are not created automatically. You must create the values manually.
  1. From the Start Menu, navigate to the Control Panel and open Administrative Tools.
  2. Open Component Services.
  3. Expand the tree view to locate the computer for which you want to enable support for XA transactions.
  4. Right-click the computer name and select Properties.
  5. Click the MSDTC tab,then click Security Configuration.
  6. Under Security Settings, select the option XA Transactions.
  7. Click OK, then click OK again.

Important: The following steps instruct you to change your Windows registry. Always create a backup copy of the registry before you edit it.

To create a registry named-value:
  1. Use your registry editor and navigate to the registry key named:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL
  2. Create a new registry named-value by using the following information:
    • Name: The file name of the XA DLL (the format for the name is: <dllname>.dll)
    • Type: String (REG_SZ)
    • Value: The full path name, including the file name, of the DLL file

    An example of the values to use when you create a new registry named-value follows:

    NameTypeValue
    sqljdbc.dllString (REG_SZ)C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqljdbc.dll

3. Repeat step 2 for each XA DLL file that you intend to use.

Tip: If you configure Microsoft DTC in a cluster, you must create these registry entries for each node in the cluster.

For more details about these registry entries, see the Microsoft document in the Related information section.

[{"Product":{"code":"SSRTHY","label":"Records Manager"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"eRecords Engine","Platform":[{"code":"PF033","label":"Windows"}],"Version":"8.5;8.4;4.1.4;4.1.3;4.1.2","Edition":"SQL Server 2005;SQL Server 2000","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
17 June 2018

UID

swg21221370