Procedimiento para cambiar la configuración del sistema de limitación de solicitudes

Última modificación: jueves, 03 de marzo de 2011

Hace referencia a: SharePoint Foundation 2010

En este artículo
Persistencia de la configuración
Qué se puede y qué no se puede cambiar
Cambio de las propiedades de SPHttpThrottleSettings

En este tema se describe cómo cambiar mediante programación la configuración del sistema de supervisión de rendimiento y limitación de solicitudes HTTP en Microsoft SharePoint Foundation.

Persistencia de la configuración

Cada aplicación web de SharePoint Foundation tiene su propia configuración de supervisión de rendimiento y limitación de solicitudes. La configuración persiste en la base de datos de configuración como un objeto SPHttpThrottleSettings, que es el valor de la propiedad HttpThrottleSettings de la aplicación web.

Qué se puede y qué no se puede cambiar

No se pueden cambiar los siguientes aspectos del sistema:

  • Las puntuaciones de mantenimiento son siempre números enteros del 0 al 10; el valor más bajo indica el mejor estado de mantenimiento y el más alto el peor.

  • La puntuación de mantenimiento de un determinado monitor se basa en una media de tiempo ponderada de muestras del contador que se está supervisando y no se puede cambiar el algoritmo de ponderación. (Sin embargo, hay una manera de desactivar el uso de varias muestras. Vea la siguiente lista con viñetas).

  • Un proceso de trabajo recibe una puntuación de estado general igual a la puntuación de peor estado de cualquiera de los monitores de la aplicación web registrados.

  • Un proceso de trabajo entra en el modo de limitación solo cuando tiene una puntuación de estado de 10; es decir, al menos uno de los monitores de rendimiento tiene una puntuación de estado de 10.

  • Un proceso de trabajo entra en límite de segunda fase solo cuando tiene una puntuación de estado de 10 durante al menos 60 segundos. Esto significa que, durante al menos 60 segundos seguidos, ha habido algún monitor con una puntuación de 10. Sin embargo, no es necesario que un monitor dado se encuentre constantemente en estado 10. Si el monitor A tiene una puntuación de 10 durante un período de 45 segundos y el monitor B tiene una puntuación de 10 durante un período superpuesto de 45 segundos, es posible que haya un período de 60 segundos en que siempre haya al menos un monitor con puntuación 10. En ese caso, el proceso de trabajo entra en límite de segunda fase.

Puede cambiar mediante programación los siguientes aspectos del sistema:

Cambio de las propiedades de SPHttpThrottleSettings

La habilitación o deshabilitación del límite mediante programación no supone retos especiales. Tampoco la modificación del número de muestras que se usan para calcular una media ponderada ni la modificación de la frecuencia con que se muestrean los contadores. El código siguiente muestra el archivo program.cs de un proyecto de aplicación de consola. El proyecto de Microsoft Visual Studio requiere una referencia a Microsoft.SharePoint.dll, que se encuentra en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI. El código siguiente cambia la frecuencia con que se toman las muestras a 10 segundos respecto del valor predeterminado de 5 segundos, habilita la supervisión de limitación para la aplicación web principal y cambia el número de muestras a 5 respecto del valor predeterminado de 12. Tenga en cuenta que se llama a Update() para guardar los cambios en la base de datos de configuración.

using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.Utilities;

namespace Contoso.SharePoint.Utilities
{
    class ThrottleSettingsChanger
    {
        static void Main(string[] args)
        {
            Uri webApplicationUri = new Uri("Http://localhost/");
            SPWebApplication webApplication = SPWebApplication.Lookup(webApplicationUri);

            SPHttpThrottleSettings throttleSettings = SPHttpThrottleSettings.GetHttpThrottleSettings(webApplication);

            throttleSettings.RefreshInterval = 10000;
            throttleSettings.PerformThrottle = true;
            throttleSettings.NumberOfSamples = 5;
            throttleSettings.Update();            
        }
    }
}

Vea también

Conceptos

Limitación de solicitudes