Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
I den här lektionen får du lära dig hur du tar emot ett begärandemeddelande från målkön och skickar ett svarsmeddelande till initierartjänsten. Kör de här stegen från en kopia av Management Studio som körs på samma dator som målinstansen av databasmotorn.
Procedures
Växla till TargetDB-databasen
Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att växla kontext till InstTargetDB-databasen där du får begärandemeddelandet och skicka ett svarsmeddelande tillbaka till InstInitiatorDB.
USE InstTargetDB; GO
Ta emot begäran och skicka ett svar
Kopiera och klistra in följande kod i ett frågeredigerarefönster. Kör det sedan för att ta emot svarsmeddelandet från InstTargetQueue och skicka ett svarsmeddelande tillbaka till initieraren. -
RECEIVEinstruktionen hämtar begärandemeddelandet och följandeSELECTinstruktion visar texten så att du kan kontrollera att det är samma meddelande som skickades i föregående steg. InstruktionenIFtestar om det mottagna meddelandet är en typ av begärandemeddelande och om enSENDinstruktion används för att skicka tillbaka ett svarsmeddelande till initieraren. -instruktionenEND CONVERSATIONanvänds för att avsluta målsidan av konversationen. Den slutligaSELECTinstruktionen visar texten i svarsmeddelandet.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
Relaterat innehåll
- AVSLUTA KONVERSATION (Transact-SQL)
- TA EMOT (Transact-SQL)
- SEND (Transact-SQL)
- WAITFOR (Transact-SQL)
- Service Broker-applikationer
Nästa steg
Du har tagit emot begärandemeddelandet och skickat ett svarsmeddelande till initierartjänsten. Sedan får du svarsmeddelandet från initierarkön och avslutar konversationen.