Conceptos de sincronización de COM+
Por lo general, la sincronización no es necesaria cuando tiene un apartamento de un solo subproceso (STA) porque el apartamento proporciona la sincronización automáticamente. La sincronización se convierte en importante cuando tiene un apartamento multiproceso (MTA) y un objeto de subproceso libre. En el pasado, los objetos sin subprocesos han tenido que controlar el bloqueo. Puede eliminar la necesidad de usar el bloqueo estableciendo el atributo de sincronización para un componente.
La sincronización tiene las siguientes propiedades:
- Permite que un autor de la llamada escriba el componente a la vez.
- Prohíbe el flujo entre procesos o equipos.
- Fluye desde el componente al componente dentro de un proceso.
- Permite la reentrada del mismo autor de la llamada.
A diferencia de los apartamentos, las actividades abarcan contextos de varios procesos y hosts. La sincronización determina qué actividad contendrá un objeto . Los objetos pueden residir en cualquiera de las actividades siguientes:
- Actividad de Creator
- Nueva actividad
- Sin actividad
COM+ garantiza la simultaneidad mediante una serie de bloqueos para cada actividad. Si un autor de la llamada intenta escribir un componente sincronizado COM+ que ya está usando otro llamador, la llamada se bloquea hasta que se libera el bloqueo. Este comportamiento de bloqueo no agotará el tiempo de espera y no se podrá configurar para que se agote el tiempo de espera. Si el bloqueo no está en uso, se adquiere el bloqueo y se procesa la llamada. Después de completarse, el bloqueo se libera para el siguiente llamador. Para evitar interbloqueos, COM+ administra el acceso a todos los objetos entre actividades mediante una serie anidada de llamadas encadenadas a través de la red.
COM+ proporciona la siguiente configuración de sincronización:
- Disabled
- No compatible
- Compatible
- Obligatorio
- Se requiere nueva
Nota:
Algunas configuraciones de sincronización funcionan junto con otras configuraciones de componentes COM+. Por ejemplo, la sincronización es necesaria si el servicio de activación Just-In-Time (JIT) de COM+ está habilitado. JIT es necesario si habilita transacciones; por lo tanto, el procesamiento de transacciones COM + también requiere sincronización. Por lo tanto, las clases con la configuración de JIT=True también deben tener la configuración de Synchronization=Required o Synchronization=RequiresNew.
Para obtener instrucciones sobre cómo establecer las opciones de sincronización mediante la herramienta administrativa Servicios de componentes, vea Establecer el atributo de sincronización.
Para obtener más información sobre el uso de la biblioteca de administración de COM+ para establecer las opciones de sincronización, consulte Automatización de la administración de COM+.
Temas relacionados