我们现在的组件是在每个方法中打开连接,方法结束时关闭连接
我觉得这样有损效率(会有几百人用),我想可不可以在组件被创建实例时打开连接
析构时关闭连接,
并且如何利用mts的三个默认方法来优化对连接的节省?

解决方案 »

  1.   

    每次开关的确有损效率,建议用COM+,把_ConnectionPtr作为组件的一个成员变量,在构造时打开,析构时关闭。然后,把组件设为启用缓冲池,这样就只需开关一次了!
      

  2.   

    楼上说的是对的,同时再建议你在mts组件的Activate()方法中打开连接
    在Deactivate()方法中关闭,释放连接,我们的中间件就是这样作的,用起来效果不错
      

  3.   

    楼上说的是对的,
    另外建议你在Activate()方法中建立连接,并保存到一个成员变量中,然后在Deactivate()中关闭,释放连接,我们的中间件都是这样作的,效果不错
      

  4.   

    1、缓冲池的使用由COM+系统来自动控制,超时后,缓冲的资源才会消失。
    你应该在Activate里连接资源,在Deactivate 里释放资源,资源释放后进入缓冲池,超过一定时间后如无人使用的话,资源才真正从缓冲池中释放。就是说你每次访问组件功能后都要立即释放资源(实际上COM+并不让你真正地释放掉)。第一次Activate里连接资源时需要时间,以后就会快得多。
    2、MTS对象支持 CanBePooled,设置为TRUE
    3、COM+组件是否使用缓冲池,在“组件服务”里设置。我记得李维好象说过,COM+真正支持缓冲池,好象 mts还不支持