Persistencia y durabilidad del motor
En esta sección se explica cómo BizTalk Server integra de forma confiable procesos empresariales de acoplamiento flexible al guardar el estado de los procesos en el disco a través de SQL Server. Al guardar el estado en los momentos oportunos y utilizar transacciones, el sistema garantiza que no se pierda ningún estado de los procesos aunque se produzcan errores de hardware o software. A esto se le denomina durabilidad del sistema.
Administración de procesos empresariales de acoplamiento flexible
Para integrar los sistemas existentes con el fin de ejecutar un único proceso empresarial lógico, es necesario administrar el estado de los procesos fuera de los sistemas existentes. El estado de los procesos empresariales, ya sean de larga o corta duración, se debe mantener de forma independiente para evitar que se produzca una explosión de las rutas de comunicación personalizadas como resultado del acoplamiento de los sistemas.
Es evidente que el estado de una instancia de proceso empresarial en ejecución debe ser de confianza si el proceso empresarial cumple una función crucial. Para garantizar la confiabilidad y durabilidad de los procesos empresariales, BizTalk utiliza transacciones de SQL Server para guardar el estado de los procesos y los datos empresariales en una base de datos del disco denominada base de datos de cuadro de mensajes. Para obtener más información sobre la base de datos messageBox, vea La base de datos de cuadro de mensajes.
Cada mensaje y todas las instancias de proceso de negocio más triviales (por ejemplo, instancias de orquestación) en BizTalk Server se conservan en la base de datos cuadro de mensajes al menos una vez durante el procesamiento.
Persistencia y sostenibilidad
El hecho de que BizTalk Server persista todos los mensajes y la mayoría de las orquestaciones tiene un efecto directo sobre la sostenibilidad, como se indica en ¿Qué es el rendimiento sostenible? A medida que llegan mensajes a la base de datos messageBox, se enrutan a suscriptores en espera (por ejemplo, orquestaciones y puertos de envío) y en cola, o se publican, en tablas SQL de cuadro de mensajes para esperar a que los suscriptores los recojan y procesen. Algunos de los mensajes que llegan activan nuevas instancias de suscriptor. Otros mensajes llegan y se enrutan, a través de correlación, a una instancia de un suscriptor que ya está en ejecución y que lo está esperando, como una orquestación correlacionada.
Para que las orquestaciones correlacionadas continúen el procesamiento, los mensajes correlacionados que llegan no deben estar bloqueados. Para facilitar esto, BizTalk trata de garantizar que se siguen recibiendo los mensajes (tanto de activación como de correlación), incluso si hay una elevada carga, de modo que los suscriptores que esperan los mensajes correlacionados puedan finalizar y dejar espacio para la ejecución de más procesos. Esto significa que es posible recibir mensajes más rápido de lo que se pueden procesar y quitar de la base de datos de cuadro de mensajes, con lo que se crea un registro de mensajes. Al tratarse de una tecnología de almacenamiento y reenvío, es lógico que BizTalk proporcione este tipo de almacenamiento en búfer. Sin embargo, se pueden producir problemas si la velocidad de recepción es constantemente más rápida que la velocidad de procesamiento de forma indefinida, con la consiguiente creación de un registro de gran tamaño.
Cada mensaje recibido o creado en BizTalk Server es inmutable; es decir, su contenido no cambia una vez recibido o creado. Además, los mensajes recibidos pueden tener varios suscriptores. Cada suscriptor de un mensaje concreto hace referencia a la misma copia única de dicho mensaje. Aunque con este enfoque se reduce al mínimo el almacenamiento, es necesario almacenar un contador de referencia (ref-count) para cada mensaje, así como realizar un mantenimiento periódico para eliminar los mensajes cuyo contador de referencia sea igual a 0.
Si se permite un registro suficientemente grande en la base de datos de cuadro de mensajes, se retrasarán los procesos de mantenimiento de la base de datos (implementados como un conjunto de trabajos del Agente SQL Server para cada base de datos de cuadro de mensajes) y, en caso de que no se puedan poner al día, probablemente se producirán problemas tales como espacio insuficiente en el disco. Para evitar esta situación, BizTalk Server proporciona un mecanismo de limitación que reduce la velocidad de recepción de mensajes cuando el registro de la base de datos de cuadro de mensajes alcanza un determinado nivel configurado por el usuario. Para obtener más información sobre la limitación, consulte Optimización del uso de recursos a través de la limitación de host.
Considerando todas las actividades y los procesos que contribuyen a la sostenibilidad, la medida principal de sostenibilidad a lo largo del tiempo es que no se permita de forma indefinida el crecimiento del registro. Es decir, que exista un equilibrio a lo largo del tiempo entre los niveles de rendimiento máximo y mínimo para que la base de datos de cuadro de mensajes pueda mantener un registro medio que sea constante y se pueda administrar. La medida principal del trabajo pendiente es la profundidad de la tabla de colas, que se expone como un contador de rendimiento de BizTalk Server denominado BizTalk:Message Box:General Counters:Spool Size. Para obtener más información sobre este contador de rendimiento, vea Contadores de rendimiento del cuadro de mensaje.
Para obtener más información sobre cómo usar el tamaño de la cola y otros contadores para determinar el rendimiento máximo que puede mantener un sistema, consulte Medición del rendimiento máximo sostenible del motor.
Recomendaciones
BizTalk Server conserva todos los mensajes y la mayoría de las orquestaciones y puede, dejar sin comprobar, desarrollar un trabajo pendiente de mensajes que puede dar lugar a problemas como quedarse sin espacio en disco. La medida principal del trabajo pendiente es la profundidad de la tabla de cola del cuadro de mensajes, que se expone como un contador de rendimiento denominado: BizTalk:Message Box:General Counters:Spool Size.
Con el fin de lograr un rendimiento sostenible, el tamaño de cola de impresión debe admitir un rendimiento medio estable a lo largo del tiempo. Es decir, la cola de impresión no puede seguir creciendo sin control de manera indefinida. En Medición del rendimiento máximo sostenible del motor, este comportamiento se describe con más detalle y se proporciona un método para determinar el rendimiento máximo que un sistema puede mantener, lo que aprovecha el tamaño de la cola y otros indicadores de rendimiento.
Consulte también
Medir el rendimiento máximo sostenible del motor
¿Qué es el rendimiento sostenible?
Sugerencias y trucos de rendimiento
Contadores de rendimiento de cuadro de mensaje