关闭应用服务器时,为何会出现‘COM Server Warning’的提示(100分)

  • 主题发起人 主题发起人 vive
  • 开始时间 开始时间
V

vive

Unregistered / Unconfirmed
GUEST, unregistred user!
关闭应用服务器时,为何会出现‘COM Server Warning’的提示
' There are still active COM objects in thes application. One or more clients may have references to
these objects, so manually closing this application may cause those client application(s) to fail.
Are you sure you want to close this application? '
1、可是我已经将所有的客户端关闭了,为何还提示有COM对象存在?
2、应用服务器的COM对象不是随着客户端连接关闭而销毁吗?为何还存在。
3、如果获取服务器中已经建立的 COM 对象清单?
---------
---------
4、在同一个远程数据模块中的多个数据集的更新,如何在客户端使用事务进行提交?
5、如果涉及多个远程数据模块,如何在客户端使用事务进行提交?
 
是不是因为你的服务器程序是在客户端运行前就打开了
关掉服务器程序,
运行客户端,
再关掉客户端
服务器应该能正常关闭,否则。。。。。。有问题!
 
可能是因为你的程序中,设计状态中的DCOM/Socket Connection 的Connected 为True
你将你的RDM中写上:ComServer.UI.... := False,即可,这样就不会弹出这东东了。
其它不知。
 
4、在同一个远程数据模块中的多个数据集的更新,如何在客户端使用事务进行提交?
5、如果涉及多个远程数据模块,如何在客户端使用事务进行提交?

请参考COM+/MTS
 
DELPHI是不是打开了,如果你打开了DELPHI调试程序,而程序中一开始就连接上服务器端的话,最后关闭的时候也出现
这样的情况,--->一种可能
 
对‘1、可是我已经将所有的客户端关闭了,为何还提示有COM对象存在?
’的补充:
1、这种情况发生在‘多用户同时访问’
2、客户端已经仔细检查过,不会有打开的‘Connected:=True’。并且在Server端,会监视RDM的建立/销毁。
 
您好‘张自骞’,能推荐一本书吗
 
如果你是按$DELPHI$/Demos/midas/pooler中的例子做的程序,这是正常现象。
因为里面使用了缓冲池技术,RDM生成后,就不再销毁,而是留着下次调用,因此关闭时会出这个提示。
而客户端连接的只是TAutoObject的中间对象,并不是直接连接RDM。
如果不是,我觉得情况应该也差不多也是这样,要看你的应用服务器怎么写。
 
后退
顶部