Crear colas de Service Broker

Una cola contiene los mensajes entrantes para un servicio. Para simplificar el procesamiento, las aplicaciones crean normalmente una cola por servicio en lugar de utilizar la misma cola para varios servicios.

Al establecer la opción de retención para una cola, se producen mensajes que se van a retener una vez procesados. Dado que la retención reduce el rendimiento de la aplicación, especifique la retención sólo si la aplicación requiere el acceso persistente a los mensajes exactos enviados y recibidos. Para obtener más información acerca de la retención de mensajes, vea Retención de mensajes.

Para las aplicaciones que no utilizan la activación interna, no especifique una cláusula de activación en la definición de la cola.

Para las aplicaciones que utilizan la activación interna, la definición de la cola incluye el nombre del procedimiento almacenado, el número máximo de lectores para iniciar SQL Server y el nombre de la entidad de seguridad de base de datos que se va a representar antes de iniciar el procedimiento almacenado.

El nombre de una cola no está incluido en el formato de red de un mensaje. Las colas son objetos que son propiedad de un esquema. Por consiguiente, los nombres de la cola siguen las convenciones de nomenclatura de SQL Server. Para obtener más información acerca de las nomenclaturas, vea Asignación de nombres a objetos de Service Broker.

Activación de procedimientos almacenados

Una cola se puede asociar con un procedimiento almacenado. SQL Server activa el procedimiento almacenado cuando existen mensajes para procesar en la cola. Este proceso de activación automática permite a una aplicación Service Broker escalar dinámicamente según la carga de procesamiento actual en la aplicación. Cada procedimiento almacenado activado por Service Broker se ejecuta en un subproceso independiente. Cuando una cola especifica un procedimiento almacenado, Service Broker inicia nuevas instancias del procedimiento almacenado según sea necesario, hasta el número máximo de instancias especificadas para la cola.

Un procedimiento almacenado activado procesa normalmente uno o más mensajes y devuelve una respuesta al servicio que originó los mensajes. Cuando la velocidad de llegada de los mensajes es superior a la de procesamiento de mensajes por el procedimiento almacenado, Service Broker inicia otra instancia del procedimiento almacenado, hasta el número máximo definido por la cola. Un procedimiento almacenado activado finaliza normalmente cuando el procedimiento no encuentra ningún mensaje disponible en la cola durante algún tiempo.

La utilización de procedimientos almacenados de activación es una manera habitual de diseñar aplicaciones Service Broker. Sin embargo, otros diseños pueden responder mejor a las necesidades de una aplicación concreta. Cualquier aplicación que pueda ejecutar los lotes Transact-SQL en SQL Server puede enviar y recibir mensajes. Los mensajes se pueden también procesar con cualquier procedimiento almacenado, sin tener en cuenta si el procedimiento almacenado se activa a través de SQL Server, del Agente SQL Server, se ejecuta con una aplicación externa o de forma interactiva, desde una herramienta como SQL Server Management Studio o SQL Server Express Management Studio.