Share via


Valores de atributo de sincronización

El atributo de sincronización es una propiedad declarativa que especifica qué tipo de sincronización desea que tengan los componentes cuando se activan. Al incluir el atributo de sincronización, COM+ controla los detalles de la sincronización en su nombre; no es necesario realizar ninguna otra llamada.

Según sus requisitos, un objeto puede compartir la sincronización del autor de la llamada, requerir una nueva sincronización o funcionar sin sincronización.

COM+ proporciona los siguientes valores de atributo de sincronización:

  • Deshabilitado. Al deshabilitar el atributo de sincronización, COM+ omite los requisitos de sincronización del componente para determinar el contexto del objeto. Como resultado, el objeto puede compartir o no el contexto del autor de la llamada (y la sincronización).

    En general, debe usar este valor de atributo cuando sepa que el componente nunca tiene acceso a un administrador de recursos. Al migrar componentes COM a COM+, debe deshabilitar el atributo de sincronización para mantener el mismo comportamiento que el componente COM no configurado. Un componente no configurado es un componente COM que no se ha instalado en una aplicación COM+.

  • No compatible. Un objeto con este valor nunca participa en la sincronización, independientemente del estado de su llamador. Esta configuración solo está disponible para componentes que no son transaccionales y no usan el servicio de activación Just-In-Time (JIT).

  • Compatible. Un objeto con este valor participa en la sincronización si existe. Este valor se declara cuando se desea que un objeto comparta en la sincronización del autor de la llamada, pero no requiera la sincronización propia.

    Una buena razón para establecer el atributo de sincronización en Supported es que esta configuración puede ser menos costosa en términos de recursos del sistema. Sin embargo, es más difícil escribir el componente debido a la necesidad de protegerlo de llamadas simultáneas. La implicación de establecer el atributo de sincronización en Supported es que, en determinadas circunstancias, se puede crear una instancia del objeto de tal manera que no esté sincronizada. Si el modelo de subprocesos del componente es Gratis o Ambos, tendrá que proteger los datos de la instancia con algún tipo de mecanismo de bloqueo. Si el modelo de subprocesos es Apartment (STA), no tendrá que proteger los datos de la instancia.

  • Necesario. Al establecer este atributo, COM+ garantiza que todos los objetos creados a partir del componente se sincronizarán. En efecto, cada vez que COM+ crea una instancia del componente, se asegura de que solo haya un subproceso que pase por esta instancia a la vez.

    Como COM+ activa un objeto, examina el estado de sincronización de su llamador. Si el autor de la llamada está sincronizado, COM+ fluye el límite de sincronización del autor de la llamada para incluir el nuevo objeto. De lo contrario, COM+ inicia la sincronización.

  • Requiere nuevo. Un objeto con este valor debe participar en una nueva sincronización, donde COM+ administra contextos y apartamentos en nombre de todos los componentes implicados en la llamada. COM+ inicia automáticamente una nueva sincronización, que es distinta de la sincronización del autor de la llamada.

    Un buen motivo para establecer el atributo de sincronización en Requiere nuevo es que esta configuración le permite realizar llamadas externas a una instancia del componente de forma más eficaz. Sin embargo, también realiza llamadas entre el objeto y el objeto que lo creó más caro en términos de recursos del sistema.

    Por ejemplo, supongamos un caso en el que el objeto y su objeto creator comparten el mismo límite de sincronización. Si el cliente A llama al objeto creator y al cliente B llama al objeto , la segunda llamada tendrá que esperar hasta que se complete la primera llamada. Si establece Requiere nuevo, el objeto se crea en un límite de sincronización independiente. En este caso, las llamadas desde otros objetos se pueden procesar al mismo tiempo. Sin embargo, las llamadas del objeto creator al objeto requieren más recursos del sistema porque deben cruzar los límites de sincronización.

Establecimiento del atributo de sincronización

Dependencias de sincronización