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

本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7802968.html?templateId=1718516

问题现象

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

SQL> select 1 from dual@link_oracle;

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

问题的风险及影响

dblink功能无法正常使用

问题影响的版本

所有的YashanDB版本

问题发生原因

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

90e5b359-40e2-4be1-a302-0423b98f82ee

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

解决方法及规避方式

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

问题分析和处理过程

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

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

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

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

814a0e49-a109-4e3a-b71e-f80fe733884d

经验总结

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

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

posted @   YashanDB  阅读(3)  评论(0编辑  收藏  举报
编辑推荐:
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
点击右上角即可分享
微信分享提示