En una configuración de Windows simple, tenemos un singleton COM que se ejecuta como un servidor fuera de proceso.¿Qué determina cuánto tarda un servidor COM fuera de proceso en darse cuenta de que un cliente ha muerto?
Los clientes se conectan llamando a cocreate y cada uno recibe una interfaz para la misma instancia del servidor.
Si los clientes cierran normalmente, publican sus referencias.
El servidor tiene un poco de lógica que lo mantiene activo durante un breve tiempo después de la última versión para permitir nuevas conexiones.
Me interesa un caso especial: el servidor se ejecuta con un solo cliente que se bloquea (considere que se trata de un bloqueo aleatorio desconocido) y el cliente sale sin haber publicado sus referencias.
Observo que después de un período de tiempo indefinido, digamos 8 minutos, el servidor recibe llamadas de liberación en los stubs de los objetos que el servidor había devuelto al cliente. Esto parece ser una limpieza automática que, supongo, inicia la capa LRPC.
¿Está esto documentado en cualquier lugar y se puede configurar el tiempo de espera?
Nota: modelo de apartamento multiproceso utilizado en todo.
Ese enlace resultó ser realmente útil, muchas gracias. – morechilli