|
| Problem | When using XA data source to connect to SQL Server 2000, running on Windows® 2003, you receive the following exception:
"java.sql.SQLException: [IBM][SQLServer JDBC Driver][SQLServer]xa_open (0) returns -3" | | Cause | Microsoft® Windows Server 2003, Microsoft Distributed Transaction Coordinator (MS DTC) requires the creation of registry values for all XA DLLs that you plan to use.
XA transactions are disabled by default on Windows Server 2003.
You might see the following exceptions in WebSphere Application Server SystemOut.log:
[9/21/04 16:57:53:284 CST] 558bbb0a FreePool E J2CA0046E: Method createManagedConnctionWithMCWrapper caught an exception during creation of the ManagedConnection for resource jdbc/lmDS, throwing ResourceAllocationException. Original exception: com.ibm.ws.exception.WsException: DSRA8100E: Unable to get a XAConnection from the DataSource. at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:244) at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:171) at com.ibm.ws.rsadapter.AdapterUtil.createDataStoreAdapterException(AdapterUtil.java:209) at com.ibm.ws.rsadapter.DSConfigurationHelper.getPooledConnection(DSConfigurationHelper.java:911) at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:675)
.... Caused by: java.sql.SQLException: [IBM][SQLServer JDBC Driver][SQLServer]xa_open (0) returns -3 at com.ibm.websphere.jdbc.base.BaseExceptions.createException(Unknown Source)
---- Begin backtrace for nested exception java.sql.SQLException: [IBM][SQLServer JDBC Driver][SQLServer]xa_open (0) returns -3 at com.ibm.websphere.jdbc.base.BaseExceptions.createException(Unknown Source) at com.ibm.websphere.jdbc.base.BaseExceptions.getException(Unknown Source) |
| | Solution | Connect JDBC Drivers (DataDirect Connect JDBC, IBM® WebSphere® embedded Connect JDBC) have the XA DLL sqljdbc.dllthat is normally installed on SQLServer_Install_Root\MSSQL\Binn; for example: c:\Program Files\Microsoft SQL Server\MSSQL\Binn). The registry values required for XA transactions are not created automatically. You must create the values manually as follows:
- Turn on support for XA transactions:
- Open Component Services.
- Expand the tree view to locate the computer where you want to turn on support for XA transactions; for example, My Computer.
- Right-click the computer name, then click Properties.
- Click the MSDTC tab, then click Security Configuration.
- Under Security Settings, click the check box for XA Transactions to turn on this support.
- Click OK, then click OK again.
- Create a registry named-value:
- Use Registry Editor and navigate to registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL
- Create a new registry named-value:
Name is the file name of the XA DLL (in the format dllname.dll) Type is String (REG_SZ) Value is the full path name (including the file name) of the DLL file
Name | Type | Value | sqljdbc.dll | String (REG_SZ) | c:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqljdbc.dll |
Note: You must create an entry for each XA DLL file that you plan to use. Also, if you are configuring MS DTC on a cluster, you must create these registry entries on each node in the cluster.
For more details, see the following Microsoft document: INFO: Registry Entries Are Required for XA Transaction Support | |
| | |
| |
|
Product categories: Software, Application Servers, Distributed Application & Web Servers, WebSphere Application Server, DB Connections/Connection Pooling Operating system(s): Windows Server 2003 Software version: 3.5, 4.0, 5.0, 5.1, 6.0 Software edition: Edition Independent Reference #: 1187844 IBM Group: Software Group Modified date: 2004-11-18
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.
|