---
title: "Oracle 租户下报错 ORA-02051: another session or branch in same transaction failed or finalized 的原因-OceanBase数据库使用指南"
description: "了解OceanBase数据库在实际应用中关于 Oracle 租户下报错 ORA-02051: another session or branch in same transaction failed or finalized 的原因相关的常见问题和使用技巧，帮助您快速解决 Oracle 租户下报错 ORA-02051: another session or branch in same transaction failed or finalized 的原因的难题。"
---
切换语言

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

划线反馈

# Oracle 租户下报错 ORA-02051: another session or branch in same transaction failed or finalized 的原因

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

适用版本： V2.2.x、V3.1.x、V3.2.x 内容类型：Troubleshoot  

## 问题描述

在使用分布式事务时，应用收到 ORA-02501 异常，异常信息如下。

```shell
ORA-02051: another session or branch in same transaction failed or finalized

```

## 影响版本

OceanBase 数据库 V2.2.77 和 V3.x 版本。

## 问题原因

出现该问题的原因是 XA 事务的某个分支执行异常导致。

## 解决方法

1. 拿到异常时的 observer.log 日志，使用 "-6264" 关键字过滤日志，找到异常日志的 `trace_id` 以及线程 ID。
 2. 用 `trace_id` 和线程 ID 再次过滤日志，找到关键字 `trans_id`，`trans_id` 中包含 addr，表示该 XA 事务的管理节点。然后，进入到该 XA 事务管理节点的日志文件中，通过 `trans_id` 中的 `hash` 值再次进行过滤，可以进一步确认该 XA 事务回滚的原因。比如可能会看到 `-6213`、`-6005` 等异常，从而确认异常原因和导致异常的 SQL 语句。

上一篇

[OBServer 日志出现 out of px worker resource 的原因](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000267156)

下一篇

[OceanBase 数据库 V3.x 集群的 DML 语句在事务超时后，SQL 语句无法正常停止，执行 kill session 后状态变为 session_killed 但依然无法停止](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002842309) ![有帮助](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) 咨询热线
