【发布时间】:2009-01-16 06:21:27
【问题描述】:
我们正在测试一个特定于应用程序的设计,我们需要在同时触发多个查询后显示渐进式计数。
当我们触发单个查询时,我们能够成功地异步获取结果。
但是,当我们同时触发 3-4 个查询时,经过大量时间并且在为每个查询获取一些记录之后 我们得到一个异常状态
“com.ibm.db2.jcc.c.SqlException: DB2 SQL 错误: SQLCODE: -1218, SQLSTATE: 57011, SQLERRMC: 4099”
因此,所有触发的查询都没有完全执行。
如果这些查询被一一触发是没有问题的。 (query2 在 query1 完成后开始执行,以此类推)
在控制中心找到这个SQLCODE后,我们发现了详细信息,
SQL1218N 缓冲池中当前没有可用的页面
"<buffpool-num>".
解释:
当前正在使用缓冲池中的所有页面。一个要求 使用其他页面失败。
如果再次执行该语句可能会成功。如果发生此错误 通常,以下部分或全部操作可能会阻止进一步 失败:
增加缓冲池大小
减少数据库代理和/或连接的最大数量
降低最大并行度
-
减小此表空间的预取大小
缓冲池
-
将一些表空间移动到其他缓冲池中。
sqlcode:-1218
sqlstate: 57011
在我们的数据库实例上,我们已经有一个 32K 页大小的缓冲池,甚至在创建另一个缓冲池之后也是如此 32K,问题仍然存在。
任何人都可以帮助我们解决问题。
感谢和问候,
拉文德拉耆那教
【问题讨论】:
标签: db2