Colas

Las colas almacenan mensajes. Cuando Service Broker recibe un mensaje para un servicio, lo inserta en la cola para ese servicio. Para obtener los mensajes enviados al servicio, una aplicación recibe mensajes de la cola. Service Broker administra las colas y presenta una vista de una cola similar a una tabla.

Cada servicio se asocia con una cola. Cuando llega un mensaje para un servicio, Service Broker coloca el mensaje en la cola asociada a este servicio.

Cada mensaje es una fila de la cola. La fila incluye el contenido del mensaje así como información sobre el tipo de mensaje, el servicio al que se destina el mensaje, el contrato que sigue el mensaje, la validación realizada en el mensaje, la conversación de la que forma parte el mensaje e información interna de la cola. Una aplicación utiliza la información de la fila de mensaje para identificar cada mensaje de forma exclusiva y procesarlo correctamente.

Las aplicaciones reciben mensajes de la cola para el servicio. En cada conversación, las colas devuelven los mensajes en el orden en que el remitente los ha enviado. Todos los mensajes devueltos desde una operación de recepción única forman parte de una conversación que pertenece a un grupo de conversación. De hecho, una cola contiene conjuntos de mensajes relacionados, un conjunto por cada grupo de conversación. La cola devuelve un conjunto de mensajes relacionados cada vez que la aplicación lleva a cabo una operación de recepción desde la cola. La aplicación puede elegir recibir los mensajes de una conversación específica o de un grupo de conversación específico. Las colas no devuelven mensajes en orden FIFO estricto (First In, First Out; primero en llegar, primero en salir); en su lugar, las colas devuelven los mensajes de cada conversación en el orden en el que se enviaron. Así, una aplicación no necesita incluir código para recuperar el orden original de los mensajes.

Una cola puede estar asociada a un procedimiento almacenado. En este caso, SQL Server activa el procedimiento almacenado cuando hay mensajes para procesar en la cola. SQL Server puede iniciar más de una instancia de procedimiento almacenado hasta llegar a un máximo configurado. Para obtener más información, vea Activación de Service Broker.