ESQL/C执行过程中网络中断,程序始终在等待服务器返回得不到控制权怎么办
1、程序需要连接多个数据库(两个在本机上,一个在其他服务器上),在启动程序后,对所有数据库建立了连接;
2、执行一个sql语句前(该语句需要连到另外一个数据库),我把网线给拔了;
3、使用set current connection,得到得返回值居然是0,说明切换到该数据库成功了;
4、接下来是一个prepare语句,需要发送到服务器去,就在这里等了10分钟,程序没有获得控制权,始终在等待。
我把网线安上,
5、程序这才继续执行,上边得prepare返回一个错误码,大意是网络错误什么的。
另:要是启动时就连不上的话,使用set current connection会很快返回-1803错误,没有任何问题。
分析了一下,采用如下方式不太可行:
1、超时中断的方式
需要调用sqlbreak,但是该函数同样需要发送请求到服务器,估计不太可行。
2、用户中断方式
获取中断信号,调用setjmp,但是这是服务器程序,不能通过CTRL+C来结束
查看了配置文件,里边只有超时重联的时间间隔配置,我配的是300秒,而实际上超过了10分钟,估计和它没关系,实在不知道该怎么办了,各位高人指点一下吧。