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, você aprende 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 AdventureWorks2008R2
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 inicial 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 AdventureWorks2008R2 e alterne o contexto para o banco de dados.
USE master; GO ALTER DATABASE AdventureWorks2008R2 SET ENABLE_BROKER; GO USE AdventureWorks2008R2; GO
Criar os tipos de mensagem
Copie e cole o código a seguir em uma janela do Editor de Consultas e 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 só validará se as mensagens são documentos XML bem formados e que não validará o XML em relação a um esquema específico.
CREATE MESSAGE TYPE [//AWDB/1DBSample/RequestMessage] VALIDATION = WELL_FORMED_XML; CREATE MESSAGE TYPE [//AWDB/1DBSample/ReplyMessage] VALIDATION = WELL_FORMED_XML; GO
Criar o contrato
Copie e cole o código a seguir em uma janela do Editor de Consultas e execute-o para criar o contrato para a conversa. O contrato especifica que as conversas que o utilizam devem enviar mensagens do tipo //AWDB/1DBSample/RequestMessage do iniciador para o destino e mensagens do tipo //AWDB/1DBSample/ReplyMessage do destino para o iniciador.
CREATE CONTRACT [//AWDB/1DBSample/SampleContract] ([//AWDB/1DBSample/RequestMessage] SENT BY INITIATOR, [//AWDB/1DBSample/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. Em seguida, 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 SERVICEdeclaração associa o serviço aoTargetQueue1DB. Portanto, todas as mensagens enviadas para o serviço serão recebidas noTargetQueue1DB. OCREATE SERVICEtambém especifica que somente conversas que usam o AWDB/1DBSample/SampleContract criado anteriormente podem usar o serviço como um serviço de destino.CREATE QUEUE TargetQueue1DB; CREATE SERVICE [//AWDB/1DBSample/TargetService] ON QUEUE TargetQueue1DB ([//AWDB/1DBSample/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 InitiatorQueue1DB; CREATE SERVICE [//AWDB/1DBSample/InitiatorService] ON QUEUE InitiatorQueue1DB; GO
Tarefas relacionadas
- ALTERAR BASE DE DADOS (Transact-SQL)
- CRIAR TIPO DE MENSAGEM (Transact-SQL)
- CRIAR CONTRATO (Transact-SQL)
- CRIAR FILA (Transact-SQL)
- CRIAÇÃO DE SERVIÇO (Transact-SQL)
- Arquitetura de conversação
- Arquitetura de serviços
Próximo passo
Você configurou AdventureWorks2008R2 com êxito para dar suporte a uma conversa entre o AWDB/1DBSample/InitiatorService e o AWDB/1DBSample/TargetService. Em seguida, conclua uma conversa usando a configuração.