Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Managed Instance
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 solamente si la aplicación requiere el acceso persistente a los mensajes exactos enviados y recibidos. Para obtener más información sobre la retención de mensajes, consulte Retención de mensajes.
En el caso de las aplicaciones que no usan la activación interna, no especifique una cláusula de activación en la definición de 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 se incluye 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 sobre la nomenclatura, consulte Name Service Broker objects (Nombre de objetos de Service Broker).
Activación de procedimientos almacenados
Una cola puede estar asociada a un procedimiento almacenado. SQL Server activa el procedimiento almacenado cuando hay mensajes que procesar en la cola. Este proceso de activación automática permite a una aplicación de 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 su procesamiento 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 de 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 también se pueden procesar mediante cualquier procedimiento almacenado, independientemente de si SQL Server activa el procedimiento almacenado, lo inicia el Agente SQL Server, se ejecuta mediante una aplicación externa o se ejecuta de forma interactiva desde una herramienta como SQL Server Management Studio o SQL Server Express Management Studio.