DB2 V9.7 for Linux, UNIX, and Windows

locktimeout -“锁定超时”配置参数

此参数指定应用程序为获取一个锁定将等待的秒数,以帮助避免应用程序出现全局死锁。

配置类型
数据库
参数类型
可配置
缺省值 [范围]
-1 [-1; 0 - 32 767 ]
计量单位

如果将此参数设置为 0,那么不会等待锁定。在此情况下,如果请求时未提供任何锁定,那么应用程序就会立即接收到 -911。

如果将此参数设置为 -1,那么锁定超时检测关闭。在此情况下,将等待锁定(如果请求时无可用锁定),直到出现下列其中一种情况:
  • 授予锁定
  • 发生死锁。
注: 为此配置参数指定的值不用于控制事件监视器目标表的锁定超时。事件监视器使用一个单独的非可配置设置,该设置将导致事件监视器表上的锁定超时。

建议:在事务处理 (OLTP) 环境中,可以使用 30 秒的初始启动值。在一个只查询的环境中,您可以从一个较高的值开始。在这两种情况下,您都应该使用基准程序技术来调整此参数。

此值应该设置为能够快速检测由于异常情况如事务停止 (可能是因为用户离开工作站)而发生的等待。您应该将此值设置得足够大,以便有效锁定请求不会因为峰值工作负载(在该时期内需要更多的锁定等待)而超时。

可以使用数据库系统监视器来帮助您跟踪一个应用程序(连接)经历的锁定超时的次数,或跟踪数据库检测到连接的所有应用程序超时情况的次数。

lock_timeout(锁定超时的数目)监视元素的高值可能是下列原因造成的:
  • 此配置参数的值太低。
  • 挂起锁定较长时间的应用程序(事务)。可以使用数据库系统监视器来进一步调查这些应用程序。
  • 并行性问题,它可能是由锁定升级(从行级别至表级别锁定)引起的。