如题,在嵌入式Linux的C++ 开发中调用嵌入式mysql库函数,在一个线程中执行上位机数据库中存储过程,在执行存储过程前打出了日志,发现线程执行数据库存储过程后没有任何日志输出,稍候其它线程信息显示嵌入式设备有短暂的网络掉线情况。猜测可能在执行上位机数据库的存储过程查询信息过程中,网络掉线,因为在执行数据库存储过程时,网络掉线几率很小,我能通过在执行存储过程的代码外层添加try catch()捕获异常么?
现在怀疑因为执行上位机数据库的存储过程时,网络掉线,导致存储过程的执行线程直接崩掉了(系统和应用程序的其它线程没有影响,正常情况下存储过程的执行线程会循环输出日志信息,但是日志显示刚好执行存储过程后,该线程再也不会输出任何日志信息了,随后几秒后其它线程的日志显示与上位机网络掉线。数据库连接初始化时有设置5秒超时,应该不会是数据库连接进入死循环等待上位机数据库存储过程的返回值的情况)。
现在怀疑因为执行上位机数据库的存储过程时,网络掉线,导致存储过程的执行线程直接崩掉了(系统和应用程序的其它线程没有影响,正常情况下存储过程的执行线程会循环输出日志信息,但是日志显示刚好执行存储过程后,该线程再也不会输出任何日志信息了,随后几秒后其它线程的日志显示与上位机网络掉线。数据库连接初始化时有设置5秒超时,应该不会是数据库连接进入死循环等待上位机数据库存储过程的返回值的情况)。
解决方案 »
- 在centos中安装完keepalived之后报错
- kubelet在/var/log/messages中狂打日志
- Red Hat Linux下tomcat启动用户权限问题
- docker cp命令中使用变量导致错误问题
- shell中用$0获取本脚本文件名也是不正确的
- Linux系统文件备份,感谢各位大佬。
- 在虚拟机linux上装了nginx,linux上用ip可以访问,在winows上不行。
- telnet:connect to address X.X.X.X:Connection refused
- (求助)ubuntu18.04.2 LTS 关机动画缺失,只有代码刷屏
- 关于一个SQL文件转换成bin包的问题,求大神指点
- 求知道 tensorflow中训练LSTM模型弹出的LOSS结果
- netfilter 抓包抓不到出去报文的以太网报头 应该怎么设置
嵌入式调试,这种情况,要异常检测关闭,看看你的平台是怎么实现的,一般都是自己做的。
实在不行用GDB跟踪一下,看看哪一行挂掉的
mysql库如果没有throw机制,加上try也没用
网络掉线,会导致mysql存储过程调用有问题,这种情况多半在你的程度中加强检查就可以解决了
具体点说就是每一个跟mysql交互的语句,写的时候都要多根弦,万一这一句调用出错了,断线了,没得到想要的结果怎么办?
需要加入怎么样的检查机制?需要加入怎么样的处理机制?