Tipos de subprocesos de dispensador de recursos COM+

Las llamadas a un dispensador de recursos COM+ pueden originarse en uno de los siguientes tipos de subprocesos:

  • Subproceso de apartamento (STA)
  • Subproceso libre (MTA)
  • Subproceso no COM (aplicación o subproceso del recolector de elementos no utilizados del administrador de dispensadores)

Si un dispensador de recursos no es un objeto COM, debe poder controlar las llamadas que llegan desde cualquier subproceso en cualquier momento. Si un dispensador de recursos es un objeto COM, el objeto COM debe registrarse con un modelo de subprocesos de ambos. Esto permite que los subprocesos STA o MTA creen y usen el dispensador de recursos sin un conmutador de subproceso.

Si un dispensador de recursos crea y usa otro objeto COM (por ejemplo, un administrador de recursos fuera de proceso), es posible que el dispensador de recursos tenga que mantener varios servidores proxy a este otro objeto COM y asegurarse de que las llamadas al objeto se realizan mediante el proxy adecuado para el subproceso que realiza la llamada. Cuando el dispensador de recursos crea este objeto, serializa y guarda la referencia. Antes de volver a llamar al objeto, debe desmarshal para crear un proxy para el subproceso que llama.

Puede ser más eficaz almacenar en caché estos servidores proxy por subproceso manteniendo un mapa del identificador del subproceso en un puntero de proxy. Este mapa se expande a medida que se usan nuevos subprocesos en el proceso.

Conceptos del dispensador de recursos COM+