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 服务。
申请失败,并显示以下消息:Cannot find stored procedure...访问Microsoft SQL Server数据库
发生此错误的原因在于,Java™ 事务 API (JTA) 功能的存储过程未安装在Microsoft SQL Server。
要解决此问题,请根据 JDBC 驱动程序安装指南,重复 JTA 功能部件的存储过程的安装。
错误代码: SQL5042当你运行 Java 应用程序时
当配置应用程序用以下方式运行时会发生此错误:
- 将运行在网关上的类型 2(应用程序)驱动程序用于 OS 390
- 应用程序是 XA 应用程序。
OS 390 不使用 XA,但使用 SPM。 要解决此问题:
- 检查您的 dbm cfg 以查看网关上是否未启动 SPM。
- 指定端口并将 db2comm 变量设置为 TCPIP。
- 更新 dbm cfg 值 SPM_NAME 以使用您的机器名。
- 在网关上启动 SPM。
发生 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 秒。
- 点击,然后点击。
- 在下面, 选择以启用此支持。
- 点击保存更改。
避免麻烦:安装文档JDBC XA 连接涉及两个已知问题。 请访问 Microsoft 支持站点以了解更多信息:
- KB899756:仅适用于 Windows 2003。 MSDTC 不检测进程终止,并且在 Windows Server 2003 中 MSDTC 无法为 XA 事务设置超时值。
- KB318818:将 XA 事务与 SQL Server 结合使用时性能降低。