描述:
最近碰到两个问题,一个是程序和数据库连接上了以后,中间网络断了,使用ADO查看Connection的状态还是打开的,郁闷,另一个问题从很早就存在,我一直没解决得了,就是我使用DCOM来进行多台机器间的数据传送(一台服务器/多个客户),也是中间网络断开,或者DCOM客户端程序异常死了,服务器端ATL生成的连接点发送程序部分还是要等待30秒以上才放弃对这个客户端程序的发送,转而发送下一个客户端,再次郁闷!望高手提供点解决办法。
解决方案1:
我想应看它是否有ping类似的机制
它们好象只有服务器端可用ping,而客户端却不能得到断网的信息
哎,我们是同病相怜呀,我现在开发的一个项目跟你说的差不多,我也是用一个服务器带多个客户机,通过DCOM通讯,通讯经常出现故障,我现在正在考虑通过COM+实现或改用TCP/IP通讯方式算了。不知道是我们没有掌握DCOM的某些技术细节还是DCOM本身有问题。
解决方案3: 搞不懂,DCOM怎么跟UDP挂上了.DCOM的可连接点方式的广播可不是通过UDP方式实现的。
如果客户端有1000个那么多,Pinging才会有所影响网宽。连接上服务器的客户端信息
都放在容器(IConnectpointcontainer)里了.研究它会知道当客户连接状态。
另UDP最好只用来广播不重要的数据,如图像啊。
DCOM对每一个引出的对象(对应一个OID),也就是由客户端写实现代码的接口在一定的时间内“pinging"一次,如果发现远程引用己终止(客户端异常退出)则会忽略这个出接口对象。也就是说服务端能检测出来。如果服务端死了。那客户端调用服务端的方法无法返回,只能超时后捕捉错误信息了。
可连接对象的应用要实现起来不难。找一些信息看看吧。