PL 调试时页面卡顿
问题现象
通过 ODC 发起 PL 调试时页面卡顿,无任何跳转同时无法单击调试页面的任何按钮。
问题原因
通过 ODC 发起 PL 调试时未进行调试必备前置条件的相关判断,同时缺乏调试生命周期管理,导致请求卡死。
影响的版本
ODC V3.2.1 及之前的版本。
解决方法
升级至 ODC V3.2.2 及之后的版本,此版本进行了 PL 调试相关逻辑的重构。建议升级至 ODC 最新版本以获得更好的 PL 使用体验。
升级 OBServer 至 V2.2.77、V3.1.x、V3.2.x 对应的最新 PATCH 版本,此类 PATCH 版本对调试进行了优化并支持对象的扩展。
PL 调试时报错 -4007
问题现象
通过 ODC 发起 PL 调试时,OBServer 报错 -4007。
问题原因
OceanBase 进行 PL 调试必须执行服务端 PS 协议,但是 OceanBase V2.2.x 之前的版本的 OceanBase 服务端 PS 协议的开关默认关闭(_ob_enable_prepared_statement=0),因此会报错。
影响的版本
所有版本的桌面版和 Web 版 ODC。
解决方法
登录目标集群的 sys 租户,切换至 OceanBase 数据库下,执行:
obclient> select * from __all_virtual_sys_parameter_stat where name='_ob_enable_prepared_statement' \G
obclient> alter system set _ob_enable_prepared_statement=1;
Query OK, 0 rows affected (0.03 sec)
PL 调试时报错 -4153
问题现象
通过 ODC 发起 PL 调试时报错:
do not have enough resource to hold new debugger
问题原因
OBServer 无更多的线程资源分配给调试功能,调试过程报错退出。
影响的版本
所有版本的桌面版和 Web 版 ODC。
解决方法
方法 1
OBServer 分配给调试功能的线程数计算方式:unit_cpu * cpu_quota_concurrency / 2
其中,unit_cpu 为租户规格,cpu_quota_concurrency 为配置项,可以通过调大两个参数增大调试可用的线程资源。
方法 2
如果开发环境重启 OBServer 不受影响,可以重启 OBServer 释放部分线程资源,以快速忽略此问题。
无效 PL 对象调试时报错
问题现象
调试无效 PL 对象时报错:无效 PL 对象不支持调试。

标有黄色叹号图标的 PL 名称即为无效的 PL 对象。

问题原因
调试无效的 PL 对象时可能会产生不可预知的错误,所以需要用户将无效的 PL 对象变为有效状态后,再进行调试。
影响的版本
所有版本的桌面版和 Web 版 ODC。
解决方法
方法 1
将鼠标移动到告警图标,查看当前 PL 对象的无效原因。

根据提示消除无效状态。例如:创建缺少 PL 对象依赖的数据库对象后重新编译此 PL 对象。
方法 2
如果已根据方法 1 解决 PL 依赖对象不存在或者 PL 本身内部语法问题等无效原因并重新编译后,PL 对象状态仍然无效,可以删除并重新创建 PL 对象。