Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Istanza gestita di SQL di Azure
Service Broker usa i percorsi per determinare la destinazione di recapito dei messaggi Quando un servizio invia un messaggio durante una conversazione, SQL Server individua il servizio destinatario del messaggio usando le route. Quando il servizio risponde, SQL Server usa nuovamente le route per individuare il servizio di origine. Per impostazione predefinita, ogni database contiene una route che specifica che i messaggi per qualsiasi servizio che non dispone di una route esplicita vengono recapitati all'interno dell'istanza di SQL Server.
Un percorso è costituito da tre componenti di base:
Nome del servizio
Il nome del servizio per cui questo percorso specifica l'indirizzamento. Questo nome deve corrispondere esattamente al nome del servizio nel
BEGIN DIALOGcomando .Identificatore dell'istanza di Broker
Un identificatore univoco per un database specifico a cui inviare i messaggi. Questa è la colonna
service_broker_guidnella riga della tabellasys.databasesdel database a cui punta questo percorso.Indirizzo di rete
Un indirizzo del computer effettivo, una parola chiave che limita il percorso al computer locale o una parola chiave che indica che il livello di trasporto deduce l'indirizzo dal nome del servizio. Un indirizzo di rete può essere l'indirizzo del broker che ospita il servizio oppure può essere l'indirizzo di un broker di inoltro.
Per determinare il percorso di una conversazione, SQL Server confronta il nome del servizio e l'identificatore dell'istanza del broker specificati nell'istruzione BEGIN DIALOG CONVERSATION con il nome del servizio e l'identificatore dell'istanza del broker specificati nel percorso. I percorsi che non specificano un nome di servizio corrispondono a qualsiasi nome di servizio. Le rotte che non forniscono un identificatore dell'istanza del broker corrispondono a qualsiasi identificatore dell'istanza del broker. Quando più route corrispondono a una conversazione, SQL Server seleziona una route, come descritto in Routing di Service Broker.
Una volta che il destinatario conferma la ricezione del primo messaggio, SQL Server garantisce che tutti i messaggi successivi di quella conversazione vengano instradati allo stesso database. Tuttavia, non è garantito che altre conversazioni sullo stesso gruppo di conversazioni instradano allo stesso database. Se un'applicazione richiede che i messaggi nel percorso delle conversazioni correlate vengano indirizzati allo stesso database, quando l'applicazione inizia una conversazione, dovrà fornire un identificatore di istanza broker.
Per impostazione predefinita, tutti i database utente contengono la route AutoCreatedLocal. Questo percorso corrisponde a qualsiasi nome di servizio e istanza di Service Broker e, tramite esso, viene specificato che il messaggio deve essere recapitato all'interno dell'istanza corrente. Per gli scenari semplici, nei quali sia l'initiator che la destinazione della conversazione si trovano nella stessa istanza di SQL Server, non sono necessarie route aggiuntive. La creazione di una route per ogni servizio, tuttavia, consente una migliore sicurezza dalla modifica o dall'eliminazione della route AutoCreatedLocal.