Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Managed Instance
Nesta lição, aprenda a criar todos os objetos que permitem que um banco de dados dê suporte a uma conversa no banco de dados.
Procedimentos
Habilite o Service Broker e alterne para o banco de dados AdventureWorks
Observação
Os exemplos de código neste artigo foram testados usando o banco de dados de exemplo AdventureWorks2025, que você pode baixar da página principal do Microsoft SQL Server Samples and Community Projects .
Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para garantir que o Service Broker esteja habilitado no banco de dados AdventureWorks2025 e alterne o contexto para o banco de dados.
USE master;
GO
ALTER DATABASE AdventureWorks2022
SET ENABLE_BROKER;
GO
USE AdventureWorks2022;
GO
Criar os tipos de mensagem
Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para criar os tipos de mensagem para a conversa. Como os objetos do Service Broker geralmente são referenciados em várias instâncias do Mecanismo de Banco de Dados, a maioria dos objetos do Service Broker recebe nomes em um formato URI. Isso ajuda a garantir que eles sejam exclusivos em vários computadores. Ambos os tipos de mensagem especificam que o Service Broker apenas valida que as mensagens são documentos XML bem formados e que o XML não é validado em relação a um esquema específico.
CREATE MESSAGE TYPE [//AWDB/InternalAct/RequestMessage]
VALIDATION = WELL_FORMED_XML;
CREATE MESSAGE TYPE [//AWDB/InternalAct/ReplyMessage]
VALIDATION = WELL_FORMED_XML;
GO
Criar o contrato
Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para criar o contrato para a conversa. O contrato especifica que as conversas que o usam devem enviar mensagens do tipo AWDB/InternalAct/RequestMessage do iniciador para o destino e mensagens do tipo AWDB/InternalAct/ReplyMessage do destino para o iniciador.
CREATE CONTRACT [//AWDB/InternalAct/SampleContract]
([//AWDB/InternalAct/RequestMessage] SENT BY INITIATOR,
[//AWDB/InternalAct/ReplyMessage] SENT BY TARGET);
GO
Criar a fila de destino e o serviço
Copie e cole o código a seguir em uma janela do Editor de Consultas e execute-o para criar a fila e o serviço usados para o destino. Como as filas são referenciadas a partir do mesmo banco de dados de maneira semelhante a tabelas e exibições, os nomes das filas são formatados como nomes de tabelas ou exibições. A CREATE SERVICE instrução associa o serviço ao TargetQueueIntAct. Portanto, todas as mensagens que são enviadas para o serviço são recebidas no TargetQueueIntAct. O CREATE SERVICE também especifica que somente conversas que usam o AWDB/InternalAct/SampleContract criado anteriormente podem usar o serviço como um serviço de destino.
CREATE QUEUE TargetQueueIntAct;
CREATE SERVICE [//AWDB/InternalAct/TargetService]
ON QUEUE TargetQueueIntAct
([//AWDB/InternalAct/SampleContract]);
GO
Criar a fila do iniciador e o serviço
Copie e cole o código a seguir em uma janela do Editor de Consultas e execute-o para criar a fila e o serviço usados para o iniciador. Como nenhum nome de contrato é especificado, nenhum outro serviço pode usar esse serviço como um serviço de destino.
CREATE QUEUE InitiatorQueueIntAct;
CREATE SERVICE [//AWDB/InternalAct/InitiatorService]
ON QUEUE InitiatorQueueIntAct;
GO
Próximo passo
Você configurou com êxito o AdventureWorks2025 para dar suporte a uma conversa entre o //AWDB/InternalAct/InitiatorService e o //AWDB/InternalAct/TargetService.