代码之家  ›  专栏  ›  技术社区  ›  morechilli

什么决定了进程外COM服务器注意到客户端已死亡所需的时间?

  •  5
  • morechilli  · 技术社区  · 15 年前

    客户端通过调用cocreate进行连接,每个客户端都接收到一个到服务器同一实例的接口。

    服务器有一点逻辑,可以在上一个版本后的短时间内保持其活动状态,以允许新的连接。

    我对一种特殊情况感兴趣——服务器运行时只有一个客户机崩溃(将此视为任何随机未知崩溃),并且客户机在没有释放其引用的情况下退出。

    我观察到,在一段未定义的时间(比如8分钟)之后,服务器接收到对服务器已将接口返回给客户端的任何对象的存根的释放调用。这似乎是一个自动清理,我假设是由LRPC层启动的。

    是否在任何地方对此进行了记录,超时是否可配置?

    1 回复  |  直到 15 年前
        1
  •  7
  •   Daniel Yankowsky    6 年前

    https://web.archive.org/web/20171228092925/http://www.microsoft.com/msj/0398/dcom.aspx DCOM垃圾收集 似乎表明DCOM使用120秒超时,需要错过三次,因此大约6分钟的时间客户端将被视为断开连接。不幸的是,它也表明它不是用户可配置的,我找不到任何相反的东西。