single模式的midas应用服务器的问题,请各位千万来看看(100分)

  • 主题发起人 主题发起人 sheric
  • 开始时间 开始时间
S

sheric

Unregistered / Unconfirmed
GUEST, unregistred user!
我的应用服务器和客户端用的是socketconnect连接,采用的是single模式,如果客户端
调用remotedatamodule中的一个接口函数,把remotedatamodule中的一个int变量设置为零,
会不会跟其他的用户交叉,就是说出现每个用户改变的是同一个int变量,或者说是操作的通
一个地址!我的想法是,客户端每过一定的时间改变这个int的值来表明他还在线,在remotedatamodule
里面设置一个记时器,每一秒钟把这个int加一,如果客户端没有把这个int清零的话,int到一定
的数量就表明用户断线了,我就destroy这个remotedatamodule。不知道能不能实现,各个用户
之间会不会有影响!谢谢!要知道客户端不正常断开,而应用服务器又没有释放资源已经浪费了
我很多的内存了,各位救急了!!!!!!!!
 
当连接断开的时候会产生事件的,在事件里释放资源就行了!
 
连接断开的时候,应用服务器端没有事件响应阿,只有客户端有。问题是客户端不正常断线
怎么办
 
显然SingleInstance模式不会导致公共资源的冲突。因为每个客户端连接都将启动服务端的
一个单独进程。这些服务实例是进程独立的,因此不会互相影响。
 
int到一定的数量就表明用户断线了, 这时
在服务端正用IUnknown(self)._release就可以了。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=698792
 
不会出现你说的哪种情况,因为每一个客户端的请求MIDAS服务器都是用一个进程来服务的。
 
同意在IUnknown(self)._release里释放资源。无论是正常断线还是不正常断线,没有客户端连服务器,服务器自动会release.
 
后退
顶部