我的Midas的服务器,连接两个客户端就出错是什么原因?
Midas的服务器端采用,ciMultiInstance, tmApartment模式.
客户端采用TSocketConnection连接,采用多线程的方式.
当两个客户端在长时间运行后,会出现如下错误:
"连接占线导致另一个命令"
我试着用临界区来保护
在DSPTemp1: TDataSetProvider控件的DataRequest事件中写
EnterCriticalSection(CS) ;
在QryTemp1:TQuery的AfterClose事件中写
LeaveCriticalSection(CS);
在两个客户端,长时间运行后会出现如下错误:
"Record Changed for another user"
请问如何解决,这一问题.
我又把服务器改为使用ciSingleInstance, tmSingle模式,在这种模式下只可以连接一个客户端.
请问如何解决这个问题?使服务器可以连接多个客户端.
请高手指点一下,小弟万分感谢!
问题点数:0、回复次数:9Top
1 楼xudong51(旭)回复于 2003-11-04 15:49:20 得分 0
老大,怎么没人回复!Top
2 楼rwdx(忆)回复于 2003-11-04 15:59:51 得分 0
禁用TSocketConnection的回调功能,建议不用将TSocketConnection应用于多线程Top
3 楼xudong51(旭)回复于 2003-11-04 17:21:27 得分 0
"禁用TSocketConnection的回调功能" 这个我试一下.
但我现在必须要用多线程来处理。是在一个多线程中调用了TClientDataSet控件的功能,而这些TClientDataSet的RemoteServer均为同一个TSocketConnection。
我再问一下如果在客户端使用多个TSocketConnection是不是好一些呢?Top
4 楼rwdx(忆)回复于 2003-11-04 17:29:45 得分 0
应该会好一些,但是开销就可能比较大了Top
5 楼xudong51(旭)回复于 2003-11-05 16:19:43 得分 0
我再问一下,"连接占线导致另一个命令"这个错误,在什么情况下会产生呢?Top
6 楼summerlover(summerlover)回复于 2003-11-07 16:03:42 得分 0
是不是你服備端的數據庫連接方式不是共享的,
Top
7 楼zhxfzhxf1(zhxfzhxf1)回复于 2003-11-07 22:49:57 得分 0
不太清楚Top
8 楼delphi1234567(CHAO)回复于 2003-11-09 22:31:36 得分 0
现在数据库服务器不用多线程怎么行????
要客户端排队,一个一个等不成??
Top
9 楼xudong51(旭)回复于 2003-11-12 13:12:22 得分 0
我这几天一直在试这个,服务器的RemoteDataModule本身是支持多线程,但TAdoQuery不支持.我想是不是可以动态创建TAdoQuery而.Provider不动态创建呢?我还没试,我试一下看一看效果.Top




