---
title: "事务空闲超时，错误代码 ERROR 6002 - OceanBase 数据库 V4.1.0 | OceanBase 文档中心"
description: "事务空闲超时，错误代码 ERROR 6002 本文介绍 OceanBase 数据库 MySQL 模式下事务空闲超时后报 ERROR 6002 错误的处理方法。 问题现象 开启事务后，等待较长一段时间，查询表数据时报错。 obclient [test]&gt; SELECT * FROM ordr; +----+------…"
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.1.0

# 事务空闲超时，错误代码 ERROR 6002

更新时间：2025-03-25 15:42:33

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.1.0/zh-CN/300.develop/100.application-development-of-mysql-mode/600.common-errors-and-solutions-of-mysql-mode/200.transaction-idle-timeout-with-error-code-6002-of-mysql-mode.md)  

本文介绍 OceanBase 数据库 MySQL 模式下事务空闲超时后报 `ERROR 6002` 错误的处理方法。

## 问题现象

开启事务后，等待较长一段时间，查询表数据时报错。

```sql
obclient [test]> SELECT * FROM ordr;
+----+------+-------+---------------------+
| id | name | value | gmt_create          |
+----+------+-------+---------------------+
|  1 | CN   |  NULL | 2022-04-02 14:03:31 |
|  2 | UK   |  NULL | 2022-04-02 14:03:31 |
|  3 | US   |  NULL | 2022-03-31 17:04:55 |
+----+------+-------+---------------------+
3 rows in set

obclient [test]> BEGIN;

obclient [test]> UPDATE ordr SET value=1003 WHERE id=3;
Query OK, 1 rows affected
Rows matched: 1  Changed: 1  Warnings: 0

obclient [test]> SELECT * FROM ordr;
+----+------+-------+---------------------+
| id | name | value | gmt_create          |
+----+------+-------+---------------------+
|  1 | CN   |  NULL | 2022-04-02 14:03:31 |
|  2 | UK   |  NULL | 2022-04-02 14:03:31 |
|  3 | US   |  1003 | 2022-03-31 17:04:55 |
+----+------+-------+---------------------+
3 rows in set

/* 等待较长一段时间不操作*/

obclient [test]> SELECT * FROM ordr;
ERROR 6002 (25000): Transaction idle timeout occurred, please rollback the transaction, set the variable ob_trx_idle_timeout to a larger value and then restart the transaction

```

该报错信息对应的错误码信息如下：

- 错误码：ERROR 6002
 - OceanBase 错误码：6278
 - 兼容 MySQL 错误码：6002

有关错误码的详细说明及介绍，请参见 [错误码概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001700529)。

## 可能原因

事务空闲超时表示事务内两条语句的执行间隔超过了指定的阈值。当事务空闲时间超过了指定的阈值时，如果继续执行数据库操作，系统就会报错。事务空闲超时由租户变量 `ob_trx_idle_timeout` 控制，默认值为 86400000000 微秒，即 24 小时。

#### 说明

OceanBase 数据库为了避免事务长时间不提交持有锁影响其他会话，设计了两个超时逻辑：事务空闲超时和事务未提交超时。通常只会有一个超时机制会先被触发。

## 解决方法

请参考以下步骤，查看并修改租户变量，再通过 `ROLLBACK` 回滚事务后，继续操作。

1. 查看变量 `ob_trx_idle_timeout` 的值，确认操作的超时时间是否超过了设置的值。

   事务空闲超时时间阈值由租户变量 `ob_trx_idle_timeout` 控制，单位为微秒，建议使用默认值 24 小时（86400000000 微秒）。

   #### 说明

   以下设置变量的方法仅对当前会话有效，如果需要保证设置永久生效，请使用 `SET GLOBAL` 语法配置相同变量后，再重启会话使其生效。

   ```sql
   obclient [test]> SHOW VARIABLES LIKE 'ob_trx_idle_timeout';
   +---------------------+-----------+
   | VARIABLE_NAME       | VALUE     |
   +---------------------+-----------+
   | ob_trx_idle_timeout | 120000000 |
   +---------------------+-----------+
   1 row in set

   obclient [test]> SET SESSION ob_trx_idle_timeout=86400000000;
   Query OK, 0 rows affected

   ```
 2. 使用 `ROLLBACK` 回滚事务。

   ```sql
   obclient [test]> ROLLBACK;
   Query OK, 0 rows affected

   ```
 3. 再次查询表的数据。查询成功。

   ```

 上一篇 下一篇 ![有帮助](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) 咨询热线
