Treinamento SQL Server

Módulo 34 — Service Broker & Mensageria Interna

Arquiteturas assíncronas dentro do SQL Server com filas e serviços.

T-SQL Nível Avançado Hands-on Atualizado: 28 ago 2025

1) Conceitos & Componentes

2) Habilitação & Segurança

ALTER DATABASE MeuDB SET ENABLE_BROKER;
-- Certificados/Endpoints para entre DBs/servidores

3) Tipos/Contratos/Filas/Serviços

CREATE MESSAGE TYPE PedidoMsg VALIDATION=WELL_FORMED_XML;
CREATE CONTRACT PedidoContrato (PedidoMsg SENT BY INITIATOR);
CREATE QUEUE   PedidoQueue;
CREATE SERVICE PedidoService ON QUEUE PedidoQueue (PedidoContrato);

4) Envio & Recebimento

DECLARE @dh UNIQUEIDENTIFIER;
BEGIN DIALOG CONVERSATION @dh
  FROM SERVICE PedidoService TO SERVICE 'PedidoService' ON CONTRACT PedidoContrato;
SEND ON CONVERSATION @dh MESSAGE TYPE PedidoMsg N'';
RECEIVE TOP(1) * FROM PedidoQueue;

5) Ativação Automática

ALTER QUEUE PedidoQueue WITH ACTIVATION (STATUS=ON, PROCEDURE_NAME=dbo.usp_Processa, MAX_QUEUE_READERS=5);

6) Padrões (Sagas/Outbox)

7) Laboratório

-- Montar pipeline simples de pedidos → fila → proc.

8) Exercícios

  1. Modelar mensagem de confirmação e encerrar diálogo.

9) Gabarito

END CONVERSATION @dh;

10) Boas Práticas

11) Próximos Passos