Sybase 数据源的数据访问问题

本文提供访问 Sybase 数据源的故障诊断技巧。

“Sybase 错误 7713: 存储过程只能以未链接的事务方式执行”错误

当出现以下任何一种情况时将发生此错误:
  • JDBC 尝试使连接进入 autocommit(true) 方式。
  • 未以兼容方式创建存储过程。

要修正 autocommit(true) 方式问题,请使用 Connection.setAutoCommit(false) 方式让应用程序将连接更改为链接方式,或使用 set chained on 语言命令。

要解决存储过程问题,请使用 sp_procxmode procedure_name “anymode” 命令。

“JZ0XS: 服务器不支持 XA 样式事务。请验证是否在该服务器上启用并许可事务功能部件”

当在未安装分布式事务管理 (DTM) 的服务器上尝试 XA 样式事务时,会发生此 错误。

要解决此问题,使用 Sybase 手册中以下标题中的指示信息来启用分布式事务管理 (DTM):Using Adaptive Server Distributed Transaction Management Features。 此过程中的主要步骤是:
  1. 安装 DTM 选项。
  2. 检查 license.dat 文件以验证是否安装 DTM 选项。
  3. 重新启动许可证管理器。
  4. 在 ISQL 中启用 DTM。
  5. 重新启动 ASE 服务。

容器管理的持久性 (CMP) 企业 bean 导致这些异常

此错误是由不正确地使用保留字所致。保留字不能用作列名。

要纠正此问题:重命名变量以移除保留字。您可以在 Quick Reference Guide for Sybase Adaptive Server Enterprise 15.5 中找到保留字的列表。此手册可以在以下网址中在线获取:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc70202.1550/html/quickref/CACIGGEB.htm

使用 Sybase 时,会发生数据库死锁和 XA_PROTO 错误

将 Sybase 与 IBM® WebSphere® Application Server 协同使用时,请执行以下某种操作以防止数据库死锁和错误:
  • 将连接上的事务隔离级别更改为 TRANSACTION_READ_COMMITTED。 使用组装工具为不可共享的连接在连接上设置隔离级别,或对于可共享的连接,在您的数据源的资源引用中定义隔离级别。
  • 通过执行以下一种操作修改 Sybase:
    • 如果要使用现有表,请使用 alter table table name> lock datarows 命令修改表锁定方案以获取行锁定级别详细程度。
    • 如果要将系统范围的锁定方案设置为数据行,所有后来创建的表继承该值并具有数据行的锁定方案。
      注: 您必须断开您的原始数据库和表。

当指定不正确的数据库名称时,Sybase 不抛出异常

验证在数据源属性上是否正确输入您的数据库名称。

当指定的数据库不存在时,大多数数据库(DB2®、Oracle、Informix®、MS SQL Server 和 Apache Derby)将抛出异常。但是,当指定不正确的数据库名称时,Sybase 不抛出异常。Sybase 生成 SQL 警告,然后连接到缺省数据库。如果拼错请求的数据库名称,Sybase 将您连接到找不到您请求的表的主数据库或缺省数据库。

如果这些步骤都不能修正您的问题,那么通过查看可用的在线支持(提示与技巧、技术说明和修订),检查是否已标识和记录了此问题。如果您的问题没有列出在那里,请与 IBM 支持机构联系。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_dsaccess6
文件名:rtrb_dsaccess6.html