S sungirl1126 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-19 #1 中间层意外断开后,有什么方式可让客户端的DcomConnection得到消息
Z ziyu Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-19 #6 我的方法是在系统空闲时检测。 DcomConnectionAfterdisconnection修改一个全局变量的值 OnIdle事件中检测该全局变量。 没发现出过什么问题
S shuszj Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-29 #11 做一个回调程序, 当应用层断开后,发送一个消息到客户端 这样就能达到效果
Y yeath Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-29 #13 to shuszj:断开后,回调程序还能回叫到客户端????
S shuszj Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-29 #15 to billrobin :上次介绍的女程序员都没说过一句话:) to yeath : 不是断开后,再回调,是在应用层退出时(OnClose事件中)给客户端发 送消息, 你不已经成功运行应用层发送客户端消息了吗? to sungirl1126 : 其实是加一个接口方法, 你可以看看 yeath 的贴子 http://www.delphibbs.com/delphibbs/dispq.asp?lid=1458617 也可以叫他把程序发给你(yeath 他很善解人意的)
to billrobin :上次介绍的女程序员都没说过一句话:) to yeath : 不是断开后,再回调,是在应用层退出时(OnClose事件中)给客户端发 送消息, 你不已经成功运行应用层发送客户端消息了吗? to sungirl1126 : 其实是加一个接口方法, 你可以看看 yeath 的贴子 http://www.delphibbs.com/delphibbs/dispq.asp?lid=1458617 也可以叫他把程序发给你(yeath 他很善解人意的)
Y yeath Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-29 #16 看看回调接口能不能实现,我觉得断开之后应该回叫不到客户端 了。
Y yeath Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-30 #18 意外中断,只能在客户端捕捉错误事件,如果是正常退出,那是可以回叫的,我现在 在外面 星期一可以把代码发给你,你可以参考一下,这几天心情 不好. 我星期已经贴上来了啊,怎么今天又不见了.
B billrobin Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-07 #20 to sungirl1126, 这类贴子在DFW上有很多。都是问应用层异常关闭所产生的问题?您现在所关心的是 中间层意外断开后,有什么方式可让客户端的DcomConnection得到消息,实际上我个人认为 可能解决问题思路应该放在应用层为什么断开?不应把客户端的DcomConnection得到消息 作为解决问题的突破口。因为我也是被这个问题困扰了很久,差不多都有3个月了。害得手 机时常被用户打暴。 我是如何解决问题的呢? 1:MycompanionI:=CoMyCOMcompanion.CreateRemote(MyCOMCompanionStr(4)); 我以前常用早绑定的方式来取得接口的对象。但经过很长时间的测试,我发现客户端 断开后,应用层的资源得不到完全释放。所以现在已改成晚绑定。(李维的书上有) 2:大量的使用variant类型。以为用户的服务器几十万。无所谓内存和资源。现在很珍惜 系统开销。好象variant需要20个字节。宽字符串才12个字节。节约呀? 3:客户端断开后,一定要将释放所有资源。 4:bde的参数配置,您可以作一个测试,如果您启动20个客户端。如果打不开bde administrator.同时,报出$2501错误,那么您需要改BDE的配置参数。比如缓存大小等。 这点很重要。 5:应用层在断开后,也要逐行代码检查资源释放问题,有create.必须要finally *.free. 6:有网友说到无状态对象。使用无状态对资源能得到很好的利用。有状态对象特别耗资源。 7:对了,还有一个死瑞星杀病毒软件也把我害惨了。特别它的那个防火墙。因为 DCOM是用211端口。它每次都要拦客户端的数据包。一旦数据包被拦下,应用层就以为客户端 死掉了,应用层就进入生命周期的维护。这也是造成应用层不正常的原因。我写了一个 杀瑞星的进程的程序。(客户端一起动,就把它的进程杀掉)对其它程序有用。但就是杀 不掉瑞星。我正在想办法,一定在程序起动时杀掉瑞星的进程。有瑞星就没有我的程序,有 我的程序就不能用瑞星,如果手动改瑞星端口不是很麻烦。所以必须杀掉瑞星这个臭小子。 8.。。。。 9.。。。 。。。。。。N N+1: 最让人的头痛的是,我的程序从新写了一次。代码是逐行检查过的,发现确实有些 地方的算法需要改进,并大量使用了存储过程。同在存储过程已加密,用户是看不到 其中的算法的。存储过程代码写得最多的有18页。所以让用户很轻易拿走,不是坏菜了吗? 3 :2 f 18 25 27 2f :2 27 :2 18 :2 3 :8 1 1f 2 0 :9 1 :d 3 :2 2 :3 1 4 :2 1 81 4 :4 0 1 :a 0 1b 1 :4 0 5 :2 0 :2 3 :3 0 2 :7 0 5 4 :3 0 7 :2 0 1b 2 8 :2 0 4 :3 0 5 :3 0 a b 0 6 :4 0 7 :2 0 8 :3 0 2 :3 0 7 f 11 9 e 13 :3 0 :2 c 15 :2 0 17 10 1a :3 0 1a 0 1a 19 17 18 :6 0 1b :2 0 2 8 1a 1d :2 0 1 1b 1e :8 0 有谁能将瑞星的进程杀掉吗?
to sungirl1126, 这类贴子在DFW上有很多。都是问应用层异常关闭所产生的问题?您现在所关心的是 中间层意外断开后,有什么方式可让客户端的DcomConnection得到消息,实际上我个人认为 可能解决问题思路应该放在应用层为什么断开?不应把客户端的DcomConnection得到消息 作为解决问题的突破口。因为我也是被这个问题困扰了很久,差不多都有3个月了。害得手 机时常被用户打暴。 我是如何解决问题的呢? 1:MycompanionI:=CoMyCOMcompanion.CreateRemote(MyCOMCompanionStr(4)); 我以前常用早绑定的方式来取得接口的对象。但经过很长时间的测试,我发现客户端 断开后,应用层的资源得不到完全释放。所以现在已改成晚绑定。(李维的书上有) 2:大量的使用variant类型。以为用户的服务器几十万。无所谓内存和资源。现在很珍惜 系统开销。好象variant需要20个字节。宽字符串才12个字节。节约呀? 3:客户端断开后,一定要将释放所有资源。 4:bde的参数配置,您可以作一个测试,如果您启动20个客户端。如果打不开bde administrator.同时,报出$2501错误,那么您需要改BDE的配置参数。比如缓存大小等。 这点很重要。 5:应用层在断开后,也要逐行代码检查资源释放问题,有create.必须要finally *.free. 6:有网友说到无状态对象。使用无状态对资源能得到很好的利用。有状态对象特别耗资源。 7:对了,还有一个死瑞星杀病毒软件也把我害惨了。特别它的那个防火墙。因为 DCOM是用211端口。它每次都要拦客户端的数据包。一旦数据包被拦下,应用层就以为客户端 死掉了,应用层就进入生命周期的维护。这也是造成应用层不正常的原因。我写了一个 杀瑞星的进程的程序。(客户端一起动,就把它的进程杀掉)对其它程序有用。但就是杀 不掉瑞星。我正在想办法,一定在程序起动时杀掉瑞星的进程。有瑞星就没有我的程序,有 我的程序就不能用瑞星,如果手动改瑞星端口不是很麻烦。所以必须杀掉瑞星这个臭小子。 8.。。。。 9.。。。 。。。。。。N N+1: 最让人的头痛的是,我的程序从新写了一次。代码是逐行检查过的,发现确实有些 地方的算法需要改进,并大量使用了存储过程。同在存储过程已加密,用户是看不到 其中的算法的。存储过程代码写得最多的有18页。所以让用户很轻易拿走,不是坏菜了吗? 3 :2 f 18 25 27 2f :2 27 :2 18 :2 3 :8 1 1f 2 0 :9 1 :d 3 :2 2 :3 1 4 :2 1 81 4 :4 0 1 :a 0 1b 1 :4 0 5 :2 0 :2 3 :3 0 2 :7 0 5 4 :3 0 7 :2 0 1b 2 8 :2 0 4 :3 0 5 :3 0 a b 0 6 :4 0 7 :2 0 8 :3 0 2 :3 0 7 f 11 9 e 13 :3 0 :2 c 15 :2 0 17 10 1a :3 0 1a 0 1a 19 17 18 :6 0 1b :2 0 2 8 1a 1d :2 0 1 1b 1e :8 0 有谁能将瑞星的进程杀掉吗?