本节介绍已知的捆绑的 Sun JDBC 驱动程序问题和相应的解决方法。
运行两个并行事务时如果其中一个被回滚,则使用预处理更新语句时会遇到此问题。
设置连接的隔离级别,并在同一隔离级别创建相应的连接池。有关配置连接池的更多信息,请参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》。
如果应用程序在一个事务中生成超过 3000 个 PreparedStatement 对象,DB2 可能会出现以下错误:
[sunm][DB2 JDBC 驱动程序] 无更多可用语句。请重新创建具有较大 dynamicSections 值的软件包。
将以下属性添加到连接池定义中,确保驱动程序可以重新绑定具有较大动态段值的 DB2 软件包:
createDefaultPackage=true replacePackage=true dynamicSections=1000
有关配置连接池的详细信息,请参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》。
可能抛出的与 PreparedStatement 错误相关的另一条错误消息为:
[sunm][DB2 JDBC 驱动程序][DB2] 虚拟存储或数据库资源不可用。
增大 DB2 服务器的配置参数 APPLHEAPSZ。例如,使用 4096。
隔离级别为 TRANSACTION_SERIALIZABLE。如果应用程序使用隔离级别 TRANSACTION_SERIALIZABLE 并使用前面建议的某个参数,该应用程序可能会在获取连接时挂起。
要设置连接隔离级别,必须以同一隔离级别创建相应的连接池。有关说明,请参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》。