Compartir a través de


Agrupación de objetos

El servicio de agrupación de objetos COM+ permite evitar la sobrecarga al crear cada objeto desde cero. Cuando se activa un objeto, se saca del grupo. Cuando se desactiva un objeto, se vuelve a colocar en el grupo, a la espera de una solicitud futura.

La agrupación de objetos se puede configurar aplicando el atributo ObjectPoolingAttribute a una clase derivada de la clase System.EnterpriseServices.ServicedComponent.

El procedimiento para aplicar el atributo ObjectPoolingAttribute y establecer sus propiedades se define en Cómo crear un objeto agrupado y establecer sus límites de tamaño y tiempo de espera.

La agrupación de objetos permite controlar el número de conexiones que se utilizan, en contraste con la agrupación de conexiones, en que se controla el número máximo alcanzado. A continuación, se destacan las principales diferencias entre la agrupación de objetos y la de conexiones:

  • Creación. Cuando se usa la agrupación de conexiones, la creación se realiza en el mismo subproceso, de modo que si no hay nada en el grupo, se crea una conexión. En la agrupación de objetos, el grupo puede crear un nuevo objeto. Sin embargo, si ya se ha alcanzado el máximo, lo que hace es proporcionar el siguiente objeto disponible. Este comportamiento es crucial cuando se tarda mucho en crear un objeto, pero no se utiliza durante mucho tiempo.

  • Exigencias de mínimos y máximos. No se hace en la agrupación de conexiones. El valor máximo en la agrupación de objetos es muy importante al intentar ampliar la aplicación. Podría ser necesario tener que multiplexar miles de solicitudes sólo a algunos objetos. (Las pruebas comparativas de TPC/C dependen de esto).

La agrupación de objetos COM+ es prácticamente idéntica a la agrupación de conexiones administradas a clientes SQL de .NET Framework. Por ejemplo, la creación se realiza en otro subproceso y los mínimos y máximos son obligatorios.

Nota:

Los dominios de aplicación afectan al comportamiento de la agrupación de objetos. En Windows 2000, cuando la activación de aplicaciones está establecida en Library y se tienen varios dominios de aplicaciones, todos los objetos agrupados se crean en el dominio de aplicación predeterminado y se comparten entre varios clientes. En la misma situación, con Windows XP y Windows Server 2003, hay un grupo de objetos por dominio de aplicación. En cualquiera de los dos sistemas operativos, con varios dominios de aplicación y la activación de aplicaciones establecida en servidor, los clientes fuera de proceso utilizan el grupo de objetos del dominio de aplicación predeterminado.

Nota:

En general, no tiene que llamar a DisposeObject desde el cliente cuando utiliza componentes con servicio. No obstante, es necesario hacerlo si está utilizando el servicio de agrupación de objetos COM+ mientras el servicio de activación Just-in-Time (JIT) no está habilitado. En este caso, para comprobar que es seguro devolver el objeto a la agrupación, se debe notificar a COM+ que se ha terminado de utilizar el objeto. Por lo general, si se intenta realizar una sola llamada cada vez en un objeto agrupado, es una buena idea habilitar la activación JIT con la agrupación de objetos. Si tiene la intención de obtener una referencia y realizar varias llamadas sobre la misma, el hecho de utilizar la agrupación de objetos sin la activación JIT puede dar lugar a una mejora del rendimiento.

Consulte también

Tareas

Cómo crear un objeto agrupado y establecer sus límites de tamaño y tiempo de espera

Referencia

ObjectPoolingAttribute
System.EnterpriseServices Namespace

Conceptos

Resumen de los servicios COM+ disponibles

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.