---
title: OBServer 出现 force_disconnect 告警的触发逻辑和原因-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 OBServer 出现 force_disconnect 告警的触发逻辑和原因相关的常见问题和使用技巧，帮助您快速解决 OBServer 出现 force_disconnect 告警的触发逻辑和原因的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OBServer 出现 force_disconnect 告警的触发逻辑和原因

更新时间：2023-11-13 02:05

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

## 问题描述

OceanBase 集群偶发性出现如下告警信息：

```shell
[2021-10-27 21:25:21.747606] ERROR [SERVER] force_disconnect (obmp_base.cpp:961) [79836][2176][YB420C018017-0005CCBD482C7EF4] [lt=13] [dc=0] force disconnect by server BACKTRACE:0xd1c809a 0x34569b2 0xd0ed9c2 0x34b10b9 0x98da499 0x98e6971 0x31dd94f 0x31d7e72 0x31d574e 0x31d0046 0x

```

## 影响版本

OceanBase 数据库 V2.2.77 版本。

## 问题原因

- 当客户端发起一个请求后且在 OBServer 还未处理结束该请求前断开了连接，OBServer 会抛出该告警。
 - 某些 SQL 执行期间触发了disconnect 逻辑，此类 SQL 一般是解析异常的不合理 SQL。

下面以一个列子说明触发该问题的逻辑： 假设一个请求从 client 发给 OBServer：

1. 先建立了 TCP 连接，client 和 server 通过握手完成登录鉴权, 然后 client 发送一个请求给 OBServer。
 2. OBServer 在处理请求过程中客户端主动断开连接，OBServer 检查到连接异常，就会主动调用 force_disconnect。

## 解决方法

- 建议您可以尝试通过抓包等手段排查为何客户端发起请求后关闭连接。
 - 检查和改写 SQL。

Previous

[如何配置读写分离集群](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000168)

Next

[OceanBase 集群出现 Failed to do check_ack_timeout 告警的原因](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000267165) ![有帮助](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) 咨询热线
