Apache Derby 数据库的数据访问问题

使用访问 Apache Derby 数据库的故障诊断帮助技巧。

访问 Apache Derby 数据库时遇到哪些问题?

注意: Apache Derby errorCodes 2000、3000 和 4000 表明严重性级别,而不是特定的错误条件。在诊断 Apache Derby 问题中,注意给定的 sqlState 值。

访问 Apache Derby 数据库时,在 SQLException 中发生意外的 IOException

此问题的发生可能是因为 Apache Derby 数据库使用大量文件。某些操作系统(如 Solaris Operating Environment),限制应用程序可以同时打开的文件 数。如果缺省值较小(如 64),那么您可能会获取此异常。

如果您可以在操作系统上配置了文件描述符的数量,那么可以通过将数值设置为很大的值(如 1024)来更正此问题。

当访问 Apache Derby 时,“为更新选择”操作导致表锁定和死锁

如果一行上的“为更新选择”操作锁定创建死锁条件的整个表,那么原因可能是您未对该表定义索引。您在 where 子句中使用的列上缺乏索引会导致 Apache Derby 创建表锁定而不是行级别锁定。

要解决此问题,对受影响的表创建索引。

错误“未许可所用的 IBM 通用 JDBC 驱动程序的版本与 Apache Derby 数据库连接”

在客户机运行时,发生与以下类似的错误:
The version of the IBM Universal JDBC driver in use is not 
licensed for connectivity to Apache Derby databases.  To connect 
to this DB2 server, please obtain a licensed copy of the IBM DB2 
Universal Driver for JDBC and SQLJ.  An appropriate license file 
db2jcc_license_*.jar for this target platform must be installed to 
the application classpath.  Connectivity to Apache Derby databases is 
enabled by any of the following license files: 
{ db2jcc_license_c.jar, b2jcc_license_cu.jar, db2jcc_license_cisuz.jar }
发生此问题是因为在 JDBC 提供程序的类路径中指定了不正确的 JDBC 驱动程序 Java™ 归档 (JAR) 文件名。例如,JAR 文件名可能有多余的“_”,如下所示:
${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license__cu.jar
要解决此问题,请执行以下操作:
  1. 更正 JACL 脚本中的 UNIVERSAL_JDBC_DRIVER_PATH JAR 文件名。
  2. 重新启动集群。
  3. 重新运行客户机。

运行应用程序导致产生不可读消息的运行时异常

在客户机运行时,您可能接收到与以下类似的消息:Caused by: com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -1, SQLSTATE: 42X05, SQLERRMC: ANNUITYHOLDER20^T42X05

发生此问题的原因是未设置 WebSphere® Application Server 所需的属性 retrieveMessagesfromServerOnGetMessage

要解决此问题,请在管理控制台上执行以下操作
  1. 单击资源 > JDBC 提供程序
  2. 单击 Apache Derby 提供程序
  3. 向下滚动并单击数据源
  4. 选择数据源或添加新的数据源。
  5. 单击定制属性
  6. 如果属性 retrieveMessagesFromServerOnGetMessage 存在,那么将它的值设置为 true。如果该属性不存在,请选择新建并添加值为 true 的属性 retrieveMessagesFromServerOnGetMessage
  7. 重新运行客户机。
现在 SystemOut.log 将生成可读的消息,这样就可解决根本的问题。
注: 本主题引用了一个或多个应用程序服务器日志文件。作为另一种建议采用的方法,您可以在分布式系统和 IBM® i 系统上配置服务器以使用高性能可扩展日志记录 (HPEL) 记录和跟踪基础结构,而不使用 SystemOut.logSystemErr.logtrace.logactivity.log 文件。您还可以将 HPEL 与本机 z/OS® 日志记录设施结合使用。如果要使用 HPEL,那么可从服务器概要文件 bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。有关使用 HPEL 的更多信息,请参阅有关使用 HPEL 对应用程序进行故障诊断的信息。

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



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