急寻答案(关于Sybase和多线程问题)(50分)

  • 主题发起人 主题发起人 wildhorsetlj
  • 开始时间 开始时间
W

wildhorsetlj

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在程序调试过程中遇到一个难题,是关于Sybase进程方面的问题,在程序启动过程中,调用了16个进程,由于要检测网络、后台数据库是否正常连接,因而对进程作了检测,但是总报出最大连结数已打开的错误提示,遇到此种情况该如何处理?望那位高手予以指点和帮助
 
程序产生错误General SQL error.
ct_connect(): user api layer: external error: The maximum number of connections have already been opened.
Alias: ttee
在此ttee的Open之前,已有15个进程打开,另外,如果是客户端断开时,检测到连接正常后,重起程序就会报错!估计应该也是跟sybase进程有关,遇到此问题,该如何解决!
望高手帮忙,在线盼!
 
再次寻求答案,那位朋友可帮忙?
 
不会吧,大富翁的朋友没有遇到此种问题?快快帮忙了,不过,我另外给分。我现在怀疑是系统的问题,因为同样的代码和程序在另一个机子上就是好的!
 
用sa登录
执行sp_configure 'number of user connections',N
N>=你希望的并发连接
执行完后重启sybase
 
to szf:
你好,看到你的帮助,十分感谢,可否留下你的qq号或者Email,因为我有些问题不太明白
本人:wildhorsetlj@163.com,qq:44022395
 
为什么会出现这个最大连接数的错误,sybase默认情况下最大连接数是多少?而这个错误并不影响程序的执行情况,我能否在程序中将这个异常屏蔽掉,对它不作处理,但是,我不知道这个异常到底是属于哪一类?有没有其他的办法去屏蔽,说明的是:这个异常是在try … except… end中捕捉的
 
友情顶帖,祝MM早日解决!
 
每个Sybase SQL Server都会有个最大客户连接数的配置的,当然了,可以通过执行sp_configure来进行更改,只是有个版权问题。
当超过配置数量的客户机登录时,TDatabase的open(或Connected := True)时,就会抛出异常,至于DELPHI的异常类型嘛,不可能跟Sybase的每个错误都有关的,一般是EDatabase或EDBEngine什么的,你可以用except on E:Exceptiondo
ShowMessage(E.ClassName)就知道了,不过我的经验是检测E.Message有没有"maximum number of connections"字样:
Pos('maximum number of connections ',E.Message)>0
如果你的程序设计成每个连接都是相同用途的,可以连接成功一个就扔一个列表中,列表中的对象表示有效的连接。
 
问题已解决,多谢楼上帮忙
 
你这样做,有失公平!下次不要这样了
 
szf,抱歉,上次太累了,不小心把分分错了,请到
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2568102取分!
意表歉意
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2568102
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2568115
szf,抱歉,上次太累了,不小心把分分错了,请到上面的链接接分!
 
MM不要工作得太累啦~这样不好的...
 
我为什么看不见别人的回答???[?]
 
后退
顶部