---
title: 通过 OBProxy 在 OceanBase 数据库 V4.x 版本中执行 GET_LOCK 函数时会偶发性出现 -4007 异常报错信息的原因和解决方法-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于通过 OBProxy 在 OceanBase 数据库 V4.x 版本中执行 GET_LOCK 函数时会偶发性出现 -4007 异常报错信息的原因和解决方法相关的常见问题和使用技巧，帮助您快速解决通过 OBProxy 在 OceanBase 数据库 V4.x 版本中执行 GET_LOCK 函数时会偶发性出现 -4007 异常报错信息的原因和解决方法的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 通过 OBProxy 在 OceanBase 数据库 V4.x 版本中执行 GET_LOCK 函数时会偶发性出现 -4007 异常报错信息的原因和解决方法

更新时间：2026-05-19 08:21

适用版本： V4.0.x、V4.1.x、V4.2.x、V4.3.x 内容类型：Troubleshoot  

## 问题现象

OceanBase 数据库 V4.x 版本集群下，通过 OBProxy 连接 OceanBase 数据库集群执行 GET_LOCK 函数获取锁名，返回结果会根据租户所设置的 primary_zone 的不同而产生不同的结果。

- 当设置 primary_zone 为：zone1;zone2;zone3 时，执行失败。

  ![image01](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/sql/20250626ob4x-occasionally-throws-4007-exception-when-executing-get-lock-function-through-proxy01.png)

  observer.log 中关键日志信息如下。

  ```shell
  observer.log.20250512163341903:[2025-05-12 16:31:47.755569] WDIAG [STORAGE.TABLELOCK] proxy_is_support (ob_lock_executor.cpp:343) [87376][T1010_L0_G0][T1010][xxxxx-xxxxx-xxxxx-xxxxx] [lt=15][errcode=-4007] proxy is not support this feature(session->get_sessid()=3222590475, session->is_feedback_proxy_info_support()=false, session->is_client_sessid_support()=true)
  observer.log.20250512163341903:[2025-05-12 16:31:47.755618] WDIAG [STORAGE.TABLELOCK] execute (ob_lock_func_executor.cpp:58) [87376][T1010_L0_G0][T1010][xxxxx-xxxxx-xxxxx-xxxxx] [lt=46][errcode=-4007] fail to check (proxy_is_support(ctx))(ret=-4007)

  ```
 - 当设置 primary_zone 为：zone1,zone2,zone3 时，则执行正常。

  ![image02](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/sql/20250626ob4x-occasionally-throws-4007-exception-when-executing-get-lock-function-through-proxy02.png)

## 问题原因

该问题原因是 OBProxy 的参数设置不合理导致，当执行此类操作时，需要将 `enable_single_leader_node_routing` 设置为 false，逻辑如下： 较早版本的 OBProxy 设置 `enable_single_leader_node_routing=true` 时，OBProxy 会根据租户的副本位置来修改 OBProxy 到 OBServer 的协议，对于 primary_zone 集中的租户，OBProxy 使用 mysql 协议；对于 primary_zone 分散的租户，OBProxy 使用 OB2.0 协议，而此需要 OB2.0 协议的支持。所以当 `zone1;zone2;zone3` 时，observer.log 日志中出现 -4007 异常信息。

关键信息 关键日志： observer.log.20250512163341903:[2025-05-12 16:31:47.755569] WDIAG [STORAGE.TABLELOCK] proxy_is_support (ob_lock_executor.cpp:343) [87376][T1010_L0_G0][T1010][YB4219006DC8-0006339BEFC7069A-0-0] [lt=15][errcode=-4007] proxy is not support this feature(session->get_sessid()=3222590475, session->is_feedback_proxy_info_support()=false, session->is_client_sessid_support()=true) observer.log.20250512163341903:[2025-05-12 16:31:47.755618] WDIAG [STORAGE.TABLELOCK] execute (ob_lock_func_executor.cpp:58) [87376][T1010_L0_G0][T1010][YB4219006DC8-0006339BEFC7069A-0-0] [lt=46][errcode=-4007] fail to check (proxy_is_support(ctx))(ret=-4007)

## 问题的风险及影响

SQL 无法正常执行。

## 适用版本

OceanBase 数据库 V4.x 版本。

## 解决方法

将 OBProxy 的参数 `enable_single_leader_node_routing` 设置为 false 即可。

## 规避方式

OBProxy 后续版本已经默认将 `enable_single_leader_node_routing` 设置为 false，可以考虑将 OBProxy 升级到修复后的版本。

Previous

[如何解决使用 GROUP_CONCAT() 函数拼接字符串时被截断？](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003188052)

Next

[GET_LOCK 函数异常报错不支持的原因和解决方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003273830) ![有帮助](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) 咨询热线
