ESQL/C执行过程中网络中断,程序始终在等待服务器返回得不到控制权怎么办

darkhawk 2005-03-26 08:36:57
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分钟,估计和它没关系,实在不知道该怎么办了,各位高人指点一下吧。


...全文
110 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkhawk 2005-04-01
  • 打赏
  • 举报
回复
哈哈,就一个人回我呀
今天搞定了,设置了一个环境变量就ok了
cloudflashes 2005-03-29
  • 打赏
  • 举报
回复
close数据库再连接一次
darkhawk 2005-03-29
  • 打赏
  • 举报
回复
有谁知道ESQL/C和Informix服务器采用什么通信方式啊,FIFO,SOCKET,还是消息队列?

这是个服务进程,不能随便重启的,一年内的中断时间不能超过两分钟。
唉,测试部测出了这么个问题,郁闷,帮忙解决一下啦。

1,195

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧