適用対象:SQL Server
Azure SQL Managed Instance
メッセージ転送により、SQL Server インスタンスでは SQL Server の他の複数のインスタンス間で Service Broker メッセージを転送できます。 メッセージ転送を実行する SQL Server インスタンスの管理については、いくつかの注意点があります。
Service Broker は、転送されたメッセージと受信メッセージの両方に対して、 msdb データベース内のルートを使用します。 転送のルーティング構成を変更した後、 msdbをバックアップする必要があります。
SQL Server では、転送されるメッセージはメモリ内の送信キューと呼ばれるデータ構造に格納されます。 エンドポイント オプション MESSAGE_FORWARDING_SIZE 、転送するメッセージの格納に SQL Server が使用するメモリの最大量 (メガバイト単位) を設定します。 SQL Server では、転送するメッセージを保持するために必要なメモリがこの上限値まで割り当てられます。 メッセージの到着によって送信キューのサイズがこの上限値を超過する場合は、SQL Server によってそのメッセージが削除されます。 ただし、大きなメッセージがフラグメント化されている場合、転送インスタンスはフラグメントを再アセンブルせず、代わりにメッセージ フラグメントを宛先に転送します。 この方法では、転送インスタンスは、インスタンス用に構成されている MESSAGE_FORWARDING_SIZE オプションよりも大きいメッセージを正常に転送できます。
メッセージ転送を実行するインスタンスは、2 つのネットワーク間のブリッジとして機能することが少なくありません。 この構成では、Service Broker エンドポイントの MESSAGE_FORWARDING_SIZE オプションは、2 つのネットワーク間のすべてのトラフィックがインスタンスを通過するため、比較的大きくする必要がある場合があります。
動的管理ビュー sys.dm_broker_forwarded_messages には、転送用に格納されているメッセージが表示されます。