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ê aprenderá como receber uma mensagem de solicitação da fila de destino e enviar uma mensagem de resposta para o serviço iniciador. Execute estas etapas a partir de uma cópia do Management Studio em execução no mesmo computador que a instância de destino do Mecanismo de Banco de Dados.
Procedures
Alternar para o banco de dados TargetDB
Copie e cole o código a seguir em uma janela do Editor de Consultas e, em seguida, execute-o para alternar o contexto para o banco de dados InstTargetDB onde você recebe a mensagem de solicitação e envia uma mensagem de resposta de volta para o InstInitiatorDB.
USE InstTargetDB; GO
Receba o pedido e envie uma resposta
Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para receber a mensagem de resposta do InstTargetQueue e envie uma mensagem de resposta de volta para o iniciador. A
RECEIVEinstrução recupera a mensagem de solicitação e, em seguida, a instrução a seguirSELECTexibe o texto para que você possa verificar se é a mesma mensagem que foi enviada na etapa anterior. AIFinstrução testa se a mensagem recebida é um tipo de mensagem de solicitação e se umaSENDinstrução é usada para enviar uma mensagem de resposta de volta ao iniciador. AEND CONVERSATIONdeclaração é usada para encerrar o lado alvo da conversa. A declaração finalSELECTexibe o texto da mensagem de resposta.DECLARE @RecvReqDlgHandle AS UNIQUEIDENTIFIER; DECLARE @RecvReqMsg AS NVARCHAR (100); DECLARE @RecvReqMsgName AS sysname; BEGIN TRANSACTION; WAITFOR (RECEIVE TOP (1) @RecvReqDlgHandle = conversation_handle, @RecvReqMsg = message_body, @RecvReqMsgName = message_type_name FROM InstTargetQueue), TIMEOUT 1000; SELECT @RecvReqMsg AS ReceivedRequestMsg; IF @RecvReqMsgName = N'//BothDB/2InstSample/RequestMessage' BEGIN DECLARE @ReplyMsg AS NVARCHAR (100); SELECT @ReplyMsg = N'<ReplyMsg>Message for Initiator service.</ReplyMsg>'; SEND ON CONVERSATION (@RecvReqDlgHandle) MESSAGE TYPE [//BothDB/2InstSample/ReplyMessage] (@ReplyMsg); END CONVERSATION @RecvReqDlgHandle; END SELECT @ReplyMsg AS SentReplyMsg; COMMIT TRANSACTION; GO
Conteúdo relacionado
- FIM CONVERSA (Transact-SQL)
- RECEBER (Transact-SQL)
- ENVIAR (Transact-SQL)
- AGUARDE (Transact-SQL)
- Aplicativos do Service Broker
Próximo passo
Você recebeu com êxito a mensagem de solicitação e enviou uma mensagem de resposta para o serviço iniciador. Em seguida, você recebe a mensagem de resposta da fila do iniciador e encerra a conversa.