Condividi tramite


Gestione dell'inoltro (Service Broker)

La funzionalità di inoltro dei messaggi consente a un'istanza di SQL Server di inoltrare messaggi di Service Broker tra due o più istanze diverse di SQL Server. Per la gestione di un'istanza di SQL Server che esegue l'inoltro dei messaggi sono valide alcune considerazioni.

Service Broker utilizza le route nel database msdb sia per i messaggi inoltrati che per quelli in arrivo. Dopo aver modificato la configurazione del routing per l'inoltro, è necessario eseguire il backup di msdb.

SQL Server archivia i messaggi da inoltrare in memoria, in una struttura di dati denominata coda dello strumento di recapito. L'opzione di endpoint MESSAGE_FORWARDING_SIZE imposta la quantità massima di memoria (in MB) utilizzata da SQL Server per l'archiviazione dei messaggi da inoltrare. La memoria necessaria per mantenere i messaggi da inoltrare viene allocata da SQL Server fino al limite specificato. Se a causa di un messaggio in arrivo il limite della coda dello strumento di recapito può essere superato, SQL Server elimina il messaggio. Se invece un messaggio di grandi dimensioni è stato frammentato, l'istanza di inoltro non riassembla i frammenti ma li inoltra alla destinazione. In questo modo è possibile completare la trasmissione di un messaggio di dimensioni superiori al valore dell'opzione MESSAGE_FORWARDING_SIZE configurata per l'istanza di inoltro.

Un'istanza che esegue l'inoltro di messaggi ha spesso il ruolo di ponte tra due reti. Per questa configurazione l'opzione MESSAGE_FORWARDING_SIZE per l'endpoint di Service Broker può richiedere un valore relativamente elevato, poiché tutto il traffico tra le due reti passa attraverso l'istanza.

Nella vista a gestione dinamica sys.dm_broker_forwarded_messages vengono visualizzati i messaggi archiviati per l'inoltro.