Lektion 3: Slutför målkonversationsobjekten

gäller för:SQL ServerAzure SQL Managed Instance

I den här lektionen lär du dig att skapa den länkade servern och vägar från målinstansen av databasmotorn till initierarinstansen. Kör de här stegen från en kopia av Management Studio som körs på samma dator som målinstansen.

Procedures

Skapa referenser till initierarobjekt

  • Kopiera och klistra in följande kod i ett frågeredigerarefönster. FROM FILE Ändra -satsen så att den refererar till mappen som du kopierade InstInitiatorCertificate.cer-filen till från steg 4 i lektion 2. Kör sedan koden för att skapa en initieraranvändare och hämta initierarcertifikatet.

    USE InstTargetDB;
    GO
    
    CREATE USER InitiatorUser WITHOUT LOGIN;
    
    CREATE CERTIFICATE InstInitiatorCertificate
        AUTHORIZATION InitiatorUser
        FROM FILE = N'C:\storedcerts\$ampleSSBCerts\InstInitiatorCertificate.cer';
    GO
    

Skapa vägar

  • Kopiera och klistra in följande kod i ett frågeredigerarefönster. Ändra strängen MyInitiatorComputer till namnet på den dator som kör initierarinstansen. Kör sedan koden för att skapa vägar till måltjänsten och initierartjänsten och en fjärrtjänstbindning som associerar InitiatorUser med initierartjänstens väg.

    CREATE ROUTE Följande instruktioner förutsätter att det inte finns några duplicerade tjänstnamn i målinstansen. Om flera databaser på målinstansen innehåller tjänster med samma namn använder BROKER_INSTANCE du -satsen för att ange den databas som du vill öppna en konversation på.

    DECLARE @Cmd AS NVARCHAR (4000);
    
    SET @Cmd = N'USE InstTargetDB;
                    CREATE ROUTE InstInitiatorRoute
                    WITH SERVICE_NAME =
                           N''//InstDB/2InstSample/InitiatorService'',
                         ADDRESS = N''TCP://MyInitiatorComputer:4022'';';
    
    EXECUTE (@Cmd);
    
    SET @Cmd = N'USE msdb
                    CREATE ROUTE InstTargetRoute
                    WITH SERVICE_NAME =
                            N''//TgtDB/2InstSample/TargetService'',
                         ADDRESS = N''LOCAL''';
    
    EXECUTE (@Cmd);
    GO
    
    GRANT SEND
        ON SERVICE::[//TgtDB/2InstSample/TargetService] TO InitiatorUser;
    GO
    
    CREATE REMOTE SERVICE BINDING InitiatorBinding
        TO SERVICE N'//InstDB/2InstSample/InitiatorService'
        WITH USER = InitiatorUser;
    GO
    

Nästa steg

Du har konfigurerat måldatabasen för att stödja en Service Broker-konversation till initierardatabasen. Därefter påbörjar du en konversation i initierardatabasen och skickar ett meddelande om begäran till måltjänsten.