---
title: 如何配置 OceanBase 数据库的请求锁超时的时间 -OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于如何配置 OceanBase 数据库的请求锁超时的时间 相关的常见问题和使用技巧，帮助您快速解决如何配置 OceanBase 数据库的请求锁超时的时间 的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 如何配置 OceanBase 数据库的请求锁超时的时间

更新时间：2024-01-22 01:56

适用版本： V2.2.x 内容类型：How-to  

可以通过 ob_trx_lock_timeout 变量设置事务的等锁超时时长。

## 适用版本

OceanBase 数据库 V2.2.7x 版本

## trx_try_wait_lock_timeout

`trx_try_wait_lock_timeout` 是集群配置项，用于设置语句执行过程中行锁的等待时长，取值范围为 [0, 100 ms] ，默认为 0。

`trx_try_wait_lock_timeout≠0` 时，表示当 SQL 执行过程中遇到锁冲突，会占据本线程指定时长的等待时间，如果该时间内没有等到锁释放，就将该 SQL 返回大查询队列，这种策略在重试时可能仍然会遇到锁冲突。对于多热点行的场景，一个事务解锁后，等待锁的事务要继续排队，队列前排的事务可能在等其它的热点行，这些热点行可能还没释放行锁，这样就陷入了循环等待。

`trx_try_wait_lock_timeout=0` 时，OecanBase 数据库引入了 `lock wait mgr`，当遇到锁冲突的时候，请求进入 `lock wait mgr` 等待，当解行锁的时候，检查 `lock wait mgr` 中是否有请求在等这一行的行锁，如果有等待的请求，就唤醒一个加入到工作队列。

## 配置请求锁超时时间

可以通过 `ob_trx_lock_timeout` 变量设置事务的等锁超时时长。该变量为租户级变量，单位为微秒，取值范围为 [0, +∞)，默认为 -1。

系统会按照如下逻辑判断行锁冲突的等待时间：

- 当 `ob_trx_lock_timeout` 为默认值 -1 时，行锁冲突的等待时间为 `ob_query_timeout` 的值。
 - 当 `ob_trx_lock_timeout` 为非 -1 值时，行锁冲突等待时间为 `ob_trx_lock_timeout` 与 `ob_query_timeout` 中的较小值。

该变量不建议设置过大，因为这样会导致在该时间范围内不断重试请求锁。

上一篇

[ob_admin 删除表锁](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003564247)

下一篇

[OceanBase 数据库中的行锁问题排查指南](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000016) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
