Concesión de conexiones
Importante:
La función Caché de host local (LHC) es la solución de alta disponibilidad que se prefiere en XenApp y XenDesktop, en lugar de la Concesión de conexiones. Para obtener más información, consulte Caché de host local.
- En esta versión, durante una nueva instalación de XenApp y XenDesktop, la concesión de conexiones se inhabilita de forma predeterminada.
- La concesión de conexiones ya no se ofrecerá a partir de la versión Current Release siguiente a esta versión Long Term Service Release de XenApp y XenDesktop 7.15.
Para que la base de datos del sitio esté siempre disponible, Citrix recomienda empezar con una implementación de SQL Server con tolerancia a fallos, resultado de las prácticas recomendadas para la alta disponibilidad de Microsoft. Sin embargo, las interrupciones y los problemas de red pueden impedir que los Delivery Controllers accedan a la base de datos, lo que provoca que los usuarios no puedan conectarse al escritorio o a las aplicaciones.
La función Concesión de conexiones complementa las prácticas recomendadas de alta disponibilidad de SQL Server porque permite a los usuarios conectarse varias veces a los últimos escritorios y aplicaciones que han utilizado, incluso cuando la base de datos del sitio no está disponible.
Aunque los usuarios tengan una gran cantidad de recursos publicados a su disposición, suelen usar solo algunos de ellos con regularidad. Cuando se habilita la concesión de conexiones, cada Controller almacena en caché las conexiones de usuario a las aplicaciones y los escritorios usados recientemente durante las operaciones habituales (cuando la base de datos está disponible).
Las concesiones generadas en cada Controller se cargan a la base de datos del sitio para una sincronización periódica con otros Controllers del sitio. Además de las concesiones, la memoria caché de cada Controller guarda la información relativa a aplicaciones, escritorios, iconos y máquinas de trabajo. La concesión y su información relacionada se guardan en el disco local de cada Controller. Si la base de datos deja de estar disponible, el Controller entra en modo de conexión por concesión y “reproduce” las operaciones guardadas en caché cuando un usuario intenta conectarse o volver a conectarse a un escritorio o aplicación usados recientemente en StoreFront.
Las conexiones se almacenan en caché durante un período de concesión de dos semanas. De esta manera, si la base de datos deja de estar disponible, los escritorios y las aplicaciones que un usuario haya iniciado en las dos semanas previas seguirán siendo accesibles para ese usuario a través de StoreFront. Por el contrario, los escritorios y las aplicaciones que no se hayan iniciado antes de las dos semanas del período de concesión no están accesibles cuando la base de datos no está disponible. Por ejemplo: si una aplicación se inició por última vez hace tres semanas, su período de concesión ha concluido y el usuario no podrá iniciar la aplicación si la base de datos no se encuentra disponible en ese momento. Los períodos de concesión para sesiones de aplicaciones o escritorios desconectados o activos durante mucho tiempo se extienden para que no se consideren concluidos.
De forma predeterminada, la concesión de conexiones afecta a todo el sitio. No obstante, puede revocar todas las concesiones para usuarios concretos, lo que les impide acceder a las aplicaciones o los escritorios cuando el Controller se encuentra en modo de conexión por concesión. La aplicación de otros parámetros de registro se rige por el Controller.
Consideraciones y limitaciones
Si bien la función de concesión de conexiones puede mejorar la resistencia de conexión y la productividad del usuario, existen aspectos a tener en cuenta relacionados con la disponibilidad, el funcionamiento y el rendimiento de otras funciones.
La función de concesión de conexiones se admite en casos de escritorios y aplicaciones alojados en servidor, y escritorios estáticos (asignados). No se admite en caso de escritorios VDI agrupados o usuarios a los que no se ha asignado ningún escritorio cuando la base de datos deja de estar disponible.
Cuando el Controller está en modo de conexión por concesión:
-
Los administradores no pueden usar Studio, Director ni la consola de PowerShell.
-
El control del espacio de trabajo no está disponible. Cuando un usuario inicia sesión en Citrix Receiver, las sesiones no se reconectan automáticamente; el usuario debe volver a iniciar la aplicación.
-
Si se crea una nueva concesión inmediatamente antes de que la base de datos deje de estar disponible, pero la información de concesión todavía no se ha sincronizado en todos los Controllers, es posible que el usuario no pueda abrir ese recurso cuando la base de datos deje de estar disponible.
-
Los usuarios de aplicaciones y escritorios alojados en servidor pueden usar más sesiones que la cantidad establecida en el límite configurado de sesiones. Por ejemplo:
- Es posible que la sesión que un usuario inicie desde un dispositivo (conectado de forma externa a través de NetScaler Gateway) con un Controller que no está en modo de conexión por concesión no esté disponible cuando ese usuario se conecte desde otro dispositivo en la red LAN con un Controller que sí está en modo de conexión por concesión.
- Si se inicia una aplicación justo antes de que la base de datos deje de estar disponible, es posible que la reconexión de la sesión falle. En estos casos, se inicia una nueva sesión y una nueva instancia de aplicación.
-
No se administra la energía de escritorios estáticos (asignados). Los VDA que están apagados cuando el Controller entra en modo de conexión por concesión permanecen no disponibles hasta que se restaure la conexión de la base de datos, a menos que el administrador los encienda de forma manual.
-
Si las funciones de preinicio de sesiones y persistencia de sesiones están habilitadas, no se inician nuevas sesiones preiniciadas. Mientras la base de datos no esté disponible, las sesiones preiniciadas y las persistentes no se finalizarán en función de los umbrales configurados.
-
La administración de carga del sitio puede verse afectada. Las conexiones basadas en servidor se enrutan al último VDA usado. Es posible que se superen los patrones de carga (especialmente, las reglas de recuento de sesiones).
-
Controller no entra en modo de concesión de conexiones si se usa SQL Server Management Studio para desconectar la base de datos. En su lugar, use una de las siguientes instrucciones Transact-SQL:
- ALTER DATABASE <nombre de la base de datos> SET OFFLINE WITH ROLLBACK IMMEDIATE
- ALTER DATABASE <nombre de la base de datos> SET OFFLINE WITH ROLLBACK AFTER <segundos>
Cualquiera de estas instrucciones cancela todas las transacciones pendientes y hace que el Controller pierda la conexión con la base de datos. El Controller, a continuación, entra en modo de concesión de conexiones.
Cuando la función de concesión de conexiones está habilitada, hay dos breves intervalos en que los usuarios no pueden conectarse o volver a conectarse: (1) desde el momento en que la base de datos deja de estar disponible hasta el momento en que el Controller entra en modo de conexión por concesión, y (2) desde el momento en que el Controller cambia del modo de conexión por concesión hasta el momento en que el acceso a la base de datos está totalmente restaurado y los VDA se han vuelto a registrar.
Si define un valor personalizado de movilidad de sesión, la reconexión de la sesión vuelve a su valor predeterminado cuando un Controller entra en el modo de conexión por concesión. Para obtener más información, consulte Concesión de conexiones e itinerancia de sesión.
Consulte el artículo Zonas para obtener información sobre dónde se guardan los datos de la concesión de conexiones.
Configurar e implementar
A la hora de configurar una implementación para admitir la concesión de conexiones:
- Los VDA deben ser como mínimo de la versión 7.6. Además, los catálogos de máquinas y los grupos de entrega que utilizan esas máquinas deben estar en ese nivel mínimo (o una versión posterior compatible).
- Van a aumentar los requisitos de tamaño de la base de datos del sitio.
- Cada Controller necesita más espacio en disco para los archivos de concesión guardados en caché.
Puede activar o desactivar la función de concesión de conexiones desde el SDK de PowerShell o el Registro de Windows. Desde el SDK de PowerShell, también se pueden quitar las concesiones actuales. Los siguientes cmdlets de PowerShell afectan a la concesión de conexiones; consulte la ayuda del cmdlet para obtener más detalles.
- Set-BrokerSite -ConnectionLeasingEnabled $true
|
$false - Activa o desactiva la concesión de conexiones. De forma predeterminada = $true. - Get-BrokerServiceAddedCapability: Devuelve “ConnectionLeasing” para el Controller local.
- Get-BrokerLease: Obtiene todas las concesiones actuales o un conjunto filtrado de ellas.
- Remove-BrokerLease: Marca una concesión, o un grupo filtrado de concesiones, para eliminarlas.
- Update-BrokerLocalLeaseCache. Actualiza la memoria caché de la concesión de conexiones en el Controller local. Los datos se vuelven a sincronizar durante la próxima operación de sincronización.