Conceptos de puertas de activación de COM+ Low-Memory
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 es 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.
Los problemas de confiabilidad a menudo se producen cuando los recursos de un servidor no pueden reaccionar eficazmente a las cargas máximas. Cuando un servidor no tiene suficientes recursos físicos para satisfacer la demanda máxima, puede agotar la memoria virtual. Esto se convierte en un problema si el código de usuario o el código del sistema no controla correctamente los errores de asignación de memoria. El servidor comienza a ralentizarse y, a medida que se agota la memoria, se produce un error en las asignaciones de memoria. El servidor ejecuta rutas de acceso de error para controlar los errores de asignación. Si una ruta de acceso de error contiene un error en el sistema o el código de usuario que se ejecuta en el servidor, es muy difícil interceptar y controlar de forma segura.
COM+ intenta evitar situaciones en las que se deben ejecutar estas rutas de acceso de error en un servidor. A través de la característica de puertas de activación de memoria baja, COM+ supervisa proactivamente la carga de memoria en el sistema y garantiza que hay disponible una cantidad razonable de memoria antes de ejecutar el código de usuario. Si el porcentaje de memoria virtual disponible para la aplicación está por debajo de un umbral fijo, se produce un error en la activación antes de crear una aplicación de servidor COM+ o un objeto (como se muestra en la ilustración siguiente). Si se produce un error en estas activaciones que normalmente se ejecutarían, la característica de puertas de activación de poca memoria minimiza los problemas asociados con las asignaciones de memoria en el código de usuario, lo que mejora significativamente la confiabilidad del sistema.
La característica de puertas de activación de poca memoria solo se aplica a los componentes COM configurados que se instalan en una aplicación COM+.
Funcionamiento de la característica puertas de activación de Low-Memory
La característica de puertas de activación de memoria baja usa un nivel de umbral fijo diferente en función del tipo de activación. Al crear una aplicación de servidor COM+, COM+ permite la activación si hay más del 10 % de memoria virtual disponible. Si hay menos del 10 por ciento disponible, COM+ realiza una asignación de prueba para averiguar si el archivo de paginación puede expandirse para dar cabida a la nueva carga de memoria. Si el archivo de paginación se expande, se crea la aplicación de servidor. Si no se puede expandir el archivo de paginación, se produce un error en la activación y no se asigna memoria.
El proceso es similar al crear un objeto . En este caso, COM+ permite la activación si hay más del 5 % de memoria virtual disponible. Si hay menos del 5 por ciento disponible, COM+ continúa con una asignación de prueba. De nuevo, si la asignación de prueba expande el archivo de paginación, se crea el objeto . Si no es así, se produce un error en la activación.
Los niveles de umbral fijo para las puertas de activación de memoria baja no son configurables actualmente. Por este motivo, no hay tareas asociadas a esta característica.