本节介绍已知的捆绑的 Sun JDBC 驱动程序问题和相应的解决方法。
如果应用程序在一个事务中生成 3000 个以上 PreparedStatement 对象,DB2 可能会发生以下错误:
[sunm][DB2 JDBC 驱动程序] 不再有可用语句。请使用更大的 dynamicSections 值重新创建软件包。
将以下属性添加到连接池定义中,以使驱动程序可以重新绑定具有较大动态段值的 DB2 软件包:
createDefaultPackage=true replacePackage=true dynamicSections=1000
可能抛出的与上述 PrepardStatement 错误相关的另一条错误消息为:
[sunm][DB2 JDBC 驱动程序][DB2] 虚拟存储或数据库资源不可用。
增大 DB2 服务器的配置参数 APPLHEAPSZ。最佳值为 4096。
隔离级别为 TRANSACTION_SERIALIZABLE。如果应用程序使用隔离级别 TRANSACTION_SERIALIZABLE 并使用上面建议的某个参数,该应用程序可能会在获取连接时挂起。
要为连接设置所需的隔离级别,必须以同一隔离级别创建相应的连接池。
重新引导主机系统或 Solaris 区域或者启动 Communications Server 之后,捆绑的 Java DB 数据库无法自动重新启动。这不是错误,而是任何捆绑的应用程序或第三方应用程序的预期行为。问题在于必须在 Communications Server 实例之前启动 Java DB。
重新引导主机或 Solaris 区域之后,请务必在启动 Communications Server 之前启动 Java DB,例如:
/opt/SUNWappserver/appserver/bin/asadmin start-database |