首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常

【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常

作者头像
用户11441800
发布2025-02-25 10:09:17
发布2025-02-25 10:09:17
1230
举报

问题现象

某客户在通过 yasql 查询 Oracle 数据时,报如下异常:

SQL> select 1 from dual@link_oracle;

YAS-07301 external module timeout, reason: yex_server heatbeat timeout

问题的风险及影响

dblink 功能无法正常使用

问题影响的版本

所有的 YashanDB 版本

问题发生原因

查看 YashanDB 的 run.log,有如下异常:

问题原因可能为操作系统资源紧张,无法 fork 出新的子进程。

解决方法及规避方式

操作系统资源紧张可能为进程数量过多或者内存不足,根据实际情况,停掉不需要的进程/增大进程数上限或者停止耗时内存的进程,释放内存资源。

问题分析和处理过程

在日志中打[YEX] failed to run yex_server, error no:-1 时,YashanDB 实际上执行了 linux 的函数 system(const char * command),

正常这个函数执行成功返回 0。

返回-1 是不正常的情况,什么时候返回-1 呢?

从 glibc 的源码 system.c 中可以看到,大概率是 fork()失败返回-1。

经验总结

通过分析操作系统源码推断问题的可能原因。

YashanDB 会在这里做优化,在出异常时在日志中提供更多的信息。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档