Concesión de conexiones
Importante:
La caché de host local (LHC) es la solución de alta disponibilidad preferida para XenApp y XenDesktop, en lugar de la concesión de conexiones. Consulte Caché de host local para obtener más información.
- En esta versión, durante una nueva instalación de XenApp y XenDesktop®, la concesión de conexiones está inhabilitada de forma predeterminada.
- La concesión de conexiones dejará de proporcionarse a partir de la versión actual que siga a esta versión de servicio a largo plazo de XenApp y XenDesktop 7.15.
Para garantizar que la base de datos del sitio esté siempre disponible, Citrix® recomienda comenzar con una implementación de SQL Server tolerante a fallos siguiendo las prácticas recomendadas de alta disponibilidad de Microsoft. Sin embargo, los problemas e interrupciones de la red pueden impedir que los Delivery Controllers accedan a la base de datos, lo que provoca que los usuarios no puedan conectarse a sus aplicaciones o escritorios.
La función de concesión de conexiones complementa las prácticas recomendadas de alta disponibilidad de SQL Server al permitir que los usuarios se conecten y se vuelvan a conectar a sus aplicaciones y escritorios utilizados más recientemente, incluso cuando la base de datos del sitio no esté disponible.
Aunque los usuarios pueden tener una gran cantidad de recursos publicados disponibles, a menudo solo utilizan unos pocos de ellos de forma regular. Cuando se habilita la concesión de conexiones, cada Controller almacena en caché las conexiones de los usuarios a esas aplicaciones y escritorios utilizados recientemente durante las operaciones normales (cuando la base de datos está disponible).
Las concesiones generadas en cada Controller se cargan en la base de datos del sitio para su sincronización periódica con otros Controllers del sitio. Además de las concesiones, la caché de cada Controller contiene información de aplicaciones, escritorios, iconos y trabajadores. La concesión y la información relacionada se almacenan en el disco local de cada Controller. Si la base de datos deja de estar disponible, el Controller entra en modo de conexión concedida y “reproduce” las operaciones almacenadas en caché cuando un usuario intenta conectarse o volver a conectarse a una aplicación o escritorio utilizado recientemente desde StoreFront.
Las conexiones se almacenan en caché durante un período de concesión de dos semanas. Por lo tanto, si la base de datos deja de estar disponible, los escritorios y las aplicaciones que el usuario inició en las dos semanas anteriores seguirán siendo accesibles para ese usuario a través de StoreFront. Sin embargo, los escritorios y las aplicaciones que no se hayan iniciado durante el período de concesión de dos semanas anterior no serán accesibles cuando la base de datos no esté disponible. Por ejemplo, si un usuario inició una aplicación por última vez hace tres semanas, su concesión ha caducado y ese usuario no podrá iniciar esa aplicación si la base de datos deja de estar disponible ahora. Las concesiones para sesiones de aplicaciones o escritorios activas o desconectadas de larga duración se extienden para que no se consideren caducadas.
De forma predeterminada, la concesión de conexiones afecta a todo el sitio; sin embargo, puede revocar todas las concesiones para usuarios específicos, lo que les impide acceder a cualquier aplicación o escritorio cuando el Controller está en modo de conexión concedida. Varias otras configuraciones del registro se aplican por Controller.
Consideraciones y limitaciones
Aunque la concesión de conexiones puede mejorar la resistencia de las conexiones y la productividad del usuario, existen consideraciones relacionadas con la disponibilidad, el funcionamiento y el rendimiento de otras funciones.
La concesión de conexiones es compatible con aplicaciones y escritorios alojados en servidor, y escritorios estáticos (asignados); no es compatible con escritorios VDI agrupados ni con usuarios a los que no se les haya asignado un escritorio cuando la base de datos deja de estar disponible.
Cuando el Controller está en modo de conexión concedida:
-
Los administradores no pueden usar Studio, Director o la consola de PowerShell.
-
El Control de 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 reiniciar 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 la concesión aún no se ha sincronizado en todos los Controllers, es posible que el usuario no pueda iniciar ese recurso después de que la base de datos deje de estar disponible.
-
Los usuarios de aplicaciones y escritorios alojados en el servidor pueden usar más sesiones de las que permiten sus límites de sesión configurados. Por ejemplo:
- Es posible que una sesión no se desplace cuando un usuario la inicia desde un dispositivo (conectándose externamente a través de NetScaler® Gateway) cuando el Controller no está en modo de conexión arrendada y luego se conecta desde otro dispositivo en la LAN cuando el Controller está en modo de conexión arrendada.
- La reconexión de la sesión puede fallar si una aplicación se inicia justo antes de que la base de datos deje de estar disponible; en tales casos, se inician una nueva sesión y una nueva instancia de aplicación.
-
Los escritorios estáticos (asignados) no tienen administración de energía. Los VDA que están apagados cuando el Controller entra en modo de conexión arrendada permanecen no disponibles hasta que se restaura la conexión a la base de datos, a menos que el administrador los encienda manualmente.
-
Si el inicio previo de sesión y la persistencia de sesión están habilitados, no se inician nuevas sesiones de inicio previo. Las sesiones de inicio previo y las sesiones persistentes no finalizarán según los umbrales configurados mientras la base de datos no esté disponible.
-
La administración de carga dentro del sitio puede verse afectada. Las conexiones basadas en servidor se enrutan al VDA utilizado más recientemente. Los evaluadores de carga (y especialmente las reglas de recuento de sesiones) pueden superarse.
-
El Controller no entrará en modo de conexión arrendada si utiliza SQL Server Management Studio para desconectar la base de datos. En su lugar, utilice una de las siguientes instrucciones Transact-SQL:
- ALTER DATABASE <database-name> SET OFFLINE WITH ROLLBACK IMMEDIATE
- MODIFICAR BASE DE DATOS <database-name> ESTABLECER SIN CONEXIÓN CON RETROCESO DESPUÉS DE <seconds>
Cualquiera de las dos instrucciones cancela las transacciones pendientes y hace que el Controller pierda su conexión con la base de datos. El Controller entra entonces en modo de conexión arrendada.
Cuando el arrendamiento de conexiones está habilitado, hay dos breves intervalos durante los cuales los usuarios no pueden conectarse ni reconectarse: (1) desde el momento en que la base de datos deja de estar disponible hasta que el Controller entra en modo de conexión arrendada, y (2) desde el momento en que el Controller cambia del modo de conexión arrendada hasta que el acceso a la base de datos se restaura por completo y los VDA se han vuelto a registrar.
Si configura un valor de itinerancia de sesión no predeterminado, la reconexión de la sesión vuelve a su valor predeterminado cuando un Controller entra en modo de conexión arrendada. Para obtener más información, consulte Arrendamiento de conexiones e itinerancia de sesiones.
Consulte el artículo Zonas para obtener información sobre dónde se guardan los datos de arrendamiento de conexiones.
Configurar e implementar
Al configurar su implementación para admitir el arrendamiento de conexiones:
- Los VDA deben tener como mínimo la versión 7.6, y los catálogos de máquinas y grupos de entrega que utilizan esas máquinas deben estar en ese nivel mínimo (o en una versión posterior compatible).
- Los requisitos de tamaño de la base de datos del sitio aumentarán.
- Cada Controller necesita espacio adicional en disco para los archivos de arrendamiento en caché.
Puede activar o desactivar el arrendamiento de conexiones desde el SDK de PowerShell o el Registro de Windows. Desde el SDK de PowerShell, también puede eliminar los arrendamientos actuales. Los siguientes cmdlets de PowerShell afectan al arrendamiento de conexiones; consulte la ayuda del cmdlet para obtener más detalles.
- Set-BrokerSite -ConnectionLeasingEnabled $true
|$false - Activa o desactiva el arrendamiento de conexiones. Predeterminado = $true - Get-BrokerServiceAddedCapability - Genera “ConnectionLeasing” para el Controller local.
- Get-BrokerLease - Recupera todos los arrendamientos actuales o un conjunto filtrado de ellos.
- Remove-BrokerLease - Marca uno o un conjunto filtrado de arrendamientos para su eliminación.
- Update-BrokerLocalLeaseCache – Actualiza la caché de arrendamiento de conexiones en el Controller local. Los datos se vuelven a sincronizar durante la siguiente sincronización.