hogar - Recuperación
La conexión actual no tiene ninguna sesión asignada. Expulsamos a los usuarios de la base de información del servidor.

Implementado en la versión 8.3.9.1818.

En la versión 8.3.9, completamos una cantidad significativa de tareas para optimizar varios mecanismos de la plataforma. Aquí me gustaría hablar de uno de ellos. Esta es una mejora en el rendimiento de los servicios web.

Reutilizar sesiones

La falta de rendimiento de los servicios web se debió al hecho de que cada llamada a un servicio web tenía una sobrecarga significativa al crear y finalizar la sesión. Además, durante la creación, cada vez se ejecutaba el controlador SetSessionParameters(), que en una configuración típica puede ser bastante "pesado".

Además, hubo un inconveniente funcional. Los servicios web eran apátridas. Esto no nos permitió implementar una lógica que utilizara la persistencia del estado entre las llamadas al servicio web.

En la versión 8.3.9 hemos mejorado el mecanismo de servicios web (servicios SOAP, servicios HTTP, servicios OData). Como resultado, su productividad aumentó aproximadamente 10 veces.

Realizamos pruebas en una configuración estándar de Contabilidad Empresarial. Le hemos agregado servicios HTTP que realizan selecciones desde el directorio de Contrapartes. La prueba consistió en que el cliente realizara 100 llamadas consecutivas al servicio. En el modo de funcionamiento antiguo, esto requería 29,9 s. En los nuevos modos de funcionamiento, una media de 3 s.

Estos resultados se lograron debido al hecho de que implementamos dos estrategias diferentes para garantizar la reutilización de sesiones:

  • Reutilización automática de sesiones del pool;
  • Gestionar sesiones utilizando encabezados HTTP.

Con la reutilización automática de sesiones, el cliente no tiene control sobre la cantidad de sesiones y su duración. Simplemente se le asigna automáticamente una sesión del grupo de sesiones existente. Esta estrategia es adecuada para entornos muy cargados. servicios públicos, a los que acceden los clientes que realizan operaciones de plantilla y tienen privilegios unificados.

Por ejemplo, esto podría ser la automatización de las actividades comerciales de los puntos de venta remotos, previendo los períodos de carga máxima en el servidor. Se asignará para su procesamiento. cantidad requerida sesiones. Se completarán a medida que baje la carga.

Otro ejemplo es recibir/colocar archivos en la configuración del flujo de documentos utilizando servicios http. Se puede utilizar el mismo usuario especial para tales operaciones.

La estrategia de gestión de sesiones manual significa que el cliente gestiona de forma independiente el número de sesiones y su duración. Esta estrategia es más adecuada para sistemas altamente integrados dentro de una sola organización. Puede implementar su propio algoritmo que controlará la vida útil de las sesiones y su número.

Control S

Puede determinar la necesidad de utilizar una u otra estrategia en el árbol de objetos de configuración y, si es necesario, anularla en el archivo de publicación default.vrd. En el árbol de objetos de configuración, hemos agregado dos nuevas propiedades a los objetos de servicio web y de servicio HTTP:

  • La reutilización de sesión puede tomar los siguientes valores: Usar automáticamente, Usar o No usar. El valor Usar automático habilita la reutilización automática de sesiones del grupo y el valor Usar habilita la administración de sesiones mediante encabezados HTTP.
  • En la propiedad SessionLifeTime, puede especificar cuántos segundos estará inactiva la sesión antes de que la plataforma la finalice automáticamente.

Si la aplicación cliente finaliza de forma anormal (se pierde la conexión o se cierra la ventana del navegador), es posible que se bloqueen las licencias del cliente 1C: Enterprise 8.

Puede liberar las licencias de cliente bloqueadas reiniciando su PC.

Si la aplicación cliente finaliza de forma anormal, la sesión se mantiene durante otros 20 minutos. Después de esto, en versiones anteriores a la 8.3.5 se eliminaba la sesión. Desde la versión 8.3.5, la sesión queda dormida en el estado inactivo de forma predeterminada y se mantiene para otro día. Una sesión de suspensión no ocupa la licencia de cliente 1C: Enterprise 8.

En la versión 8.3.5, el tiempo de suspensión de la sesión y el tiempo para eliminar una sesión de suspensión no utilizada se pueden cambiar usando un programa especial o en el Configurador 1C en el cuadro de diálogo Administración/Configuración base de información configurando la configuración recomendada de la sesión de sueño:

  • tiempo para conciliar el sueño para sesiones pasivas - 300
  • hora de finalización de las sesiones de dormir - 10

Por cierto, siempre puedes ver quién está durmiendo y quién está activo a través de la consola del servidor en la pestaña de sesiones. En la columna correspondiente “Durmiendo” hay un signo de Sí/No.

Normalmente (según la versión de la empresa 1C), puede completar el trabajo en el cliente web utilizando el comando "Archivo" - "Salir". Desde la versión 8.3.8, se agregó un comando de apagado al encabezado de la aplicación, al lado del botón Sobre el programa. Se muestra como un hipervínculo con el nombre del usuario actual. Cuando hace clic en el hipervínculo, se abre un cuadro de diálogo con el nombre de usuario y el comando. para terminar el trabajo.

La plataforma hace ping al cliente al servidor 1C cada 5 segundos (son visibles paquetes de 4 bytes). Basado en "pings", el servidor monitorea la integridad de la conexión con la aplicación cliente. El servidor interpreta la ausencia de pings durante unos 2 minutos como un fallo de conexión.

La diferencia entre los conceptos de sesión y conexión en 1C:Enterprise 8

¿Qué aprenderás de este artículo?

  • La respuesta correcta a una de las preguntas más populares al aprobar 1C: Experto
  • Objeto y características de las conexiones y sesiones 1C.
  • ¿Qué almacenan los datos de la sesión?

¿Cuáles son las diferencias entre una sesión y una conexión? Esta pregunta aparentemente sencilla del examen 1C:Expert confunde a muchos. A pesar de su considerable experiencia en programación, no todos los especialistas pueden dar una respuesta clara y correcta.

En este artículo proporcionaremos un análisis detallado de este tema. Primero, veamos por separado los conceptos de sesión y conexión en 1C:Enterprise. Tenga en cuenta que la información es relevante para las versiones de plataforma 8.2.x y 8.3.x.

Sesión 1C

Consultemos la guía del administrador. Define el concepto de sesión de la siguiente manera:

La sesión define el usuario activo de la infobase y el flujo de control de este usuario.

Podemos decir que el clúster de servidores no ve usuarios, sino sesiones y datos de sesión. En principio, la consola de administración del clúster no tiene una sección de “Usuarios”; el clúster entiende las sesiones como usuarios.

Esto confirma la representación visual del elemento "Sesiones": el icono se muestra en forma de usuarios.

Cabe aclarar que el usuario activo no necesariamente significa la conexión del cliente, también puede ser:

  • una instancia de la aplicación cliente 1C:Enterprise
  • instancia de aplicación web donde se ejecuta el cliente web
  • instancia de conexión externa obtenida del objeto V83.COMConnector
  • 1 instancia de trabajo en segundo plano
  • 1 llamada al servicio web

Datos de sesión

Consideremos el concepto de datos de sesión. La sesión contiene alguna información como:

  • nombre de la base de información
  • número de sesión
  • nombre del usuario autenticado de la base de datos
  • Lenguaje de interfaz
  • valores de los parámetros de sesión
  • almacenamiento temporal
  • estadísticas de sesión
  • información de formularios de solicitud gestionados
  • algunos datos internos de la plataforma

Esta información se llama datos de sesión. Además, cada usuario activo tiene sus propios datos de sesión y son relevantes sólo mientras dure su trabajo. Si el usuario abandona la base de datos (finaliza la sesión), los datos de su sesión se eliminan.

Los datos de la sesión se almacenan en un grupo de servidores, el administrador del clúster es responsable de esto, y para eso sirve el servicio de datos de la sesión. Para acelerar las cosas, los datos de la sesión se almacenan en caché en los procesos de trabajo y en los clientes pesados.

Cuando se reinicie el clúster de servidores, se conservarán los datos de la sesión. Si el usuario activo no ha realizado ni una sola llamada al clúster en 20 minutos y la sesión no está asignada a la conexión, la sesión se elimina junto con sus datos.

Para mantener una sesión cliente ligero y el cliente web proporciona acceso al clúster al menos una vez cada 10 minutos.

Conexión 1C

Ahora comprendamos el concepto de conexión. Echemos un vistazo nuevamente a la guía del administrador:

Una conexión es un medio para acceder a sesiones de un grupo de servidores 1C:Enterprise, contiene un conjunto limitado de datos de conexión y no se identifica con el usuario activo.

En otras palabras, una conexión permite que una sesión acceda al clúster. En este caso, el número de conexiones es limitado y, tan pronto como la sesión ya no necesita una, se devuelve al grupo de conexiones.

Si la sesión no accede al clúster, es decir, el usuario está inactivo, no se le asignará la conexión. Por tanto, una sesión puede existir sin conexión.

Cabe señalar que los datos de la sesión se almacenan en el servidor, por lo que si la conexión se interrumpe durante menos de 20 minutos, esto no afectará la sesión, porque la conexión es solo un medio de acceso.

Por ejemplo, si accidentalmente saca cable de red, el usuario no recibirá un mensaje de error si el cable se conecta dentro de los 20 minutos. En este caso, a la sesión se le asignará una nueva conexión y continuará ejecutándose. El usuario ni siquiera se dará cuenta del problema, excepto quizás por un ligero congelamiento.

Las conexiones también se utilizan para comunicarse entre procesos del clúster, es decir, los procesos de trabajo (rphost) se comunican con el administrador del clúster (proceso rmngr) mediante conexiones, en lugar de sesiones.

Diferencias entre conexiones y sesiones

Para describir la principal diferencia entre estos conceptos, daremos una analogía.

Digamos que la sesión es un pasajero y la conexión es un taxi. Cuando un pasajero necesita llegar a casa (la sesión necesita conectarse al servidor), llama a un taxi (a la sesión se le asigna una conexión del grupo de conexiones).

Si, al llegar a casa, el pasajero quiere volver a trabajar, pero el taxi ya se fue (después de la conexión, se cortó la conexión), entonces el pasajero llama a un nuevo taxi y se ocupa de sus asuntos (se le asigna una nueva conexión a La sesión).

Esta analogía muestra claramente que una sesión y una conexión no son lo mismo, y una sesión puede sobrevivir fácilmente a una interrupción de la conexión.

Andrei Burmistrov

Para realizar el mantenimiento rutinario en la base de información 1C:Enterprise 8, a menudo es necesario obtener acceso exclusivo a la base de datos. Por ejemplo, para realizar una copia de seguridad de la base de datos o realizar un mantenimiento de rutina en el servidor DBMS (reindexación, etc.), debe desconectar todas las sesiones activas.

Veamos una forma sencilla de desconectar a los usuarios de una base de datos utilizando la funcionalidad estándar del servidor 1C:Enterprise.

Funcionalidad estándar

Permítanme hacer una reserva de inmediato: hablaremos de la versión cliente-servidor de 1C:Enterprise 8. Para deshabilitar las sesiones, vayamos a la consola de administración del servidor. Allí encontraremos la base de información requerida en la lista:

Al ir a las propiedades de seguridad de la información, configure la opción "El bloqueo de inicio de sesión está habilitado". En este caso, es posible que deba proporcionar un nombre de usuario/contraseña. cuenta administrador de la base de información.

No olvide establecer el período de bloqueo de la sesión. También debe asegurarse de que mientras las sesiones estén bloqueadas, debe detener todas trabajos de fondo. Esto se hace usando la opción "El bloqueo de tareas rutinarias está habilitado".

Si es necesario, puede configurar el texto del mensaje a los usuarios a quienes se les notificará 5 minutos antes del bloqueo de la sesión, así como el código de permiso para ingresar a la base de datos durante el período de bloqueo de la sesión.

El código de permiso se puede utilizar para iniciar sesión en la base de información y realizar un mantenimiento de rutina mientras otras sesiones están inactivas. Debe ingresar el código de permiso al conectarse a la base de datos usando los parámetros. Por ejemplo, así es como se verá el parámetro pasado al servidor si el código de permiso es "123456".

Al iniciar sesión en la base de datos de esta manera, recibiremos acceso exclusivo a la base de información. Otras sesiones no podrán acompañarnos.

La notificación al usuario de que las sesiones están bloqueadas se ve así (dependiendo del mensaje ingresado por el administrador). Aparece cada minuto 5 minutos antes del período de bloqueo.

Cuando comienza el período de bloqueo de sesión, aparece primero una notificación:

Después finaliza la sesión.

Las sesiones activas también se pueden desactivar eliminándolas de la lista de sesiones activas. En ocasiones, esta acción es necesaria para finalizar sesiones colgadas.

En la práctica, es mejor comunicar las desconexiones de los usuarios con antelación para reducir el riesgo de perder los datos introducidos por los usuarios pero que aún no se han guardado.



 


Leer:



Cómo configurar y configurar un recordatorio en iPhone Cómo configurar un recordatorio en iPhone 8

Cómo configurar y configurar un recordatorio en iPhone Cómo configurar un recordatorio en iPhone 8

Una de las funciones más antiguas del iPhone, que no todos los propietarios del dispositivo utilizan, es un recordatorio de cumpleaños y fechas memorables....

Cómo ingresar a la cuenta personal de un personal militar sin registrarse - instrucciones

Cómo ingresar a la cuenta personal de un personal militar sin registrarse - instrucciones

Un empleado hoy tiene la oportunidad de utilizar un recurso conveniente y oficial en Internet, que le permitirá ver rápidamente los siguientes datos:...

Entrada personal a la oficina del militar sin registro, por número personal

Entrada personal a la oficina del militar sin registro, por número personal

A partir de mediados de 2012, la nómina, es decir, todo el dinero transferido al militar, se muestra en la sección correspondiente...

Dispositivo de computadora personal

Dispositivo de computadora personal

¿Qué sabes tú, querido lector, sobre una computadora? Por supuesto, la integridad y profundidad de su respuesta dependerá de muchos factores. Algo de ti...

imagen-feed RSS