Implementar la activación interna

Este tutorial está destinado a usuarios que no tienen experiencia en Service Broker pero que conocen los conceptos de base de datos y las instrucciones de Transact-SQL. Les servirá de introducción al mostrarles cómo implementar un procedimiento almacenado de activación interna para procesar los mensajes de Service Broker.

Aprendizaje

Este tutorial le mostrará cómo crear los objetos de base de datos necesarios para admitir una conversación de solicitud y respuesta de Service Broker sencilla mediante un procedimiento almacenado de activación interna. Después, iniciará una conversación y la usará para transmitir mensajes.

Cada conversación de Service Broker tiene dos extremos: el iniciador y el destino de la conversación. En una conversación de solicitud y respuesta, el iniciador envía un mensaje de solicitud al destino y este devuelve un mensaje de respuesta. La activación interna de Service Broker se puede utilizar para ejecutar un procedimiento almacenado cada vez que haya mensajes pendientes de procesar. Service Broker puede ejecutar varias copias del procedimiento almacenado si se están transmitiendo muchos mensajes. En este tutorial se muestra cómo crear un procedimiento almacenado que reciba los mensajes de solicitud en el destino y cómo configurar el destino para que utilice la activación interna para ejecutar el procedimiento almacenado.

Realizará las tareas siguientes:

  • Crear un servicio y una cola para el destino, y un servicio y una cola para el iniciador.

  • Cree un tipo de mensaje de solicitud y un tipo de mensaje de respuesta.

  • Crear un contrato que especifique que los mensajes de solicitud van del iniciador al destino, y que los mensajes de respuesta van del destino al iniciador.

  • Crear un procedimiento almacenado que reciba los mensajes de solicitud de la cola de destino y envíe los mensajes de respuesta al iniciador.

  • Modificar la cola de destino para habilitar la activación interna del procedimiento almacenado.

A continuación, llevará a cabo una conversación simple:

  • Iniciar la conversación.

  • Enviar una solicitud del iniciador al destino.

  • Service Broker activará el procedimiento almacenado. El procedimiento almacenado recibirá la solicitud en el destino y enviará una respuesta al iniciador.

  • Recibir la respuesta en el iniciador.

  • Finalizar la conversación en el lado del iniciador.

  • A continuación, Service Broker activará el procedimiento almacenado por segunda vez y el procedimiento almacenado finalizará la conversación en el lado de destino.

Los mensajes no se transmiten a través de la red en las conversaciones que tienen ambos extremos en la misma instancia de Motor de base de datos. La seguridad y los permisos de Motor de base de datos restringen el acceso a las entidades de seguridad autorizadas. El cifrado de red no es necesario en este escenario.

El tutorial está compuesto por tres lecciones:

Requisitos

Para completar este tutorial, debe conocer el lenguaje Transact-SQL y saber usar el Editor de consultas de Motor de base de datos en SQL Server Management Studio. Debe ser miembro de los roles de base de datos fijos db_ddladmin o db_owner para la base de datos de ejemplo AdventureWorks2008R2, o del rol fijo de servidor sysadmin.

El sistema debe tener instalado lo siguiente: