Opción de configuración de la aplicación (Almacenamiento en caché de AppFabric 1.1)

Las características de caché de Microsoft AppFabric 1.1 para Windows Server permiten configurar las opciones del cliente de caché de la aplicación mediante programación a través de un archivo de configuración de la aplicación o mediante ambas estrategias en diferentes lugares de la aplicación. Para obtener más información acerca de todos los métodos de configuración y cómo seleccionar cada uno de ellos, vea Configuración de un cliente de caché.

Independientemente de la estrategia que elija, estará configurando la misma opción de cliente de caché. Las tablas de este tema presentan las opciones disponibles para el cliente de caché e indican cómo están configuradas en el archivo XML de configuración de la aplicación y mediante programación, con el uso de código.

Para obtener más información acerca de cómo usar estas opciones en la aplicación, consulte los ejemplos que aparecen en Configuración de cliente basada en XML.

Configuración del cliente de caché

Cada cliente de caché tiene valores de configuración definidos. Si está usando un archivo de configuración, estos se incluyen en una o más secciones de dataCachClient que se pueden integrar en una sección de dataCacheClients. Por ejemplo:

  <dataCacheClients>
    <dataCacheClient name="default">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
    <dataCacheClient name="compressedCache" isCommpressionEnabled="true">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>

En el ejemplo anterior, hay dos clientes de caché definidos en el archivo de configuración: default y compressedCache. Para acceder a la caché predeterminada, no necesita especificar el nombre del cliente de caché. Por ejemplo:

DataCacheFactory factory = new DataCacheFactory();

Para especificar cualquier otra sección de dataCacheClient con nombre, debe especificar el nombre de la sección de cliente de caché mediante el constructor DataCacheFactoryConfiguration.

DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration("compressedCache");
DataCacheFactory factory = new DataCacheFactory(factoryConfig)

Si no está usando un archivo de configuración de la aplicación, puede definir mediante programación todos los valores de configuración con las propiedades de la clase DataCacheFactoryConfiguration.

Configuración Ubicación de la configuración XML Ubicación de configuración de código

Compresión (booleano)

El atributo isCompressionEnabled del elemento dataCacheClient. El valor predeterminado es false.

La propiedad IsCompressionEnabled de la clase DataCacheFactoryConfiguration.

Tiempo de espera de cliente (milisegundos)

El atributo requestTimeout del elemento dataCacheClient. No es recomendable especificar un valor inferior a 10000 (10 segundos). El valor predeterminado es 15000.

La propiedad RequestTimeout de la clase DataCacheFactoryConfiguration.

Tiempo de espera de canal abierto (milisegundos)

El atributo channelOpenTimeout del elemento dataCacheClient. Este valor puede configurarse en 0 para controlar inmediatamente cualquier problema de red. Para obtener más información, consulte Configuración de tiempos de espera de clientes de caché. El valor predeterminado es 3000.

La propiedad ChannelOpenTimeout de la clase C DataCacheFactoryConfiguration.

Número máximo de conexiones con el servidor

El atributo maxConnectionsToServer del elemento dataCacheClient. El valor predeterminado es 1.

La propiedad MaxConnectionsToServer de la clase DataCacheFactoryConfiguration.

Configuración de host de caché

Para cada cliente de caché, debe especificar uno o varios hosts de caché en el clúster. Especifique hosts principales, ya que los hosts de caché designados como hosts principales ayudan a administrar el clúster. Inicialmente, los hosts principales son los primeros hosts de caché instalados en el clúster. Para obtener más información acerca de los hosts principales, vea Diagrama de la arquitectura física de AppFabric (Almacenamiento en caché de AppFabric 1.1).

En el archivo de configuración de la aplicación, la configuración de cada host de caché se especifica en un elemento host, un objeto secundario del elemento hosts. Mediante programación, cada host se define en el constructor de la clase DataCacheServerEndpoint. Una vez creadas las instancias, estos objetos DataCacheServerEndPoint se transmiten a la propiedad Servers de la clase DataCacheServerEndpoint.

Configuración Ubicación de la configuración XML Ubicación de configuración de código

Nombre del servidor de caché

El atributo name del elemento host.

La propiedad HostName de la clase DataCacheServerEndpoint.

Número de puerto de caché

El atributo cachePort del elemento host.

La propiedad CachePort de la clase DataCacheServerEndpoint.

Configuración de caché local

La configuración de caché local especifica si ésta debe habilitarse, el modo en que deben invalidarse los objetos en caché local, el tiempo de espera del objeto y si deben usarse o no las notificaciones de caché para invalidar los objetos en caché local.

En el archivo de configuración de la aplicación, la configuración de caché local se define en el elemento localCache, un objeto secundario del elemento dataCacheClient. La memoria caché se configura mediante programación con una instancia de la clase DataCacheFactoryConfiguration que se pasa al constructor del constructor de la clase DataCacheFactory. Para obtener más información acerca de la memoria caché local, vea Clientes de caché y caché local (Almacenamiento en caché de AppFabric 1.1)

Configuración Ubicación de la configuración XML Ubicación de configuración de código

Caché local habilitada

El atributo isEnabled del elemento localCache. Los valores pueden ser true o false. El elemento localCache también puede faltar para indicar que está deshabilitado.

La propiedad IsEnabled de la clase DataCacheLocalCacheProperties. A continuación, este elemento se asigna a la propiedad LocalCacheProperties de la clase DataCacheFactoryConfiguration.

Método de invalidación de caché local

El atributo sync del elemento localCache. Use el valor TimeoutBased para indicar que debe usarse un valor de tiempo de espera. Use NotificationBased para indicar que deben usarse notificaciones de caché.

La propiedad InvalidationPolicy de la clase DataCacheLocalCacheProperties. Los valores posibles son NotificationBased y TimeoutBased.

Tiempo de espera de la memoria caché local (segundos)

El atributo ttlValue del elemento localCache.

La propiedad DefaultTimeout de la clase DataCacheLocalCacheProperties.

Intervalo de sondeo de las notificaciones de caché específicas (segundos)

(opcional) Especificado por el atributo pollInterval del elemento clientNotification. El elemento clientNotification es un objeto secundario del elemento dataCacheClient y no del elemento localCache. Si no se especifica, se usará un valor de 300 segundos.

La propiedad PollInterval de la clase DataCacheNotificationProperties. A continuación, este elemento se asigna a la propiedad NotificationProperties de la clase DataCacheFactoryConfiguration.

Número máximo de objetos en caché local

(opcional) Especificado por el atributo objectCount del elemento localCache. Se activa cuando debe comenzar la expulsión en la memoria caché local; después intentará quitar el 20 por ciento de los objetos en caché local usados hace más tiempo. Si no se especifica, se usará el valor predeterminado de 10.000 objetos.

La propiedad ObjectCount de la clase DataCacheLocalCacheProperties.

Nota

Para obtener el mejor rendimiento, habilite la memoria caché local solamente para los objetos que cambien con poca frecuencia. El uso de la memoria caché local para datos que cambien con frecuencia puede aumentar el riesgo de que el cliente trabaje con objetos obsoletos. Aunque podría reducir el valor de ttlValue y hacer que el proceso actualice la memoria caché local con más frecuencia, el incremento de la carga del clúster podría ser mayor que los beneficios de tener la memoria caché local. En los casos en los que los datos cambian con frecuencia, lo mejor es deshabilitar la memoria caché local y extraer los datos directamente desde el clúster.

Configuración de la notificación

En el archivo de configuración de la aplicación, las propiedades de la notificación se definen en el elemento clientNotification, un elemento secundario del elemento dataCacheClient. Las propiedades de notificación se configuran mediante programación con una instancia de la clase DataCacheFactoryConfiguration que se pasa al constructor del constructor de la clase DataCacheFactory. Para obtener más información, vea Métodos de configuración.

Configuración Ubicación de la configuración XML Ubicación de configuración de código

Intervalo de sondeo de las notificaciones de caché específicas (segundos)

Especificado por el atributo pollInterval del elemento clientNotification. Si no se especifica, se usará un valor de 300 segundos.

La propiedad PollInterval de la clase DataCacheNotificationProperties. A continuación, este elemento se asigna a la propiedad NotificationProperties de la clase DataCacheFactoryConfiguration.

Longitud máxima de cola

El atributo maxQueueLength del elemento clientNotification. Si no se especifica, el valor predeterminado es 10000.

La propiedad MaxQueueLength de la clase DataCacheNotificationProperties.

Configuración de seguridad

En el archivo de configuración de la aplicación, se definen las propiedades de la seguridad en el elemento securityProperties, un elemento secundario del elemento dataCacheClient. Las propiedades de seguridad se configuran mediante programación con una instancia del constructor de la clase DataCacheFactoryConfiguration que se pasa al constructor del constructor de la clase DataCacheFactory. Para obtener más información, vea Métodos de configuración.

Configuración Ubicación de la configuración XML Ubicación de configuración de código

Modo

El atributo mode del elemento securityProperties. Los valores posibles son Transport y None. El valor predeterminado es Transport.

La propiedad SecurityMode de la clase DataCacheSecurity. Los valores posibles son None y Transport. A continuación, el objeto DataCacheSecurity se asigna a la propiedad SecurityProperties de la clase DataCacheFactoryConfiguration.

Nivel de protección

El atributo protectionLevel del elemento securityProperties. Los valores posibles son None, Sign y EncryptAndSign. El valor predeterminado es EncryptAndSign.

La propiedad ProtectionLevel de la clase DataCacheSecurity. Los valores posibles son None, Sign y EncryptAndSign.

Configuración de transporte

En el archivo de configuración de la aplicación, las propiedades de transporte se definen en el elemento transportProperties, un elemento secundario del elemento dataCacheClient. Las propiedades de transporte se configuran mediante programación con una instancia de la clase DataCacheFactoryConfiguration que se pasa al constructor del constructor de la clase DataCacheFactory. Para obtener más información, vea Métodos de configuración.

Configuración Ubicación de la configuración XML Ubicación de configuración de código

Tamaño de búfer de conexión (bytes)

El atributo connectionBufferSize del elemento transportProperties.

La propiedad ConnectionBufferSize de la clase DataCacheTransportProperties. A continuación, este elemento se asigna a la propiedad TransportProperties de la clase DataCacheFactoryConfiguration.

Tamaño máximo de grupo de búferes (bytes)

El atributo maxBufferPoolSize del elemento transportProperties.

La propiedad MaxBufferPoolSize de la clase DataCacheTransportProperties.

Tamaño máximo de búfer (bytes)

El atributo maxBufferSize del elemento transportProperties.

La propiedad MaxBufferSize de la clase DataCacheTransportProperties.

Retraso máximo de salida (milisegundos)

El atributo maxOutputDelay del elemento transportProperties.

La propiedad MaxOutputDelay de la clase DataCacheTransportProperties.

Tiempo de espera de inicialización de canal (milisegundos)

El atributo channelInitializationTimeout del elemento transportProperties.

La propiedad ChannelInitializationTimeout de la clase DataCacheTransportProperties.

Tiempo de espera de recepción (milisegundos)

El atributo receiveTimeout del elemento transportProperties.

La propiedad ReceiveTimeout de la clase DataCacheTransportProperties.

Ejemplo de archivo de configuración de la aplicación

Para que los ensamblados de AppFabric puedan leer los elementos XML en el archivo de configuración de la aplicación, debe incluir el elemento configSections como primer elemento del archivo debajo de la etiqueta configuration. En el elemento configSections, debe incluir un elemento section asociado con el elemento dataCacheClient.

En el ejemplo siguiente se muestra un archivo de configuración de la aplicación que usa muchas de las opciones de configuración del cliente de caché que se explican en este tema. Es importante tener en cuenta que únicamente se necesita el elemento hosts en dataCacheClient para conectarse al clúster. Todos los demás elementos secundarios tienen valores predeterminados.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <!--configSections must be the FIRST element -->
<configSections>
   <!-- required to read the <dataCacheClient> element -->
   <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          allowLocation="true"
          allowDefinition="Everywhere"/>
</configSections>

   <dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
      <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
      <clientNotification pollInterval="300" maxQueueLength="10000"/>
      <hosts>
         <host name="CacheServer1" cachePort="22233"/>
         <host name="CacheServer2" cachePort="22233"/>
      </hosts>
      <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
      <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
                           maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
                           receiveTimeout="600000"/>
   </dataCacheClient>
</configuration>

Vea también

Conceptos

Configuración de un cliente de caché
Valores de configuración de clúster
Solución de problemas de almacenamiento en caché de AppFabric
Uso de Windows PowerShell para administrar características de almacenamiento en caché de AppFabric 1.1
Conceptos de almacenamiento en caché de AppFabric (Almacenamiento en caché de AppFabric 1.1)
Desarrollar un cliente de caché

  2012-03-05