Microsoft SQL Server 数据源的数据访问问题
使用故障诊断帮助技巧以帮助访问 Microsoft SQL Server 数据源。
访问 Microsoft SQL Server 数据库时遇到哪些问题?
在连接错误之后在 Microsoft SQL Server JDBC 驱动程序 V2.0 中挂起
如果您在使用 2.0 版本的 Microsoft SQL Server JDBC 驱动程序(其他版本没有问题),那么在发生连接错误之后可能遇到挂起。Microsoft 中的以下测试修订修正了此问题:http://support.microsoft.com/kb/977924
ERROR CODE: 20001 and SQL STATE: HY000 accessing SQLServer database
问题可能是未启动分布式事务协调程序服务。尝试访问 Microsoft SQL Server 数据库时查找类似于以下示例的错误:
ERROR CODE: 20001
SQL STATE: HY000
java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]
[SQLServer]xa_open (0) returns -3
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) ...
at com.microsoft.jdbcx.sqlserver.SQLServerDataSource.getXAConnection
(Unknown Source) ...
要确认问题所在:
- 转至 Windows 。或者,单击 。
- 验证服务 Distributed Transaction Coordinator 或 DTC 是否已启动。
- 如果未启动,那么启动 Distributed Transaction Coordinator 服务。
访问 Microsoft SQL Server 数据库时应用程序失败,并带有消息说明“找不到存储过程...”
发生此错误是因为 Microsoft SQL Server 上未安装 Java™ 事务 API (JTA) 功能部件的存储过程。
要解决此问题,请根据 JDBC 驱动程序安装指南,重复 JTA 功能部件的存储过程的安装。
运行 Java 应用程序时显示 ERROR CODE: SQL5042
当配置应用程序用以下方式运行时会发生此错误:
- 将运行在网关上的类型 2(应用程序)驱动程序用于 OS 390
- 应用程序是 XA 应用程序。
OS 390 不使用 XA,但使用 SPM。要解决此问题,请执行以下操作:
- 检查您的 dbm cfg 以查看网关上是否未启动 SPM。
- 指定端口并将 db2comm 变量设置为 TCPIP。
- 更新 dbm cfg 值 SPM_NAME 以使用您的机器名。
- 在网关上启动 SPM。
![[Windows]](../images/windows.gif)
发生 JAVAX.TRANSACTION.XA.XAEXCEPTION 并带有错误:XP_SQLJDBC_XA_INIT
如果在 Windows Server 2003 上使用 Microsoft SQLSERVER 数据库,并将 SQL Server 集群从一个节点移动到另一个节点,或关闭该集群,那么 Windows 组件服务中的
设置可能重置为禁用。发生此问题时,可能会发生 JAVAX.TRANSACTION.XA.XAEXCEPTION 并带有错误 XP_SQLJDBC_XA_INIT,因为不再为 XA 事务启用 JDBC 驱动程序。要在 Windows 组件服务中重新启用 XA 事务,请完成以下操作:
- 从 Microsoft Windows 桌面单击 。
- 展开树形视图以找到想要打开 XA 事务支持的计算机;例如,我的电脑。
- 显示该计算机名的上下文菜单,然后单击 。
- 单击 ,然后将 设置为适合您环境的时长。建议最小设置为 180 秒。
- 单击 ,然后单击 。
- 在 下,选择 以启用此支持。
- 单击 以保存更改。

- KB899756:仅适用于 Windows 2003。MSDTC 不检测进程终止,并且在 Windows Server 2003 中 MSDTC 无法为 XA 事务设置超时值。
- KB318818:将 XA 事务与 SQL Server 结合使用时性能降低。