---
title: "事务超时报错 | OceanBase 文档中心"
description: 事务超时报错 本文为您介绍事务超时的相关报错及处理方式。 事务空闲超时 事务空闲超时指当事务两条语句执行间隔超过指定阈值。 报错：ERROR 6002 OceanBase 错误码：6002 示例 执行 BEGIN 后 120 秒内未操作。 obclient&gt; delete from t_insert where id…
---
切换语言

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

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

# 事务超时报错

更新时间：2026-05-16 14:26:49

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.0.0/zh-CN/300.developer-guide/500.common-errors-and-solutions-mysql/300.timeout/200.transaction-timeout-error.md)  

本文为您介绍事务超时的相关报错及处理方式。

## 事务空闲超时

事务空闲超时指当事务两条语句执行间隔超过指定阈值。

### 报错：ERROR 6002

OceanBase 错误码：6002

### 示例

执行 `BEGIN` 后 `120` 秒内未操作。

```sql
obclient> delete from t_insert where id=2;
ERROR 6002 (25000): transaction needs rollback

```

### 处理方法

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

   ```sql
   obclient> show variables like 'ob_trx_idle_timeout';
   +---------------------+-----------+
   | VARIABLE_NAME       | VALUE     |
   +---------------------+-----------+
   | ob_trx_idle_timeout | 120000000 |
   +---------------------+-----------+
   1 row in set

   ```
 2. 使用 `rollback` 恢复操作。

   ```sql
   obclient> rollback;
   Query OK, 0 rows affected

   ```
 3. 再次清除 `t_insert` 表中 `id=2` 的数据。

   ```sql
   obclient> delete from t_insert where id=2;
   Query OK, 1 row affected

   ```
 4. 查询运行结果。

   ```sql
   obclient> select * from t_insert;
   +----+------+-------+---------------------+
   | id | name | value | gmt_create          |
   +----+------+-------+---------------------+
   |  3 | US   |  NULL | 2022-03-31 17:04:55 |
   +----+------+-------+---------------------+
   1 row in set

   ```

## 事务未提交超时

事务未提交超时指当事务超过指定阈值后未提交或回滚。

### 报错：ERROR 4012

- OceanBase 错误码：6210
 - 兼容 MySQL 错误码：4012

### 示例

100 秒内未提交事务或者回滚。

```sql
obclient> select now(), t.* from t_insert t ;
ERROR 4012 (25000): Transaction is timeout
obclient> commit;
ERROR 4012 (25000): Transaction is timeout

```

### 处理方法

1. 查看 `ob_trx_timeout` 参数值，确认事务超时时间是否超过了设置的值。

   ```sql
   obclient> show variables like 'ob_trx_timeout';
   +----------------+-----------+
   | Variable_name  | Value     |
   +----------------+-----------+
   | ob_trx_timeout | 100000000 |
   +----------------+-----------+
   1 row in set

   ```
 3. 再次查询 `t_insert` 表数据。

   ```sql
   obclient> select now(), t.* from t_insert t ;
   +---------------------+----+------+-------+---------------------+
   | now()               | id | name | value | gmt_create          |
   +---------------------+----+------+-------+---------------------+
   | 2022-04-02 14:14:09 |  1 | CN   |  NULL | 2022-04-02 14:03:31 |
   | 2022-04-02 14:14:09 |  2 | UK   |  NULL | 2022-04-02 14:03:31 |
   | 2022-04-02 14:14:09 |  3 | US   |  NULL | 2022-03-31 17:04:55 |
   +---------------------+----+------+-------+---------------------+
   3 rows in set

   ```

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